@codeyam/codeyam-cli 0.1.0-staging.d0ad4ae → 0.1.0-staging.d3e886e
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 +8 -8
- package/analyzer-template/log.txt +3 -3
- package/analyzer-template/package.json +10 -10
- package/analyzer-template/packages/ai/index.ts +21 -5
- package/analyzer-template/packages/ai/package.json +2 -2
- package/analyzer-template/packages/ai/src/lib/__mocks__/completionCall.ts +122 -0
- package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +226 -24
- package/analyzer-template/packages/ai/src/lib/astScopes/arrayDerivationDetector.ts +199 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +183 -10
- package/analyzer-template/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.ts +644 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +181 -23
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.ts +10 -17
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.ts +18 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.ts +15 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.ts +181 -1
- package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +1215 -29
- package/analyzer-template/packages/ai/src/lib/astScopes/sharedPatterns.ts +28 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +265 -6
- package/analyzer-template/packages/ai/src/lib/completionCall.ts +216 -36
- package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +1750 -318
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +5 -1
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.ts +205 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +10 -2
- 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 +129 -20
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.ts +70 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +140 -14
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.ts +179 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.ts +40 -30
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +393 -90
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.ts +129 -0
- package/analyzer-template/packages/ai/src/lib/dataStructureChunking.ts +183 -0
- package/analyzer-template/packages/ai/src/lib/e2eDataTracking.ts +334 -0
- package/analyzer-template/packages/ai/src/lib/extractCriticalDataKeys.ts +120 -0
- package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarioData.ts +4 -3
- package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarios.ts +86 -149
- package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +59 -3
- package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +1382 -65
- package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +200 -196
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +710 -0
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.ts +528 -0
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +2484 -0
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.ts +239 -0
- package/analyzer-template/packages/ai/src/lib/guessScenarioDataFromDescription.ts +5 -5
- package/analyzer-template/packages/ai/src/lib/isolateScopes.ts +328 -7
- package/analyzer-template/packages/ai/src/lib/mergeJsonTypeDefinitions.ts +5 -0
- package/analyzer-template/packages/ai/src/lib/mergeStatements.ts +111 -87
- package/analyzer-template/packages/ai/src/lib/promptGenerators/collapseNullableObjects.ts +118 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +10 -7
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.ts +1 -1
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.ts +28 -170
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChunkPrompt.ts +82 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateCriticalKeysPrompt.ts +103 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +110 -6
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.ts +14 -89
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.ts +58 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.ts +11 -11
- package/analyzer-template/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.ts +391 -0
- package/analyzer-template/packages/ai/src/lib/resolvePathToControllable.ts +824 -0
- package/analyzer-template/packages/ai/src/lib/splitOutsideParentheses.ts +5 -1
- package/analyzer-template/packages/ai/src/lib/validateExecutionFlowPaths.ts +531 -0
- package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +122 -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/analysisContext.ts +44 -4
- 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 +447 -255
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +31 -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 +33 -10
- package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +14 -14
- package/analyzer-template/packages/analyze/src/lib/files/analyzeEntity.ts +4 -4
- package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +11 -12
- package/analyzer-template/packages/analyze/src/lib/files/analyzeRemixRoute.ts +4 -5
- package/analyzer-template/packages/analyze/src/lib/files/enums/steps.ts +1 -1
- 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 +193 -76
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +203 -41
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.ts +28 -188
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +272 -23
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +264 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarioData.ts +1 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarios.ts +2 -3
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +825 -71
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.ts +56 -11
- 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 +3 -3
- package/analyzer-template/packages/database/package.json +1 -1
- package/analyzer-template/packages/database/src/lib/analysisBranchToDb.ts +1 -1
- package/analyzer-template/packages/database/src/lib/analysisToDb.ts +1 -1
- package/analyzer-template/packages/database/src/lib/branchToDb.ts +1 -1
- package/analyzer-template/packages/database/src/lib/commitBranchToDb.ts +1 -1
- package/analyzer-template/packages/database/src/lib/commitToDb.ts +1 -1
- package/analyzer-template/packages/database/src/lib/fileToDb.ts +1 -1
- package/analyzer-template/packages/database/src/lib/kysely/db.ts +14 -1
- package/analyzer-template/packages/database/src/lib/kysely/tables/commitsTable.ts +6 -0
- package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +17 -1
- package/analyzer-template/packages/database/src/lib/kysely/tables/labsRequestsTable.ts +52 -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/loadReadyToBeCapturedAnalyses.ts +7 -3
- package/analyzer-template/packages/database/src/lib/projectToDb.ts +1 -1
- package/analyzer-template/packages/database/src/lib/saveFiles.ts +1 -1
- package/analyzer-template/packages/database/src/lib/scenarioToDb.ts +1 -1
- package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +7 -14
- package/analyzer-template/packages/database/src/lib/userScenarioToDb.ts +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +2 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +11 -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/analysesTable.d.ts +1 -18
- 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/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/kysely/tables/debugReportsTable.d.ts +17 -1
- 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.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts +23 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts +1 -6
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/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/loadReadyToBeCapturedAnalyses.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js +7 -4
- package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts +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/index.d.ts +3 -4
- package/analyzer-template/packages/github/dist/types/index.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/types/index.js +0 -1
- package/analyzer-template/packages/github/dist/types/index.js.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts +71 -27
- package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts.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 +7 -0
- package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +3 -54
- 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 +1 -21
- 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 +153 -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/dist/types/src/types/StatementInfo.d.ts +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts +9 -1
- package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js +29 -3
- package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js.map +1 -1
- package/analyzer-template/packages/github/package.json +1 -1
- package/analyzer-template/packages/types/index.ts +3 -6
- package/analyzer-template/packages/types/src/types/Analysis.ts +87 -27
- package/analyzer-template/packages/types/src/types/Commit.ts +2 -0
- package/analyzer-template/packages/types/src/types/ProjectMetadata.ts +7 -0
- package/analyzer-template/packages/types/src/types/Scenario.ts +3 -77
- package/analyzer-template/packages/types/src/types/ScenariosDataStructure.ts +181 -5
- package/analyzer-template/packages/types/src/types/ScopeAnalysis.ts +6 -1
- package/analyzer-template/packages/types/src/types/StatementInfo.ts +2 -0
- package/analyzer-template/packages/utils/dist/types/index.d.ts +3 -4
- package/analyzer-template/packages/utils/dist/types/index.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/types/index.js +0 -1
- package/analyzer-template/packages/utils/dist/types/index.js.map +1 -1
- package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts +71 -27
- package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts.map +1 -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 +7 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +3 -54
- 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 +1 -21
- 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 +153 -5
- package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
- package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js +93 -2
- package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts +9 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js +29 -3
- package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js.map +1 -1
- package/analyzer-template/packages/utils/src/lib/fs/rsyncCopy.ts +108 -2
- package/analyzer-template/packages/utils/src/lib/safeFileName.ts +48 -3
- package/analyzer-template/playwright/capture.ts +20 -8
- package/analyzer-template/playwright/captureStatic.ts +1 -1
- package/analyzer-template/playwright/getCodeYamInfo.ts +12 -7
- package/analyzer-template/project/analyzeBaselineCommit.ts +9 -0
- package/analyzer-template/project/analyzeBranchCommit.ts +4 -0
- package/analyzer-template/project/analyzeFileEntities.ts +4 -0
- package/analyzer-template/project/analyzeRegularCommit.ts +9 -0
- package/analyzer-template/project/captureLibraryFunctionDirect.ts +29 -26
- package/analyzer-template/project/constructMockCode.ts +425 -43
- package/analyzer-template/project/controller/startController.ts +16 -1
- package/analyzer-template/project/createEntitiesAndSortFiles.ts +83 -0
- package/analyzer-template/project/executeLibraryFunctionDirect.ts +7 -3
- package/analyzer-template/project/loadReadyToBeCaptured.ts +65 -41
- package/analyzer-template/project/mocks/analyzeFileMock.ts +8 -7
- package/analyzer-template/project/orchestrateCapture/AwsCaptureTaskRunner.ts +12 -4
- package/analyzer-template/project/orchestrateCapture/SequentialCaptureTaskRunner.ts +18 -7
- package/analyzer-template/project/orchestrateCapture/taskRunner.ts +4 -2
- package/analyzer-template/project/orchestrateCapture.ts +71 -6
- package/analyzer-template/project/reconcileMockDataKeys.ts +214 -0
- package/analyzer-template/project/runAnalysis.ts +6 -0
- package/analyzer-template/project/start.ts +46 -12
- package/analyzer-template/project/writeMockDataTsx.ts +295 -10
- package/analyzer-template/project/writeScenarioComponents.ts +218 -26
- package/analyzer-template/project/writeSimpleRoot.ts +21 -11
- package/analyzer-template/scripts/comboWorkerLoop.cjs +98 -50
- package/analyzer-template/tsconfig.json +2 -1
- package/background/src/lib/local/createLocalAnalyzer.js +1 -1
- package/background/src/lib/local/createLocalAnalyzer.js.map +1 -1
- package/background/src/lib/virtualized/project/analyzeBaselineCommit.js +7 -1
- package/background/src/lib/virtualized/project/analyzeBaselineCommit.js.map +1 -1
- package/background/src/lib/virtualized/project/analyzeBranchCommit.js +2 -1
- package/background/src/lib/virtualized/project/analyzeBranchCommit.js.map +1 -1
- package/background/src/lib/virtualized/project/analyzeFileEntities.js +2 -1
- package/background/src/lib/virtualized/project/analyzeFileEntities.js.map +1 -1
- package/background/src/lib/virtualized/project/analyzeRegularCommit.js +7 -1
- 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 +350 -13
- package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
- package/background/src/lib/virtualized/project/controller/startController.js +11 -1
- package/background/src/lib/virtualized/project/controller/startController.js.map +1 -1
- package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js +73 -1
- package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js.map +1 -1
- package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js +6 -3
- package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js.map +1 -1
- package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js +19 -8
- package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js.map +1 -1
- package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js +7 -7
- package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js.map +1 -1
- package/background/src/lib/virtualized/project/orchestrateCapture/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 +7 -5
- package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js.map +1 -1
- package/background/src/lib/virtualized/project/orchestrateCapture.js +58 -6
- package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
- package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +177 -0
- package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
- package/background/src/lib/virtualized/project/runAnalysis.js +5 -0
- package/background/src/lib/virtualized/project/runAnalysis.js.map +1 -1
- package/background/src/lib/virtualized/project/start.js +42 -12
- package/background/src/lib/virtualized/project/start.js.map +1 -1
- package/background/src/lib/virtualized/project/writeMockDataTsx.js +251 -6
- package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
- package/background/src/lib/virtualized/project/writeScenarioComponents.js +164 -29
- 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 +4 -0
- package/codeyam-cli/src/cli.js.map +1 -1
- package/codeyam-cli/src/codeyam-cli.js +18 -2
- package/codeyam-cli/src/codeyam-cli.js.map +1 -1
- package/codeyam-cli/src/commands/analyze.js +4 -2
- package/codeyam-cli/src/commands/analyze.js.map +1 -1
- package/codeyam-cli/src/commands/baseline.js +10 -11
- package/codeyam-cli/src/commands/baseline.js.map +1 -1
- package/codeyam-cli/src/commands/debug.js +37 -23
- package/codeyam-cli/src/commands/debug.js.map +1 -1
- package/codeyam-cli/src/commands/default.js +30 -34
- package/codeyam-cli/src/commands/default.js.map +1 -1
- package/codeyam-cli/src/commands/detect-universal-mocks.js +2 -0
- package/codeyam-cli/src/commands/detect-universal-mocks.js.map +1 -1
- package/codeyam-cli/src/commands/init.js +49 -257
- package/codeyam-cli/src/commands/init.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/commands/recapture.js +31 -18
- package/codeyam-cli/src/commands/recapture.js.map +1 -1
- package/codeyam-cli/src/commands/report.js +46 -1
- package/codeyam-cli/src/commands/report.js.map +1 -1
- package/codeyam-cli/src/commands/setup-sandbox.js +2 -0
- package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -1
- package/codeyam-cli/src/commands/setup-simulations.js +284 -0
- package/codeyam-cli/src/commands/setup-simulations.js.map +1 -0
- package/codeyam-cli/src/commands/start.js +8 -12
- package/codeyam-cli/src/commands/start.js.map +1 -1
- package/codeyam-cli/src/commands/test-startup.js +2 -0
- package/codeyam-cli/src/commands/test-startup.js.map +1 -1
- package/codeyam-cli/src/commands/verify.js +14 -2
- package/codeyam-cli/src/commands/verify.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js +179 -0
- package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js +81 -0
- package/codeyam-cli/src/utils/__tests__/serverVersionStaleness.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +128 -82
- package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
- package/codeyam-cli/src/utils/analysisRunner.js +29 -15
- package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
- package/codeyam-cli/src/utils/analyzer.js +7 -0
- package/codeyam-cli/src/utils/analyzer.js.map +1 -1
- package/codeyam-cli/src/utils/backgroundServer.js +102 -21
- package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
- package/codeyam-cli/src/utils/generateReport.js +4 -3
- package/codeyam-cli/src/utils/generateReport.js.map +1 -1
- package/codeyam-cli/src/utils/install-skills.js +76 -37
- package/codeyam-cli/src/utils/install-skills.js.map +1 -1
- package/codeyam-cli/src/utils/labsAutoCheck.js +19 -0
- package/codeyam-cli/src/utils/labsAutoCheck.js.map +1 -0
- package/codeyam-cli/src/utils/npmVersionCheck.js +76 -0
- package/codeyam-cli/src/utils/npmVersionCheck.js.map +1 -0
- package/codeyam-cli/src/utils/progress.js +7 -0
- package/codeyam-cli/src/utils/progress.js.map +1 -1
- package/codeyam-cli/src/utils/queue/job.js +5 -0
- package/codeyam-cli/src/utils/queue/job.js.map +1 -1
- package/codeyam-cli/src/utils/queue/manager.js +6 -0
- package/codeyam-cli/src/utils/queue/manager.js.map +1 -1
- package/codeyam-cli/src/utils/requireSimulations.js +10 -0
- package/codeyam-cli/src/utils/requireSimulations.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js +82 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js +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 +378 -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 +83 -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/serverState.js +37 -10
- package/codeyam-cli/src/utils/serverState.js.map +1 -1
- package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +21 -42
- package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
- package/codeyam-cli/src/utils/versionInfo.js +25 -19
- package/codeyam-cli/src/utils/versionInfo.js.map +1 -1
- package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js +66 -0
- package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js.map +1 -0
- package/codeyam-cli/src/webserver/app/lib/database.js +22 -6
- 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 +50 -0
- package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
- package/codeyam-cli/src/webserver/bootstrap.js +51 -0
- package/codeyam-cli/src/webserver/bootstrap.js.map +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/CopyButton-jNYXRRNI.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/EntityItem-bwuHPyTa.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-DLqD3qNt.js → EntityTypeBadge-CvzqMxcu.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-BH0XDim7.js +41 -0
- package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-EhOseatT.js +34 -0
- package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-yjIHlOGa.js +25 -0
- package/codeyam-cli/src/webserver/build/client/assets/{LibraryFunctionPreview-CVtiBnY5.js → LibraryFunctionPreview-Cq5o8jL4.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-B0GLXMsr.js → LoadingDots-BvMu2i-g.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-xgeCVgSM.js → LogViewer-kgBTLoJD.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-BzPgx-xO.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/{SafeScreenshot-DuDvi0jm.js → SafeScreenshot-CwZrv-Ok.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-BX2Ny2Qj.js +10 -0
- package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-DyFZkK0l.js → TruncatedFilePath-CDpEprKa.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/_index-BRx8ZGZo.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-4S4yPfFw.js +27 -0
- package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-DHKuQSmR.js +17 -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.restart-server-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-D4IPYH_y.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-Cx24_aWc.js → chevron-down-CG65viiV.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{chunk-EPOLDU6W-CXRTFQ3F.js → chunk-JZWAC4HX-DB3aFuEO.js} +12 -12
- package/codeyam-cli/src/webserver/build/client/assets/{circle-check-BOARzkeR.js → circle-check-igfMr5DY.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/copy-Coc4o_8c.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/{createLucideIcon-BdhJEx6B.js → createLucideIcon-D1zB-pYc.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{cy-logo-cli-C1gnJVOL.svg → cy-logo-cli-CCKUIm0S.svg} +2 -2
- package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-DcX-ZS3p.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/dev.empty-JTAjQ54M.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-D0-YwkBh.js → entity._sha._-B0h9AqE6.js} +12 -12
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-DjLxr2JB.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-CtYowLOt.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-C1H_a_Y3.js → entity._sha_.edit._scenarioId-PePWg17F.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entry.client-CS2cb_eZ.js → entry.client-I-Wo99C_.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/executionFlowCoverage-BWhdfn70.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{fileTableUtils-DMJ7zii9.js → fileTableUtils-9sMMAiWJ.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/files-Co65J0s3.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{git-CZu4fif0.js → git-BdHOxVfg.js} +8 -8
- package/codeyam-cli/src/webserver/build/client/assets/globals-CCgBKWy4.css +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{index-B1h680n5.js → index-CUM5iXwc.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{index-lzqtyFU8.js → index-_417gcQW.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/labs-BK0C1H1T.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-B7B9V-bu.js → loader-circle-TzRHMVog.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/manifest-390cb8fa.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/memory-CzZySbBE.js +78 -0
- package/codeyam-cli/src/webserver/build/client/assets/pause-hjzB7t2z.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/root-DnbDhvTU.js +62 -0
- package/codeyam-cli/src/webserver/build/client/assets/{search-CxXUmBSd.js → search-DcAwD_Ln.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/settings-CclxrcPK.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/simulations-DVNJVQgD.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/terminal-DbEAHMbA.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-B6LgvRJg.js → triangle-alert-CAD5b1o_.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-BqgrAzs3.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-aSv48UbS.js → useLastLogLine-DAFqfEDH.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/useReportContext-DZlYx2c4.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{useToast-mBRpZPiu.js → useToast-ihdMtlf6.js} +1 -1
- package/codeyam-cli/src/webserver/build/server/assets/index-CxaRxKVt.js +1 -0
- package/codeyam-cli/src/webserver/build/server/assets/server-build-D4DT0nM_.js +259 -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/server.js +35 -25
- package/codeyam-cli/src/webserver/server.js.map +1 -1
- package/codeyam-cli/templates/{codeyam-debug-skill.md → codeyam-debug.md} +48 -4
- package/codeyam-cli/templates/codeyam-diagnose.md +481 -0
- package/codeyam-cli/templates/codeyam-memory-hook.sh +199 -0
- package/codeyam-cli/templates/codeyam-memory.md +396 -0
- package/codeyam-cli/templates/codeyam-new-rule.md +13 -0
- package/codeyam-cli/templates/{codeyam-setup-skill.md → codeyam-setup.md} +13 -1
- package/codeyam-cli/templates/{codeyam-sim-skill.md → codeyam-sim.md} +1 -1
- package/codeyam-cli/templates/{codeyam-test-skill.md → codeyam-test.md} +1 -1
- package/codeyam-cli/templates/{codeyam-verify-skill.md → codeyam-verify.md} +1 -1
- package/codeyam-cli/templates/rule-notification-hook.py +56 -0
- package/codeyam-cli/templates/rule-reflection-hook.py +627 -0
- package/codeyam-cli/templates/rules-instructions.md +132 -0
- package/package.json +15 -12
- package/packages/ai/index.js +8 -6
- package/packages/ai/index.js.map +1 -1
- package/packages/ai/src/lib/analyzeScope.js +179 -13
- package/packages/ai/src/lib/analyzeScope.js.map +1 -1
- package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js +150 -0
- package/packages/ai/src/lib/astScopes/arrayDerivationDetector.js.map +1 -0
- package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +138 -9
- package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
- package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js +435 -0
- package/packages/ai/src/lib/astScopes/conditionalEffectsExtractor.js.map +1 -0
- package/packages/ai/src/lib/astScopes/methodSemantics.js +138 -23
- 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/patterns/ifStatementHandler.js +8 -0
- package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js.map +1 -1
- package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js +7 -0
- package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js.map +1 -1
- package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js +138 -1
- package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js.map +1 -1
- package/packages/ai/src/lib/astScopes/processExpression.js +931 -29
- package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
- package/packages/ai/src/lib/astScopes/sharedPatterns.js +25 -0
- package/packages/ai/src/lib/astScopes/sharedPatterns.js.map +1 -1
- package/packages/ai/src/lib/completionCall.js +178 -31
- package/packages/ai/src/lib/completionCall.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +1367 -187
- 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/equivalencyManagers/frameworks/MuiManager.js +179 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +7 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.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 +111 -14
- 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 +122 -12
- package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js +173 -0
- package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js +37 -20
- package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +333 -81
- package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js +107 -0
- package/packages/ai/src/lib/dataStructure/helpers/fixNullIdsBySchema.js.map +1 -0
- package/packages/ai/src/lib/dataStructureChunking.js +130 -0
- package/packages/ai/src/lib/dataStructureChunking.js.map +1 -0
- package/packages/ai/src/lib/e2eDataTracking.js +241 -0
- package/packages/ai/src/lib/e2eDataTracking.js.map +1 -0
- package/packages/ai/src/lib/extractCriticalDataKeys.js +96 -0
- package/packages/ai/src/lib/extractCriticalDataKeys.js.map +1 -0
- package/packages/ai/src/lib/generateChangesEntityScenarioData.js +4 -3
- package/packages/ai/src/lib/generateChangesEntityScenarioData.js.map +1 -1
- package/packages/ai/src/lib/generateChangesEntityScenarios.js +78 -120
- package/packages/ai/src/lib/generateChangesEntityScenarios.js.map +1 -1
- package/packages/ai/src/lib/generateEntityDataStructure.js +47 -2
- package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -1
- package/packages/ai/src/lib/generateEntityScenarioData.js +1098 -60
- package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
- package/packages/ai/src/lib/generateEntityScenarios.js +177 -163
- package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
- package/packages/ai/src/lib/generateExecutionFlows.js +495 -0
- package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -0
- package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js +380 -0
- package/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.js.map +1 -0
- package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +1807 -0
- package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -0
- package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js +194 -0
- package/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.js.map +1 -0
- package/packages/ai/src/lib/guessScenarioDataFromDescription.js +2 -2
- package/packages/ai/src/lib/guessScenarioDataFromDescription.js.map +1 -1
- package/packages/ai/src/lib/isolateScopes.js +270 -7
- package/packages/ai/src/lib/isolateScopes.js.map +1 -1
- package/packages/ai/src/lib/mergeJsonTypeDefinitions.js +5 -0
- package/packages/ai/src/lib/mergeJsonTypeDefinitions.js.map +1 -1
- package/packages/ai/src/lib/mergeStatements.js +88 -46
- package/packages/ai/src/lib/mergeStatements.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js +97 -0
- package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +10 -4
- package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js +1 -1
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js +21 -119
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js +54 -0
- package/packages/ai/src/lib/promptGenerators/generateChunkPrompt.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +83 -6
- package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js +10 -70
- package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js +45 -0
- package/packages/ai/src/lib/promptGenerators/generateMissingKeysPrompt.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js +9 -9
- package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js +335 -0
- package/packages/ai/src/lib/promptGenerators/simplifyKeysForLLM.js.map +1 -0
- package/packages/ai/src/lib/resolvePathToControllable.js +677 -0
- package/packages/ai/src/lib/resolvePathToControllable.js.map +1 -0
- package/packages/ai/src/lib/splitOutsideParentheses.js +3 -1
- package/packages/ai/src/lib/splitOutsideParentheses.js.map +1 -1
- package/packages/ai/src/lib/worker/SerializableDataStructure.js +29 -0
- 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/analysisContext.js +30 -5
- package/packages/analyze/src/lib/analysisContext.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 +189 -41
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +21 -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 +31 -10
- package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js.map +1 -1
- package/packages/analyze/src/lib/files/analyzeChange.js +10 -10
- package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -1
- package/packages/analyze/src/lib/files/analyzeEntity.js +4 -4
- package/packages/analyze/src/lib/files/analyzeEntity.js.map +1 -1
- package/packages/analyze/src/lib/files/analyzeInitial.js +9 -10
- package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -1
- package/packages/analyze/src/lib/files/analyzeRemixRoute.js +3 -2
- package/packages/analyze/src/lib/files/analyzeRemixRoute.js.map +1 -1
- package/packages/analyze/src/lib/files/enums/steps.js +1 -1
- package/packages/analyze/src/lib/files/enums/steps.js.map +1 -1
- package/packages/analyze/src/lib/files/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 +164 -68
- package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +178 -31
- package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js +29 -129
- package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +187 -21
- package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +144 -0
- package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js +1 -0
- package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateScenarios.js +2 -3
- package/packages/analyze/src/lib/files/scenarios/generateScenarios.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +670 -53
- package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js +46 -9
- package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.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/analysisBranchToDb.js +1 -1
- package/packages/database/src/lib/analysisBranchToDb.js.map +1 -1
- package/packages/database/src/lib/analysisToDb.js +1 -1
- package/packages/database/src/lib/analysisToDb.js.map +1 -1
- package/packages/database/src/lib/branchToDb.js +1 -1
- package/packages/database/src/lib/branchToDb.js.map +1 -1
- package/packages/database/src/lib/commitBranchToDb.js +1 -1
- package/packages/database/src/lib/commitBranchToDb.js.map +1 -1
- package/packages/database/src/lib/commitToDb.js +1 -1
- package/packages/database/src/lib/commitToDb.js.map +1 -1
- package/packages/database/src/lib/fileToDb.js +1 -1
- package/packages/database/src/lib/fileToDb.js.map +1 -1
- package/packages/database/src/lib/kysely/db.js +11 -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/kysely/tables/debugReportsTable.js.map +1 -1
- package/packages/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
- package/packages/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
- package/packages/database/src/lib/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/loadReadyToBeCapturedAnalyses.js +7 -4
- package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
- package/packages/database/src/lib/projectToDb.js +1 -1
- package/packages/database/src/lib/projectToDb.js.map +1 -1
- package/packages/database/src/lib/saveFiles.js +1 -1
- package/packages/database/src/lib/saveFiles.js.map +1 -1
- package/packages/database/src/lib/scenarioToDb.js +1 -1
- package/packages/database/src/lib/scenarioToDb.js.map +1 -1
- package/packages/database/src/lib/updateCommitMetadata.js +5 -4
- package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
- package/packages/types/index.js +0 -1
- package/packages/types/index.js.map +1 -1
- package/packages/types/src/types/Scenario.js +1 -21
- package/packages/types/src/types/Scenario.js.map +1 -1
- package/packages/utils/src/lib/fs/rsyncCopy.js +93 -2
- package/packages/utils/src/lib/fs/rsyncCopy.js.map +1 -1
- package/packages/utils/src/lib/safeFileName.js +29 -3
- package/packages/utils/src/lib/safeFileName.js.map +1 -1
- package/scripts/finalize-analyzer.cjs +8 -76
- package/analyzer-template/packages/ai/src/lib/findMatchingAttribute.ts +0 -109
- package/analyzer-template/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts +0 -584
- package/analyzer-template/packages/ai/src/lib/generateChangesEntityKeyAttributes.ts +0 -341
- package/analyzer-template/packages/ai/src/lib/generateEntityKeyAttributes.ts +0 -495
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.ts +0 -67
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.ts +0 -120
- package/codeyam-cli/src/webserver/build/client/assets/EntityItem-Cmysw5OP.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-CAneekK2.js +0 -41
- package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-Cu16OUmx.js +0 -25
- package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-DcAUIpD_.js +0 -11
- package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-BMKg0SAF.js +0 -15
- package/codeyam-cli/src/webserver/build/client/assets/_index-DSmTpjmK.js +0 -11
- package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-BF_aK4y6.js +0 -32
- package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-CKnwPCDr.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/dev.empty-RJCf3Tvw.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-EylcgScH.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-DMe7kvgo.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/files-BW7Cyeyi.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/globals-wHVy_II5.css +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/keyAttributeCoverage-CTlFMihX.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/manifest-2d191949.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/root-FHgpM6gc.js +0 -56
- package/codeyam-cli/src/webserver/build/client/assets/settings-6D8k8Jp5.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/simulations-CDJZnWhN.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-Dv18q8LD.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/useInteractiveMode-0ToGk4K3.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/useReportContext-1BX144Eg.js +0 -1
- package/codeyam-cli/src/webserver/build/server/assets/index-pU0o5t1o.js +0 -1
- package/codeyam-cli/src/webserver/build/server/assets/server-build-YzfkRwdn.js +0 -178
- package/codeyam-cli/templates/debug-codeyam.md +0 -625
- package/packages/ai/src/lib/findMatchingAttribute.js +0 -81
- package/packages/ai/src/lib/findMatchingAttribute.js.map +0 -1
- package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js +0 -425
- package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js.map +0 -1
- package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js +0 -267
- package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js.map +0 -1
- package/packages/ai/src/lib/generateEntityKeyAttributes.js +0 -408
- package/packages/ai/src/lib/generateEntityKeyAttributes.js.map +0 -1
- package/packages/ai/src/lib/isFrontend.js +0 -5
- package/packages/ai/src/lib/isFrontend.js.map +0 -1
- package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js +0 -40
- package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js.map +0 -1
- package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js +0 -77
- package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js.map +0 -1
- /package/codeyam-cli/src/webserver/build/client/assets/{api.link-scenario-value-l0sNRNKZ.js → api.agent-transcripts-l0sNRNKZ.js} +0 -0
- /package/codeyam-cli/src/webserver/build/client/assets/{api.update-key-attributes-l0sNRNKZ.js → api.health-l0sNRNKZ.js} +0 -0
- /package/codeyam-cli/src/webserver/build/client/assets/{api.update-valid-values-l0sNRNKZ.js → api.labs-unlock-l0sNRNKZ.js} +0 -0
|
@@ -13,8 +13,8 @@ export enum ControllerPhase {
|
|
|
13
13
|
Startup = 'STARTUP',
|
|
14
14
|
RepoCheckout = 'REPO_CHECKOUT',
|
|
15
15
|
Analysis = 'ANALYSIS',
|
|
16
|
+
AnalysisProducing = 'ANALYSIS_PRODUCING',
|
|
16
17
|
Serving = 'SERVING',
|
|
17
|
-
Orchestrating = 'ORCHESTRATING',
|
|
18
18
|
Complete = 'COMPLETE',
|
|
19
19
|
}
|
|
20
20
|
|
|
@@ -30,6 +30,7 @@ type ControllerContext =
|
|
|
30
30
|
| { phase: ControllerPhase.Startup; info: null }
|
|
31
31
|
| { phase: ControllerPhase.RepoCheckout; info: null }
|
|
32
32
|
| { phase: ControllerPhase.Analysis; info: null }
|
|
33
|
+
| { phase: ControllerPhase.AnalysisProducing; info: null }
|
|
33
34
|
| { phase: ControllerPhase.Serving; info: ServingCodeYamInfo }
|
|
34
35
|
| { phase: ControllerPhase.Complete; info: null };
|
|
35
36
|
|
|
@@ -100,6 +101,11 @@ export class Controller extends EventEmitter {
|
|
|
100
101
|
this.setPhase({ phase: ControllerPhase.Analysis, info: null });
|
|
101
102
|
}
|
|
102
103
|
|
|
104
|
+
setAnalysisProducingPhase(): void {
|
|
105
|
+
this.setPhase({ phase: ControllerPhase.AnalysisProducing, info: null });
|
|
106
|
+
this.emit('analysisProducing');
|
|
107
|
+
}
|
|
108
|
+
|
|
103
109
|
setServingPhase(info: ServingCodeYamInfo): void {
|
|
104
110
|
this.setPhase({ phase: ControllerPhase.Serving, info });
|
|
105
111
|
}
|
|
@@ -116,6 +122,15 @@ export class Controller extends EventEmitter {
|
|
|
116
122
|
);
|
|
117
123
|
}
|
|
118
124
|
|
|
125
|
+
hasStartedProducing(): boolean {
|
|
126
|
+
// Analysis is producing once we've moved past the Analysis phase
|
|
127
|
+
return (
|
|
128
|
+
this.context.phase === ControllerPhase.AnalysisProducing ||
|
|
129
|
+
this.context.phase === ControllerPhase.Serving ||
|
|
130
|
+
this.context.phase === ControllerPhase.Complete
|
|
131
|
+
);
|
|
132
|
+
}
|
|
133
|
+
|
|
119
134
|
async close(): Promise<void> {
|
|
120
135
|
if (!this.server) return;
|
|
121
136
|
|
|
@@ -28,6 +28,14 @@ export interface SortedEntitiesAndMap {
|
|
|
28
28
|
entityMap: { [key: string]: { [key: string]: EntityWithImportCount } };
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
+
// Timing stats for debugging
|
|
32
|
+
let findOrCreateEntityTime = 0;
|
|
33
|
+
let gatherEntityMapTime = 0;
|
|
34
|
+
let recursiveCallTime = 0;
|
|
35
|
+
let findOrCreateEntityCalls = 0;
|
|
36
|
+
let gatherEntityMapCalls = 0;
|
|
37
|
+
let recursiveCalls = 0;
|
|
38
|
+
|
|
31
39
|
async function findAndGatherEntity({
|
|
32
40
|
project,
|
|
33
41
|
branch,
|
|
@@ -37,6 +45,7 @@ async function findAndGatherEntity({
|
|
|
37
45
|
projectAnalyzer,
|
|
38
46
|
context,
|
|
39
47
|
fileStore,
|
|
48
|
+
depth = 0,
|
|
40
49
|
}: {
|
|
41
50
|
project: Project;
|
|
42
51
|
branch: Branch;
|
|
@@ -46,6 +55,7 @@ async function findAndGatherEntity({
|
|
|
46
55
|
projectAnalyzer: ProjectAnalyzer;
|
|
47
56
|
context: AnalysisContext;
|
|
48
57
|
fileStore?: LazyFileStore;
|
|
58
|
+
depth?: number;
|
|
49
59
|
}) {
|
|
50
60
|
let entityWithImportCount: EntityWithImportCount = context.getEntity(
|
|
51
61
|
file.path,
|
|
@@ -53,6 +63,7 @@ async function findAndGatherEntity({
|
|
|
53
63
|
) as EntityWithImportCount;
|
|
54
64
|
if (entityWithImportCount?.importCount === undefined) {
|
|
55
65
|
try {
|
|
66
|
+
const t0 = performance.now();
|
|
56
67
|
entityWithImportCount = await findOrCreateEntity({
|
|
57
68
|
file,
|
|
58
69
|
branchId: branch?.id,
|
|
@@ -61,6 +72,8 @@ async function findAndGatherEntity({
|
|
|
61
72
|
projectAnalyzer,
|
|
62
73
|
context,
|
|
63
74
|
});
|
|
75
|
+
findOrCreateEntityTime += performance.now() - t0;
|
|
76
|
+
findOrCreateEntityCalls++;
|
|
64
77
|
} catch (e) {
|
|
65
78
|
console.log(
|
|
66
79
|
'CodeYam Warning: Entity not found in create and sort entities',
|
|
@@ -72,12 +85,15 @@ async function findAndGatherEntity({
|
|
|
72
85
|
// Add entity to context
|
|
73
86
|
context.addEntity(entityWithImportCount);
|
|
74
87
|
|
|
88
|
+
const t1 = performance.now();
|
|
75
89
|
await gatherEntityMap({
|
|
76
90
|
entity: entityWithImportCount,
|
|
77
91
|
branchId: branch?.id,
|
|
78
92
|
context,
|
|
79
93
|
projectAnalyzer,
|
|
80
94
|
});
|
|
95
|
+
gatherEntityMapTime += performance.now() - t1;
|
|
96
|
+
gatherEntityMapCalls++;
|
|
81
97
|
|
|
82
98
|
entityWithImportCount.importCount = 0;
|
|
83
99
|
for (const importedEntity of entityWithImportCount.metadata
|
|
@@ -105,6 +121,8 @@ async function findAndGatherEntity({
|
|
|
105
121
|
continue;
|
|
106
122
|
}
|
|
107
123
|
|
|
124
|
+
const t2 = performance.now();
|
|
125
|
+
recursiveCalls++;
|
|
108
126
|
const info = await findAndGatherEntity({
|
|
109
127
|
project,
|
|
110
128
|
branch,
|
|
@@ -114,7 +132,11 @@ async function findAndGatherEntity({
|
|
|
114
132
|
projectAnalyzer,
|
|
115
133
|
context,
|
|
116
134
|
fileStore,
|
|
135
|
+
depth: depth + 1,
|
|
117
136
|
});
|
|
137
|
+
if (depth === 0) {
|
|
138
|
+
recursiveCallTime += performance.now() - t2;
|
|
139
|
+
}
|
|
118
140
|
entityWithImportCount.importCount +=
|
|
119
141
|
info.entityWithImportCount.importCount;
|
|
120
142
|
}
|
|
@@ -147,6 +169,14 @@ export default async function createEntitiesAndSortFiles({
|
|
|
147
169
|
branchCommit, // just for progress updates
|
|
148
170
|
fileStore,
|
|
149
171
|
}: EntitiesAndSortFiles): Promise<SortedEntitiesAndMap> {
|
|
172
|
+
// Reset timing stats
|
|
173
|
+
findOrCreateEntityTime = 0;
|
|
174
|
+
gatherEntityMapTime = 0;
|
|
175
|
+
recursiveCallTime = 0;
|
|
176
|
+
findOrCreateEntityCalls = 0;
|
|
177
|
+
gatherEntityMapCalls = 0;
|
|
178
|
+
recursiveCalls = 0;
|
|
179
|
+
|
|
150
180
|
const sortedEntities: Entity[] = [];
|
|
151
181
|
|
|
152
182
|
// We slightly abuse the AnalysisContext here, initializing and later throwing it away
|
|
@@ -161,6 +191,16 @@ export default async function createEntitiesAndSortFiles({
|
|
|
161
191
|
// Enable baseline mode to skip DB reads during entity creation
|
|
162
192
|
context.setBaselineMode(true);
|
|
163
193
|
let ii = 0;
|
|
194
|
+
let updateCommitMetadataTime = 0;
|
|
195
|
+
let getFileAnalyzerTime = 0;
|
|
196
|
+
let getAllEntityNodesTime = 0;
|
|
197
|
+
const loopStart = performance.now();
|
|
198
|
+
let lastLogTime = loopStart;
|
|
199
|
+
|
|
200
|
+
console.log(
|
|
201
|
+
`CodeYam: createEntitiesAndSortFiles starting, ${filePaths.length} files to process`,
|
|
202
|
+
);
|
|
203
|
+
|
|
164
204
|
for (const currentFilePath of filePaths) {
|
|
165
205
|
if (filePath && currentFilePath !== filePath) {
|
|
166
206
|
ii++;
|
|
@@ -179,16 +219,23 @@ export default async function createEntitiesAndSortFiles({
|
|
|
179
219
|
}
|
|
180
220
|
|
|
181
221
|
if (branchCommit) {
|
|
222
|
+
const t0 = performance.now();
|
|
182
223
|
branchCommit.metadata = await updateCommitMetadata({
|
|
183
224
|
commitId: branchCommit.id,
|
|
184
225
|
runStatusUpdate: {
|
|
185
226
|
filesCompleted: ii + 1,
|
|
186
227
|
},
|
|
187
228
|
});
|
|
229
|
+
updateCommitMetadataTime += performance.now() - t0;
|
|
188
230
|
}
|
|
189
231
|
|
|
232
|
+
const t1 = performance.now();
|
|
190
233
|
const fileAnalyzer = projectAnalyzer.getFileAnalyzer(file);
|
|
234
|
+
getFileAnalyzerTime += performance.now() - t1;
|
|
235
|
+
|
|
236
|
+
const t2 = performance.now();
|
|
191
237
|
const allEntityNodes = fileAnalyzer.getAllEntityNodesOnlyAliases();
|
|
238
|
+
getAllEntityNodesTime += performance.now() - t2;
|
|
192
239
|
|
|
193
240
|
for (const entityName of Object.keys(allEntityNodes)) {
|
|
194
241
|
const { entityWithImportCount: entity } = await findAndGatherEntity({
|
|
@@ -206,8 +253,44 @@ export default async function createEntitiesAndSortFiles({
|
|
|
206
253
|
}
|
|
207
254
|
|
|
208
255
|
ii++;
|
|
256
|
+
|
|
257
|
+
// Log timing stats every 5 seconds
|
|
258
|
+
const now = performance.now();
|
|
259
|
+
if (now - lastLogTime > 5000) {
|
|
260
|
+
lastLogTime = now;
|
|
261
|
+
const elapsed = ((now - loopStart) / 1000).toFixed(1);
|
|
262
|
+
console.log(`CodeYam: createEntitiesAndSortFiles progress`, {
|
|
263
|
+
filesProcessed: ii,
|
|
264
|
+
totalFiles: filePaths.length,
|
|
265
|
+
elapsedSec: elapsed,
|
|
266
|
+
timings: {
|
|
267
|
+
updateCommitMetadata: `${(updateCommitMetadataTime / 1000).toFixed(1)}s`,
|
|
268
|
+
getFileAnalyzer: `${(getFileAnalyzerTime / 1000).toFixed(1)}s`,
|
|
269
|
+
getAllEntityNodes: `${(getAllEntityNodesTime / 1000).toFixed(1)}s`,
|
|
270
|
+
findOrCreateEntity: `${(findOrCreateEntityTime / 1000).toFixed(1)}s (${findOrCreateEntityCalls} calls)`,
|
|
271
|
+
gatherEntityMap: `${(gatherEntityMapTime / 1000).toFixed(1)}s (${gatherEntityMapCalls} calls)`,
|
|
272
|
+
recursiveCalls: `${(recursiveCallTime / 1000).toFixed(1)}s (${recursiveCalls} calls)`,
|
|
273
|
+
},
|
|
274
|
+
});
|
|
275
|
+
}
|
|
209
276
|
}
|
|
210
277
|
|
|
278
|
+
// Final timing log
|
|
279
|
+
const totalElapsed = ((performance.now() - loopStart) / 1000).toFixed(1);
|
|
280
|
+
console.log(`CodeYam: createEntitiesAndSortFiles loop complete`, {
|
|
281
|
+
filesProcessed: ii,
|
|
282
|
+
totalFiles: filePaths.length,
|
|
283
|
+
elapsedSec: totalElapsed,
|
|
284
|
+
timings: {
|
|
285
|
+
updateCommitMetadata: `${(updateCommitMetadataTime / 1000).toFixed(1)}s`,
|
|
286
|
+
getFileAnalyzer: `${(getFileAnalyzerTime / 1000).toFixed(1)}s`,
|
|
287
|
+
getAllEntityNodes: `${(getAllEntityNodesTime / 1000).toFixed(1)}s`,
|
|
288
|
+
findOrCreateEntity: `${(findOrCreateEntityTime / 1000).toFixed(1)}s (${findOrCreateEntityCalls} calls)`,
|
|
289
|
+
gatherEntityMap: `${(gatherEntityMapTime / 1000).toFixed(1)}s (${gatherEntityMapCalls} calls)`,
|
|
290
|
+
recursiveCalls: `${(recursiveCallTime / 1000).toFixed(1)}s (${recursiveCalls} calls)`,
|
|
291
|
+
},
|
|
292
|
+
});
|
|
293
|
+
|
|
211
294
|
await setImportedExports({
|
|
212
295
|
entities: Object.values(sortedEntities).flat(),
|
|
213
296
|
context,
|
|
@@ -33,11 +33,15 @@ export default async function executeLibraryFunctionDirect(
|
|
|
33
33
|
// Generate the execution script
|
|
34
34
|
const script = directExecutionScript(file, entity, analysis, scenario);
|
|
35
35
|
|
|
36
|
+
// Use .ts extension for TypeScript source files so tsx can resolve TS imports
|
|
37
|
+
const isTypeScript = file.path.endsWith('.ts') || file.path.endsWith('.tsx');
|
|
38
|
+
const scriptExtension = isTypeScript ? '.ts' : '.mjs';
|
|
39
|
+
|
|
36
40
|
// Write the script to a temporary file
|
|
37
41
|
const scriptPath = path.join(
|
|
38
42
|
PROJECT_RELATIVE_PATH,
|
|
39
43
|
'.codeyam-execution',
|
|
40
|
-
`${entity.sha}_${scenario.id}
|
|
44
|
+
`${entity.sha}_${scenario.id}${scriptExtension}`,
|
|
41
45
|
);
|
|
42
46
|
|
|
43
47
|
await writeFile(scriptPath, script);
|
|
@@ -54,10 +58,10 @@ export default async function executeLibraryFunctionDirect(
|
|
|
54
58
|
command: 'npx',
|
|
55
59
|
args: ['tsx', scriptPath],
|
|
56
60
|
workingDir: PROJECT_RELATIVE_PATH,
|
|
57
|
-
onData:
|
|
61
|
+
onData: (data) => {
|
|
58
62
|
stdout += data;
|
|
59
63
|
},
|
|
60
|
-
onError:
|
|
64
|
+
onError: (data) => {
|
|
61
65
|
stderr += data;
|
|
62
66
|
},
|
|
63
67
|
processName: 'library-function-execution',
|
|
@@ -7,6 +7,28 @@ import {
|
|
|
7
7
|
import { Analysis, Project } from '~codeyam/types';
|
|
8
8
|
import { LazyFileStore } from './LazyFileStore';
|
|
9
9
|
|
|
10
|
+
const DB_CONCURRENCY = 1;
|
|
11
|
+
|
|
12
|
+
async function mapWithConcurrency<T, R>(
|
|
13
|
+
items: T[],
|
|
14
|
+
fn: (item: T) => Promise<R>,
|
|
15
|
+
concurrency: number,
|
|
16
|
+
): Promise<R[]> {
|
|
17
|
+
const results: R[] = new Array(items.length);
|
|
18
|
+
let index = 0;
|
|
19
|
+
const workers = Array.from(
|
|
20
|
+
{ length: Math.min(concurrency, items.length) },
|
|
21
|
+
async () => {
|
|
22
|
+
while (index < items.length) {
|
|
23
|
+
const i = index++;
|
|
24
|
+
results[i] = await fn(items[i]);
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
);
|
|
28
|
+
await Promise.all(workers);
|
|
29
|
+
return results;
|
|
30
|
+
}
|
|
31
|
+
|
|
10
32
|
interface LoadReadyToBeCapturedArgs {
|
|
11
33
|
project: Project;
|
|
12
34
|
branchCommitSha?: string;
|
|
@@ -77,8 +99,9 @@ async function gatherAllReferencedEntities(
|
|
|
77
99
|
byFilePath.get(filePath)!.push(name);
|
|
78
100
|
}
|
|
79
101
|
|
|
80
|
-
// Batch load entities by file path
|
|
81
|
-
const
|
|
102
|
+
// Batch load entities by file path (concurrency-limited to avoid exhausting DB connections)
|
|
103
|
+
const results = await mapWithConcurrency(
|
|
104
|
+
Array.from(byFilePath.entries()),
|
|
82
105
|
async ([filePath, names]) => {
|
|
83
106
|
const entities = await loadEntities({
|
|
84
107
|
projectId: project.id,
|
|
@@ -106,9 +129,8 @@ async function gatherAllReferencedEntities(
|
|
|
106
129
|
return false;
|
|
107
130
|
});
|
|
108
131
|
},
|
|
132
|
+
DB_CONCURRENCY,
|
|
109
133
|
);
|
|
110
|
-
|
|
111
|
-
const results = await Promise.all(loadPromises);
|
|
112
134
|
const loadedEntities = results.flat();
|
|
113
135
|
|
|
114
136
|
// Add loaded entities to context
|
|
@@ -198,48 +220,50 @@ export default async function loadReadyToBeCaptured({
|
|
|
198
220
|
foundNewDependencies = false;
|
|
199
221
|
const currentBatch = Array.from(stillNeeded);
|
|
200
222
|
|
|
201
|
-
// Load analyses for current batch
|
|
202
|
-
const
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
);
|
|
213
|
-
return null;
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
try {
|
|
217
|
-
const analysis = await loadAnalysis({
|
|
218
|
-
projectId: project.id,
|
|
219
|
-
fileId: file.id,
|
|
220
|
-
entityName,
|
|
221
|
-
includeScenarios: isFirstBatch, // Only include scenarios for the root analyses
|
|
222
|
-
});
|
|
223
|
-
|
|
224
|
-
if (analysis) {
|
|
225
|
-
console.log(`CodeYam: Loaded analysis ${filePath}:${entityName}`);
|
|
226
|
-
return { key: keyString, analysis };
|
|
227
|
-
} else {
|
|
223
|
+
// Load analyses for current batch (concurrency-limited to avoid exhausting DB connections)
|
|
224
|
+
const results = await mapWithConcurrency(
|
|
225
|
+
currentBatch,
|
|
226
|
+
async (keyString) => {
|
|
227
|
+
const [filePath, entityName] = keyString.split(':');
|
|
228
|
+
|
|
229
|
+
// Find the file ID for this file path - use fileStore for O(1) lookup when available
|
|
230
|
+
const file = fileStore
|
|
231
|
+
? fileStore.getByPath(filePath)
|
|
232
|
+
: project.files.find((f) => f.path === filePath);
|
|
233
|
+
if (!file) {
|
|
228
234
|
console.log(
|
|
229
|
-
`CodeYam Warning:
|
|
235
|
+
`CodeYam Warning: File not found in project: ${filePath} for key ${keyString}`,
|
|
230
236
|
);
|
|
231
237
|
return null;
|
|
232
238
|
}
|
|
233
|
-
} catch (error) {
|
|
234
|
-
console.log(
|
|
235
|
-
`CodeYam Error loading analysis ${filePath}:${entityName}:`,
|
|
236
|
-
error,
|
|
237
|
-
);
|
|
238
|
-
return null;
|
|
239
|
-
}
|
|
240
|
-
});
|
|
241
239
|
|
|
242
|
-
|
|
240
|
+
try {
|
|
241
|
+
const analysis = await loadAnalysis({
|
|
242
|
+
projectId: project.id,
|
|
243
|
+
fileId: file.id,
|
|
244
|
+
entityName,
|
|
245
|
+
includeScenarios: isFirstBatch, // Only include scenarios for the root analyses
|
|
246
|
+
});
|
|
247
|
+
|
|
248
|
+
if (analysis) {
|
|
249
|
+
console.log(`CodeYam: Loaded analysis ${filePath}:${entityName}`);
|
|
250
|
+
return { key: keyString, analysis };
|
|
251
|
+
} else {
|
|
252
|
+
console.log(
|
|
253
|
+
`CodeYam Warning: Analysis not found: ${filePath}:${entityName}`,
|
|
254
|
+
);
|
|
255
|
+
return null;
|
|
256
|
+
}
|
|
257
|
+
} catch (error) {
|
|
258
|
+
console.log(
|
|
259
|
+
`CodeYam Error loading analysis ${filePath}:${entityName}:`,
|
|
260
|
+
error,
|
|
261
|
+
);
|
|
262
|
+
return null;
|
|
263
|
+
}
|
|
264
|
+
},
|
|
265
|
+
DB_CONCURRENCY,
|
|
266
|
+
);
|
|
243
267
|
|
|
244
268
|
// Process loaded analyses and find new dependencies
|
|
245
269
|
for (const result of results) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/require-await */
|
|
1
2
|
import {
|
|
2
3
|
Analysis,
|
|
3
4
|
AnalysisMap,
|
|
@@ -47,7 +48,7 @@ const standaloneComponentAnalysis = {
|
|
|
47
48
|
'The counter is initialized at 0, with the ability to increment and decrement the count.',
|
|
48
49
|
metadata: {
|
|
49
50
|
dataMapping: {},
|
|
50
|
-
|
|
51
|
+
coveredFlows: [],
|
|
51
52
|
data: {
|
|
52
53
|
argumentsData: [],
|
|
53
54
|
mockData: {},
|
|
@@ -221,7 +222,7 @@ async function analyzeReturnsSimplePropsFile(): Promise<{
|
|
|
221
222
|
'A user who is under 18 years old and is currently active.',
|
|
222
223
|
metadata: {
|
|
223
224
|
dataMapping: {},
|
|
224
|
-
|
|
225
|
+
coveredFlows: [],
|
|
225
226
|
data: {
|
|
226
227
|
argumentsData: [
|
|
227
228
|
{
|
|
@@ -242,7 +243,7 @@ async function analyzeReturnsSimplePropsFile(): Promise<{
|
|
|
242
243
|
'A user who is between 18 and 39 years old and is currently active.',
|
|
243
244
|
metadata: {
|
|
244
245
|
dataMapping: {},
|
|
245
|
-
|
|
246
|
+
coveredFlows: [],
|
|
246
247
|
data: {
|
|
247
248
|
argumentsData: [
|
|
248
249
|
{
|
|
@@ -263,7 +264,7 @@ async function analyzeReturnsSimplePropsFile(): Promise<{
|
|
|
263
264
|
'A user who is 40 years or older and is currently active.',
|
|
264
265
|
metadata: {
|
|
265
266
|
dataMapping: {},
|
|
266
|
-
|
|
267
|
+
coveredFlows: [],
|
|
267
268
|
data: {
|
|
268
269
|
argumentsData: [
|
|
269
270
|
{
|
|
@@ -284,7 +285,7 @@ async function analyzeReturnsSimplePropsFile(): Promise<{
|
|
|
284
285
|
'A user who is under 18 years old and is currently inactive.',
|
|
285
286
|
metadata: {
|
|
286
287
|
dataMapping: {},
|
|
287
|
-
|
|
288
|
+
coveredFlows: [],
|
|
288
289
|
data: {
|
|
289
290
|
argumentsData: [
|
|
290
291
|
{
|
|
@@ -305,7 +306,7 @@ async function analyzeReturnsSimplePropsFile(): Promise<{
|
|
|
305
306
|
'A user who is between 18 and 39 years old and is currently inactive.',
|
|
306
307
|
metadata: {
|
|
307
308
|
dataMapping: {},
|
|
308
|
-
|
|
309
|
+
coveredFlows: [],
|
|
309
310
|
data: {
|
|
310
311
|
argumentsData: [
|
|
311
312
|
{
|
|
@@ -378,7 +379,7 @@ async function analyzeReturnsImportedComponentsFile(): Promise<{
|
|
|
378
379
|
description: 'Default scenario description',
|
|
379
380
|
metadata: {
|
|
380
381
|
dataMapping: {},
|
|
381
|
-
|
|
382
|
+
coveredFlows: [],
|
|
382
383
|
data: {
|
|
383
384
|
argumentsData: [],
|
|
384
385
|
mockData: {},
|
|
@@ -35,7 +35,10 @@ export default class AwsCaptureTaskRunner implements CaptureTaskRunner {
|
|
|
35
35
|
private sqs: SQSClient;
|
|
36
36
|
private queueInfo: QueueInfo;
|
|
37
37
|
private taskArns: string[];
|
|
38
|
-
private batchCompletedCallback?: (
|
|
38
|
+
private batchCompletedCallback?: (
|
|
39
|
+
analysisIds: string[],
|
|
40
|
+
success: boolean,
|
|
41
|
+
) => void;
|
|
39
42
|
private controlPollingInterval?: NodeJS.Timeout;
|
|
40
43
|
private lastTaskHealthCheck = Date.now();
|
|
41
44
|
private isCleanedUp = false;
|
|
@@ -213,7 +216,9 @@ export default class AwsCaptureTaskRunner implements CaptureTaskRunner {
|
|
|
213
216
|
}
|
|
214
217
|
}
|
|
215
218
|
|
|
216
|
-
onBatchCompleted(
|
|
219
|
+
onBatchCompleted(
|
|
220
|
+
callback: (analysisIds: string[], success: boolean) => void,
|
|
221
|
+
): void {
|
|
217
222
|
this.batchCompletedCallback = callback;
|
|
218
223
|
}
|
|
219
224
|
|
|
@@ -255,9 +260,12 @@ export default class AwsCaptureTaskRunner implements CaptureTaskRunner {
|
|
|
255
260
|
body.analysisIds &&
|
|
256
261
|
Array.isArray(body.analysisIds)
|
|
257
262
|
) {
|
|
258
|
-
// Notify callback
|
|
263
|
+
// Notify callback with success status (default false for backwards compatibility)
|
|
259
264
|
if (this.batchCompletedCallback) {
|
|
260
|
-
this.batchCompletedCallback(
|
|
265
|
+
this.batchCompletedCallback(
|
|
266
|
+
body.analysisIds,
|
|
267
|
+
body.success ?? false,
|
|
268
|
+
);
|
|
261
269
|
}
|
|
262
270
|
}
|
|
263
271
|
|
|
@@ -49,7 +49,10 @@ export interface SequentialCaptureTaskRunnerContext {
|
|
|
49
49
|
|
|
50
50
|
export default class SequentialCaptureTaskRunner implements CaptureTaskRunner {
|
|
51
51
|
private queue: string[][] = [];
|
|
52
|
-
private batchCompletedCallback?: (
|
|
52
|
+
private batchCompletedCallback?: (
|
|
53
|
+
analysisIds: string[],
|
|
54
|
+
success: boolean,
|
|
55
|
+
) => void;
|
|
53
56
|
private isProcessing = false;
|
|
54
57
|
private isCleanedUp = false;
|
|
55
58
|
private processingLoop: Promise<void> | null = null;
|
|
@@ -94,7 +97,13 @@ export default class SequentialCaptureTaskRunner implements CaptureTaskRunner {
|
|
|
94
97
|
|
|
95
98
|
// In CAPTURE_ONLY mode, run directly from the main project folder (skip rsync)
|
|
96
99
|
// This preserves any manual edits made to generated files
|
|
97
|
-
const
|
|
100
|
+
const captureOnlyEnvValue = process.env.CAPTURE_ONLY;
|
|
101
|
+
const captureOnly = captureOnlyEnvValue === 'true';
|
|
102
|
+
|
|
103
|
+
console.log(
|
|
104
|
+
`CodeYam: CAPTURE_ONLY env = ${captureOnlyEnvValue === undefined ? 'undefined' : `"${captureOnlyEnvValue}"`}`,
|
|
105
|
+
);
|
|
106
|
+
|
|
98
107
|
const capturerPath = captureOnly
|
|
99
108
|
? parentDir
|
|
100
109
|
: path.normalize(path.join(parentDir, 'capturer-1'));
|
|
@@ -191,15 +200,15 @@ export default class SequentialCaptureTaskRunner implements CaptureTaskRunner {
|
|
|
191
200
|
try {
|
|
192
201
|
await this.processBatch(batch);
|
|
193
202
|
|
|
194
|
-
// Notify callback of completion
|
|
203
|
+
// Notify callback of successful completion
|
|
195
204
|
if (this.batchCompletedCallback) {
|
|
196
|
-
this.batchCompletedCallback(batch);
|
|
205
|
+
this.batchCompletedCallback(batch, true);
|
|
197
206
|
}
|
|
198
207
|
} catch (error) {
|
|
199
208
|
console.error('CodeYam: Error processing batch:', error);
|
|
200
|
-
//
|
|
209
|
+
// Notify callback of failure so orchestration can track retries
|
|
201
210
|
if (this.batchCompletedCallback) {
|
|
202
|
-
this.batchCompletedCallback(batch);
|
|
211
|
+
this.batchCompletedCallback(batch, false);
|
|
203
212
|
}
|
|
204
213
|
} finally {
|
|
205
214
|
this.isProcessing = false;
|
|
@@ -393,7 +402,9 @@ export default class SequentialCaptureTaskRunner implements CaptureTaskRunner {
|
|
|
393
402
|
console.log('CodeYam: Sequential task runner cleanup complete');
|
|
394
403
|
}
|
|
395
404
|
|
|
396
|
-
onBatchCompleted(
|
|
405
|
+
onBatchCompleted(
|
|
406
|
+
callback: (analysisIds: string[], success: boolean) => void,
|
|
407
|
+
): void {
|
|
397
408
|
this.batchCompletedCallback = callback;
|
|
398
409
|
}
|
|
399
410
|
}
|
|
@@ -115,7 +115,9 @@ export interface CaptureTaskRunner {
|
|
|
115
115
|
* Register callback for when workers complete batch processing.
|
|
116
116
|
*
|
|
117
117
|
* Critical for retry logic and progress tracking in orchestration.
|
|
118
|
-
* Callback receives the analysis IDs
|
|
118
|
+
* Callback receives the analysis IDs and whether the batch succeeded.
|
|
119
119
|
*/
|
|
120
|
-
onBatchCompleted(
|
|
120
|
+
onBatchCompleted(
|
|
121
|
+
callback: (analysisIds: string[], success: boolean) => void,
|
|
122
|
+
): void;
|
|
121
123
|
}
|
|
@@ -99,15 +99,20 @@ export default async function orchestrateCapture({
|
|
|
99
99
|
const attemptCount = new Map<string, number>();
|
|
100
100
|
const maxAttempts = 2;
|
|
101
101
|
|
|
102
|
+
// Track which analyses had a worker report success — only these can be "captured"
|
|
103
|
+
const confirmedSuccessAnalyses = new Set<string>();
|
|
104
|
+
|
|
102
105
|
// Register batch completion callback with task runner
|
|
103
|
-
taskRunner.onBatchCompleted((analysisIds: string[]) => {
|
|
106
|
+
taskRunner.onBatchCompleted((analysisIds: string[], success: boolean) => {
|
|
104
107
|
console.log(
|
|
105
|
-
`CodeYam Capture: Received batch completion for ${analysisIds.length} analyses: ${analysisIds.join(', ')}`,
|
|
108
|
+
`CodeYam Capture: Received batch completion (success=${success}) for ${analysisIds.length} analyses: ${analysisIds.join(', ')}`,
|
|
106
109
|
);
|
|
107
|
-
// Remove from inFlight and increment attempt count for each analysis
|
|
108
110
|
for (const analysisId of analysisIds) {
|
|
109
111
|
inFlight.delete(analysisId);
|
|
110
112
|
attemptCount.set(analysisId, (attemptCount.get(analysisId) || 0) + 1);
|
|
113
|
+
if (success) {
|
|
114
|
+
confirmedSuccessAnalyses.add(analysisId);
|
|
115
|
+
}
|
|
111
116
|
}
|
|
112
117
|
});
|
|
113
118
|
|
|
@@ -195,9 +200,13 @@ export default async function orchestrateCapture({
|
|
|
195
200
|
knownAnalyses.add(id);
|
|
196
201
|
}
|
|
197
202
|
|
|
198
|
-
//
|
|
203
|
+
// An analysis is "captured" only if:
|
|
204
|
+
// 1. A worker reported success for its batch (in confirmedSuccessAnalyses)
|
|
205
|
+
// 2. It no longer appears in the ready-to-be-captured list (DB confirms)
|
|
206
|
+
// This prevents transient empty DB results from inflating the captured count.
|
|
199
207
|
const capturedAnalysisIds = Array.from(knownAnalyses).filter(
|
|
200
|
-
(id) =>
|
|
208
|
+
(id) =>
|
|
209
|
+
confirmedSuccessAnalyses.has(id) && !allReadyAnalysisIds.includes(id),
|
|
201
210
|
);
|
|
202
211
|
|
|
203
212
|
// Remove captured analyses from inFlight tracking
|
|
@@ -355,6 +364,32 @@ export default async function orchestrateCapture({
|
|
|
355
364
|
}
|
|
356
365
|
}
|
|
357
366
|
|
|
367
|
+
// Early exit when all enqueued work is settled (captured or abandoned)
|
|
368
|
+
// This avoids waiting for the 20-minute ANALYSIS_TIMEOUT when capture is complete
|
|
369
|
+
// IMPORTANT: Only check this when isDraining (analysis phase complete) to avoid
|
|
370
|
+
// exiting while slow-running analyses are still in progress
|
|
371
|
+
if (
|
|
372
|
+
isDraining &&
|
|
373
|
+
!firstLoop &&
|
|
374
|
+
enqueuedAnalyses.size > 0 &&
|
|
375
|
+
inFlight.size === 0 &&
|
|
376
|
+
remaining.length === 0 &&
|
|
377
|
+
toRetry.length === 0
|
|
378
|
+
) {
|
|
379
|
+
const allAnalysesSettled = Array.from(enqueuedAnalyses).every((id) => {
|
|
380
|
+
const captured = !allReadyAnalysisIds.includes(id);
|
|
381
|
+
const abandoned = (attemptCount.get(id) || 0) >= maxAttempts;
|
|
382
|
+
return captured || abandoned;
|
|
383
|
+
});
|
|
384
|
+
|
|
385
|
+
if (allAnalysesSettled) {
|
|
386
|
+
console.log(
|
|
387
|
+
'CodeYam Capture: All enqueued analyses settled (captured or abandoned), exiting early',
|
|
388
|
+
);
|
|
389
|
+
break;
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
|
|
358
393
|
if (isDraining) {
|
|
359
394
|
// Exit if analysis complete but no entities ready for capture
|
|
360
395
|
// Only check this after at least one poll (not firstLoop) to ensure we've
|
|
@@ -371,7 +406,9 @@ export default async function orchestrateCapture({
|
|
|
371
406
|
// check if all enqueued analyses have been either captured or abandoned
|
|
372
407
|
const allAnalysesSettled = Array.from(enqueuedAnalyses).every(
|
|
373
408
|
(id) => {
|
|
374
|
-
const captured =
|
|
409
|
+
const captured =
|
|
410
|
+
confirmedSuccessAnalyses.has(id) &&
|
|
411
|
+
!allReadyAnalysisIds.includes(id);
|
|
375
412
|
const abandoned = (attemptCount.get(id) || 0) >= maxAttempts;
|
|
376
413
|
return captured || abandoned;
|
|
377
414
|
},
|
|
@@ -411,5 +448,33 @@ export default async function orchestrateCapture({
|
|
|
411
448
|
} finally {
|
|
412
449
|
// Always clean up task runner resources in finally block
|
|
413
450
|
await taskRunner.cleanup();
|
|
451
|
+
|
|
452
|
+
const trackingCommit = metadataCommit ?? commit;
|
|
453
|
+
if (trackingCommit?.id) {
|
|
454
|
+
const captureCompletedAt = new Date().toISOString();
|
|
455
|
+
|
|
456
|
+
await updateCommitMetadata({
|
|
457
|
+
commitId: trackingCommit.id,
|
|
458
|
+
runStatusUpdate: {
|
|
459
|
+
captureCompletedAt,
|
|
460
|
+
capturePid: undefined,
|
|
461
|
+
},
|
|
462
|
+
// completedAt = max(analysisCompletedAt, captureCompletedAt)
|
|
463
|
+
// Normally capture finishes after analysis, but using max means illogical
|
|
464
|
+
// orderings leave a detectable signal (completedAt !== captureCompletedAt).
|
|
465
|
+
updateCallback(metadata) {
|
|
466
|
+
const run = metadata.currentRun!;
|
|
467
|
+
run.completedAt =
|
|
468
|
+
run.analysisCompletedAt &&
|
|
469
|
+
run.analysisCompletedAt > captureCompletedAt
|
|
470
|
+
? run.analysisCompletedAt
|
|
471
|
+
: captureCompletedAt;
|
|
472
|
+
},
|
|
473
|
+
}).catch((error) => {
|
|
474
|
+
console.log(
|
|
475
|
+
`Warning: Failed to update capture completion metadata: ${error}`,
|
|
476
|
+
);
|
|
477
|
+
});
|
|
478
|
+
}
|
|
414
479
|
}
|
|
415
480
|
}
|