@codeyam/codeyam-cli 0.1.0-bleeding-edge.8afd3ee
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 +10 -0
- package/analyzer-template/common/checkPID.ts +9 -0
- package/analyzer-template/common/closePort.ts +19 -0
- package/analyzer-template/common/constants.ts +2 -0
- package/analyzer-template/common/copy.ts +20 -0
- package/analyzer-template/common/deleteFolder.ts +8 -0
- package/analyzer-template/common/execAsync.ts +191 -0
- package/analyzer-template/common/getPID.ts +41 -0
- package/analyzer-template/common/measureAndRepordExecutionTime.ts +16 -0
- package/analyzer-template/common/measureExecutionTime.ts +16 -0
- package/analyzer-template/common/openPage.ts +20 -0
- package/analyzer-template/common/readFile.ts +20 -0
- package/analyzer-template/common/removeQueryParamsFromFileNames.ts +34 -0
- package/analyzer-template/common/replacePaths.ts +88 -0
- package/analyzer-template/common/writeFile.ts +28 -0
- package/analyzer-template/log.txt +7 -0
- package/analyzer-template/package.json +69 -0
- package/analyzer-template/packages/ai/client.ts +23 -0
- package/analyzer-template/packages/ai/index.ts +98 -0
- package/analyzer-template/packages/ai/package.json +22 -0
- package/analyzer-template/packages/ai/src/lib/__mocks__/completionCall.ts +118 -0
- package/analyzer-template/packages/ai/src/lib/aiConfig.ts +30 -0
- package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +538 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +887 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/methodSemantics.ts +531 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/nodeToSource.ts +59 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/paths.ts +675 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/blockHandler.ts +28 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/breakStatementHandler.ts +21 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/doStatementHandler.ts +27 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.ts +68 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/forOfStatementHandler.ts +112 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/forStatementHandler.ts +64 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/functionDeclarationHandler.ts +212 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.ts +47 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/patternHandler.ts +32 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/returnStatementHandler.ts +63 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/standaloneExpressionHandler.ts +58 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.ts +96 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/throwStatementHandler.ts +20 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/tryStatementHandler.ts +67 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/typeAndInterfaceHandler.ts +23 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.ts +91 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/whileStatementHandler.ts +29 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/processBindings.ts +255 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +2075 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/sharedPatterns.ts +127 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +320 -0
- package/analyzer-template/packages/ai/src/lib/astScopes.ts +22 -0
- package/analyzer-template/packages/ai/src/lib/checkAllAttributes.ts +27 -0
- package/analyzer-template/packages/ai/src/lib/cleanOutBoundary.ts +33 -0
- package/analyzer-template/packages/ai/src/lib/cleanStructure.ts +201 -0
- package/analyzer-template/packages/ai/src/lib/codeQualityEntityAnalysis.ts +26 -0
- package/analyzer-template/packages/ai/src/lib/commitMessage.ts +16 -0
- package/analyzer-template/packages/ai/src/lib/completionCall.ts +501 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +2736 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/EquivalencyManager.ts +45 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/EquivalencyManagerTemplate.ts +18 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/FunctionCallManager.ts +409 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/ParentScopeManager.ts +144 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +576 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +1173 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +162 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +984 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanPath.ts +25 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanPathOfNonTransformingFunctions.ts +58 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanScopeNodeName.ts +3 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +266 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.ts +143 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/determineIsFunctionCall.ts +16 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/ensureSchemaConsistency.ts +83 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +698 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/getFunctionCallRoot.ts +11 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/getFunctionCallScopeNodeName.ts +15 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/getFunctionCallSignature.ts +17 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/isGenericArray.ts +83 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/knownMethodCalls.ts +138 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/typeUtils.ts +161 -0
- package/analyzer-template/packages/ai/src/lib/describeCodeChange.ts +56 -0
- package/analyzer-template/packages/ai/src/lib/extractOverlappingMocks.ts +63 -0
- package/analyzer-template/packages/ai/src/lib/findMatchingAttribute.ts +102 -0
- package/analyzer-template/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts +149 -0
- package/analyzer-template/packages/ai/src/lib/generateBranchSummary.ts +55 -0
- package/analyzer-template/packages/ai/src/lib/generateChangesEntityDocumentation.ts +64 -0
- package/analyzer-template/packages/ai/src/lib/generateChangesEntityKeyAttributes.ts +235 -0
- package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarioData.ts +522 -0
- package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarios.ts +593 -0
- package/analyzer-template/packages/ai/src/lib/generateEntityDataMap.ts +375 -0
- package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +90 -0
- package/analyzer-template/packages/ai/src/lib/generateEntityDocumentation.ts +70 -0
- package/analyzer-template/packages/ai/src/lib/generateEntityKeyAttributes.ts +227 -0
- package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +465 -0
- package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +510 -0
- package/analyzer-template/packages/ai/src/lib/generateStatementAnalysis.ts +1812 -0
- package/analyzer-template/packages/ai/src/lib/getCodeExplanation.ts +52 -0
- package/analyzer-template/packages/ai/src/lib/getConditionalUsagesFromCode.ts +309 -0
- package/analyzer-template/packages/ai/src/lib/getLLMCallCost.ts +26 -0
- package/analyzer-template/packages/ai/src/lib/getLLMCallStats.ts +54 -0
- package/analyzer-template/packages/ai/src/lib/guessScenarioDataFromDescription.ts +119 -0
- package/analyzer-template/packages/ai/src/lib/guessScenarioDataFromName.ts +87 -0
- package/analyzer-template/packages/ai/src/lib/identifyReserved.ts +734 -0
- package/analyzer-template/packages/ai/src/lib/index.ts +26 -0
- package/analyzer-template/packages/ai/src/lib/instantiatedInScope.ts +212 -0
- package/analyzer-template/packages/ai/src/lib/isFrontend.ts +4 -0
- package/analyzer-template/packages/ai/src/lib/isolateScopes.ts +898 -0
- package/analyzer-template/packages/ai/src/lib/isolateStatements.ts +1072 -0
- package/analyzer-template/packages/ai/src/lib/jsonTypeDefinitionToStandardTypeDefinition.ts +48 -0
- package/analyzer-template/packages/ai/src/lib/logOrderedMap.ts +49 -0
- package/analyzer-template/packages/ai/src/lib/mergeJsonTypeDefinitions.ts +53 -0
- package/analyzer-template/packages/ai/src/lib/mergeStatements.ts +161 -0
- package/analyzer-template/packages/ai/src/lib/modelInfo.ts +234 -0
- package/analyzer-template/packages/ai/src/lib/openai/index.ts +100 -0
- package/analyzer-template/packages/ai/src/lib/parsers/fileContentToLines.ts +12 -0
- package/analyzer-template/packages/ai/src/lib/parsers/parseJsonSafe.ts +45 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/branchSummaryGenerator.ts +13 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/codeQualityEntityAnalysisGenerator.ts +53 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/commitMessageGenerator.ts +37 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +181 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityDocumentationGenerator.ts +47 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.ts +128 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.ts +179 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityDataMapGenerator.ts +20 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityDataStructureGenerator.ts +18 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityDocumentationGenerator.ts +35 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.ts +67 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityPropsStructureGenerator.ts +24 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +60 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.ts +63 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/getComponentExamplesGenerator.ts +20 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/guessEditScenarioDataFromDescriptionGenerator.ts +56 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.ts +24 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/guessScenarioDataFromNameGenerator.ts +41 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/index.ts +10 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/noErrorAttributes.ts +19 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/summarizeDiffGenerator.ts +10 -0
- package/analyzer-template/packages/ai/src/lib/providers.ts +47 -0
- package/analyzer-template/packages/ai/src/lib/services/aiServiceMode.ts +166 -0
- package/analyzer-template/packages/ai/src/lib/services/claudeCliAIService.ts +283 -0
- package/analyzer-template/packages/ai/src/lib/splitOutsideParentheses.ts +333 -0
- package/analyzer-template/packages/ai/src/lib/summarizeDiff.ts +25 -0
- package/analyzer-template/packages/ai/src/lib/types/index.ts +94 -0
- package/analyzer-template/packages/ai/src/lib/validateDataStructure.ts +434 -0
- package/analyzer-template/packages/ai/src/lib/validateJson.ts +65 -0
- package/analyzer-template/packages/ai/src/lib/validatePlaywrightInstructions.ts +225 -0
- package/analyzer-template/packages/ai/src/lib/validateTypeStructure.ts +93 -0
- package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +184 -0
- package/analyzer-template/packages/ai/src/lib/worker/__mocks__/analyzeScopeWorkerPaths.ts +5 -0
- package/analyzer-template/packages/ai/src/lib/worker/analyzeScopeWorker.ts +99 -0
- package/analyzer-template/packages/ai/src/lib/worker/analyzeScopeWorkerPaths.ts +26 -0
- package/analyzer-template/packages/ai/src/lib/worker/fuzzyMatchFunctionName.ts +77 -0
- package/analyzer-template/packages/ai/src/lib/wrapperDetection/detectWrapperRequirements.ts +134 -0
- package/analyzer-template/packages/ai/src/lib/wrapperDetection/index.ts +9 -0
- package/analyzer-template/packages/ai/src/lib/wrapperDetection/knownLibraryHooks.ts +95 -0
- package/analyzer-template/packages/ai/src/lib/wrapperDetection/patterns/detectThrowOnMissingPatterns.ts +189 -0
- package/analyzer-template/packages/ai/src/lib/wrapperDetection/patterns/detectUseContextCalls.ts +127 -0
- package/analyzer-template/packages/ai/tsconfig.json +10 -0
- package/analyzer-template/packages/analyze/README.md +131 -0
- package/analyzer-template/packages/analyze/TODOS.md +46 -0
- package/analyzer-template/packages/analyze/index.ts +111 -0
- package/analyzer-template/packages/analyze/package.json +13 -0
- package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +959 -0
- package/analyzer-template/packages/analyze/src/lib/ProjectAnalyzer.ts +324 -0
- package/analyzer-template/packages/analyze/src/lib/analysisContext.ts +308 -0
- package/analyzer-template/packages/analyze/src/lib/asts/index.ts +241 -0
- package/analyzer-template/packages/analyze/src/lib/asts/nodes/getCallExpressionNames.ts +37 -0
- package/analyzer-template/packages/analyze/src/lib/asts/nodes/getFunctionNodeType.ts +25 -0
- package/analyzer-template/packages/analyze/src/lib/asts/nodes/getNodeType.ts +130 -0
- package/analyzer-template/packages/analyze/src/lib/asts/nodes/getReactComponentType.ts +39 -0
- package/analyzer-template/packages/analyze/src/lib/asts/nodes/index.ts +182 -0
- package/analyzer-template/packages/analyze/src/lib/asts/nodes/isDefaultExport.ts +76 -0
- package/analyzer-template/packages/analyze/src/lib/asts/nodes/propsNodeToPropsData.ts +540 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.ts +238 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllEntities.ts +6 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.ts +236 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllExportedNodes.ts +131 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllExports.ts +214 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getComponentProps.ts +33 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getComponentType.ts +41 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getDeclaredEntityNode.ts +25 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getDefaultExportedFunctionNode.ts +53 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getEntityNode.ts +26 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getImportMappings.ts +40 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.ts +127 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getPropsFromFunctionalComponent.ts +96 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getPseudoFile.ts +40 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getResolvedImportedTypes.ts +84 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.ts +118 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getSourceFile.ts +13 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.ts +25 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForImports.ts +21 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/index.ts +56 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/extractClassMethods.ts +139 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +414 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/strategies/asyncComplex.ts +165 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/strategies/asyncSimple.ts +30 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/strategies/index.ts +23 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/strategies/sequential.ts +16 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/strategies/types.ts +20 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +537 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/dependencyResolver.ts +120 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +264 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/findPreviousAnalysis.ts +31 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/findValidExistingAnalysis.ts +25 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/gatherEntityMap.ts +131 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/generateAnalysisTreeSha.ts +160 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/generateAnalyzedTreeSha.ts +10 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/guessDefaultWidth.ts +18 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/setActiveAnalysisBranches.ts +127 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.ts +130 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.ts +137 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyzeChange.ts +201 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyzeCodeChange.ts +70 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyzeEntity.ts +534 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyzeFrameworkRoute.ts +19 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyzeInitial.ts +177 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyzeNextRoute.ts +112 -0
- package/analyzer-template/packages/analyze/src/lib/files/analyzeRemixRoute.ts +153 -0
- package/analyzer-template/packages/analyze/src/lib/files/enums/steps.ts +16 -0
- package/analyzer-template/packages/analyze/src/lib/files/extractDiffLines.ts +21 -0
- package/analyzer-template/packages/analyze/src/lib/files/fileAnalyzerFromCode.ts +57 -0
- package/analyzer-template/packages/analyze/src/lib/files/findScenarioData.ts +43 -0
- package/analyzer-template/packages/analyze/src/lib/files/getEntityCode.ts +26 -0
- package/analyzer-template/packages/analyze/src/lib/files/getEntityType.ts +29 -0
- package/analyzer-template/packages/analyze/src/lib/files/getImportedExports.ts +147 -0
- package/analyzer-template/packages/analyze/src/lib/files/getNodeModuleImports.ts +37 -0
- package/analyzer-template/packages/analyze/src/lib/files/newAnalysis.ts +43 -0
- package/analyzer-template/packages/analyze/src/lib/files/recordStep.ts +35 -0
- package/analyzer-template/packages/analyze/src/lib/files/relevantDiffPart.ts +74 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/detectChangedDataStructureFields.ts +102 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/findImportedEntity.ts +36 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/findRelevantExportInfo.ts +52 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +198 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.ts +176 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.ts +266 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +238 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.ts +101 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarioData.ts +230 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarios.ts +130 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/isolateDataStructure.ts +71 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +855 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.ts +189 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/reproduceImports.ts +60 -0
- package/analyzer-template/packages/analyze/src/lib/files/setImportedExports.ts +312 -0
- package/analyzer-template/packages/analyze/src/lib/index.ts +6 -0
- package/analyzer-template/packages/analyze/src/lib/projects/index.ts +48 -0
- package/analyzer-template/packages/analyze/src/lib/types/index.ts +17 -0
- package/analyzer-template/packages/analyze/src/lib/utils/deepEqual.ts +30 -0
- package/analyzer-template/packages/analyze/src/lib/utils/getAnalysisError.ts +13 -0
- package/analyzer-template/packages/analyze/src/lib/utils/measureAndReportExecutionTime.ts +22 -0
- package/analyzer-template/packages/analyze/src/lib/utils/measureExecutionTime.ts +16 -0
- package/analyzer-template/packages/analyze/tsconfig.json +10 -0
- package/analyzer-template/packages/aws/cloudwatch/index.ts +6 -0
- package/analyzer-template/packages/aws/codebuild/index.ts +6 -0
- package/analyzer-template/packages/aws/dist/src/lib/cloudwatch/getTaskLogs.d.ts +10 -0
- package/analyzer-template/packages/aws/dist/src/lib/cloudwatch/getTaskLogs.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/cloudwatch/getTaskLogs.js +31 -0
- package/analyzer-template/packages/aws/dist/src/lib/cloudwatch/getTaskLogs.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/checkForCodeBuild.d.ts +2 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/checkForCodeBuild.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/checkForCodeBuild.js +32 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/checkForCodeBuild.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/checkForCodeBuildProject.d.ts +2 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/checkForCodeBuildProject.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/checkForCodeBuildProject.js +28 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/checkForCodeBuildProject.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/createCodeBuildProject.d.ts +2 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/createCodeBuildProject.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/createCodeBuildProject.js +40 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/createCodeBuildProject.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/triggerCodeBuild.d.ts +14 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/triggerCodeBuild.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/triggerCodeBuild.js +29 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/triggerCodeBuild.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts +2 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js +50 -0
- package/analyzer-template/packages/aws/dist/src/lib/codebuild/waitForBuild.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/loadLlmCall.d.ts +3 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/loadLlmCall.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/loadLlmCall.js +26 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/loadLlmCall.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/loadLlmCalls.d.ts +3 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/loadLlmCalls.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/loadLlmCalls.js +35 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/loadLlmCalls.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/provisionTable.d.ts +2 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/provisionTable.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/provisionTable.js +66 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/provisionTable.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/saveLlmCall.d.ts +25 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/saveLlmCall.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/saveLlmCall.js +67 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/saveLlmCall.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/tableNames.d.ts +2 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/tableNames.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/tableNames.js +6 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/tableNames.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/types.d.ts +25 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/types.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/types.js +2 -0
- package/analyzer-template/packages/aws/dist/src/lib/dynamodb/types.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecr/checkForECRImage.d.ts +9 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecr/checkForECRImage.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecr/checkForECRImage.js +36 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecr/checkForECRImage.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecr/createECRRepository.d.ts +2 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecr/createECRRepository.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecr/createECRRepository.js +49 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecr/createECRRepository.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsCheckTaskStatus.d.ts +2 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsCheckTaskStatus.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsCheckTaskStatus.js +36 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsCheckTaskStatus.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsCreateTaskDefinition.d.ts +11 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsCreateTaskDefinition.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsCreateTaskDefinition.js +138 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsCreateTaskDefinition.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts +11 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js +30 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsDefineContainer.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsStartTask.d.ts +3 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsStartTask.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsStartTask.js +51 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsStartTask.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts +34 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js +87 -0
- package/analyzer-template/packages/aws/dist/src/lib/ecs/ecsTaskFactory.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.d.ts +9 -0
- package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js +24 -0
- package/analyzer-template/packages/aws/dist/src/lib/s3/uploadFileToS3.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/sqs/getSqsQueueSizeStats.d.ts +7 -0
- package/analyzer-template/packages/aws/dist/src/lib/sqs/getSqsQueueSizeStats.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/sqs/getSqsQueueSizeStats.js +15 -0
- package/analyzer-template/packages/aws/dist/src/lib/sqs/getSqsQueueSizeStats.js.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/sqs/sendSqsMessage.d.ts +5 -0
- package/analyzer-template/packages/aws/dist/src/lib/sqs/sendSqsMessage.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/sqs/sendSqsMessage.js +9 -0
- package/analyzer-template/packages/aws/dist/src/lib/sqs/sendSqsMessage.js.map +1 -0
- package/analyzer-template/packages/aws/dist/types.d.ts +8 -0
- package/analyzer-template/packages/aws/dist/types.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/types.js +2 -0
- package/analyzer-template/packages/aws/dist/types.js.map +1 -0
- package/analyzer-template/packages/aws/dynamodb/index.ts +10 -0
- package/analyzer-template/packages/aws/ecr/index.ts +4 -0
- package/analyzer-template/packages/aws/ecs/index.ts +6 -0
- package/analyzer-template/packages/aws/package.json +24 -0
- package/analyzer-template/packages/aws/s3/index.ts +2 -0
- package/analyzer-template/packages/aws/sqs/index.ts +3 -0
- package/analyzer-template/packages/aws/src/lib/cloudwatch/getTaskLogs.ts +50 -0
- package/analyzer-template/packages/aws/src/lib/codebuild/checkForCodeBuild.ts +43 -0
- package/analyzer-template/packages/aws/src/lib/codebuild/checkForCodeBuildProject.ts +30 -0
- package/analyzer-template/packages/aws/src/lib/codebuild/createCodeBuildProject.ts +51 -0
- package/analyzer-template/packages/aws/src/lib/codebuild/triggerCodeBuild.ts +52 -0
- package/analyzer-template/packages/aws/src/lib/codebuild/waitForBuild.ts +63 -0
- package/analyzer-template/packages/aws/src/lib/dynamodb/loadLlmCall.ts +31 -0
- package/analyzer-template/packages/aws/src/lib/dynamodb/loadLlmCalls.ts +44 -0
- package/analyzer-template/packages/aws/src/lib/dynamodb/provisionTable.ts +81 -0
- package/analyzer-template/packages/aws/src/lib/dynamodb/saveLlmCall.ts +118 -0
- package/analyzer-template/packages/aws/src/lib/dynamodb/tableNames.ts +5 -0
- package/analyzer-template/packages/aws/src/lib/dynamodb/types.ts +26 -0
- package/analyzer-template/packages/aws/src/lib/ecr/checkForECRImage.ts +55 -0
- package/analyzer-template/packages/aws/src/lib/ecr/createECRRepository.ts +63 -0
- package/analyzer-template/packages/aws/src/lib/ecs/ecsCheckTaskStatus.ts +43 -0
- package/analyzer-template/packages/aws/src/lib/ecs/ecsCreateTaskDefinition.ts +225 -0
- package/analyzer-template/packages/aws/src/lib/ecs/ecsDefineContainer.ts +43 -0
- package/analyzer-template/packages/aws/src/lib/ecs/ecsStartTask.ts +72 -0
- package/analyzer-template/packages/aws/src/lib/ecs/ecsTaskFactory.ts +109 -0
- package/analyzer-template/packages/aws/src/lib/s3/uploadFileToS3.ts +36 -0
- package/analyzer-template/packages/aws/src/lib/sqs/getSqsQueueSizeStats.ts +28 -0
- package/analyzer-template/packages/aws/src/lib/sqs/sendSqsMessage.ts +17 -0
- package/analyzer-template/packages/aws/tsconfig.json +11 -0
- package/analyzer-template/packages/aws/types.ts +11 -0
- package/analyzer-template/packages/generate/index.ts +12 -0
- package/analyzer-template/packages/generate/jest.config.ts +11 -0
- package/analyzer-template/packages/generate/package.json +13 -0
- package/analyzer-template/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.ts +134 -0
- package/analyzer-template/packages/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.ts +112 -0
- package/analyzer-template/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.ts +81 -0
- package/analyzer-template/packages/generate/src/lib/componentScenarioPage/getImageReplacementCode.ts +134 -0
- package/analyzer-template/packages/generate/src/lib/componentScenarioPage/getNextJsErrorClosingCode.ts +66 -0
- package/analyzer-template/packages/generate/src/lib/constants.ts +3 -0
- package/analyzer-template/packages/generate/src/lib/deepMerge.ts +42 -0
- package/analyzer-template/packages/generate/src/lib/directExecutionScript.ts +170 -0
- package/analyzer-template/packages/generate/src/lib/escapeQuotes.ts +3 -0
- package/analyzer-template/packages/generate/src/lib/getComponentImportStatement.ts +60 -0
- package/analyzer-template/packages/generate/src/lib/getComponentImportStatements.ts +38 -0
- package/analyzer-template/packages/generate/src/lib/getComponentScenarioPath.ts +35 -0
- package/analyzer-template/packages/generate/src/lib/getRelativePath.ts +42 -0
- package/analyzer-template/packages/generate/src/lib/handleCmdk.ts +61 -0
- package/analyzer-template/packages/generate/src/lib/handleRadix.ts +362 -0
- package/analyzer-template/packages/generate/src/lib/handleWrappers.ts +30 -0
- package/analyzer-template/packages/generate/src/lib/libDemoComponent.ts +186 -0
- package/analyzer-template/packages/generate/src/lib/mergeRootRemix.ts +410 -0
- package/analyzer-template/packages/generate/src/lib/requiredNodeModuleImports.ts +55 -0
- package/analyzer-template/packages/generate/src/lib/safeFolder.ts +9 -0
- package/analyzer-template/packages/generate/src/lib/scenarioComponent.ts +119 -0
- package/analyzer-template/packages/generate/src/lib/simpleRootRemix.ts +74 -0
- package/analyzer-template/packages/generate/tsconfig.json +10 -0
- package/analyzer-template/packages/github/__mocks__/@octokit/auth-app.ts +4 -0
- package/analyzer-template/packages/github/__mocks__/@octokit/rest.ts +77 -0
- package/analyzer-template/packages/github/dist/generate/index.d.ts +13 -0
- package/analyzer-template/packages/github/dist/generate/index.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/index.js +13 -0
- package/analyzer-template/packages/github/dist/generate/index.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.d.ts +11 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +114 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.d.ts +3 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.js +101 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.d.ts +4 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +78 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getImageReplacementCode.d.ts +7 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getImageReplacementCode.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getImageReplacementCode.js +134 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getImageReplacementCode.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getNextJsErrorClosingCode.d.ts +2 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getNextJsErrorClosingCode.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getNextJsErrorClosingCode.js +67 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getNextJsErrorClosingCode.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/constants.d.ts +2 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/constants.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/constants.js +3 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/constants.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.d.ts +2 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.js +44 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/directExecutionScript.d.ts +14 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/directExecutionScript.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/directExecutionScript.js +156 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/directExecutionScript.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/escapeQuotes.d.ts +2 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/escapeQuotes.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/escapeQuotes.js +4 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/escapeQuotes.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/getComponentImportStatement.d.ts +13 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/getComponentImportStatement.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/getComponentImportStatement.js +23 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/getComponentImportStatement.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/getComponentImportStatements.d.ts +10 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/getComponentImportStatements.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/getComponentImportStatements.js +24 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/getComponentImportStatements.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/getComponentScenarioPath.d.ts +4 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/getComponentScenarioPath.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/getComponentScenarioPath.js +21 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/getComponentScenarioPath.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/getRelativePath.d.ts +2 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/getRelativePath.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/getRelativePath.js +32 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/getRelativePath.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/handleCmdk.d.ts +8 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/handleCmdk.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/handleCmdk.js +50 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/handleCmdk.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/handleRadix.d.ts +18 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/handleRadix.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/handleRadix.js +224 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/handleRadix.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/handleWrappers.d.ts +3 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/handleWrappers.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/handleWrappers.js +24 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/handleWrappers.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/libDemoComponent.d.ts +3 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/libDemoComponent.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/libDemoComponent.js +160 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/libDemoComponent.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/mergeRootRemix.d.ts +9 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/mergeRootRemix.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/mergeRootRemix.js +323 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/mergeRootRemix.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/requiredNodeModuleImports.d.ts +11 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/requiredNodeModuleImports.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/requiredNodeModuleImports.js +45 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/requiredNodeModuleImports.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/safeFolder.d.ts +2 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/safeFolder.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/safeFolder.js +11 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/safeFolder.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponent.d.ts +6 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponent.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponent.js +92 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/scenarioComponent.js.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/simpleRootRemix.d.ts +3 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/simpleRootRemix.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/simpleRootRemix.js +73 -0
- package/analyzer-template/packages/github/dist/generate/src/lib/simpleRootRemix.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/index.d.ts +23 -0
- package/analyzer-template/packages/github/dist/github/index.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/index.js +23 -0
- package/analyzer-template/packages/github/dist/github/index.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/__mocks__/createProjectOctokit.d.ts +3 -0
- package/analyzer-template/packages/github/dist/github/src/lib/__mocks__/createProjectOctokit.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/__mocks__/createProjectOctokit.js +8 -0
- package/analyzer-template/packages/github/dist/github/src/lib/__mocks__/createProjectOctokit.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/constants.d.ts +4 -0
- package/analyzer-template/packages/github/dist/github/src/lib/constants.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/constants.js +4 -0
- package/analyzer-template/packages/github/dist/github/src/lib/constants.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/createProjectOctokit.d.ts +5 -0
- package/analyzer-template/packages/github/dist/github/src/lib/createProjectOctokit.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/createProjectOctokit.js +48 -0
- package/analyzer-template/packages/github/dist/github/src/lib/createProjectOctokit.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getBranch.d.ts +8 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getBranch.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getBranch.js +11 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getBranch.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getBranchCommits.d.ts +12 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getBranchCommits.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getBranchCommits.js +24 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getBranchCommits.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getBranches.d.ts +6 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getBranches.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getBranches.js +14 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getBranches.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getCommit.d.ts +9 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getCommit.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getCommit.js +12 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getCommit.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getCommitFromGithub.d.ts +6 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getCommitFromGithub.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getCommitFromGithub.js +57 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getCommitFromGithub.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getCommits.d.ts +12 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getCommits.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getCommits.js +37 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getCommits.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getCommitsFromGithub.d.ts +13 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getCommitsFromGithub.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getCommitsFromGithub.js +163 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getCommitsFromGithub.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getDiffBetweenCommits.d.ts +3 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getDiffBetweenCommits.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getDiffBetweenCommits.js +26 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getDiffBetweenCommits.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getFileContent.d.ts +12 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getFileContent.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getFileContent.js +14 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getFileContent.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getFirstCommitShaAfterTimestamp.d.ts +2 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getFirstCommitShaAfterTimestamp.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getFirstCommitShaAfterTimestamp.js +22 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getFirstCommitShaAfterTimestamp.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getLatestCommit.d.ts +8 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getLatestCommit.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getLatestCommit.js +28 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getLatestCommit.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getOpenPullRequests.d.ts +9 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getOpenPullRequests.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getOpenPullRequests.js +28 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getOpenPullRequests.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getPublicReposWithQuery.d.ts +6 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getPublicReposWithQuery.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getPublicReposWithQuery.js +12 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getPublicReposWithQuery.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getPullRequestsForCommit.d.ts +607 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getPullRequestsForCommit.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getPullRequestsForCommit.js +21 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getPullRequestsForCommit.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getRepoInfo.d.ts +20 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getRepoInfo.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getRepoInfo.js +35 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getRepoInfo.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getRepoWithBranches.d.ts +7 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getRepoWithBranches.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getRepoWithBranches.js +53 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getRepoWithBranches.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getRepos.d.ts +17 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getRepos.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getRepos.js +13 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getRepos.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getTree.d.ts +6 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getTree.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getTree.js +14 -0
- package/analyzer-template/packages/github/dist/github/src/lib/getTree.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/githubToCommit.d.ts +5 -0
- package/analyzer-template/packages/github/dist/github/src/lib/githubToCommit.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/githubToCommit.js +20 -0
- package/analyzer-template/packages/github/dist/github/src/lib/githubToCommit.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/listCommitsSince.d.ts +11 -0
- package/analyzer-template/packages/github/dist/github/src/lib/listCommitsSince.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/listCommitsSince.js +10 -0
- package/analyzer-template/packages/github/dist/github/src/lib/listCommitsSince.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.d.ts +14 -0
- package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js +139 -0
- package/analyzer-template/packages/github/dist/github/src/lib/loadOrCreateCommit.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncBranches.d.ts +12 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncBranches.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncBranches.js +74 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncBranches.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncHeadBranches.d.ts +6 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncHeadBranches.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncHeadBranches.js +38 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncHeadBranches.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.d.ts +9 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js +72 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncPrimaryBranch.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncPullRequest.d.ts +27 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncPullRequest.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncPullRequest.js +48 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncPullRequest.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncRepo.d.ts +9 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncRepo.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncRepo.js +26 -0
- package/analyzer-template/packages/github/dist/github/src/lib/syncRepo.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/updateCommitBranchesInDb.d.ts +7 -0
- package/analyzer-template/packages/github/dist/github/src/lib/updateCommitBranchesInDb.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/updateCommitBranchesInDb.js +40 -0
- package/analyzer-template/packages/github/dist/github/src/lib/updateCommitBranchesInDb.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/updateFilesInDb.d.ts +13 -0
- package/analyzer-template/packages/github/dist/github/src/lib/updateFilesInDb.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/updateFilesInDb.js +74 -0
- package/analyzer-template/packages/github/dist/github/src/lib/updateFilesInDb.js.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/urls.d.ts +11 -0
- package/analyzer-template/packages/github/dist/github/src/lib/urls.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/github/src/lib/urls.js +11 -0
- package/analyzer-template/packages/github/dist/github/src/lib/urls.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/index.d.ts +86 -0
- package/analyzer-template/packages/github/dist/supabase/index.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/index.js +84 -0
- package/analyzer-template/packages/github/dist/supabase/index.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/analysisBranchToDb.d.ts +5 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/analysisBranchToDb.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/analysisBranchToDb.js +19 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/analysisBranchToDb.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/analysisToDb.d.ts +5 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/analysisToDb.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/analysisToDb.js +26 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/analysisToDb.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/backgroundJobToDb.d.ts +7 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/backgroundJobToDb.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/backgroundJobToDb.js +13 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/backgroundJobToDb.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/branchToDb.d.ts +5 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/branchToDb.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/branchToDb.js +18 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/branchToDb.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/commitBranchToDb.d.ts +5 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/commitBranchToDb.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/commitBranchToDb.js +13 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/commitBranchToDb.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/commitToDb.d.ts +5 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/commitToDb.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/commitToDb.js +26 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/commitToDb.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/createOrUpdateBranchCommitStats.d.ts +18 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/createOrUpdateBranchCommitStats.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/createOrUpdateBranchCommitStats.js +108 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/createOrUpdateBranchCommitStats.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/createProject.d.ts +2 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/createProject.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/createProject.js +22 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/createProject.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/createRetryFetch.d.ts +5 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/createRetryFetch.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/createRetryFetch.js +42 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/createRetryFetch.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToAnalysis.d.ts +4 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToAnalysis.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToAnalysis.js +48 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToAnalysis.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToAnalysisBranch.d.ts +4 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToAnalysisBranch.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToAnalysisBranch.js +24 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToAnalysisBranch.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToBackgroundJob.d.ts +4 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToBackgroundJob.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToBackgroundJob.js +13 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToBackgroundJob.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToBranch.d.ts +4 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToBranch.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToBranch.js +22 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToBranch.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToCommit.d.ts +4 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToCommit.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToCommit.js +40 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToCommit.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToCommitBranch.d.ts +4 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToCommitBranch.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToCommitBranch.js +18 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToCommitBranch.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToEntity.d.ts +4 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToEntity.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToEntity.js +23 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToEntity.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToEntityBranch.d.ts +4 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToEntityBranch.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToEntityBranch.js +13 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToEntityBranch.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToFile.d.ts +4 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToFile.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToFile.js +14 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToFile.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToProject.d.ts +4 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToProject.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToProject.js +16 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToProject.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToScenario.d.ts +4 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToScenario.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToScenario.js +24 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToScenario.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToScenarioComment.d.ts +4 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToScenarioComment.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToScenarioComment.js +21 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToScenarioComment.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToUserScenario.d.ts +4 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToUserScenario.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToUserScenario.js +19 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/dbToUserScenario.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/deleteBranch.d.ts +5 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/deleteBranch.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/deleteBranch.js +21 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/deleteBranch.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/deleteEntities.d.ts +7 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/deleteEntities.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/deleteEntities.js +23 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/deleteEntities.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/deleteFile.d.ts +32 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/deleteFile.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/deleteFile.js +18 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/deleteFile.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/deleteScenarios.d.ts +7 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/deleteScenarios.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/deleteScenarios.js +34 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/deleteScenarios.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/entityToDb.d.ts +5 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/entityToDb.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/entityToDb.js +54 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/entityToDb.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/fileToDb.d.ts +5 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/fileToDb.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/fileToDb.js +14 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/fileToDb.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/generateSha.d.ts +2 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/generateSha.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/generateSha.js +15 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/generateSha.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/jsonUpdateUtils.d.ts +9 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/jsonUpdateUtils.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/jsonUpdateUtils.js +28 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/jsonUpdateUtils.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/aggregationHelpers.d.ts +41 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/aggregationHelpers.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/aggregationHelpers.js +66 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/aggregationHelpers.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/db.d.ts +67 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/db.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/db.js +360 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/db.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/schemaHelpers.d.ts +4 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/schemaHelpers.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/schemaHelpers.js +17 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/schemaHelpers.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/sqliteBooleanPlugin.d.ts +7 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/sqliteBooleanPlugin.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/sqliteBooleanPlugin.js +34 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/sqliteBooleanPlugin.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tableRelations.d.ts +87 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tableRelations.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tableRelations.js +2 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tableRelations.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tableRelationsTypes.d.ts +7 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tableRelationsTypes.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tableRelationsTypes.js +7 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tableRelationsTypes.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/analysesTable.d.ts +105 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/analysesTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/analysesTable.js +52 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/analysesTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/analysisBranchesTable.d.ts +17 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/analysisBranchesTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/analysisBranchesTable.js +24 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/analysisBranchesTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/backgroundJobsTable.d.ts +27 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/backgroundJobsTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/backgroundJobsTable.js +28 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/backgroundJobsTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/branchesTable.d.ts +42 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/branchesTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/branchesTable.js +34 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/branchesTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/commitBranchesTable.d.ts +16 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/commitBranchesTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/commitBranchesTable.js +22 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/commitBranchesTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/commitsTable.d.ts +47 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/commitsTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/commitsTable.js +44 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/commitsTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/entitiesTable.d.ts +65 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/entitiesTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/entitiesTable.js +38 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/entitiesTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/entityBranchesTable.d.ts +14 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/entityBranchesTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/entityBranchesTable.js +22 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/entityBranchesTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/entityStatementsTable.d.ts +16 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/entityStatementsTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/entityStatementsTable.js +22 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/entityStatementsTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/filesTable.d.ts +40 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/filesTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/filesTable.js +28 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/filesTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/githubPayloadsTable.d.ts +21 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/githubPayloadsTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/githubPayloadsTable.js +32 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/githubPayloadsTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/githubUsersTable.d.ts +16 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/githubUsersTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/githubUsersTable.js +22 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/githubUsersTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/projectsTable.d.ts +25 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/projectsTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/projectsTable.js +38 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/projectsTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/scenarioCommentsTable.d.ts +19 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/scenarioCommentsTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/scenarioCommentsTable.js +28 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/scenarioCommentsTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/scenariosTable.d.ts +65 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/scenariosTable.js +30 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/scenariosTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/statementsTable.d.ts +17 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/statementsTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/statementsTable.js +24 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/statementsTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/teamsTable.d.ts +14 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/teamsTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/teamsTable.js +18 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/teamsTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/userScenariosTable.d.ts +17 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/userScenariosTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/userScenariosTable.js +24 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/userScenariosTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/userTeamsTable.d.ts +12 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/userTeamsTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/userTeamsTable.js +17 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/userTeamsTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/usersTable.d.ts +18 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/usersTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/usersTable.js +26 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/tables/usersTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/upsertHelpers.d.ts +4 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/upsertHelpers.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/upsertHelpers.js +9 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/kysely/upsertHelpers.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadAnalyses.d.ts +14 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadAnalyses.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadAnalyses.js +131 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadAnalyses.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadAnalysis.d.ts +18 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadAnalysis.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadAnalysis.js +130 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadAnalysis.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadAnalysisBranches.d.ts +26 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadAnalysisBranches.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadAnalysisBranches.js +152 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadAnalysisBranches.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadBackgroundJob.d.ts +4 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadBackgroundJob.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadBackgroundJob.js +19 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadBackgroundJob.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadBranch.d.ts +12 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadBranch.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadBranch.js +90 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadBranch.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadBranches.d.ts +9 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadBranches.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadBranches.js +37 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadBranches.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadCommit.d.ts +16 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadCommit.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadCommit.js +111 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadCommit.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadCommitBranches.d.ts +11 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadCommitBranches.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadCommitBranches.js +45 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadCommitBranches.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadCommitMetadata.d.ts +23 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadCommitMetadata.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadCommitMetadata.js +26 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadCommitMetadata.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadCommits.d.ts +13 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadCommits.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadCommits.js +188 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadCommits.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadEntities.d.ts +11 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadEntities.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadEntities.js +63 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadEntities.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadEntity.d.ts +16 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadEntity.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadEntity.js +72 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadEntity.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadEntityBranches.d.ts +17 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadEntityBranches.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadEntityBranches.js +114 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadEntityBranches.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadFile.d.ts +6 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadFile.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadFile.js +28 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadFile.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadFiles.d.ts +15 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadFiles.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadFiles.js +101 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadFiles.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadMostRecentPreviousAnalysis.d.ts +11 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadMostRecentPreviousAnalysis.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadMostRecentPreviousAnalysis.js +80 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadMostRecentPreviousAnalysis.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadProject.d.ts +9 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadProject.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadProject.js +52 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadProject.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadReadyToBeCapturedAnalyses.d.ts +8 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadReadyToBeCapturedAnalyses.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadReadyToBeCapturedAnalyses.js +50 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadScenario.d.ts +5 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadScenario.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadScenario.js +30 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadScenario.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadStatement.d.ts +3 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadStatement.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadStatement.js +21 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/loadStatement.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/nullsToUndefines.d.ts +2 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/nullsToUndefines.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/nullsToUndefines.js +7 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/nullsToUndefines.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/projectToDb.d.ts +5 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/projectToDb.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/projectToDb.js +18 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/projectToDb.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/saveBackgroundEvent.d.ts +7 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/saveBackgroundEvent.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/saveBackgroundEvent.js +10 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/saveBackgroundEvent.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/saveEntityStatements.d.ts +3 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/saveEntityStatements.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/saveEntityStatements.js +20 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/saveEntityStatements.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/saveFiles.d.ts +5 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/saveFiles.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/saveFiles.js +33 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/saveFiles.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/saveStatement.d.ts +3 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/saveStatement.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/saveStatement.js +22 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/saveStatement.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/scenarioToDb.d.ts +5 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/scenarioToDb.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/scenarioToDb.js +18 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/scenarioToDb.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/supabase.d.ts +4 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/supabase.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/supabase.js +57 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/supabase.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/updateBackgroundJobProgress.d.ts +3 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/updateBackgroundJobProgress.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/updateBackgroundJobProgress.js +61 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/updateBackgroundJobProgress.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/updateCommitMetadata.d.ts +13 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/updateCommitMetadata.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/updateCommitMetadata.js +100 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/updateCommitMetadata.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/updateEntityBranch.d.ts +3 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/updateEntityBranch.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/updateEntityBranch.js +21 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/updateEntityBranch.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/updateFreshAnalysisMetadata.d.ts +7 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/updateFreshAnalysisMetadata.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/updateFreshAnalysisMetadata.js +42 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/updateFreshAnalysisMetadata.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/updateFreshAnalysisStatus.d.ts +7 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/updateFreshAnalysisStatus.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/updateFreshAnalysisStatus.js +42 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/updateFreshAnalysisStatus.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/updateFreshAnalysisStatusWithScenarios.d.ts +10 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/updateFreshAnalysisStatusWithScenarios.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/updateFreshAnalysisStatusWithScenarios.js +70 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/updateProjectMetadata.d.ts +10 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/updateProjectMetadata.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/updateProjectMetadata.js +60 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/updateProjectMetadata.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertAnalyses.d.ts +3 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertAnalyses.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertAnalyses.js +53 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertAnalyses.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertAnalysesWithScenarios.d.ts +7 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertAnalysesWithScenarios.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertAnalysesWithScenarios.js +62 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertAnalysesWithScenarios.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertAnalysisBranches.d.ts +3 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertAnalysisBranches.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertAnalysisBranches.js +72 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertAnalysisBranches.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertBackgroundJob.d.ts +3 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertBackgroundJob.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertBackgroundJob.js +22 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertBackgroundJob.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertBranches.d.ts +3 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertBranches.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertBranches.js +29 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertBranches.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertCommitBranches.d.ts +3 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertCommitBranches.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertCommitBranches.js +29 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertCommitBranches.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertCommits.d.ts +8 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertCommits.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertCommits.js +41 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertCommits.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertEntities.d.ts +3 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertEntities.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertEntities.js +82 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertEntities.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertEntityBranches.d.ts +3 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertEntityBranches.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertEntityBranches.js +27 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertEntityBranches.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertFiles.d.ts +3 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertFiles.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertFiles.js +32 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertFiles.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertGithubUser.d.ts +8 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertGithubUser.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertGithubUser.js +27 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertGithubUser.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertProjects.d.ts +3 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertProjects.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertProjects.js +27 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertProjects.js.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertScenarios.d.ts +3 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertScenarios.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertScenarios.js +28 -0
- package/analyzer-template/packages/github/dist/supabase/src/lib/upsertScenarios.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/index.d.ts +47 -0
- package/analyzer-template/packages/github/dist/types/index.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/index.js +4 -0
- package/analyzer-template/packages/github/dist/types/index.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/constants.d.ts +2 -0
- package/analyzer-template/packages/github/dist/types/src/constants.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/constants.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/constants.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.d.ts +9 -0
- package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.js +10 -0
- package/analyzer-template/packages/github/dist/types/src/enums/ProjectFramework.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts +129 -0
- package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/Analysis.js +3 -0
- package/analyzer-template/packages/github/dist/types/src/types/Analysis.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/AnalysisBranch.d.ts +15 -0
- package/analyzer-template/packages/github/dist/types/src/types/AnalysisBranch.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/AnalysisBranch.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/AnalysisBranch.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/AnalysisMap.d.ts +12 -0
- package/analyzer-template/packages/github/dist/types/src/types/AnalysisMap.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/AnalysisMap.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/AnalysisMap.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/BackgroundJob.d.ts +19 -0
- package/analyzer-template/packages/github/dist/types/src/types/BackgroundJob.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/BackgroundJob.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/BackgroundJob.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/Branch.d.ts +43 -0
- package/analyzer-template/packages/github/dist/types/src/types/Branch.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/Branch.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/Branch.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/CodeExplanation.d.ts +4 -0
- package/analyzer-template/packages/github/dist/types/src/types/CodeExplanation.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/CodeExplanation.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/CodeExplanation.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts +86 -0
- package/analyzer-template/packages/github/dist/types/src/types/Commit.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/Commit.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/Commit.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/CommitBranch.d.ts +11 -0
- package/analyzer-template/packages/github/dist/types/src/types/CommitBranch.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/CommitBranch.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/CommitBranch.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/CommitChange.d.ts +9 -0
- package/analyzer-template/packages/github/dist/types/src/types/CommitChange.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/CommitChange.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/CommitChange.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/DeepPartial.d.ts +4 -0
- package/analyzer-template/packages/github/dist/types/src/types/DeepPartial.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/DeepPartial.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/DeepPartial.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/DeepReadonly.d.ts +4 -0
- package/analyzer-template/packages/github/dist/types/src/types/DeepReadonly.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/DeepReadonly.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/DeepReadonly.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/DependencyTreeNode.d.ts +8 -0
- package/analyzer-template/packages/github/dist/types/src/types/DependencyTreeNode.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/DependencyTreeNode.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/DependencyTreeNode.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts +96 -0
- package/analyzer-template/packages/github/dist/types/src/types/Entity.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/Entity.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/Entity.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/EntityBranch.d.ts +8 -0
- package/analyzer-template/packages/github/dist/types/src/types/EntityBranch.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/EntityBranch.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/EntityBranch.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/EntityMap.d.ts +7 -0
- package/analyzer-template/packages/github/dist/types/src/types/EntityMap.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/EntityMap.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/EntityMap.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/EntityType.d.ts +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/EntityType.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/EntityType.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/EntityType.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/File.d.ts +45 -0
- package/analyzer-template/packages/github/dist/types/src/types/File.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/File.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/File.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/FilePreMock.d.ts +7 -0
- package/analyzer-template/packages/github/dist/types/src/types/FilePreMock.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/FilePreMock.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/FilePreMock.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/FileProp.d.ts +8 -0
- package/analyzer-template/packages/github/dist/types/src/types/FileProp.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/FileProp.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/FileProp.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/FileType.d.ts +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/FileType.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/FileType.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/FileType.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/GithubBranch.d.ts +7 -0
- package/analyzer-template/packages/github/dist/types/src/types/GithubBranch.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/GithubBranch.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/GithubBranch.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/GithubFile.d.ts +9 -0
- package/analyzer-template/packages/github/dist/types/src/types/GithubFile.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/GithubFile.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/GithubFile.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/GithubRepoData.d.ts +9 -0
- package/analyzer-template/packages/github/dist/types/src/types/GithubRepoData.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/GithubRepoData.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/GithubRepoData.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/GithubRepoInfo.d.ts +15 -0
- package/analyzer-template/packages/github/dist/types/src/types/GithubRepoInfo.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/GithubRepoInfo.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/GithubRepoInfo.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/JsonTypeDefinition.d.ts +4 -0
- package/analyzer-template/packages/github/dist/types/src/types/JsonTypeDefinition.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/JsonTypeDefinition.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/JsonTypeDefinition.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/LlmCall.d.ts +5 -0
- package/analyzer-template/packages/github/dist/types/src/types/LlmCall.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/LlmCall.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/LlmCall.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/Mock.d.ts +35 -0
- package/analyzer-template/packages/github/dist/types/src/types/Mock.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/Mock.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/Mock.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/Project.d.ts +26 -0
- package/analyzer-template/packages/github/dist/types/src/types/Project.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/Project.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/Project.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts +46 -0
- package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/PropsWithTypes.d.ts +8 -0
- package/analyzer-template/packages/github/dist/types/src/types/PropsWithTypes.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/PropsWithTypes.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/PropsWithTypes.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +112 -0
- package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/Scenario.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/Scenario.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScenarioComment.d.ts +12 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScenarioComment.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScenarioComment.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScenarioComment.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScenarioData.d.ts +13 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScenarioData.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScenarioData.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScenarioData.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts +74 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts +13 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/Statement.d.ts +11 -0
- package/analyzer-template/packages/github/dist/types/src/types/Statement.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/Statement.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/Statement.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts +12 -0
- package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/StatementInfo.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/Team.d.ts +5 -0
- package/analyzer-template/packages/github/dist/types/src/types/Team.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/Team.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/Team.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/TimelineItem.d.ts +17 -0
- package/analyzer-template/packages/github/dist/types/src/types/TimelineItem.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/TimelineItem.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/TimelineItem.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/TsConfigPaths.d.ts +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/TsConfigPaths.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/TsConfigPaths.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/TsConfigPaths.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/TypeStructures.d.ts +5 -0
- package/analyzer-template/packages/github/dist/types/src/types/TypeStructures.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/TypeStructures.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/TypeStructures.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/User.d.ts +7 -0
- package/analyzer-template/packages/github/dist/types/src/types/User.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/User.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/User.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/UserScenario.d.ts +10 -0
- package/analyzer-template/packages/github/dist/types/src/types/UserScenario.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/UserScenario.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/UserScenario.js.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/WebContainerFileSystemTree.d.ts +14 -0
- package/analyzer-template/packages/github/dist/types/src/types/WebContainerFileSystemTree.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/types/src/types/WebContainerFileSystemTree.js +2 -0
- package/analyzer-template/packages/github/dist/types/src/types/WebContainerFileSystemTree.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/index.d.ts +21 -0
- package/analyzer-template/packages/github/dist/utils/index.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/index.js +27 -0
- package/analyzer-template/packages/github/dist/utils/index.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/analyses/pushAnalysisError.d.ts +12 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/analyses/pushAnalysisError.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/analyses/pushAnalysisError.js +10 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/analyses/pushAnalysisError.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/applyUniversalMocks.d.ts +61 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/applyUniversalMocks.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/applyUniversalMocks.js +230 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/applyUniversalMocks.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/awsLog.d.ts +8 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/awsLog.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/awsLog.js +48 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/awsLog.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/frameworkRouteFileNameToRoute.d.ts +3 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/frameworkRouteFileNameToRoute.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/frameworkRouteFileNameToRoute.js +13 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/frameworkRouteFileNameToRoute.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getFrameworkRoutePath.d.ts +15 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getFrameworkRoutePath.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getFrameworkRoutePath.js +29 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getFrameworkRoutePath.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getNextRoutePath.d.ts +13 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getNextRoutePath.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getNextRoutePath.js +21 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getNextRoutePath.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getRemixRoutePath.d.ts +13 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getRemixRoutePath.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getRemixRoutePath.js +19 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/getRemixRoutePath.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/isFrameworkRoute.d.ts +3 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/isFrameworkRoute.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/isFrameworkRoute.js +7 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/isFrameworkRoute.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/isNextRoute.d.ts +3 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/isNextRoute.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/isNextRoute.js +12 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/isNextRoute.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/isRemixRoute.d.ts +3 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/isRemixRoute.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/isRemixRoute.js +8 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/isRemixRoute.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.d.ts +3 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.js +14 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.d.ts +3 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js +21 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/getFrameworkForFile.d.ts +16 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/getFrameworkForFile.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/getFrameworkForFile.js +64 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/getFrameworkForFile.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.d.ts +32 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.js +320 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/normalizeKey.d.ts +2 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/normalizeKey.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/normalizeKey.js +4 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/normalizeKey.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts +2 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js +7 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/safeFileName.js.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/safeStringify.d.ts +2 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/safeStringify.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/safeStringify.js +64 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/safeStringify.js.map +1 -0
- package/analyzer-template/packages/github/index.ts +25 -0
- package/analyzer-template/packages/github/package.json +21 -0
- package/analyzer-template/packages/github/src/lib/__mocks__/createProjectOctokit.ts +10 -0
- package/analyzer-template/packages/github/src/lib/constants.ts +3 -0
- package/analyzer-template/packages/github/src/lib/createProjectOctokit.ts +58 -0
- package/analyzer-template/packages/github/src/lib/getBranch.ts +29 -0
- package/analyzer-template/packages/github/src/lib/getBranchCommits.ts +44 -0
- package/analyzer-template/packages/github/src/lib/getBranches.ts +28 -0
- package/analyzer-template/packages/github/src/lib/getCommit.ts +25 -0
- package/analyzer-template/packages/github/src/lib/getCommitFromGithub.ts +67 -0
- package/analyzer-template/packages/github/src/lib/getCommits.ts +57 -0
- package/analyzer-template/packages/github/src/lib/getCommitsFromGithub.ts +239 -0
- package/analyzer-template/packages/github/src/lib/getDiffBetweenCommits.ts +37 -0
- package/analyzer-template/packages/github/src/lib/getFileContent.ts +42 -0
- package/analyzer-template/packages/github/src/lib/getFirstCommitShaAfterTimestamp.ts +26 -0
- package/analyzer-template/packages/github/src/lib/getLatestCommit.ts +41 -0
- package/analyzer-template/packages/github/src/lib/getOpenPullRequests.ts +39 -0
- package/analyzer-template/packages/github/src/lib/getPublicReposWithQuery.ts +21 -0
- package/analyzer-template/packages/github/src/lib/getPullRequestsForCommit.ts +30 -0
- package/analyzer-template/packages/github/src/lib/getRepoInfo.ts +56 -0
- package/analyzer-template/packages/github/src/lib/getRepoWithBranches.ts +73 -0
- package/analyzer-template/packages/github/src/lib/getRepos.ts +35 -0
- package/analyzer-template/packages/github/src/lib/getTree.ts +29 -0
- package/analyzer-template/packages/github/src/lib/githubToCommit.ts +25 -0
- package/analyzer-template/packages/github/src/lib/listCommitsSince.ts +21 -0
- package/analyzer-template/packages/github/src/lib/loadOrCreateCommit.ts +200 -0
- package/analyzer-template/packages/github/src/lib/syncBranches.ts +105 -0
- package/analyzer-template/packages/github/src/lib/syncHeadBranches.ts +54 -0
- package/analyzer-template/packages/github/src/lib/syncPrimaryBranch.ts +93 -0
- package/analyzer-template/packages/github/src/lib/syncPullRequest.ts +87 -0
- package/analyzer-template/packages/github/src/lib/syncRepo.ts +35 -0
- package/analyzer-template/packages/github/src/lib/updateCommitBranchesInDb.ts +66 -0
- package/analyzer-template/packages/github/src/lib/updateFilesInDb.ts +111 -0
- package/analyzer-template/packages/github/src/lib/urls.ts +29 -0
- package/analyzer-template/packages/github/tsconfig.json +11 -0
- package/analyzer-template/packages/supabase/__mocks__/index.ts +10 -0
- package/analyzer-template/packages/supabase/client.ts +35 -0
- package/analyzer-template/packages/supabase/index.ts +93 -0
- package/analyzer-template/packages/supabase/package.json +31 -0
- package/analyzer-template/packages/supabase/src/lib/analysisBranchToDb.ts +28 -0
- package/analyzer-template/packages/supabase/src/lib/analysisToDb.ts +59 -0
- package/analyzer-template/packages/supabase/src/lib/backgroundJobToDb.ts +21 -0
- package/analyzer-template/packages/supabase/src/lib/branchToDb.ts +24 -0
- package/analyzer-template/packages/supabase/src/lib/client/listenForCommits_Client.ts +30 -0
- package/analyzer-template/packages/supabase/src/lib/client/loadAnalysesInClient.ts +146 -0
- package/analyzer-template/packages/supabase/src/lib/client/loadAnalysis_Client.ts +134 -0
- package/analyzer-template/packages/supabase/src/lib/client/loadBranches_Client.ts +45 -0
- package/analyzer-template/packages/supabase/src/lib/client/loadCommit_Client.ts +79 -0
- package/analyzer-template/packages/supabase/src/lib/client/upsertFiles_Client.ts +50 -0
- package/analyzer-template/packages/supabase/src/lib/commitBranchToDb.ts +20 -0
- package/analyzer-template/packages/supabase/src/lib/commitToDb.ts +47 -0
- package/analyzer-template/packages/supabase/src/lib/createOrUpdateBranchCommitStats.ts +182 -0
- package/analyzer-template/packages/supabase/src/lib/createProject.ts +34 -0
- package/analyzer-template/packages/supabase/src/lib/createRetryFetch.ts +45 -0
- package/analyzer-template/packages/supabase/src/lib/dbToAnalysis.ts +76 -0
- package/analyzer-template/packages/supabase/src/lib/dbToAnalysisBranch.ts +28 -0
- package/analyzer-template/packages/supabase/src/lib/dbToBackgroundJob.ts +25 -0
- package/analyzer-template/packages/supabase/src/lib/dbToBranch.ts +39 -0
- package/analyzer-template/packages/supabase/src/lib/dbToCommit.ts +65 -0
- package/analyzer-template/packages/supabase/src/lib/dbToCommitBranch.ts +22 -0
- package/analyzer-template/packages/supabase/src/lib/dbToEntity.ts +42 -0
- package/analyzer-template/packages/supabase/src/lib/dbToEntityBranch.ts +17 -0
- package/analyzer-template/packages/supabase/src/lib/dbToFile.ts +16 -0
- package/analyzer-template/packages/supabase/src/lib/dbToProject.ts +30 -0
- package/analyzer-template/packages/supabase/src/lib/dbToScenario.ts +39 -0
- package/analyzer-template/packages/supabase/src/lib/dbToScenarioComment.ts +36 -0
- package/analyzer-template/packages/supabase/src/lib/dbToUserScenario.ts +32 -0
- package/analyzer-template/packages/supabase/src/lib/deleteBranch.ts +28 -0
- package/analyzer-template/packages/supabase/src/lib/deleteEntities.ts +32 -0
- package/analyzer-template/packages/supabase/src/lib/deleteFile.ts +19 -0
- package/analyzer-template/packages/supabase/src/lib/deleteScenarios.ts +41 -0
- package/analyzer-template/packages/supabase/src/lib/entityToDb.ts +83 -0
- package/analyzer-template/packages/supabase/src/lib/fileToDb.ts +17 -0
- package/analyzer-template/packages/supabase/src/lib/generateSha.ts +14 -0
- package/analyzer-template/packages/supabase/src/lib/jsonUpdateUtils.ts +43 -0
- package/analyzer-template/packages/supabase/src/lib/kysely/aggregationHelpers.ts +107 -0
- package/analyzer-template/packages/supabase/src/lib/kysely/db.ts +476 -0
- package/analyzer-template/packages/supabase/src/lib/kysely/schemaHelpers.ts +18 -0
- package/analyzer-template/packages/supabase/src/lib/kysely/sqliteBooleanPlugin.ts +46 -0
- package/analyzer-template/packages/supabase/src/lib/kysely/tableRelations.ts +105 -0
- package/analyzer-template/packages/supabase/src/lib/kysely/tableRelationsTypes.ts +26 -0
- package/analyzer-template/packages/supabase/src/lib/kysely/tables/analysesTable.ts +69 -0
- package/analyzer-template/packages/supabase/src/lib/kysely/tables/analysisBranchesTable.ts +46 -0
- package/analyzer-template/packages/supabase/src/lib/kysely/tables/backgroundJobsTable.ts +47 -0
- package/analyzer-template/packages/supabase/src/lib/kysely/tables/branchesTable.ts +49 -0
- package/analyzer-template/packages/supabase/src/lib/kysely/tables/commitBranchesTable.ts +36 -0
- package/analyzer-template/packages/supabase/src/lib/kysely/tables/commitsTable.ts +61 -0
- package/analyzer-template/packages/supabase/src/lib/kysely/tables/entitiesTable.ts +55 -0
- package/analyzer-template/packages/supabase/src/lib/kysely/tables/entityBranchesTable.ts +42 -0
- package/analyzer-template/packages/supabase/src/lib/kysely/tables/entityStatementsTable.ts +44 -0
- package/analyzer-template/packages/supabase/src/lib/kysely/tables/filesTable.ts +47 -0
- package/analyzer-template/packages/supabase/src/lib/kysely/tables/githubPayloadsTable.ts +48 -0
- package/analyzer-template/packages/supabase/src/lib/kysely/tables/githubUsersTable.ts +36 -0
- package/analyzer-template/packages/supabase/src/lib/kysely/tables/projectsTable.ts +51 -0
- package/analyzer-template/packages/supabase/src/lib/kysely/tables/scenarioCommentsTable.ts +44 -0
- package/analyzer-template/packages/supabase/src/lib/kysely/tables/scenariosTable.ts +43 -0
- package/analyzer-template/packages/supabase/src/lib/kysely/tables/statementsTable.ts +38 -0
- package/analyzer-template/packages/supabase/src/lib/kysely/tables/teamsTable.ts +34 -0
- package/analyzer-template/packages/supabase/src/lib/kysely/tables/userScenariosTable.ts +44 -0
- package/analyzer-template/packages/supabase/src/lib/kysely/tables/userTeamsTable.ts +32 -0
- package/analyzer-template/packages/supabase/src/lib/kysely/tables/usersTable.ts +42 -0
- package/analyzer-template/packages/supabase/src/lib/kysely/upsertHelpers.ts +24 -0
- package/analyzer-template/packages/supabase/src/lib/kysely.ts +1 -0
- package/analyzer-template/packages/supabase/src/lib/loadAnalyses.ts +218 -0
- package/analyzer-template/packages/supabase/src/lib/loadAnalysis.ts +210 -0
- package/analyzer-template/packages/supabase/src/lib/loadAnalysisBranches.ts +238 -0
- package/analyzer-template/packages/supabase/src/lib/loadBackgroundJob.ts +23 -0
- package/analyzer-template/packages/supabase/src/lib/loadBranch.ts +122 -0
- package/analyzer-template/packages/supabase/src/lib/loadBranches.ts +52 -0
- package/analyzer-template/packages/supabase/src/lib/loadCommit.ts +163 -0
- package/analyzer-template/packages/supabase/src/lib/loadCommitBranches.ts +78 -0
- package/analyzer-template/packages/supabase/src/lib/loadCommitMetadata.ts +34 -0
- package/analyzer-template/packages/supabase/src/lib/loadCommits.ts +251 -0
- package/analyzer-template/packages/supabase/src/lib/loadEntities.ts +94 -0
- package/analyzer-template/packages/supabase/src/lib/loadEntity.ts +110 -0
- package/analyzer-template/packages/supabase/src/lib/loadEntityBranches.ts +166 -0
- package/analyzer-template/packages/supabase/src/lib/loadFile.ts +47 -0
- package/analyzer-template/packages/supabase/src/lib/loadFiles.ts +137 -0
- package/analyzer-template/packages/supabase/src/lib/loadMostRecentPreviousAnalysis.ts +132 -0
- package/analyzer-template/packages/supabase/src/lib/loadProject.ts +70 -0
- package/analyzer-template/packages/supabase/src/lib/loadReadyToBeCapturedAnalyses.ts +76 -0
- package/analyzer-template/packages/supabase/src/lib/loadScenario.ts +38 -0
- package/analyzer-template/packages/supabase/src/lib/loadStatement.ts +23 -0
- package/analyzer-template/packages/supabase/src/lib/nullsToUndefines.ts +8 -0
- package/analyzer-template/packages/supabase/src/lib/projectToDb.ts +35 -0
- package/analyzer-template/packages/supabase/src/lib/saveBackgroundEvent.ts +19 -0
- package/analyzer-template/packages/supabase/src/lib/saveEntityStatements.ts +28 -0
- package/analyzer-template/packages/supabase/src/lib/saveFiles.ts +43 -0
- package/analyzer-template/packages/supabase/src/lib/saveStatement.ts +24 -0
- package/analyzer-template/packages/supabase/src/lib/scenarioCommentToDb.ts +35 -0
- package/analyzer-template/packages/supabase/src/lib/scenarioToDb.ts +34 -0
- package/analyzer-template/packages/supabase/src/lib/supabase.ts +85 -0
- package/analyzer-template/packages/supabase/src/lib/updateBackgroundJobProgress.ts +90 -0
- package/analyzer-template/packages/supabase/src/lib/updateCommitMetadata.ts +188 -0
- package/analyzer-template/packages/supabase/src/lib/updateEntityBranch.ts +29 -0
- package/analyzer-template/packages/supabase/src/lib/updateFreshAnalysisMetadata.ts +63 -0
- package/analyzer-template/packages/supabase/src/lib/updateFreshAnalysisStatus.ts +64 -0
- package/analyzer-template/packages/supabase/src/lib/updateFreshAnalysisStatusWithScenarios.ts +94 -0
- package/analyzer-template/packages/supabase/src/lib/updateProjectMetadata.ts +96 -0
- package/analyzer-template/packages/supabase/src/lib/upsertAnalyses.ts +58 -0
- package/analyzer-template/packages/supabase/src/lib/upsertAnalysesWithScenarios.ts +94 -0
- package/analyzer-template/packages/supabase/src/lib/upsertAnalysisBranches.ts +96 -0
- package/analyzer-template/packages/supabase/src/lib/upsertBackgroundJob.ts +33 -0
- package/analyzer-template/packages/supabase/src/lib/upsertBranches.ts +32 -0
- package/analyzer-template/packages/supabase/src/lib/upsertCommitBranches.ts +36 -0
- package/analyzer-template/packages/supabase/src/lib/upsertCommits.ts +57 -0
- package/analyzer-template/packages/supabase/src/lib/upsertEntities.ts +105 -0
- package/analyzer-template/packages/supabase/src/lib/upsertEntityBranches.ts +40 -0
- package/analyzer-template/packages/supabase/src/lib/upsertFiles.ts +45 -0
- package/analyzer-template/packages/supabase/src/lib/upsertGithubUser.ts +32 -0
- package/analyzer-template/packages/supabase/src/lib/upsertProjects.ts +32 -0
- package/analyzer-template/packages/supabase/src/lib/upsertScenarios.ts +31 -0
- package/analyzer-template/packages/supabase/src/lib/userScenarioToDb.ts +18 -0
- package/analyzer-template/packages/supabase/tsconfig.json +10 -0
- package/analyzer-template/packages/types/index.ts +85 -0
- package/analyzer-template/packages/types/package.json +12 -0
- package/analyzer-template/packages/types/src/constants.ts +1 -0
- package/analyzer-template/packages/types/src/enums/ProjectFramework.ts +8 -0
- package/analyzer-template/packages/types/src/types/Analysis.ts +134 -0
- package/analyzer-template/packages/types/src/types/AnalysisBranch.ts +16 -0
- package/analyzer-template/packages/types/src/types/AnalysisMap.ts +9 -0
- package/analyzer-template/packages/types/src/types/BackgroundJob.ts +18 -0
- package/analyzer-template/packages/types/src/types/Branch.ts +43 -0
- package/analyzer-template/packages/types/src/types/CodeExplanation.ts +3 -0
- package/analyzer-template/packages/types/src/types/Commit.ts +92 -0
- package/analyzer-template/packages/types/src/types/CommitBranch.ts +11 -0
- package/analyzer-template/packages/types/src/types/CommitChange.ts +9 -0
- package/analyzer-template/packages/types/src/types/DeepPartial.ts +8 -0
- package/analyzer-template/packages/types/src/types/DeepReadonly.ts +8 -0
- package/analyzer-template/packages/types/src/types/DependencyTreeNode.ts +3 -0
- package/analyzer-template/packages/types/src/types/Entity.ts +112 -0
- package/analyzer-template/packages/types/src/types/EntityBranch.ts +8 -0
- package/analyzer-template/packages/types/src/types/EntityMap.ts +5 -0
- package/analyzer-template/packages/types/src/types/EntityType.ts +10 -0
- package/analyzer-template/packages/types/src/types/File.ts +41 -0
- package/analyzer-template/packages/types/src/types/FilePreMock.ts +7 -0
- package/analyzer-template/packages/types/src/types/FileProp.ts +8 -0
- package/analyzer-template/packages/types/src/types/FileType.ts +12 -0
- package/analyzer-template/packages/types/src/types/GithubBranch.ts +7 -0
- package/analyzer-template/packages/types/src/types/GithubFile.ts +8 -0
- package/analyzer-template/packages/types/src/types/GithubRepoData.ts +9 -0
- package/analyzer-template/packages/types/src/types/GithubRepoInfo.ts +16 -0
- package/analyzer-template/packages/types/src/types/JsonTypeDefinition.ts +3 -0
- package/analyzer-template/packages/types/src/types/LlmCall.ts +1 -0
- package/analyzer-template/packages/types/src/types/Mock.ts +28 -0
- package/analyzer-template/packages/types/src/types/Project.ts +26 -0
- package/analyzer-template/packages/types/src/types/ProjectMetadata.ts +49 -0
- package/analyzer-template/packages/types/src/types/PropsWithTypes.ts +8 -0
- package/analyzer-template/packages/types/src/types/Scenario.ts +109 -0
- package/analyzer-template/packages/types/src/types/ScenarioComment.ts +12 -0
- package/analyzer-template/packages/types/src/types/ScenarioData.ts +8 -0
- package/analyzer-template/packages/types/src/types/ScenariosDataStructure.ts +52 -0
- package/analyzer-template/packages/types/src/types/ScopeAnalysis.ts +9 -0
- package/analyzer-template/packages/types/src/types/Statement.ts +11 -0
- package/analyzer-template/packages/types/src/types/StatementInfo.ts +11 -0
- package/analyzer-template/packages/types/src/types/Team.ts +4 -0
- package/analyzer-template/packages/types/src/types/TimelineItem.ts +16 -0
- package/analyzer-template/packages/types/src/types/TsConfigPaths.ts +1 -0
- package/analyzer-template/packages/types/src/types/TypeStructures.ts +5 -0
- package/analyzer-template/packages/types/src/types/User.ts +6 -0
- package/analyzer-template/packages/types/src/types/UserScenario.ts +10 -0
- package/analyzer-template/packages/types/src/types/WebContainerFileSystemTree.ts +15 -0
- package/analyzer-template/packages/types/tsconfig.json +10 -0
- package/analyzer-template/packages/ui-components/README.md +235 -0
- package/analyzer-template/packages/ui-components/package.json +37 -0
- package/analyzer-template/packages/ui-components/src/components/ResizeControlBar.tsx +313 -0
- package/analyzer-template/packages/ui-components/src/components/ScenarioDetailInteractiveView.tsx +306 -0
- package/analyzer-template/packages/ui-components/src/components/ScenarioPreview.tsx +232 -0
- package/analyzer-template/packages/ui-components/src/components/ScenarioThumbnails.tsx +82 -0
- package/analyzer-template/packages/ui-components/src/components/ScreenSizeSelector.tsx +45 -0
- package/analyzer-template/packages/ui-components/src/index.tsx +61 -0
- package/analyzer-template/packages/ui-components/src/providers/WebContainerProvider.tsx +105 -0
- package/analyzer-template/packages/ui-components/src/scenario-editor/components/AIDataGeneratorForm.tsx +139 -0
- package/analyzer-template/packages/ui-components/src/scenario-editor/components/BooleanSwitch.tsx +42 -0
- package/analyzer-template/packages/ui-components/src/scenario-editor/components/DataItemEditor.tsx +132 -0
- package/analyzer-template/packages/ui-components/src/scenario-editor/components/DataItemLink.tsx +80 -0
- package/analyzer-template/packages/ui-components/src/scenario-editor/components/DataItemNavigation.tsx +107 -0
- package/analyzer-template/packages/ui-components/src/scenario-editor/components/InputField.tsx +67 -0
- package/analyzer-template/packages/ui-components/src/scenario-editor/components/ScenarioEditor.tsx +401 -0
- package/analyzer-template/packages/ui-components/src/scenario-editor/components/ScenarioNameForm.tsx +52 -0
- package/analyzer-template/packages/ui-components/src/scenario-editor/components/SectionExpand.tsx +55 -0
- package/analyzer-template/packages/ui-components/src/scenario-editor/components/UnionTypeOptionDropdown.tsx +38 -0
- package/analyzer-template/packages/ui-components/src/scenario-editor/index.ts +35 -0
- package/analyzer-template/packages/ui-components/src/scenario-editor/types.ts +127 -0
- package/analyzer-template/packages/ui-components/src/scenario-editor/utils.ts +72 -0
- package/analyzer-template/packages/ui-components/tsconfig.json +23 -0
- package/analyzer-template/packages/utils/dist/types/index.d.ts +47 -0
- package/analyzer-template/packages/utils/dist/types/index.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/index.js +4 -0
- package/analyzer-template/packages/utils/dist/types/index.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/constants.d.ts +2 -0
- package/analyzer-template/packages/utils/dist/types/src/constants.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/constants.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/constants.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.d.ts +9 -0
- package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.js +10 -0
- package/analyzer-template/packages/utils/dist/types/src/enums/ProjectFramework.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts +129 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Analysis.js +3 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Analysis.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/AnalysisBranch.d.ts +15 -0
- package/analyzer-template/packages/utils/dist/types/src/types/AnalysisBranch.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/AnalysisBranch.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/AnalysisBranch.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/AnalysisMap.d.ts +12 -0
- package/analyzer-template/packages/utils/dist/types/src/types/AnalysisMap.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/AnalysisMap.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/AnalysisMap.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/BackgroundJob.d.ts +19 -0
- package/analyzer-template/packages/utils/dist/types/src/types/BackgroundJob.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/BackgroundJob.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/BackgroundJob.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Branch.d.ts +43 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Branch.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Branch.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Branch.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/CodeExplanation.d.ts +4 -0
- package/analyzer-template/packages/utils/dist/types/src/types/CodeExplanation.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/CodeExplanation.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/CodeExplanation.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts +86 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Commit.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Commit.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Commit.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/CommitBranch.d.ts +11 -0
- package/analyzer-template/packages/utils/dist/types/src/types/CommitBranch.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/CommitBranch.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/CommitBranch.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/CommitChange.d.ts +9 -0
- package/analyzer-template/packages/utils/dist/types/src/types/CommitChange.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/CommitChange.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/CommitChange.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/DeepPartial.d.ts +4 -0
- package/analyzer-template/packages/utils/dist/types/src/types/DeepPartial.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/DeepPartial.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/DeepPartial.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/DeepReadonly.d.ts +4 -0
- package/analyzer-template/packages/utils/dist/types/src/types/DeepReadonly.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/DeepReadonly.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/DeepReadonly.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/DependencyTreeNode.d.ts +8 -0
- package/analyzer-template/packages/utils/dist/types/src/types/DependencyTreeNode.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/DependencyTreeNode.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/DependencyTreeNode.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts +96 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Entity.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Entity.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Entity.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/EntityBranch.d.ts +8 -0
- package/analyzer-template/packages/utils/dist/types/src/types/EntityBranch.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/EntityBranch.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/EntityBranch.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/EntityMap.d.ts +7 -0
- package/analyzer-template/packages/utils/dist/types/src/types/EntityMap.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/EntityMap.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/EntityMap.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/EntityType.d.ts +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/EntityType.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/EntityType.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/EntityType.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/File.d.ts +45 -0
- package/analyzer-template/packages/utils/dist/types/src/types/File.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/File.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/File.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/FilePreMock.d.ts +7 -0
- package/analyzer-template/packages/utils/dist/types/src/types/FilePreMock.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/FilePreMock.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/FilePreMock.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/FileProp.d.ts +8 -0
- package/analyzer-template/packages/utils/dist/types/src/types/FileProp.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/FileProp.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/FileProp.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/FileType.d.ts +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/FileType.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/FileType.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/FileType.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/GithubBranch.d.ts +7 -0
- package/analyzer-template/packages/utils/dist/types/src/types/GithubBranch.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/GithubBranch.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/GithubBranch.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/GithubFile.d.ts +9 -0
- package/analyzer-template/packages/utils/dist/types/src/types/GithubFile.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/GithubFile.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/GithubFile.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/GithubRepoData.d.ts +9 -0
- package/analyzer-template/packages/utils/dist/types/src/types/GithubRepoData.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/GithubRepoData.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/GithubRepoData.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/GithubRepoInfo.d.ts +15 -0
- package/analyzer-template/packages/utils/dist/types/src/types/GithubRepoInfo.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/GithubRepoInfo.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/GithubRepoInfo.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/JsonTypeDefinition.d.ts +4 -0
- package/analyzer-template/packages/utils/dist/types/src/types/JsonTypeDefinition.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/JsonTypeDefinition.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/JsonTypeDefinition.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/LlmCall.d.ts +5 -0
- package/analyzer-template/packages/utils/dist/types/src/types/LlmCall.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/LlmCall.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/LlmCall.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Mock.d.ts +35 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Mock.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Mock.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Mock.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Project.d.ts +26 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Project.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Project.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Project.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts +46 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/PropsWithTypes.d.ts +8 -0
- package/analyzer-template/packages/utils/dist/types/src/types/PropsWithTypes.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/PropsWithTypes.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/PropsWithTypes.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +112 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Scenario.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Scenario.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScenarioComment.d.ts +12 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScenarioComment.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScenarioComment.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScenarioComment.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScenarioData.d.ts +13 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScenarioData.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScenarioData.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScenarioData.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts +74 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts +13 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Statement.d.ts +11 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Statement.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Statement.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Statement.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts +12 -0
- package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/StatementInfo.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Team.d.ts +5 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Team.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Team.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/Team.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/TimelineItem.d.ts +17 -0
- package/analyzer-template/packages/utils/dist/types/src/types/TimelineItem.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/TimelineItem.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/TimelineItem.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/TsConfigPaths.d.ts +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/TsConfigPaths.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/TsConfigPaths.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/TsConfigPaths.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/TypeStructures.d.ts +5 -0
- package/analyzer-template/packages/utils/dist/types/src/types/TypeStructures.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/TypeStructures.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/TypeStructures.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/User.d.ts +7 -0
- package/analyzer-template/packages/utils/dist/types/src/types/User.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/User.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/User.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/UserScenario.d.ts +10 -0
- package/analyzer-template/packages/utils/dist/types/src/types/UserScenario.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/UserScenario.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/UserScenario.js.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/WebContainerFileSystemTree.d.ts +14 -0
- package/analyzer-template/packages/utils/dist/types/src/types/WebContainerFileSystemTree.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/types/src/types/WebContainerFileSystemTree.js +2 -0
- package/analyzer-template/packages/utils/dist/types/src/types/WebContainerFileSystemTree.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/index.d.ts +21 -0
- package/analyzer-template/packages/utils/dist/utils/index.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/index.js +27 -0
- package/analyzer-template/packages/utils/dist/utils/index.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/server.d.ts +12 -0
- package/analyzer-template/packages/utils/dist/utils/server.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/server.js +13 -0
- package/analyzer-template/packages/utils/dist/utils/server.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/__mocks__/killProcess.server.d.ts +2 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/__mocks__/killProcess.server.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/__mocks__/killProcess.server.js +5 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/__mocks__/killProcess.server.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/analyses/pushAnalysisError.d.ts +12 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/analyses/pushAnalysisError.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/analyses/pushAnalysisError.js +10 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/analyses/pushAnalysisError.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/applyUniversalMocks.d.ts +61 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/applyUniversalMocks.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/applyUniversalMocks.js +230 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/applyUniversalMocks.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/awsLog.d.ts +8 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/awsLog.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/awsLog.js +48 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/awsLog.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/commitRuns.d.ts +3 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/commitRuns.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/commitRuns.js +14 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/commitRuns.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/env/detectEnvFiles.d.ts +34 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/env/detectEnvFiles.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/env/detectEnvFiles.js +217 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/env/detectEnvFiles.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/env/index.d.ts +3 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/env/index.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/env/index.js +3 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/env/index.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/env/sanitizeEnvFiles.d.ts +25 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/env/sanitizeEnvFiles.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/env/sanitizeEnvFiles.js +145 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/env/sanitizeEnvFiles.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/frameworkRouteFileNameToRoute.d.ts +3 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/frameworkRouteFileNameToRoute.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/frameworkRouteFileNameToRoute.js +13 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/frameworkRouteFileNameToRoute.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getFrameworkRoutePath.d.ts +15 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getFrameworkRoutePath.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getFrameworkRoutePath.js +29 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getFrameworkRoutePath.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getNextRoutePath.d.ts +13 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getNextRoutePath.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getNextRoutePath.js +21 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getNextRoutePath.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getRemixRoutePath.d.ts +13 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getRemixRoutePath.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getRemixRoutePath.js +19 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/getRemixRoutePath.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/isFrameworkRoute.d.ts +3 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/isFrameworkRoute.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/isFrameworkRoute.js +7 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/isFrameworkRoute.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/isNextRoute.d.ts +3 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/isNextRoute.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/isNextRoute.js +12 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/isNextRoute.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/isRemixRoute.d.ts +3 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/isRemixRoute.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/isRemixRoute.js +8 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/isRemixRoute.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.d.ts +3 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.js +14 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/nextRouteFileNameToRoute.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.d.ts +3 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js +21 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/frameworks/remixRouteFileNameToRoute.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/fs/copyNodeRepoQuickly.d.ts +9 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/fs/copyNodeRepoQuickly.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/fs/copyNodeRepoQuickly.js +181 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/fs/copyNodeRepoQuickly.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts +9 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js +41 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/getFrameworkForFile.d.ts +16 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/getFrameworkForFile.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/getFrameworkForFile.js +64 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/getFrameworkForFile.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/killProcess.server.d.ts +6 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/killProcess.server.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/killProcess.server.js +102 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/killProcess.server.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/killProcessAndSubprocesses.server.d.ts +12 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/killProcessAndSubprocesses.server.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/killProcessAndSubprocesses.server.js +62 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/killProcessAndSubprocesses.server.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.d.ts +32 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.js +320 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/loadEnv.d.ts +2 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/loadEnv.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/loadEnv.js +7 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/loadEnv.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/normalizeKey.d.ts +2 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/normalizeKey.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/normalizeKey.js +4 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/normalizeKey.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts +2 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js +7 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/safeFileName.js.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/safeStringify.d.ts +2 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/safeStringify.d.ts.map +1 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/safeStringify.js +64 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/safeStringify.js.map +1 -0
- package/analyzer-template/packages/utils/index.ts +49 -0
- package/analyzer-template/packages/utils/package.json +14 -0
- package/analyzer-template/packages/utils/server.ts +26 -0
- package/analyzer-template/packages/utils/src/lib/__mocks__/killProcess.server.ts +4 -0
- package/analyzer-template/packages/utils/src/lib/analyses/pushAnalysisError.ts +21 -0
- package/analyzer-template/packages/utils/src/lib/applyUniversalMocks.ts +384 -0
- package/analyzer-template/packages/utils/src/lib/awsLog.ts +60 -0
- package/analyzer-template/packages/utils/src/lib/commitRuns.ts +16 -0
- package/analyzer-template/packages/utils/src/lib/env/detectEnvFiles.ts +287 -0
- package/analyzer-template/packages/utils/src/lib/env/index.ts +15 -0
- package/analyzer-template/packages/utils/src/lib/env/sanitizeEnvFiles.ts +203 -0
- package/analyzer-template/packages/utils/src/lib/frameworks/frameworkRouteFileNameToRoute.ts +21 -0
- package/analyzer-template/packages/utils/src/lib/frameworks/getFrameworkRoutePath.ts +58 -0
- package/analyzer-template/packages/utils/src/lib/frameworks/getNextRoutePath.ts +53 -0
- package/analyzer-template/packages/utils/src/lib/frameworks/getRemixRoutePath.ts +51 -0
- package/analyzer-template/packages/utils/src/lib/frameworks/isFrameworkRoute.ts +15 -0
- package/analyzer-template/packages/utils/src/lib/frameworks/isNextRoute.ts +20 -0
- package/analyzer-template/packages/utils/src/lib/frameworks/isRemixRoute.ts +14 -0
- package/analyzer-template/packages/utils/src/lib/frameworks/nextRouteFileNameToRoute.ts +20 -0
- package/analyzer-template/packages/utils/src/lib/frameworks/remixRouteFileNameToRoute.ts +27 -0
- package/analyzer-template/packages/utils/src/lib/fs/copyNodeRepoQuickly.ts +241 -0
- package/analyzer-template/packages/utils/src/lib/fs/rsyncCopy.ts +64 -0
- package/analyzer-template/packages/utils/src/lib/getFrameworkForFile.ts +92 -0
- package/analyzer-template/packages/utils/src/lib/killProcess.server.ts +134 -0
- package/analyzer-template/packages/utils/src/lib/killProcessAndSubprocesses.server.ts +76 -0
- package/analyzer-template/packages/utils/src/lib/lightweightEntityExtractor.ts +414 -0
- package/analyzer-template/packages/utils/src/lib/loadEnv.ts +7 -0
- package/analyzer-template/packages/utils/src/lib/normalizeKey.ts +3 -0
- package/analyzer-template/packages/utils/src/lib/safeFileName.ts +7 -0
- package/analyzer-template/packages/utils/src/lib/safeStringify.ts +68 -0
- package/analyzer-template/packages/utils/tsconfig.json +11 -0
- package/analyzer-template/playwright/capture.ts +997 -0
- package/analyzer-template/playwright/captureFromUrl.ts +221 -0
- package/analyzer-template/playwright/capturePageWithPlaywright.ts +204 -0
- package/analyzer-template/playwright/captureScreenshotLite.ts +201 -0
- package/analyzer-template/playwright/captureStatic.ts +137 -0
- package/analyzer-template/playwright/checkURL.ts +67 -0
- package/analyzer-template/playwright/compareImages.ts +149 -0
- package/analyzer-template/playwright/compareTwoImagesFromS3.ts +43 -0
- package/analyzer-template/playwright/downloadImageFromS3.ts +58 -0
- package/analyzer-template/playwright/downloadPage.ts +413 -0
- package/analyzer-template/playwright/executeInstuctions.ts +119 -0
- package/analyzer-template/playwright/findStep.ts +6 -0
- package/analyzer-template/playwright/generateStaticBuild.ts +185 -0
- package/analyzer-template/playwright/getCodeYamInfo.ts +98 -0
- package/analyzer-template/playwright/invalidateCloudFrontPath.ts +46 -0
- package/analyzer-template/playwright/takeElementScreenshot.ts +468 -0
- package/analyzer-template/playwright/takeScreenshot.ts +243 -0
- package/analyzer-template/playwright/taskComplete.ts +12 -0
- package/analyzer-template/playwright/updateBackgroundJob.ts +43 -0
- package/analyzer-template/playwright/uploadAssets.ts +118 -0
- package/analyzer-template/playwright/waitForNoServer.ts +16 -0
- package/analyzer-template/playwright/waitForServer.ts +83 -0
- package/analyzer-template/process/GlobalProcessManager.ts +93 -0
- package/analyzer-template/process/INTEGRATION_COMPLETE.md +333 -0
- package/analyzer-template/process/INTEGRATION_EXAMPLE.md +525 -0
- package/analyzer-template/process/ProcessManager.ts +350 -0
- package/analyzer-template/process/README.md +507 -0
- package/analyzer-template/process/index.ts +75 -0
- package/analyzer-template/process/managedExecAsync.ts +154 -0
- package/analyzer-template/project/LazyFileStore.ts +537 -0
- package/analyzer-template/project/ScenarioIterator.ts +133 -0
- package/analyzer-template/project/analyzeAndGatherIndirectEntities.ts +131 -0
- package/analyzer-template/project/analyzeBaselineCommit.ts +186 -0
- package/analyzer-template/project/analyzeBranchCommit.ts +256 -0
- package/analyzer-template/project/analyzeFileEntities.ts +282 -0
- package/analyzer-template/project/analyzeReadyToBeCaptured.ts +51 -0
- package/analyzer-template/project/analyzeRegularCommit.ts +276 -0
- package/analyzer-template/project/backupFiles.ts +129 -0
- package/analyzer-template/project/buildCliArgs.ts +15 -0
- package/analyzer-template/project/buildProject.ts +46 -0
- package/analyzer-template/project/captureLibraryFunctionDirect.ts +141 -0
- package/analyzer-template/project/checkApprovedPath.ts +39 -0
- package/analyzer-template/project/checkConsistentAnalyses.ts +58 -0
- package/analyzer-template/project/checkConsistentEntities.ts +55 -0
- package/analyzer-template/project/clearExtension.ts +9 -0
- package/analyzer-template/project/cloneGitRepoAtCommit.ts +59 -0
- package/analyzer-template/project/constructMockCode.ts +891 -0
- package/analyzer-template/project/controller/startController.ts +197 -0
- package/analyzer-template/project/createEntitiesAndSortFiles.ts +239 -0
- package/analyzer-template/project/emailErrorReport.ts +78 -0
- package/analyzer-template/project/executeLibraryFunctionDirect.ts +178 -0
- package/analyzer-template/project/generateCodeYamPage.ts +240 -0
- package/analyzer-template/project/generateScenarioPage.ts +56 -0
- package/analyzer-template/project/getAppPath.ts +84 -0
- package/analyzer-template/project/getCodeYamPagePath.ts +101 -0
- package/analyzer-template/project/getFilesWithEntitiesFromRepo.ts +213 -0
- package/analyzer-template/project/getScenarioPagePath.ts +119 -0
- package/analyzer-template/project/getScenarioUrl.ts +69 -0
- package/analyzer-template/project/loadReadyToBeCaptured.ts +176 -0
- package/analyzer-template/project/mocks/analyzeFileMock.ts +435 -0
- package/analyzer-template/project/orchestrateCapture/AwsCaptureTaskRunner.ts +294 -0
- package/analyzer-template/project/orchestrateCapture/KyselyAnalysisLoader.ts +154 -0
- package/analyzer-template/project/orchestrateCapture/SequentialCaptureTaskRunner.ts +380 -0
- package/analyzer-template/project/orchestrateCapture/SupabaseAnalysisLoader.ts +85 -0
- package/analyzer-template/project/orchestrateCapture/spawnTaskProcess.ts +112 -0
- package/analyzer-template/project/orchestrateCapture/taskRunner.ts +121 -0
- package/analyzer-template/project/orchestrateCapture.ts +404 -0
- package/analyzer-template/project/prepareRepo.ts +106 -0
- package/analyzer-template/project/reconcileMockDataKeys.ts +131 -0
- package/analyzer-template/project/removeScenario.ts +9 -0
- package/analyzer-template/project/removeStrictFlagFromTsConfig.ts +37 -0
- package/analyzer-template/project/replaceImportLineContainingSubstring.ts +23 -0
- package/analyzer-template/project/runAnalysis.ts +362 -0
- package/analyzer-template/project/runMultiScenarioServer.ts +567 -0
- package/analyzer-template/project/runScenarioServer.ts +383 -0
- package/analyzer-template/project/start.ts +598 -0
- package/analyzer-template/project/startScenarioCapture.ts +708 -0
- package/analyzer-template/project/startServer.ts +188 -0
- package/analyzer-template/project/updateCommitBackgroundJob.ts +16 -0
- package/analyzer-template/project/utils/errorHandling.ts +48 -0
- package/analyzer-template/project/utils/mergeEnvVarsIntoStartCommand.ts +50 -0
- package/analyzer-template/project/utils/webappMapping.ts +95 -0
- package/analyzer-template/project/writeCodeYamPage.ts +32 -0
- package/analyzer-template/project/writeEnv.ts +54 -0
- package/analyzer-template/project/writeLibComponent.ts +50 -0
- package/analyzer-template/project/writeMockDataTsx.ts +755 -0
- package/analyzer-template/project/writeScenario.ts +112 -0
- package/analyzer-template/project/writeScenarioComponents.ts +927 -0
- package/analyzer-template/project/writeScenarioFiles.ts +113 -0
- package/analyzer-template/project/writeScenarioPage.ts +59 -0
- package/analyzer-template/project/writeSimpleRoot.ts +443 -0
- package/analyzer-template/project/writeUniversalMocks.ts +171 -0
- package/analyzer-template/scripts/comboWorkerLoop.cjs +474 -0
- package/analyzer-template/scripts/mergePackageJsonFiles.cjs +81 -0
- package/analyzer-template/scripts/postbuild.cjs +95 -0
- package/analyzer-template/tsconfig.json +19 -0
- package/background/src/lib/copyFolderToArchive.js +34 -0
- package/background/src/lib/copyFolderToArchive.js.map +1 -0
- package/background/src/lib/local/createLocalAnalyzer.js +160 -0
- package/background/src/lib/local/createLocalAnalyzer.js.map +1 -0
- package/background/src/lib/local/execAsync.js +100 -0
- package/background/src/lib/local/execAsync.js.map +1 -0
- package/background/src/lib/process/GlobalProcessManager.js +75 -0
- package/background/src/lib/process/GlobalProcessManager.js.map +1 -0
- package/background/src/lib/process/ProcessManager.js +244 -0
- package/background/src/lib/process/ProcessManager.js.map +1 -0
- package/background/src/lib/process/index.js +57 -0
- package/background/src/lib/process/index.js.map +1 -0
- package/background/src/lib/process/managedExecAsync.js +74 -0
- package/background/src/lib/process/managedExecAsync.js.map +1 -0
- package/background/src/lib/virtualized/common/closePort.js +17 -0
- package/background/src/lib/virtualized/common/closePort.js.map +1 -0
- package/background/src/lib/virtualized/common/constants.js +3 -0
- package/background/src/lib/virtualized/common/constants.js.map +1 -0
- package/background/src/lib/virtualized/common/copy.js +16 -0
- package/background/src/lib/virtualized/common/copy.js.map +1 -0
- package/background/src/lib/virtualized/common/execAsync.js +116 -0
- package/background/src/lib/virtualized/common/execAsync.js.map +1 -0
- package/background/src/lib/virtualized/common/getPID.js +40 -0
- package/background/src/lib/virtualized/common/getPID.js.map +1 -0
- package/background/src/lib/virtualized/common/measureAndRepordExecutionTime.js +9 -0
- package/background/src/lib/virtualized/common/measureAndRepordExecutionTime.js.map +1 -0
- package/background/src/lib/virtualized/common/measureExecutionTime.js +11 -0
- package/background/src/lib/virtualized/common/measureExecutionTime.js.map +1 -0
- package/background/src/lib/virtualized/common/openPage.js +20 -0
- package/background/src/lib/virtualized/common/openPage.js.map +1 -0
- package/background/src/lib/virtualized/common/readFile.js +21 -0
- package/background/src/lib/virtualized/common/readFile.js.map +1 -0
- package/background/src/lib/virtualized/common/writeFile.js +24 -0
- package/background/src/lib/virtualized/common/writeFile.js.map +1 -0
- package/background/src/lib/virtualized/project/LazyFileStore.js +421 -0
- package/background/src/lib/virtualized/project/LazyFileStore.js.map +1 -0
- package/background/src/lib/virtualized/project/ScenarioIterator.js +102 -0
- package/background/src/lib/virtualized/project/ScenarioIterator.js.map +1 -0
- package/background/src/lib/virtualized/project/analyzeAndGatherIndirectEntities.js +88 -0
- package/background/src/lib/virtualized/project/analyzeAndGatherIndirectEntities.js.map +1 -0
- package/background/src/lib/virtualized/project/analyzeBaselineCommit.js +108 -0
- package/background/src/lib/virtualized/project/analyzeBaselineCommit.js.map +1 -0
- package/background/src/lib/virtualized/project/analyzeBranchCommit.js +180 -0
- package/background/src/lib/virtualized/project/analyzeBranchCommit.js.map +1 -0
- package/background/src/lib/virtualized/project/analyzeFileEntities.js +192 -0
- package/background/src/lib/virtualized/project/analyzeFileEntities.js.map +1 -0
- package/background/src/lib/virtualized/project/analyzeReadyToBeCaptured.js +22 -0
- package/background/src/lib/virtualized/project/analyzeReadyToBeCaptured.js.map +1 -0
- package/background/src/lib/virtualized/project/analyzeRegularCommit.js +172 -0
- package/background/src/lib/virtualized/project/analyzeRegularCommit.js.map +1 -0
- package/background/src/lib/virtualized/project/backupFiles.js +114 -0
- package/background/src/lib/virtualized/project/backupFiles.js.map +1 -0
- package/background/src/lib/virtualized/project/buildCliArgs.js +18 -0
- package/background/src/lib/virtualized/project/buildCliArgs.js.map +1 -0
- package/background/src/lib/virtualized/project/buildProject.js +37 -0
- package/background/src/lib/virtualized/project/buildProject.js.map +1 -0
- package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js +107 -0
- package/background/src/lib/virtualized/project/captureLibraryFunctionDirect.js.map +1 -0
- package/background/src/lib/virtualized/project/checkApprovedPath.js +25 -0
- package/background/src/lib/virtualized/project/checkApprovedPath.js.map +1 -0
- package/background/src/lib/virtualized/project/checkConsistentAnalyses.js +34 -0
- package/background/src/lib/virtualized/project/checkConsistentAnalyses.js.map +1 -0
- package/background/src/lib/virtualized/project/checkConsistentEntities.js +37 -0
- package/background/src/lib/virtualized/project/checkConsistentEntities.js.map +1 -0
- package/background/src/lib/virtualized/project/cloneGitRepoAtCommit.js +38 -0
- package/background/src/lib/virtualized/project/cloneGitRepoAtCommit.js.map +1 -0
- package/background/src/lib/virtualized/project/constructMockCode.js +689 -0
- package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -0
- package/background/src/lib/virtualized/project/controller/startController.js +139 -0
- package/background/src/lib/virtualized/project/controller/startController.js.map +1 -0
- package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js +142 -0
- package/background/src/lib/virtualized/project/createEntitiesAndSortFiles.js.map +1 -0
- package/background/src/lib/virtualized/project/emailErrorReport.js +50 -0
- package/background/src/lib/virtualized/project/emailErrorReport.js.map +1 -0
- package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js +154 -0
- package/background/src/lib/virtualized/project/executeLibraryFunctionDirect.js.map +1 -0
- package/background/src/lib/virtualized/project/generateCodeYamPage.js +213 -0
- package/background/src/lib/virtualized/project/generateCodeYamPage.js.map +1 -0
- package/background/src/lib/virtualized/project/generateScenarioPage.js +27 -0
- package/background/src/lib/virtualized/project/generateScenarioPage.js.map +1 -0
- package/background/src/lib/virtualized/project/getAppPath.js +79 -0
- package/background/src/lib/virtualized/project/getAppPath.js.map +1 -0
- package/background/src/lib/virtualized/project/getCodeYamPagePath.js +56 -0
- package/background/src/lib/virtualized/project/getCodeYamPagePath.js.map +1 -0
- package/background/src/lib/virtualized/project/getFilesWithEntitiesFromRepo.js +161 -0
- package/background/src/lib/virtualized/project/getFilesWithEntitiesFromRepo.js.map +1 -0
- package/background/src/lib/virtualized/project/getScenarioPagePath.js +62 -0
- package/background/src/lib/virtualized/project/getScenarioPagePath.js.map +1 -0
- package/background/src/lib/virtualized/project/getScenarioUrl.js +52 -0
- package/background/src/lib/virtualized/project/getScenarioUrl.js.map +1 -0
- package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js +115 -0
- package/background/src/lib/virtualized/project/loadReadyToBeCaptured.js.map +1 -0
- package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js +368 -0
- package/background/src/lib/virtualized/project/mocks/analyzeFileMock.js.map +1 -0
- package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js +196 -0
- package/background/src/lib/virtualized/project/orchestrateCapture/AwsCaptureTaskRunner.js.map +1 -0
- package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js +109 -0
- package/background/src/lib/virtualized/project/orchestrateCapture/KyselyAnalysisLoader.js.map +1 -0
- package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js +269 -0
- package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js.map +1 -0
- package/background/src/lib/virtualized/project/orchestrateCapture/spawnTaskProcess.js +71 -0
- package/background/src/lib/virtualized/project/orchestrateCapture/spawnTaskProcess.js.map +1 -0
- package/background/src/lib/virtualized/project/orchestrateCapture/taskRunner.js +2 -0
- package/background/src/lib/virtualized/project/orchestrateCapture/taskRunner.js.map +1 -0
- package/background/src/lib/virtualized/project/orchestrateCapture.js +285 -0
- package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -0
- package/background/src/lib/virtualized/project/prepareRepo.js +61 -0
- package/background/src/lib/virtualized/project/prepareRepo.js.map +1 -0
- package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +115 -0
- package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -0
- package/background/src/lib/virtualized/project/removeScenario.js +11 -0
- package/background/src/lib/virtualized/project/removeScenario.js.map +1 -0
- package/background/src/lib/virtualized/project/removeStrictFlagFromTsConfig.js +32 -0
- package/background/src/lib/virtualized/project/removeStrictFlagFromTsConfig.js.map +1 -0
- package/background/src/lib/virtualized/project/runAnalysis.js +253 -0
- package/background/src/lib/virtualized/project/runAnalysis.js.map +1 -0
- package/background/src/lib/virtualized/project/runMultiScenarioServer.js +427 -0
- package/background/src/lib/virtualized/project/runMultiScenarioServer.js.map +1 -0
- package/background/src/lib/virtualized/project/start.js +462 -0
- package/background/src/lib/virtualized/project/start.js.map +1 -0
- package/background/src/lib/virtualized/project/startScenarioCapture.js +482 -0
- package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -0
- package/background/src/lib/virtualized/project/startServer.js +156 -0
- package/background/src/lib/virtualized/project/startServer.js.map +1 -0
- package/background/src/lib/virtualized/project/updateCommitBackgroundJob.js +13 -0
- package/background/src/lib/virtualized/project/updateCommitBackgroundJob.js.map +1 -0
- package/background/src/lib/virtualized/project/utils/errorHandling.js +39 -0
- package/background/src/lib/virtualized/project/utils/errorHandling.js.map +1 -0
- package/background/src/lib/virtualized/project/utils/mergeEnvVarsIntoStartCommand.js +42 -0
- package/background/src/lib/virtualized/project/utils/mergeEnvVarsIntoStartCommand.js.map +1 -0
- package/background/src/lib/virtualized/project/utils/webappMapping.js +66 -0
- package/background/src/lib/virtualized/project/utils/webappMapping.js.map +1 -0
- package/background/src/lib/virtualized/project/writeCodeYamPage.js +23 -0
- package/background/src/lib/virtualized/project/writeCodeYamPage.js.map +1 -0
- package/background/src/lib/virtualized/project/writeEnv.js +43 -0
- package/background/src/lib/virtualized/project/writeEnv.js.map +1 -0
- package/background/src/lib/virtualized/project/writeLibComponent.js +19 -0
- package/background/src/lib/virtualized/project/writeLibComponent.js.map +1 -0
- package/background/src/lib/virtualized/project/writeMockDataTsx.js +649 -0
- package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -0
- package/background/src/lib/virtualized/project/writeScenario.js +58 -0
- package/background/src/lib/virtualized/project/writeScenario.js.map +1 -0
- package/background/src/lib/virtualized/project/writeScenarioComponents.js +588 -0
- package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -0
- package/background/src/lib/virtualized/project/writeScenarioFiles.js +62 -0
- package/background/src/lib/virtualized/project/writeScenarioFiles.js.map +1 -0
- package/background/src/lib/virtualized/project/writeScenarioPage.js +24 -0
- package/background/src/lib/virtualized/project/writeScenarioPage.js.map +1 -0
- package/background/src/lib/virtualized/project/writeSimpleRoot.js +298 -0
- package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -0
- package/background/src/lib/virtualized/project/writeUniversalMocks.js +93 -0
- package/background/src/lib/virtualized/project/writeUniversalMocks.js.map +1 -0
- package/background/src/lib/writeFile.js +18 -0
- package/background/src/lib/writeFile.js.map +1 -0
- package/codeyam-cli/scripts/apply-setup.js +288 -0
- package/codeyam-cli/scripts/apply-setup.js.map +1 -0
- package/codeyam-cli/scripts/build-analyzer-template.js +174 -0
- package/codeyam-cli/scripts/build-analyzer-template.js.map +1 -0
- package/codeyam-cli/scripts/build-webserver-info.js +80 -0
- package/codeyam-cli/scripts/build-webserver-info.js.map +1 -0
- package/codeyam-cli/scripts/extract-setup.js +130 -0
- package/codeyam-cli/scripts/extract-setup.js.map +1 -0
- package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js +238 -0
- package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js.map +1 -0
- package/codeyam-cli/scripts/populateEntityTimestamps.js +72 -0
- package/codeyam-cli/scripts/populateEntityTimestamps.js.map +1 -0
- package/codeyam-cli/src/cli.js +62 -0
- package/codeyam-cli/src/cli.js.map +1 -0
- package/codeyam-cli/src/codeyam-cli.js +4 -0
- package/codeyam-cli/src/codeyam-cli.js.map +1 -0
- package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js +132 -0
- package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js.map +1 -0
- package/codeyam-cli/src/commands/__tests__/init.unapprovedPaths.test.js +73 -0
- package/codeyam-cli/src/commands/__tests__/init.unapprovedPaths.test.js.map +1 -0
- package/codeyam-cli/src/commands/__tests__/suggest.test.js +161 -0
- package/codeyam-cli/src/commands/__tests__/suggest.test.js.map +1 -0
- package/codeyam-cli/src/commands/analyze.js +136 -0
- package/codeyam-cli/src/commands/analyze.js.map +1 -0
- package/codeyam-cli/src/commands/default.js +99 -0
- package/codeyam-cli/src/commands/default.js.map +1 -0
- package/codeyam-cli/src/commands/detect-universal-mocks.js +118 -0
- package/codeyam-cli/src/commands/detect-universal-mocks.js.map +1 -0
- package/codeyam-cli/src/commands/entities.js +102 -0
- package/codeyam-cli/src/commands/entities.js.map +1 -0
- package/codeyam-cli/src/commands/generate-data-structure.js +242 -0
- package/codeyam-cli/src/commands/generate-data-structure.js.map +1 -0
- package/codeyam-cli/src/commands/init.js +438 -0
- package/codeyam-cli/src/commands/init.js.map +1 -0
- package/codeyam-cli/src/commands/list.js +31 -0
- package/codeyam-cli/src/commands/list.js.map +1 -0
- package/codeyam-cli/src/commands/queue.js +83 -0
- package/codeyam-cli/src/commands/queue.js.map +1 -0
- package/codeyam-cli/src/commands/start.js +72 -0
- package/codeyam-cli/src/commands/start.js.map +1 -0
- package/codeyam-cli/src/commands/status.js +112 -0
- package/codeyam-cli/src/commands/status.js.map +1 -0
- package/codeyam-cli/src/commands/stop.js +28 -0
- package/codeyam-cli/src/commands/stop.js.map +1 -0
- package/codeyam-cli/src/commands/suggest.js +299 -0
- package/codeyam-cli/src/commands/suggest.js.map +1 -0
- package/codeyam-cli/src/commands/suggestUtils.js +110 -0
- package/codeyam-cli/src/commands/suggestUtils.js.map +1 -0
- package/codeyam-cli/src/commands/test-startup.js +658 -0
- package/codeyam-cli/src/commands/test-startup.js.map +1 -0
- package/codeyam-cli/src/commands/update-config.js +97 -0
- package/codeyam-cli/src/commands/update-config.js.map +1 -0
- package/codeyam-cli/src/commands/validate-mock.js +97 -0
- package/codeyam-cli/src/commands/validate-mock.js.map +1 -0
- package/codeyam-cli/src/commands/verify.js +140 -0
- package/codeyam-cli/src/commands/verify.js.map +1 -0
- package/codeyam-cli/src/state.js +9 -0
- package/codeyam-cli/src/state.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/cleanupAnalysisFiles.test.js +219 -0
- package/codeyam-cli/src/utils/__tests__/cleanupAnalysisFiles.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/entityVersioning.test.js +346 -0
- package/codeyam-cli/src/utils/__tests__/entityVersioning.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/fileMetadata.test.js +203 -0
- package/codeyam-cli/src/utils/__tests__/fileMetadata.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/fileWatcher.batch.test.js +614 -0
- package/codeyam-cli/src/utils/__tests__/fileWatcher.batch.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/fileWatcher.multiversion.test.js +559 -0
- package/codeyam-cli/src/utils/__tests__/fileWatcher.multiversion.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/fileWatcher.optimization.test.js +375 -0
- package/codeyam-cli/src/utils/__tests__/fileWatcher.optimization.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/fileWatcher.versioning.test.js +1293 -0
- package/codeyam-cli/src/utils/__tests__/fileWatcher.versioning.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/gitEntityLookup.test.js +119 -0
- package/codeyam-cli/src/utils/__tests__/gitEntityLookup.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/import-meta.test.js +37 -0
- package/codeyam-cli/src/utils/__tests__/import-meta.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/mockValidator.test.js +151 -0
- package/codeyam-cli/src/utils/__tests__/mockValidator.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/pathIgnoring.test.js +140 -0
- package/codeyam-cli/src/utils/__tests__/pathIgnoring.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +215 -0
- package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/syncUniversalMocks.test.js +132 -0
- package/codeyam-cli/src/utils/__tests__/syncUniversalMocks.test.js.map +1 -0
- package/codeyam-cli/src/utils/analysisRunner.js +257 -0
- package/codeyam-cli/src/utils/analysisRunner.js.map +1 -0
- package/codeyam-cli/src/utils/analyzer.js +230 -0
- package/codeyam-cli/src/utils/analyzer.js.map +1 -0
- package/codeyam-cli/src/utils/backgroundServer.js +74 -0
- package/codeyam-cli/src/utils/backgroundServer.js.map +1 -0
- package/codeyam-cli/src/utils/changeDetection.js +102 -0
- package/codeyam-cli/src/utils/changeDetection.js.map +1 -0
- package/codeyam-cli/src/utils/claude-code.js +39 -0
- package/codeyam-cli/src/utils/claude-code.js.map +1 -0
- package/codeyam-cli/src/utils/cleanupAnalysisFiles.js +89 -0
- package/codeyam-cli/src/utils/cleanupAnalysisFiles.js.map +1 -0
- package/codeyam-cli/src/utils/database.js +194 -0
- package/codeyam-cli/src/utils/database.js.map +1 -0
- package/codeyam-cli/src/utils/defaultUnapprovedPaths.js +92 -0
- package/codeyam-cli/src/utils/defaultUnapprovedPaths.js.map +1 -0
- package/codeyam-cli/src/utils/detectEnvironmentVariables.js +137 -0
- package/codeyam-cli/src/utils/detectEnvironmentVariables.js.map +1 -0
- package/codeyam-cli/src/utils/entityCache.js +160 -0
- package/codeyam-cli/src/utils/entityCache.js.map +1 -0
- package/codeyam-cli/src/utils/entityMetadata.js +55 -0
- package/codeyam-cli/src/utils/entityMetadata.js.map +1 -0
- package/codeyam-cli/src/utils/entityVersioning.js +166 -0
- package/codeyam-cli/src/utils/entityVersioning.js.map +1 -0
- package/codeyam-cli/src/utils/fileMetadata.js +570 -0
- package/codeyam-cli/src/utils/fileMetadata.js.map +1 -0
- package/codeyam-cli/src/utils/fileWatcher.js +1576 -0
- package/codeyam-cli/src/utils/fileWatcher.js.map +1 -0
- package/codeyam-cli/src/utils/folderBurstDetector.js +174 -0
- package/codeyam-cli/src/utils/folderBurstDetector.js.map +1 -0
- package/codeyam-cli/src/utils/gitEntityLookup.js +28 -0
- package/codeyam-cli/src/utils/gitEntityLookup.js.map +1 -0
- package/codeyam-cli/src/utils/install-skills.js +59 -0
- package/codeyam-cli/src/utils/install-skills.js.map +1 -0
- package/codeyam-cli/src/utils/memoryLogger.js +151 -0
- package/codeyam-cli/src/utils/memoryLogger.js.map +1 -0
- package/codeyam-cli/src/utils/memoryProfiler.js +168 -0
- package/codeyam-cli/src/utils/memoryProfiler.js.map +1 -0
- package/codeyam-cli/src/utils/mockValidator.js +267 -0
- package/codeyam-cli/src/utils/mockValidator.js.map +1 -0
- package/codeyam-cli/src/utils/pathIgnoring.js +127 -0
- package/codeyam-cli/src/utils/pathIgnoring.js.map +1 -0
- package/codeyam-cli/src/utils/progress.js +132 -0
- package/codeyam-cli/src/utils/progress.js.map +1 -0
- package/codeyam-cli/src/utils/project.js +27 -0
- package/codeyam-cli/src/utils/project.js.map +1 -0
- package/codeyam-cli/src/utils/queue/__tests__/heartbeat.test.js +637 -0
- package/codeyam-cli/src/utils/queue/__tests__/heartbeat.test.js.map +1 -0
- package/codeyam-cli/src/utils/queue/__tests__/job.pidTracking.test.js +294 -0
- package/codeyam-cli/src/utils/queue/__tests__/job.pidTracking.test.js.map +1 -0
- package/codeyam-cli/src/utils/queue/__tests__/manager.test.js +331 -0
- package/codeyam-cli/src/utils/queue/__tests__/manager.test.js.map +1 -0
- package/codeyam-cli/src/utils/queue/__tests__/persistence.test.js +186 -0
- package/codeyam-cli/src/utils/queue/__tests__/persistence.test.js.map +1 -0
- package/codeyam-cli/src/utils/queue/heartbeat.js +141 -0
- package/codeyam-cli/src/utils/queue/heartbeat.js.map +1 -0
- package/codeyam-cli/src/utils/queue/job.js +425 -0
- package/codeyam-cli/src/utils/queue/job.js.map +1 -0
- package/codeyam-cli/src/utils/queue/manager.js +140 -0
- package/codeyam-cli/src/utils/queue/manager.js.map +1 -0
- package/codeyam-cli/src/utils/queue/persistence.js +41 -0
- package/codeyam-cli/src/utils/queue/persistence.js.map +1 -0
- package/codeyam-cli/src/utils/queue/proxyQueue.js +163 -0
- package/codeyam-cli/src/utils/queue/proxyQueue.js.map +1 -0
- package/codeyam-cli/src/utils/queue/queueFileWatcher.js +77 -0
- package/codeyam-cli/src/utils/queue/queueFileWatcher.js.map +1 -0
- package/codeyam-cli/src/utils/queue/serverDetection.js +93 -0
- package/codeyam-cli/src/utils/queue/serverDetection.js.map +1 -0
- package/codeyam-cli/src/utils/routeIdentification.js +152 -0
- package/codeyam-cli/src/utils/routeIdentification.js.map +1 -0
- package/codeyam-cli/src/utils/secrets.js +152 -0
- package/codeyam-cli/src/utils/secrets.js.map +1 -0
- package/codeyam-cli/src/utils/secretsManager.js +189 -0
- package/codeyam-cli/src/utils/secretsManager.js.map +1 -0
- package/codeyam-cli/src/utils/serverState.js +129 -0
- package/codeyam-cli/src/utils/serverState.js.map +1 -0
- package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +103 -0
- package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -0
- package/codeyam-cli/src/utils/syncMocksMiddleware.js +51 -0
- package/codeyam-cli/src/utils/syncMocksMiddleware.js.map +1 -0
- package/codeyam-cli/src/utils/syncUncommittedEntities.js +169 -0
- package/codeyam-cli/src/utils/syncUncommittedEntities.js.map +1 -0
- package/codeyam-cli/src/utils/syncUniversalMocks.js +284 -0
- package/codeyam-cli/src/utils/syncUniversalMocks.js.map +1 -0
- package/codeyam-cli/src/utils/universal-mocks.js +152 -0
- package/codeyam-cli/src/utils/universal-mocks.js.map +1 -0
- package/codeyam-cli/src/utils/versionInfo.js +117 -0
- package/codeyam-cli/src/utils/versionInfo.js.map +1 -0
- package/codeyam-cli/src/utils/webappDetection.js +258 -0
- package/codeyam-cli/src/utils/webappDetection.js.map +1 -0
- package/codeyam-cli/src/utils/webappMapping.js +52 -0
- package/codeyam-cli/src/utils/webappMapping.js.map +1 -0
- package/codeyam-cli/src/webserver/app/lib/database.js +375 -0
- package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -0
- package/codeyam-cli/src/webserver/app/lib/dbNotifier.js +86 -0
- package/codeyam-cli/src/webserver/app/lib/dbNotifier.js.map +1 -0
- package/codeyam-cli/src/webserver/app/lib/lightweightEntityExtractor.js +3 -0
- package/codeyam-cli/src/webserver/app/lib/lightweightEntityExtractor.js.map +1 -0
- package/codeyam-cli/src/webserver/backgroundServer.js +141 -0
- package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-rqv54FUY.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-B0oiPem-.js +26 -0
- package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-CMKNK2uU.css +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-DqXXjAJ7.js +3 -0
- package/codeyam-cli/src/webserver/build/client/assets/LogViewer-BKKG1s2B.js +3 -0
- package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-DU_jxCPD.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/ScenarioPreview-5DY-YIxu.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-DmjXUj6m.js +5 -0
- package/codeyam-cli/src/webserver/build/client/assets/_index-DvSrcxsk.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-CsaMd9mb.js +10 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.analyze-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.branch-entity-diff-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.capture-screenshot-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.debug-setup-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.delete-scenario-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.events-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.execute-function-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.generate-scenario-data-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.interactive-mode-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.kill-process-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.llm-calls._entitySha-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.logs._projectSlug-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.memory-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.process-status-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.queue-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.recapture-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.recapture-scenario-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.save-scenarios-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.screenshot._-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/chart-column-VXBS6qOn.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/circle-alert-n5GUC2AS.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/clock-DKqtX8js.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/components-Dj-Ggnl2.js +40 -0
- package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-C1gnJVOL.svg +4 -0
- package/codeyam-cli/src/webserver/build/client/assets/dev.empty-BbR3FwNc.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha._-BHiWkb_W.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-L7M9Vr5z.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-C9w-q7P3.js +5 -0
- package/codeyam-cli/src/webserver/build/client/assets/entityVersioning-Bk_YB1jM.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/entry.client-CdGoUs8A.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/file-text-B6Er7j5k.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/files-KcDVw1FY.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/git-B9uZ8eSJ.js +12 -0
- package/codeyam-cli/src/webserver/build/client/assets/globals-B0f88RTV.css +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/loader-circle-v3c6DFp4.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/manifest-fca08d7e.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/root-Cf8VBqIb.js +16 -0
- package/codeyam-cli/src/webserver/build/client/assets/search-DA14wXpu.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/server-build-CMKNK2uU.css +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/settings-COJUrwGu.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/settings-NU_ZquhK.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/simulations-CNaMJ-nR.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/static._-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-Lumm1t01.js +2 -0
- package/codeyam-cli/src/webserver/build/client/assets/useToast-BRShB17p.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/zap-BvukH0eN.js +1 -0
- package/codeyam-cli/src/webserver/build/client/cy-logo-cli.svg +13 -0
- package/codeyam-cli/src/webserver/build/client/favicon.ico +0 -0
- package/codeyam-cli/src/webserver/build/client/favicon.png +0 -0
- package/codeyam-cli/src/webserver/build/client/favicon.svg +13 -0
- package/codeyam-cli/src/webserver/build/client/icons/file-icon.svg +14 -0
- package/codeyam-cli/src/webserver/build/server/assets/index-DHr4rT4u.js +1 -0
- package/codeyam-cli/src/webserver/build/server/assets/server-build-Bi1mj14J.js +166 -0
- package/codeyam-cli/src/webserver/build/server/index.js +1 -0
- package/codeyam-cli/src/webserver/build-info.json +7 -0
- package/codeyam-cli/src/webserver/devServer.js +93 -0
- package/codeyam-cli/src/webserver/devServer.js.map +1 -0
- package/codeyam-cli/src/webserver/public/cy-logo-cli.svg +13 -0
- package/codeyam-cli/src/webserver/public/favicon.ico +0 -0
- package/codeyam-cli/src/webserver/public/favicon.png +0 -0
- package/codeyam-cli/src/webserver/public/favicon.svg +13 -0
- package/codeyam-cli/src/webserver/public/icons/file-icon.svg +14 -0
- package/codeyam-cli/src/webserver/server.js +143 -0
- package/codeyam-cli/src/webserver/server.js.map +1 -0
- package/codeyam-cli/templates/codeyam-debug-skill.md +557 -0
- package/codeyam-cli/templates/codeyam-setup-skill.md +468 -0
- package/codeyam-cli/templates/codeyam-sim-skill.md +222 -0
- package/codeyam-cli/templates/codeyam-stop-hook.sh +284 -0
- package/codeyam-cli/templates/codeyam-test-skill.md +178 -0
- package/codeyam-cli/templates/codeyam-verify-skill.md +179 -0
- package/package.json +86 -0
- package/packages/ai/index.js +52 -0
- package/packages/ai/index.js.map +1 -0
- package/packages/ai/src/lib/aiConfig.js +16 -0
- package/packages/ai/src/lib/aiConfig.js.map +1 -0
- package/packages/ai/src/lib/analyzeScope.js +384 -0
- package/packages/ai/src/lib/analyzeScope.js.map +1 -0
- package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +744 -0
- package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -0
- package/packages/ai/src/lib/astScopes/methodSemantics.js +364 -0
- package/packages/ai/src/lib/astScopes/methodSemantics.js.map +1 -0
- package/packages/ai/src/lib/astScopes/nodeToSource.js +54 -0
- package/packages/ai/src/lib/astScopes/nodeToSource.js.map +1 -0
- package/packages/ai/src/lib/astScopes/paths.js +517 -0
- package/packages/ai/src/lib/astScopes/paths.js.map +1 -0
- package/packages/ai/src/lib/astScopes/patterns/blockHandler.js +24 -0
- package/packages/ai/src/lib/astScopes/patterns/blockHandler.js.map +1 -0
- package/packages/ai/src/lib/astScopes/patterns/breakStatementHandler.js +18 -0
- package/packages/ai/src/lib/astScopes/patterns/breakStatementHandler.js.map +1 -0
- package/packages/ai/src/lib/astScopes/patterns/doStatementHandler.js +22 -0
- package/packages/ai/src/lib/astScopes/patterns/doStatementHandler.js.map +1 -0
- package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js +57 -0
- package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js.map +1 -0
- package/packages/ai/src/lib/astScopes/patterns/forOfStatementHandler.js +93 -0
- package/packages/ai/src/lib/astScopes/patterns/forOfStatementHandler.js.map +1 -0
- package/packages/ai/src/lib/astScopes/patterns/forStatementHandler.js +52 -0
- package/packages/ai/src/lib/astScopes/patterns/forStatementHandler.js.map +1 -0
- package/packages/ai/src/lib/astScopes/patterns/functionDeclarationHandler.js +179 -0
- package/packages/ai/src/lib/astScopes/patterns/functionDeclarationHandler.js.map +1 -0
- package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js +36 -0
- package/packages/ai/src/lib/astScopes/patterns/ifStatementHandler.js.map +1 -0
- package/packages/ai/src/lib/astScopes/patterns/patternHandler.js +2 -0
- package/packages/ai/src/lib/astScopes/patterns/patternHandler.js.map +1 -0
- package/packages/ai/src/lib/astScopes/patterns/returnStatementHandler.js +47 -0
- package/packages/ai/src/lib/astScopes/patterns/returnStatementHandler.js.map +1 -0
- package/packages/ai/src/lib/astScopes/patterns/standaloneExpressionHandler.js +51 -0
- package/packages/ai/src/lib/astScopes/patterns/standaloneExpressionHandler.js.map +1 -0
- package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js +80 -0
- package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js.map +1 -0
- package/packages/ai/src/lib/astScopes/patterns/throwStatementHandler.js +16 -0
- package/packages/ai/src/lib/astScopes/patterns/throwStatementHandler.js.map +1 -0
- package/packages/ai/src/lib/astScopes/patterns/tryStatementHandler.js +53 -0
- package/packages/ai/src/lib/astScopes/patterns/tryStatementHandler.js.map +1 -0
- package/packages/ai/src/lib/astScopes/patterns/typeAndInterfaceHandler.js +18 -0
- package/packages/ai/src/lib/astScopes/patterns/typeAndInterfaceHandler.js.map +1 -0
- package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js +64 -0
- package/packages/ai/src/lib/astScopes/patterns/variableDeclarationHandler.js.map +1 -0
- package/packages/ai/src/lib/astScopes/patterns/whileStatementHandler.js +24 -0
- package/packages/ai/src/lib/astScopes/patterns/whileStatementHandler.js.map +1 -0
- package/packages/ai/src/lib/astScopes/processBindings.js +191 -0
- package/packages/ai/src/lib/astScopes/processBindings.js.map +1 -0
- package/packages/ai/src/lib/astScopes/processExpression.js +1485 -0
- package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -0
- package/packages/ai/src/lib/astScopes/sharedPatterns.js +108 -0
- package/packages/ai/src/lib/astScopes/sharedPatterns.js.map +1 -0
- package/packages/ai/src/lib/astScopes/types.js +31 -0
- package/packages/ai/src/lib/astScopes/types.js.map +1 -0
- package/packages/ai/src/lib/astScopes.js +12 -0
- package/packages/ai/src/lib/astScopes.js.map +1 -0
- package/packages/ai/src/lib/checkAllAttributes.js +28 -0
- package/packages/ai/src/lib/checkAllAttributes.js.map +1 -0
- package/packages/ai/src/lib/cleanOutBoundary.js +31 -0
- package/packages/ai/src/lib/cleanOutBoundary.js.map +1 -0
- package/packages/ai/src/lib/codeQualityEntityAnalysis.js +13 -0
- package/packages/ai/src/lib/codeQualityEntityAnalysis.js.map +1 -0
- package/packages/ai/src/lib/commitMessage.js +12 -0
- package/packages/ai/src/lib/commitMessage.js.map +1 -0
- package/packages/ai/src/lib/completionCall.js +367 -0
- package/packages/ai/src/lib/completionCall.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +1796 -0
- package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/EquivalencyManager.js +2 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/EquivalencyManager.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/FunctionCallManager.js +239 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/FunctionCallManager.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/ParentScopeManager.js +88 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/ParentScopeManager.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +362 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +878 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +104 -0
- package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +694 -0
- package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/cleanPath.js +21 -0
- package/packages/ai/src/lib/dataStructure/helpers/cleanPath.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/cleanPathOfNonTransformingFunctions.js +42 -0
- package/packages/ai/src/lib/dataStructure/helpers/cleanPathOfNonTransformingFunctions.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/cleanScopeNodeName.js +4 -0
- package/packages/ai/src/lib/dataStructure/helpers/cleanScopeNodeName.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +246 -0
- package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js +111 -0
- package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/determineIsFunctionCall.js +12 -0
- package/packages/ai/src/lib/dataStructure/helpers/determineIsFunctionCall.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/ensureSchemaConsistency.js +73 -0
- package/packages/ai/src/lib/dataStructure/helpers/ensureSchemaConsistency.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +589 -0
- package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/getFunctionCallRoot.js +8 -0
- package/packages/ai/src/lib/dataStructure/helpers/getFunctionCallRoot.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/getFunctionCallScopeNodeName.js +8 -0
- package/packages/ai/src/lib/dataStructure/helpers/getFunctionCallScopeNodeName.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/getFunctionCallSignature.js +13 -0
- package/packages/ai/src/lib/dataStructure/helpers/getFunctionCallSignature.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/isGenericArray.js +65 -0
- package/packages/ai/src/lib/dataStructure/helpers/isGenericArray.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/knownMethodCalls.js +128 -0
- package/packages/ai/src/lib/dataStructure/helpers/knownMethodCalls.js.map +1 -0
- package/packages/ai/src/lib/describeCodeChange.js +36 -0
- package/packages/ai/src/lib/describeCodeChange.js.map +1 -0
- package/packages/ai/src/lib/extractOverlappingMocks.js +41 -0
- package/packages/ai/src/lib/extractOverlappingMocks.js.map +1 -0
- package/packages/ai/src/lib/findMatchingAttribute.js +77 -0
- package/packages/ai/src/lib/findMatchingAttribute.js.map +1 -0
- package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js +112 -0
- package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js.map +1 -0
- package/packages/ai/src/lib/generateBranchSummary.js +40 -0
- package/packages/ai/src/lib/generateBranchSummary.js.map +1 -0
- package/packages/ai/src/lib/generateChangesEntityDocumentation.js +39 -0
- package/packages/ai/src/lib/generateChangesEntityDocumentation.js.map +1 -0
- package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js +190 -0
- package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js.map +1 -0
- package/packages/ai/src/lib/generateChangesEntityScenarioData.js +375 -0
- package/packages/ai/src/lib/generateChangesEntityScenarioData.js.map +1 -0
- package/packages/ai/src/lib/generateChangesEntityScenarios.js +499 -0
- package/packages/ai/src/lib/generateChangesEntityScenarios.js.map +1 -0
- package/packages/ai/src/lib/generateEntityDataMap.js +335 -0
- package/packages/ai/src/lib/generateEntityDataMap.js.map +1 -0
- package/packages/ai/src/lib/generateEntityDataStructure.js +63 -0
- package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -0
- package/packages/ai/src/lib/generateEntityDocumentation.js +43 -0
- package/packages/ai/src/lib/generateEntityDocumentation.js.map +1 -0
- package/packages/ai/src/lib/generateEntityKeyAttributes.js +182 -0
- package/packages/ai/src/lib/generateEntityKeyAttributes.js.map +1 -0
- package/packages/ai/src/lib/generateEntityScenarioData.js +357 -0
- package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -0
- package/packages/ai/src/lib/generateEntityScenarios.js +422 -0
- package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -0
- package/packages/ai/src/lib/generateStatementAnalysis.js +1734 -0
- package/packages/ai/src/lib/generateStatementAnalysis.js.map +1 -0
- package/packages/ai/src/lib/getCodeExplanation.js +40 -0
- package/packages/ai/src/lib/getCodeExplanation.js.map +1 -0
- package/packages/ai/src/lib/getConditionalUsagesFromCode.js +234 -0
- package/packages/ai/src/lib/getConditionalUsagesFromCode.js.map +1 -0
- package/packages/ai/src/lib/getLLMCallCost.js +12 -0
- package/packages/ai/src/lib/getLLMCallCost.js.map +1 -0
- package/packages/ai/src/lib/getLLMCallStats.js +43 -0
- package/packages/ai/src/lib/getLLMCallStats.js.map +1 -0
- package/packages/ai/src/lib/guessScenarioDataFromDescription.js +90 -0
- package/packages/ai/src/lib/guessScenarioDataFromDescription.js.map +1 -0
- package/packages/ai/src/lib/guessScenarioDataFromName.js +57 -0
- package/packages/ai/src/lib/guessScenarioDataFromName.js.map +1 -0
- package/packages/ai/src/lib/identifyReserved.js +619 -0
- package/packages/ai/src/lib/identifyReserved.js.map +1 -0
- package/packages/ai/src/lib/index.js +11 -0
- package/packages/ai/src/lib/index.js.map +1 -0
- package/packages/ai/src/lib/instantiatedInScope.js +186 -0
- package/packages/ai/src/lib/instantiatedInScope.js.map +1 -0
- package/packages/ai/src/lib/isFrontend.js +5 -0
- package/packages/ai/src/lib/isFrontend.js.map +1 -0
- package/packages/ai/src/lib/isolateScopes.js +727 -0
- package/packages/ai/src/lib/isolateScopes.js.map +1 -0
- package/packages/ai/src/lib/isolateStatements.js +882 -0
- package/packages/ai/src/lib/isolateStatements.js.map +1 -0
- package/packages/ai/src/lib/jsonTypeDefinitionToStandardTypeDefinition.js +34 -0
- package/packages/ai/src/lib/jsonTypeDefinitionToStandardTypeDefinition.js.map +1 -0
- package/packages/ai/src/lib/logOrderedMap.js +22 -0
- package/packages/ai/src/lib/logOrderedMap.js.map +1 -0
- package/packages/ai/src/lib/mergeJsonTypeDefinitions.js +50 -0
- package/packages/ai/src/lib/mergeJsonTypeDefinitions.js.map +1 -0
- package/packages/ai/src/lib/mergeStatements.js +122 -0
- package/packages/ai/src/lib/mergeStatements.js.map +1 -0
- package/packages/ai/src/lib/modelInfo.js +200 -0
- package/packages/ai/src/lib/modelInfo.js.map +1 -0
- package/packages/ai/src/lib/openai/index.js +72 -0
- package/packages/ai/src/lib/openai/index.js.map +1 -0
- package/packages/ai/src/lib/parsers/fileContentToLines.js +8 -0
- package/packages/ai/src/lib/parsers/fileContentToLines.js.map +1 -0
- package/packages/ai/src/lib/parsers/parseJsonSafe.js +40 -0
- package/packages/ai/src/lib/parsers/parseJsonSafe.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/branchSummaryGenerator.js +6 -0
- package/packages/ai/src/lib/promptGenerators/branchSummaryGenerator.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/codeQualityEntityAnalysisGenerator.js +52 -0
- package/packages/ai/src/lib/promptGenerators/codeQualityEntityAnalysisGenerator.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/commitMessageGenerator.js +36 -0
- package/packages/ai/src/lib/promptGenerators/commitMessageGenerator.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +143 -0
- package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityDocumentationGenerator.js +43 -0
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityDocumentationGenerator.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js +102 -0
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenarioDataGenerator.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js +116 -0
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/generateEntityDataMapGenerator.js +17 -0
- package/packages/ai/src/lib/promptGenerators/generateEntityDataMapGenerator.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/generateEntityDataStructureGenerator.js +14 -0
- package/packages/ai/src/lib/promptGenerators/generateEntityDataStructureGenerator.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/generateEntityDocumentationGenerator.js +34 -0
- package/packages/ai/src/lib/promptGenerators/generateEntityDocumentationGenerator.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js +40 -0
- package/packages/ai/src/lib/promptGenerators/generateEntityKeyAttributesGenerator.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/generateEntityPropsStructureGenerator.js +17 -0
- package/packages/ai/src/lib/promptGenerators/generateEntityPropsStructureGenerator.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +43 -0
- package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js +36 -0
- package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/getComponentExamplesGenerator.js +15 -0
- package/packages/ai/src/lib/promptGenerators/getComponentExamplesGenerator.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/guessEditScenarioDataFromDescriptionGenerator.js +29 -0
- package/packages/ai/src/lib/promptGenerators/guessEditScenarioDataFromDescriptionGenerator.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js +13 -0
- package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/guessScenarioDataFromNameGenerator.js +21 -0
- package/packages/ai/src/lib/promptGenerators/guessScenarioDataFromNameGenerator.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/index.js +11 -0
- package/packages/ai/src/lib/promptGenerators/index.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/noErrorAttributes.js +17 -0
- package/packages/ai/src/lib/promptGenerators/noErrorAttributes.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/summarizeDiffGenerator.js +11 -0
- package/packages/ai/src/lib/promptGenerators/summarizeDiffGenerator.js.map +1 -0
- package/packages/ai/src/lib/providers.js +36 -0
- package/packages/ai/src/lib/providers.js.map +1 -0
- package/packages/ai/src/lib/services/aiServiceMode.js +132 -0
- package/packages/ai/src/lib/services/aiServiceMode.js.map +1 -0
- package/packages/ai/src/lib/services/claudeCliAIService.js +204 -0
- package/packages/ai/src/lib/services/claudeCliAIService.js.map +1 -0
- package/packages/ai/src/lib/splitOutsideParentheses.js +287 -0
- package/packages/ai/src/lib/splitOutsideParentheses.js.map +1 -0
- package/packages/ai/src/lib/summarizeDiff.js +14 -0
- package/packages/ai/src/lib/summarizeDiff.js.map +1 -0
- package/packages/ai/src/lib/types/index.js +41 -0
- package/packages/ai/src/lib/types/index.js.map +1 -0
- package/packages/ai/src/lib/validateDataStructure.js +345 -0
- package/packages/ai/src/lib/validateDataStructure.js.map +1 -0
- package/packages/ai/src/lib/validateJson.js +64 -0
- package/packages/ai/src/lib/validateJson.js.map +1 -0
- package/packages/ai/src/lib/validatePlaywrightInstructions.js +162 -0
- package/packages/ai/src/lib/validatePlaywrightInstructions.js.map +1 -0
- package/packages/ai/src/lib/validateTypeStructure.js +72 -0
- package/packages/ai/src/lib/validateTypeStructure.js.map +1 -0
- package/packages/ai/src/lib/worker/SerializableDataStructure.js +92 -0
- package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -0
- package/packages/ai/src/lib/worker/analyzeScopeWorker.js +61 -0
- package/packages/ai/src/lib/worker/analyzeScopeWorker.js.map +1 -0
- package/packages/ai/src/lib/worker/analyzeScopeWorkerPaths.js +23 -0
- package/packages/ai/src/lib/worker/analyzeScopeWorkerPaths.js.map +1 -0
- package/packages/ai/src/lib/worker/fuzzyMatchFunctionName.js +64 -0
- package/packages/ai/src/lib/worker/fuzzyMatchFunctionName.js.map +1 -0
- package/packages/ai/src/lib/wrapperDetection/detectWrapperRequirements.js +103 -0
- package/packages/ai/src/lib/wrapperDetection/detectWrapperRequirements.js.map +1 -0
- package/packages/ai/src/lib/wrapperDetection/knownLibraryHooks.js +76 -0
- package/packages/ai/src/lib/wrapperDetection/knownLibraryHooks.js.map +1 -0
- package/packages/ai/src/lib/wrapperDetection/patterns/detectThrowOnMissingPatterns.js +155 -0
- package/packages/ai/src/lib/wrapperDetection/patterns/detectThrowOnMissingPatterns.js.map +1 -0
- package/packages/ai/src/lib/wrapperDetection/patterns/detectUseContextCalls.js +95 -0
- package/packages/ai/src/lib/wrapperDetection/patterns/detectUseContextCalls.js.map +1 -0
- package/packages/analyze/index.js +98 -0
- package/packages/analyze/index.js.map +1 -0
- package/packages/analyze/src/lib/FileAnalyzer.js +692 -0
- package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -0
- package/packages/analyze/src/lib/ProjectAnalyzer.js +246 -0
- package/packages/analyze/src/lib/ProjectAnalyzer.js.map +1 -0
- package/packages/analyze/src/lib/analysisContext.js +213 -0
- package/packages/analyze/src/lib/analysisContext.js.map +1 -0
- package/packages/analyze/src/lib/asts/index.js +179 -0
- package/packages/analyze/src/lib/asts/index.js.map +1 -0
- package/packages/analyze/src/lib/asts/nodes/getCallExpressionNames.js +33 -0
- package/packages/analyze/src/lib/asts/nodes/getCallExpressionNames.js.map +1 -0
- package/packages/analyze/src/lib/asts/nodes/getFunctionNodeType.js +17 -0
- package/packages/analyze/src/lib/asts/nodes/getFunctionNodeType.js.map +1 -0
- package/packages/analyze/src/lib/asts/nodes/getNodeType.js +108 -0
- package/packages/analyze/src/lib/asts/nodes/getNodeType.js.map +1 -0
- package/packages/analyze/src/lib/asts/nodes/getReactComponentType.js +36 -0
- package/packages/analyze/src/lib/asts/nodes/getReactComponentType.js.map +1 -0
- package/packages/analyze/src/lib/asts/nodes/index.js +137 -0
- package/packages/analyze/src/lib/asts/nodes/index.js.map +1 -0
- package/packages/analyze/src/lib/asts/nodes/isDefaultExport.js +62 -0
- package/packages/analyze/src/lib/asts/nodes/isDefaultExport.js.map +1 -0
- package/packages/analyze/src/lib/asts/nodes/propsNodeToPropsData.js +342 -0
- package/packages/analyze/src/lib/asts/nodes/propsNodeToPropsData.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js +191 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getAllEntities.js +5 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getAllEntities.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js +188 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getAllExportedNodes.js +103 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getAllExportedNodes.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js +165 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getComponentProps.js +24 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getComponentProps.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getComponentType.js +36 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getComponentType.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getDeclaredEntityNode.js +16 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getDeclaredEntityNode.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getDefaultExportedFunctionNode.js +38 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getDefaultExportedFunctionNode.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getEntityNode.js +17 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getEntityNode.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getImportMappings.js +33 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getImportMappings.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js +103 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getPropsFromFunctionalComponent.js +70 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getPropsFromFunctionalComponent.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getPseudoFile.js +10 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getPseudoFile.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getResolvedImportedTypes.js +60 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getResolvedImportedTypes.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js +88 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getSourceFile.js +6 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getSourceFile.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js +16 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForImports.js +12 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForImports.js.map +1 -0
- package/packages/analyze/src/lib/asts/sourceFiles/index.js +44 -0
- package/packages/analyze/src/lib/asts/sourceFiles/index.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/extractClassMethods.js +95 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/extractClassMethods.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +279 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/strategies/asyncComplex.js +79 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/strategies/asyncComplex.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/strategies/asyncSimple.js +20 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/strategies/asyncSimple.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/strategies/index.js +16 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/strategies/index.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/strategies/sequential.js +15 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/strategies/sequential.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/strategies/types.js +2 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/strategies/types.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +326 -0
- package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/dependencyResolver.js +83 -0
- package/packages/analyze/src/lib/files/analyze/dependencyResolver.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +171 -0
- package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/findPreviousAnalysis.js +15 -0
- package/packages/analyze/src/lib/files/analyze/findPreviousAnalysis.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/findValidExistingAnalysis.js +13 -0
- package/packages/analyze/src/lib/files/analyze/findValidExistingAnalysis.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js +72 -0
- package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/generateAnalysisTreeSha.js +118 -0
- package/packages/analyze/src/lib/files/analyze/generateAnalysisTreeSha.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/generateAnalyzedTreeSha.js +7 -0
- package/packages/analyze/src/lib/files/analyze/generateAnalyzedTreeSha.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/guessDefaultWidth.js +12 -0
- package/packages/analyze/src/lib/files/analyze/guessDefaultWidth.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/setActiveAnalysisBranches.js +94 -0
- package/packages/analyze/src/lib/files/analyze/setActiveAnalysisBranches.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.js +81 -0
- package/packages/analyze/src/lib/files/analyze/trackEntityCircularDependencies.js.map +1 -0
- package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js +85 -0
- package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js.map +1 -0
- package/packages/analyze/src/lib/files/analyzeChange.js +126 -0
- package/packages/analyze/src/lib/files/analyzeChange.js.map +1 -0
- package/packages/analyze/src/lib/files/analyzeCodeChange.js +38 -0
- package/packages/analyze/src/lib/files/analyzeCodeChange.js.map +1 -0
- package/packages/analyze/src/lib/files/analyzeEntity.js +389 -0
- package/packages/analyze/src/lib/files/analyzeEntity.js.map +1 -0
- package/packages/analyze/src/lib/files/analyzeFrameworkRoute.js +13 -0
- package/packages/analyze/src/lib/files/analyzeFrameworkRoute.js.map +1 -0
- package/packages/analyze/src/lib/files/analyzeInitial.js +108 -0
- package/packages/analyze/src/lib/files/analyzeInitial.js.map +1 -0
- package/packages/analyze/src/lib/files/analyzeNextRoute.js +81 -0
- package/packages/analyze/src/lib/files/analyzeNextRoute.js.map +1 -0
- package/packages/analyze/src/lib/files/analyzeRemixRoute.js +107 -0
- package/packages/analyze/src/lib/files/analyzeRemixRoute.js.map +1 -0
- package/packages/analyze/src/lib/files/enums/steps.js +18 -0
- package/packages/analyze/src/lib/files/enums/steps.js.map +1 -0
- package/packages/analyze/src/lib/files/extractDiffLines.js +22 -0
- package/packages/analyze/src/lib/files/extractDiffLines.js.map +1 -0
- package/packages/analyze/src/lib/files/fileAnalyzerFromCode.js +41 -0
- package/packages/analyze/src/lib/files/fileAnalyzerFromCode.js.map +1 -0
- package/packages/analyze/src/lib/files/findScenarioData.js +30 -0
- package/packages/analyze/src/lib/files/findScenarioData.js.map +1 -0
- package/packages/analyze/src/lib/files/getEntityCode.js +14 -0
- package/packages/analyze/src/lib/files/getEntityCode.js.map +1 -0
- package/packages/analyze/src/lib/files/getEntityType.js +13 -0
- package/packages/analyze/src/lib/files/getEntityType.js.map +1 -0
- package/packages/analyze/src/lib/files/getImportedExports.js +100 -0
- package/packages/analyze/src/lib/files/getImportedExports.js.map +1 -0
- package/packages/analyze/src/lib/files/getNodeModuleImports.js +24 -0
- package/packages/analyze/src/lib/files/getNodeModuleImports.js.map +1 -0
- package/packages/analyze/src/lib/files/newAnalysis.js +26 -0
- package/packages/analyze/src/lib/files/newAnalysis.js.map +1 -0
- package/packages/analyze/src/lib/files/recordStep.js +24 -0
- package/packages/analyze/src/lib/files/recordStep.js.map +1 -0
- package/packages/analyze/src/lib/files/relevantDiffPart.js +63 -0
- package/packages/analyze/src/lib/files/relevantDiffPart.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/detectChangedDataStructureFields.js +75 -0
- package/packages/analyze/src/lib/files/scenarios/detectChangedDataStructureFields.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +139 -0
- package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.js +110 -0
- package/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js +163 -0
- package/packages/analyze/src/lib/files/scenarios/generateChangesScenarios.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +176 -0
- package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js +59 -0
- package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js +146 -0
- package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/generateScenarios.js +89 -0
- package/packages/analyze/src/lib/files/scenarios/generateScenarios.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/isolateDataStructure.js +39 -0
- package/packages/analyze/src/lib/files/scenarios/isolateDataStructure.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +603 -0
- package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js +145 -0
- package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js.map +1 -0
- package/packages/analyze/src/lib/files/setImportedExports.js +207 -0
- package/packages/analyze/src/lib/files/setImportedExports.js.map +1 -0
- package/packages/analyze/src/lib/index.js +6 -0
- package/packages/analyze/src/lib/index.js.map +1 -0
- package/packages/analyze/src/lib/projects/index.js +42 -0
- package/packages/analyze/src/lib/projects/index.js.map +1 -0
- package/packages/analyze/src/lib/types/index.js +11 -0
- package/packages/analyze/src/lib/types/index.js.map +1 -0
- package/packages/analyze/src/lib/utils/deepEqual.js +32 -0
- package/packages/analyze/src/lib/utils/deepEqual.js.map +1 -0
- package/packages/analyze/src/lib/utils/getAnalysisError.js +4 -0
- package/packages/analyze/src/lib/utils/getAnalysisError.js.map +1 -0
- package/packages/analyze/src/lib/utils/measureAndReportExecutionTime.js +16 -0
- package/packages/analyze/src/lib/utils/measureAndReportExecutionTime.js.map +1 -0
- package/packages/analyze/src/lib/utils/measureExecutionTime.js +11 -0
- package/packages/analyze/src/lib/utils/measureExecutionTime.js.map +1 -0
- package/packages/aws/dynamodb/index.js +6 -0
- package/packages/aws/dynamodb/index.js.map +1 -0
- package/packages/aws/ecs/index.js +7 -0
- package/packages/aws/ecs/index.js.map +1 -0
- package/packages/aws/sqs/index.js +4 -0
- package/packages/aws/sqs/index.js.map +1 -0
- package/packages/aws/src/lib/dynamodb/loadLlmCall.js +26 -0
- package/packages/aws/src/lib/dynamodb/loadLlmCall.js.map +1 -0
- package/packages/aws/src/lib/dynamodb/loadLlmCalls.js +35 -0
- package/packages/aws/src/lib/dynamodb/loadLlmCalls.js.map +1 -0
- package/packages/aws/src/lib/dynamodb/provisionTable.js +66 -0
- package/packages/aws/src/lib/dynamodb/provisionTable.js.map +1 -0
- package/packages/aws/src/lib/dynamodb/saveLlmCall.js +67 -0
- package/packages/aws/src/lib/dynamodb/saveLlmCall.js.map +1 -0
- package/packages/aws/src/lib/dynamodb/tableNames.js +6 -0
- package/packages/aws/src/lib/dynamodb/tableNames.js.map +1 -0
- package/packages/aws/src/lib/dynamodb/types.js +2 -0
- package/packages/aws/src/lib/dynamodb/types.js.map +1 -0
- package/packages/aws/src/lib/ecs/ecsCheckTaskStatus.js +36 -0
- package/packages/aws/src/lib/ecs/ecsCheckTaskStatus.js.map +1 -0
- package/packages/aws/src/lib/ecs/ecsCreateTaskDefinition.js +138 -0
- package/packages/aws/src/lib/ecs/ecsCreateTaskDefinition.js.map +1 -0
- package/packages/aws/src/lib/ecs/ecsDefineContainer.js +30 -0
- package/packages/aws/src/lib/ecs/ecsDefineContainer.js.map +1 -0
- package/packages/aws/src/lib/ecs/ecsStartTask.js +51 -0
- package/packages/aws/src/lib/ecs/ecsStartTask.js.map +1 -0
- package/packages/aws/src/lib/ecs/ecsTaskFactory.js +87 -0
- package/packages/aws/src/lib/ecs/ecsTaskFactory.js.map +1 -0
- package/packages/aws/src/lib/sqs/getSqsQueueSizeStats.js +15 -0
- package/packages/aws/src/lib/sqs/getSqsQueueSizeStats.js.map +1 -0
- package/packages/aws/src/lib/sqs/sendSqsMessage.js +9 -0
- package/packages/aws/src/lib/sqs/sendSqsMessage.js.map +1 -0
- package/packages/generate/index.js +13 -0
- package/packages/generate/index.js.map +1 -0
- package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js +114 -0
- package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageNext.js.map +1 -0
- package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.js +101 -0
- package/packages/generate/src/lib/componentScenarioPage/componentScenarioPageRemix.js.map +1 -0
- package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +78 -0
- package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -0
- package/packages/generate/src/lib/componentScenarioPage/getImageReplacementCode.js +134 -0
- package/packages/generate/src/lib/componentScenarioPage/getImageReplacementCode.js.map +1 -0
- package/packages/generate/src/lib/componentScenarioPage/getNextJsErrorClosingCode.js +67 -0
- package/packages/generate/src/lib/componentScenarioPage/getNextJsErrorClosingCode.js.map +1 -0
- package/packages/generate/src/lib/constants.js +3 -0
- package/packages/generate/src/lib/constants.js.map +1 -0
- package/packages/generate/src/lib/deepMerge.js +44 -0
- package/packages/generate/src/lib/deepMerge.js.map +1 -0
- package/packages/generate/src/lib/directExecutionScript.js +156 -0
- package/packages/generate/src/lib/directExecutionScript.js.map +1 -0
- package/packages/generate/src/lib/escapeQuotes.js +4 -0
- package/packages/generate/src/lib/escapeQuotes.js.map +1 -0
- package/packages/generate/src/lib/getComponentImportStatement.js +23 -0
- package/packages/generate/src/lib/getComponentImportStatement.js.map +1 -0
- package/packages/generate/src/lib/getComponentImportStatements.js +24 -0
- package/packages/generate/src/lib/getComponentImportStatements.js.map +1 -0
- package/packages/generate/src/lib/getComponentScenarioPath.js +21 -0
- package/packages/generate/src/lib/getComponentScenarioPath.js.map +1 -0
- package/packages/generate/src/lib/getRelativePath.js +32 -0
- package/packages/generate/src/lib/getRelativePath.js.map +1 -0
- package/packages/generate/src/lib/handleCmdk.js +50 -0
- package/packages/generate/src/lib/handleCmdk.js.map +1 -0
- package/packages/generate/src/lib/handleRadix.js +224 -0
- package/packages/generate/src/lib/handleRadix.js.map +1 -0
- package/packages/generate/src/lib/handleWrappers.js +24 -0
- package/packages/generate/src/lib/handleWrappers.js.map +1 -0
- package/packages/generate/src/lib/libDemoComponent.js +160 -0
- package/packages/generate/src/lib/libDemoComponent.js.map +1 -0
- package/packages/generate/src/lib/mergeRootRemix.js +323 -0
- package/packages/generate/src/lib/mergeRootRemix.js.map +1 -0
- package/packages/generate/src/lib/requiredNodeModuleImports.js +45 -0
- package/packages/generate/src/lib/requiredNodeModuleImports.js.map +1 -0
- package/packages/generate/src/lib/safeFolder.js +11 -0
- package/packages/generate/src/lib/safeFolder.js.map +1 -0
- package/packages/generate/src/lib/scenarioComponent.js +92 -0
- package/packages/generate/src/lib/scenarioComponent.js.map +1 -0
- package/packages/generate/src/lib/simpleRootRemix.js +73 -0
- package/packages/generate/src/lib/simpleRootRemix.js.map +1 -0
- package/packages/github/index.js +23 -0
- package/packages/github/index.js.map +1 -0
- package/packages/github/src/lib/constants.js +4 -0
- package/packages/github/src/lib/constants.js.map +1 -0
- package/packages/github/src/lib/createProjectOctokit.js +48 -0
- package/packages/github/src/lib/createProjectOctokit.js.map +1 -0
- package/packages/github/src/lib/getBranches.js +14 -0
- package/packages/github/src/lib/getBranches.js.map +1 -0
- package/packages/github/src/lib/getCommit.js +12 -0
- package/packages/github/src/lib/getCommit.js.map +1 -0
- package/packages/github/src/lib/getCommitFromGithub.js +57 -0
- package/packages/github/src/lib/getCommitFromGithub.js.map +1 -0
- package/packages/github/src/lib/getCommits.js +37 -0
- package/packages/github/src/lib/getCommits.js.map +1 -0
- package/packages/github/src/lib/getCommitsFromGithub.js +163 -0
- package/packages/github/src/lib/getCommitsFromGithub.js.map +1 -0
- package/packages/github/src/lib/getDiffBetweenCommits.js +26 -0
- package/packages/github/src/lib/getDiffBetweenCommits.js.map +1 -0
- package/packages/github/src/lib/getFirstCommitShaAfterTimestamp.js +22 -0
- package/packages/github/src/lib/getFirstCommitShaAfterTimestamp.js.map +1 -0
- package/packages/github/src/lib/getLatestCommit.js +28 -0
- package/packages/github/src/lib/getLatestCommit.js.map +1 -0
- package/packages/github/src/lib/getOpenPullRequests.js +28 -0
- package/packages/github/src/lib/getOpenPullRequests.js.map +1 -0
- package/packages/github/src/lib/getPublicReposWithQuery.js +12 -0
- package/packages/github/src/lib/getPublicReposWithQuery.js.map +1 -0
- package/packages/github/src/lib/getPullRequestsForCommit.js +21 -0
- package/packages/github/src/lib/getPullRequestsForCommit.js.map +1 -0
- package/packages/github/src/lib/getRepoInfo.js +35 -0
- package/packages/github/src/lib/getRepoInfo.js.map +1 -0
- package/packages/github/src/lib/getRepoWithBranches.js +53 -0
- package/packages/github/src/lib/getRepoWithBranches.js.map +1 -0
- package/packages/github/src/lib/getRepos.js +13 -0
- package/packages/github/src/lib/getRepos.js.map +1 -0
- package/packages/github/src/lib/getTree.js +14 -0
- package/packages/github/src/lib/getTree.js.map +1 -0
- package/packages/github/src/lib/githubToCommit.js +20 -0
- package/packages/github/src/lib/githubToCommit.js.map +1 -0
- package/packages/github/src/lib/loadOrCreateCommit.js +139 -0
- package/packages/github/src/lib/loadOrCreateCommit.js.map +1 -0
- package/packages/github/src/lib/syncHeadBranches.js +38 -0
- package/packages/github/src/lib/syncHeadBranches.js.map +1 -0
- package/packages/github/src/lib/syncPrimaryBranch.js +72 -0
- package/packages/github/src/lib/syncPrimaryBranch.js.map +1 -0
- package/packages/github/src/lib/syncPullRequest.js +48 -0
- package/packages/github/src/lib/syncPullRequest.js.map +1 -0
- package/packages/github/src/lib/updateCommitBranchesInDb.js +40 -0
- package/packages/github/src/lib/updateCommitBranchesInDb.js.map +1 -0
- package/packages/github/src/lib/updateFilesInDb.js +74 -0
- package/packages/github/src/lib/updateFilesInDb.js.map +1 -0
- package/packages/github/src/lib/urls.js +11 -0
- package/packages/github/src/lib/urls.js.map +1 -0
- package/packages/supabase/index.js +84 -0
- package/packages/supabase/index.js.map +1 -0
- package/packages/supabase/src/lib/analysisBranchToDb.js +19 -0
- package/packages/supabase/src/lib/analysisBranchToDb.js.map +1 -0
- package/packages/supabase/src/lib/analysisToDb.js +26 -0
- package/packages/supabase/src/lib/analysisToDb.js.map +1 -0
- package/packages/supabase/src/lib/backgroundJobToDb.js +13 -0
- package/packages/supabase/src/lib/backgroundJobToDb.js.map +1 -0
- package/packages/supabase/src/lib/branchToDb.js +18 -0
- package/packages/supabase/src/lib/branchToDb.js.map +1 -0
- package/packages/supabase/src/lib/commitBranchToDb.js +13 -0
- package/packages/supabase/src/lib/commitBranchToDb.js.map +1 -0
- package/packages/supabase/src/lib/commitToDb.js +26 -0
- package/packages/supabase/src/lib/commitToDb.js.map +1 -0
- package/packages/supabase/src/lib/createOrUpdateBranchCommitStats.js +108 -0
- package/packages/supabase/src/lib/createOrUpdateBranchCommitStats.js.map +1 -0
- package/packages/supabase/src/lib/createProject.js +22 -0
- package/packages/supabase/src/lib/createProject.js.map +1 -0
- package/packages/supabase/src/lib/createRetryFetch.js +42 -0
- package/packages/supabase/src/lib/createRetryFetch.js.map +1 -0
- package/packages/supabase/src/lib/dbToAnalysis.js +48 -0
- package/packages/supabase/src/lib/dbToAnalysis.js.map +1 -0
- package/packages/supabase/src/lib/dbToAnalysisBranch.js +24 -0
- package/packages/supabase/src/lib/dbToAnalysisBranch.js.map +1 -0
- package/packages/supabase/src/lib/dbToBackgroundJob.js +13 -0
- package/packages/supabase/src/lib/dbToBackgroundJob.js.map +1 -0
- package/packages/supabase/src/lib/dbToBranch.js +22 -0
- package/packages/supabase/src/lib/dbToBranch.js.map +1 -0
- package/packages/supabase/src/lib/dbToCommit.js +40 -0
- package/packages/supabase/src/lib/dbToCommit.js.map +1 -0
- package/packages/supabase/src/lib/dbToCommitBranch.js +18 -0
- package/packages/supabase/src/lib/dbToCommitBranch.js.map +1 -0
- package/packages/supabase/src/lib/dbToEntity.js +23 -0
- package/packages/supabase/src/lib/dbToEntity.js.map +1 -0
- package/packages/supabase/src/lib/dbToEntityBranch.js +13 -0
- package/packages/supabase/src/lib/dbToEntityBranch.js.map +1 -0
- package/packages/supabase/src/lib/dbToFile.js +14 -0
- package/packages/supabase/src/lib/dbToFile.js.map +1 -0
- package/packages/supabase/src/lib/dbToProject.js +16 -0
- package/packages/supabase/src/lib/dbToProject.js.map +1 -0
- package/packages/supabase/src/lib/dbToScenario.js +24 -0
- package/packages/supabase/src/lib/dbToScenario.js.map +1 -0
- package/packages/supabase/src/lib/dbToScenarioComment.js +21 -0
- package/packages/supabase/src/lib/dbToScenarioComment.js.map +1 -0
- package/packages/supabase/src/lib/dbToUserScenario.js +19 -0
- package/packages/supabase/src/lib/dbToUserScenario.js.map +1 -0
- package/packages/supabase/src/lib/deleteBranch.js +21 -0
- package/packages/supabase/src/lib/deleteBranch.js.map +1 -0
- package/packages/supabase/src/lib/deleteEntities.js +23 -0
- package/packages/supabase/src/lib/deleteEntities.js.map +1 -0
- package/packages/supabase/src/lib/deleteFile.js +18 -0
- package/packages/supabase/src/lib/deleteFile.js.map +1 -0
- package/packages/supabase/src/lib/deleteScenarios.js +34 -0
- package/packages/supabase/src/lib/deleteScenarios.js.map +1 -0
- package/packages/supabase/src/lib/entityToDb.js +54 -0
- package/packages/supabase/src/lib/entityToDb.js.map +1 -0
- package/packages/supabase/src/lib/fileToDb.js +14 -0
- package/packages/supabase/src/lib/fileToDb.js.map +1 -0
- package/packages/supabase/src/lib/generateSha.js +15 -0
- package/packages/supabase/src/lib/generateSha.js.map +1 -0
- package/packages/supabase/src/lib/jsonUpdateUtils.js +28 -0
- package/packages/supabase/src/lib/jsonUpdateUtils.js.map +1 -0
- package/packages/supabase/src/lib/kysely/aggregationHelpers.js +66 -0
- package/packages/supabase/src/lib/kysely/aggregationHelpers.js.map +1 -0
- package/packages/supabase/src/lib/kysely/db.js +360 -0
- package/packages/supabase/src/lib/kysely/db.js.map +1 -0
- package/packages/supabase/src/lib/kysely/schemaHelpers.js +17 -0
- package/packages/supabase/src/lib/kysely/schemaHelpers.js.map +1 -0
- package/packages/supabase/src/lib/kysely/sqliteBooleanPlugin.js +34 -0
- package/packages/supabase/src/lib/kysely/sqliteBooleanPlugin.js.map +1 -0
- package/packages/supabase/src/lib/kysely/tableRelations.js +2 -0
- package/packages/supabase/src/lib/kysely/tableRelations.js.map +1 -0
- package/packages/supabase/src/lib/kysely/tableRelationsTypes.js +7 -0
- package/packages/supabase/src/lib/kysely/tableRelationsTypes.js.map +1 -0
- package/packages/supabase/src/lib/kysely/tables/analysesTable.js +52 -0
- package/packages/supabase/src/lib/kysely/tables/analysesTable.js.map +1 -0
- package/packages/supabase/src/lib/kysely/tables/analysisBranchesTable.js +24 -0
- package/packages/supabase/src/lib/kysely/tables/analysisBranchesTable.js.map +1 -0
- package/packages/supabase/src/lib/kysely/tables/backgroundJobsTable.js +28 -0
- package/packages/supabase/src/lib/kysely/tables/backgroundJobsTable.js.map +1 -0
- package/packages/supabase/src/lib/kysely/tables/branchesTable.js +34 -0
- package/packages/supabase/src/lib/kysely/tables/branchesTable.js.map +1 -0
- package/packages/supabase/src/lib/kysely/tables/commitBranchesTable.js +22 -0
- package/packages/supabase/src/lib/kysely/tables/commitBranchesTable.js.map +1 -0
- package/packages/supabase/src/lib/kysely/tables/commitsTable.js +44 -0
- package/packages/supabase/src/lib/kysely/tables/commitsTable.js.map +1 -0
- package/packages/supabase/src/lib/kysely/tables/entitiesTable.js +38 -0
- package/packages/supabase/src/lib/kysely/tables/entitiesTable.js.map +1 -0
- package/packages/supabase/src/lib/kysely/tables/entityBranchesTable.js +22 -0
- package/packages/supabase/src/lib/kysely/tables/entityBranchesTable.js.map +1 -0
- package/packages/supabase/src/lib/kysely/tables/entityStatementsTable.js +22 -0
- package/packages/supabase/src/lib/kysely/tables/entityStatementsTable.js.map +1 -0
- package/packages/supabase/src/lib/kysely/tables/filesTable.js +28 -0
- package/packages/supabase/src/lib/kysely/tables/filesTable.js.map +1 -0
- package/packages/supabase/src/lib/kysely/tables/githubPayloadsTable.js +32 -0
- package/packages/supabase/src/lib/kysely/tables/githubPayloadsTable.js.map +1 -0
- package/packages/supabase/src/lib/kysely/tables/githubUsersTable.js +22 -0
- package/packages/supabase/src/lib/kysely/tables/githubUsersTable.js.map +1 -0
- package/packages/supabase/src/lib/kysely/tables/projectsTable.js +38 -0
- package/packages/supabase/src/lib/kysely/tables/projectsTable.js.map +1 -0
- package/packages/supabase/src/lib/kysely/tables/scenarioCommentsTable.js +28 -0
- package/packages/supabase/src/lib/kysely/tables/scenarioCommentsTable.js.map +1 -0
- package/packages/supabase/src/lib/kysely/tables/scenariosTable.js +30 -0
- package/packages/supabase/src/lib/kysely/tables/scenariosTable.js.map +1 -0
- package/packages/supabase/src/lib/kysely/tables/statementsTable.js +24 -0
- package/packages/supabase/src/lib/kysely/tables/statementsTable.js.map +1 -0
- package/packages/supabase/src/lib/kysely/tables/teamsTable.js +18 -0
- package/packages/supabase/src/lib/kysely/tables/teamsTable.js.map +1 -0
- package/packages/supabase/src/lib/kysely/tables/userScenariosTable.js +24 -0
- package/packages/supabase/src/lib/kysely/tables/userScenariosTable.js.map +1 -0
- package/packages/supabase/src/lib/kysely/tables/userTeamsTable.js +17 -0
- package/packages/supabase/src/lib/kysely/tables/userTeamsTable.js.map +1 -0
- package/packages/supabase/src/lib/kysely/tables/usersTable.js +26 -0
- package/packages/supabase/src/lib/kysely/tables/usersTable.js.map +1 -0
- package/packages/supabase/src/lib/kysely/upsertHelpers.js +9 -0
- package/packages/supabase/src/lib/kysely/upsertHelpers.js.map +1 -0
- package/packages/supabase/src/lib/loadAnalyses.js +131 -0
- package/packages/supabase/src/lib/loadAnalyses.js.map +1 -0
- package/packages/supabase/src/lib/loadAnalysis.js +130 -0
- package/packages/supabase/src/lib/loadAnalysis.js.map +1 -0
- package/packages/supabase/src/lib/loadAnalysisBranches.js +152 -0
- package/packages/supabase/src/lib/loadAnalysisBranches.js.map +1 -0
- package/packages/supabase/src/lib/loadBackgroundJob.js +19 -0
- package/packages/supabase/src/lib/loadBackgroundJob.js.map +1 -0
- package/packages/supabase/src/lib/loadBranch.js +90 -0
- package/packages/supabase/src/lib/loadBranch.js.map +1 -0
- package/packages/supabase/src/lib/loadBranches.js +37 -0
- package/packages/supabase/src/lib/loadBranches.js.map +1 -0
- package/packages/supabase/src/lib/loadCommit.js +111 -0
- package/packages/supabase/src/lib/loadCommit.js.map +1 -0
- package/packages/supabase/src/lib/loadCommitBranches.js +45 -0
- package/packages/supabase/src/lib/loadCommitBranches.js.map +1 -0
- package/packages/supabase/src/lib/loadCommitMetadata.js +26 -0
- package/packages/supabase/src/lib/loadCommitMetadata.js.map +1 -0
- package/packages/supabase/src/lib/loadCommits.js +188 -0
- package/packages/supabase/src/lib/loadCommits.js.map +1 -0
- package/packages/supabase/src/lib/loadEntities.js +63 -0
- package/packages/supabase/src/lib/loadEntities.js.map +1 -0
- package/packages/supabase/src/lib/loadEntity.js +72 -0
- package/packages/supabase/src/lib/loadEntity.js.map +1 -0
- package/packages/supabase/src/lib/loadEntityBranches.js +114 -0
- package/packages/supabase/src/lib/loadEntityBranches.js.map +1 -0
- package/packages/supabase/src/lib/loadFile.js +28 -0
- package/packages/supabase/src/lib/loadFile.js.map +1 -0
- package/packages/supabase/src/lib/loadFiles.js +101 -0
- package/packages/supabase/src/lib/loadFiles.js.map +1 -0
- package/packages/supabase/src/lib/loadMostRecentPreviousAnalysis.js +80 -0
- package/packages/supabase/src/lib/loadMostRecentPreviousAnalysis.js.map +1 -0
- package/packages/supabase/src/lib/loadProject.js +52 -0
- package/packages/supabase/src/lib/loadProject.js.map +1 -0
- package/packages/supabase/src/lib/loadReadyToBeCapturedAnalyses.js +50 -0
- package/packages/supabase/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -0
- package/packages/supabase/src/lib/loadScenario.js +30 -0
- package/packages/supabase/src/lib/loadScenario.js.map +1 -0
- package/packages/supabase/src/lib/loadStatement.js +21 -0
- package/packages/supabase/src/lib/loadStatement.js.map +1 -0
- package/packages/supabase/src/lib/nullsToUndefines.js +7 -0
- package/packages/supabase/src/lib/nullsToUndefines.js.map +1 -0
- package/packages/supabase/src/lib/projectToDb.js +18 -0
- package/packages/supabase/src/lib/projectToDb.js.map +1 -0
- package/packages/supabase/src/lib/saveBackgroundEvent.js +10 -0
- package/packages/supabase/src/lib/saveBackgroundEvent.js.map +1 -0
- package/packages/supabase/src/lib/saveEntityStatements.js +20 -0
- package/packages/supabase/src/lib/saveEntityStatements.js.map +1 -0
- package/packages/supabase/src/lib/saveFiles.js +33 -0
- package/packages/supabase/src/lib/saveFiles.js.map +1 -0
- package/packages/supabase/src/lib/saveStatement.js +22 -0
- package/packages/supabase/src/lib/saveStatement.js.map +1 -0
- package/packages/supabase/src/lib/scenarioToDb.js +18 -0
- package/packages/supabase/src/lib/scenarioToDb.js.map +1 -0
- package/packages/supabase/src/lib/supabase.js +57 -0
- package/packages/supabase/src/lib/supabase.js.map +1 -0
- package/packages/supabase/src/lib/updateBackgroundJobProgress.js +61 -0
- package/packages/supabase/src/lib/updateBackgroundJobProgress.js.map +1 -0
- package/packages/supabase/src/lib/updateCommitMetadata.js +100 -0
- package/packages/supabase/src/lib/updateCommitMetadata.js.map +1 -0
- package/packages/supabase/src/lib/updateEntityBranch.js +21 -0
- package/packages/supabase/src/lib/updateEntityBranch.js.map +1 -0
- package/packages/supabase/src/lib/updateFreshAnalysisMetadata.js +42 -0
- package/packages/supabase/src/lib/updateFreshAnalysisMetadata.js.map +1 -0
- package/packages/supabase/src/lib/updateFreshAnalysisStatus.js +42 -0
- package/packages/supabase/src/lib/updateFreshAnalysisStatus.js.map +1 -0
- package/packages/supabase/src/lib/updateFreshAnalysisStatusWithScenarios.js +70 -0
- package/packages/supabase/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +1 -0
- package/packages/supabase/src/lib/updateProjectMetadata.js +60 -0
- package/packages/supabase/src/lib/updateProjectMetadata.js.map +1 -0
- package/packages/supabase/src/lib/upsertAnalyses.js +53 -0
- package/packages/supabase/src/lib/upsertAnalyses.js.map +1 -0
- package/packages/supabase/src/lib/upsertAnalysesWithScenarios.js +62 -0
- package/packages/supabase/src/lib/upsertAnalysesWithScenarios.js.map +1 -0
- package/packages/supabase/src/lib/upsertAnalysisBranches.js +72 -0
- package/packages/supabase/src/lib/upsertAnalysisBranches.js.map +1 -0
- package/packages/supabase/src/lib/upsertBackgroundJob.js +22 -0
- package/packages/supabase/src/lib/upsertBackgroundJob.js.map +1 -0
- package/packages/supabase/src/lib/upsertBranches.js +29 -0
- package/packages/supabase/src/lib/upsertBranches.js.map +1 -0
- package/packages/supabase/src/lib/upsertCommitBranches.js +29 -0
- package/packages/supabase/src/lib/upsertCommitBranches.js.map +1 -0
- package/packages/supabase/src/lib/upsertCommits.js +41 -0
- package/packages/supabase/src/lib/upsertCommits.js.map +1 -0
- package/packages/supabase/src/lib/upsertEntities.js +82 -0
- package/packages/supabase/src/lib/upsertEntities.js.map +1 -0
- package/packages/supabase/src/lib/upsertEntityBranches.js +27 -0
- package/packages/supabase/src/lib/upsertEntityBranches.js.map +1 -0
- package/packages/supabase/src/lib/upsertFiles.js +32 -0
- package/packages/supabase/src/lib/upsertFiles.js.map +1 -0
- package/packages/supabase/src/lib/upsertGithubUser.js +27 -0
- package/packages/supabase/src/lib/upsertGithubUser.js.map +1 -0
- package/packages/supabase/src/lib/upsertProjects.js +27 -0
- package/packages/supabase/src/lib/upsertProjects.js.map +1 -0
- package/packages/supabase/src/lib/upsertScenarios.js +28 -0
- package/packages/supabase/src/lib/upsertScenarios.js.map +1 -0
- package/packages/types/index.js +4 -0
- package/packages/types/index.js.map +1 -0
- package/packages/types/src/constants.js +2 -0
- package/packages/types/src/constants.js.map +1 -0
- package/packages/types/src/enums/ProjectFramework.js +10 -0
- package/packages/types/src/enums/ProjectFramework.js.map +1 -0
- package/packages/types/src/types/Analysis.js +3 -0
- package/packages/types/src/types/Analysis.js.map +1 -0
- package/packages/types/src/types/AnalysisBranch.js +2 -0
- package/packages/types/src/types/AnalysisBranch.js.map +1 -0
- package/packages/types/src/types/AnalysisMap.js +2 -0
- package/packages/types/src/types/AnalysisMap.js.map +1 -0
- package/packages/types/src/types/BackgroundJob.js +2 -0
- package/packages/types/src/types/BackgroundJob.js.map +1 -0
- package/packages/types/src/types/Branch.js +2 -0
- package/packages/types/src/types/Branch.js.map +1 -0
- package/packages/types/src/types/CodeExplanation.js +2 -0
- package/packages/types/src/types/CodeExplanation.js.map +1 -0
- package/packages/types/src/types/Commit.js +2 -0
- package/packages/types/src/types/Commit.js.map +1 -0
- package/packages/types/src/types/CommitBranch.js +2 -0
- package/packages/types/src/types/CommitBranch.js.map +1 -0
- package/packages/types/src/types/CommitChange.js +2 -0
- package/packages/types/src/types/CommitChange.js.map +1 -0
- package/packages/types/src/types/DeepPartial.js +2 -0
- package/packages/types/src/types/DeepPartial.js.map +1 -0
- package/packages/types/src/types/DeepReadonly.js +2 -0
- package/packages/types/src/types/DeepReadonly.js.map +1 -0
- package/packages/types/src/types/DependencyTreeNode.js +2 -0
- package/packages/types/src/types/DependencyTreeNode.js.map +1 -0
- package/packages/types/src/types/Entity.js +2 -0
- package/packages/types/src/types/Entity.js.map +1 -0
- package/packages/types/src/types/EntityBranch.js +2 -0
- package/packages/types/src/types/EntityBranch.js.map +1 -0
- package/packages/types/src/types/EntityMap.js +2 -0
- package/packages/types/src/types/EntityMap.js.map +1 -0
- package/packages/types/src/types/EntityType.js +2 -0
- package/packages/types/src/types/EntityType.js.map +1 -0
- package/packages/types/src/types/File.js +2 -0
- package/packages/types/src/types/File.js.map +1 -0
- package/packages/types/src/types/FilePreMock.js +2 -0
- package/packages/types/src/types/FilePreMock.js.map +1 -0
- package/packages/types/src/types/FileProp.js +2 -0
- package/packages/types/src/types/FileProp.js.map +1 -0
- package/packages/types/src/types/FileType.js +2 -0
- package/packages/types/src/types/FileType.js.map +1 -0
- package/packages/types/src/types/GithubBranch.js +2 -0
- package/packages/types/src/types/GithubBranch.js.map +1 -0
- package/packages/types/src/types/GithubFile.js +2 -0
- package/packages/types/src/types/GithubFile.js.map +1 -0
- package/packages/types/src/types/GithubRepoData.js +2 -0
- package/packages/types/src/types/GithubRepoData.js.map +1 -0
- package/packages/types/src/types/GithubRepoInfo.js +2 -0
- package/packages/types/src/types/GithubRepoInfo.js.map +1 -0
- package/packages/types/src/types/JsonTypeDefinition.js +2 -0
- package/packages/types/src/types/JsonTypeDefinition.js.map +1 -0
- package/packages/types/src/types/LlmCall.js +2 -0
- package/packages/types/src/types/LlmCall.js.map +1 -0
- package/packages/types/src/types/Mock.js +2 -0
- package/packages/types/src/types/Mock.js.map +1 -0
- package/packages/types/src/types/Project.js +2 -0
- package/packages/types/src/types/Project.js.map +1 -0
- package/packages/types/src/types/ProjectMetadata.js +2 -0
- package/packages/types/src/types/ProjectMetadata.js.map +1 -0
- package/packages/types/src/types/PropsWithTypes.js +2 -0
- package/packages/types/src/types/PropsWithTypes.js.map +1 -0
- package/packages/types/src/types/Scenario.js +2 -0
- package/packages/types/src/types/Scenario.js.map +1 -0
- package/packages/types/src/types/ScenarioComment.js +2 -0
- package/packages/types/src/types/ScenarioComment.js.map +1 -0
- package/packages/types/src/types/ScenarioData.js +2 -0
- package/packages/types/src/types/ScenarioData.js.map +1 -0
- package/packages/types/src/types/ScenariosDataStructure.js +2 -0
- package/packages/types/src/types/ScenariosDataStructure.js.map +1 -0
- package/packages/types/src/types/ScopeAnalysis.js +2 -0
- package/packages/types/src/types/ScopeAnalysis.js.map +1 -0
- package/packages/types/src/types/Statement.js +2 -0
- package/packages/types/src/types/Statement.js.map +1 -0
- package/packages/types/src/types/StatementInfo.js +2 -0
- package/packages/types/src/types/StatementInfo.js.map +1 -0
- package/packages/types/src/types/Team.js +2 -0
- package/packages/types/src/types/Team.js.map +1 -0
- package/packages/types/src/types/TimelineItem.js +2 -0
- package/packages/types/src/types/TimelineItem.js.map +1 -0
- package/packages/types/src/types/TsConfigPaths.js +2 -0
- package/packages/types/src/types/TsConfigPaths.js.map +1 -0
- package/packages/types/src/types/TypeStructures.js +2 -0
- package/packages/types/src/types/TypeStructures.js.map +1 -0
- package/packages/types/src/types/User.js +2 -0
- package/packages/types/src/types/User.js.map +1 -0
- package/packages/types/src/types/UserScenario.js +2 -0
- package/packages/types/src/types/UserScenario.js.map +1 -0
- package/packages/types/src/types/WebContainerFileSystemTree.js +2 -0
- package/packages/types/src/types/WebContainerFileSystemTree.js.map +1 -0
- package/packages/utils/index.js +27 -0
- package/packages/utils/index.js.map +1 -0
- package/packages/utils/server.js +13 -0
- package/packages/utils/server.js.map +1 -0
- package/packages/utils/src/lib/analyses/pushAnalysisError.js +10 -0
- package/packages/utils/src/lib/analyses/pushAnalysisError.js.map +1 -0
- package/packages/utils/src/lib/applyUniversalMocks.js +230 -0
- package/packages/utils/src/lib/applyUniversalMocks.js.map +1 -0
- package/packages/utils/src/lib/awsLog.js +48 -0
- package/packages/utils/src/lib/awsLog.js.map +1 -0
- package/packages/utils/src/lib/commitRuns.js +14 -0
- package/packages/utils/src/lib/commitRuns.js.map +1 -0
- package/packages/utils/src/lib/env/detectEnvFiles.js +217 -0
- package/packages/utils/src/lib/env/detectEnvFiles.js.map +1 -0
- package/packages/utils/src/lib/env/index.js +3 -0
- package/packages/utils/src/lib/env/index.js.map +1 -0
- package/packages/utils/src/lib/env/sanitizeEnvFiles.js +145 -0
- package/packages/utils/src/lib/env/sanitizeEnvFiles.js.map +1 -0
- package/packages/utils/src/lib/frameworks/frameworkRouteFileNameToRoute.js +13 -0
- package/packages/utils/src/lib/frameworks/frameworkRouteFileNameToRoute.js.map +1 -0
- package/packages/utils/src/lib/frameworks/getFrameworkRoutePath.js +29 -0
- package/packages/utils/src/lib/frameworks/getFrameworkRoutePath.js.map +1 -0
- package/packages/utils/src/lib/frameworks/getNextRoutePath.js +21 -0
- package/packages/utils/src/lib/frameworks/getNextRoutePath.js.map +1 -0
- package/packages/utils/src/lib/frameworks/getRemixRoutePath.js +19 -0
- package/packages/utils/src/lib/frameworks/getRemixRoutePath.js.map +1 -0
- package/packages/utils/src/lib/frameworks/isFrameworkRoute.js +7 -0
- package/packages/utils/src/lib/frameworks/isFrameworkRoute.js.map +1 -0
- package/packages/utils/src/lib/frameworks/isNextRoute.js +12 -0
- package/packages/utils/src/lib/frameworks/isNextRoute.js.map +1 -0
- package/packages/utils/src/lib/frameworks/isRemixRoute.js +8 -0
- package/packages/utils/src/lib/frameworks/isRemixRoute.js.map +1 -0
- package/packages/utils/src/lib/frameworks/nextRouteFileNameToRoute.js +14 -0
- package/packages/utils/src/lib/frameworks/nextRouteFileNameToRoute.js.map +1 -0
- package/packages/utils/src/lib/frameworks/remixRouteFileNameToRoute.js +21 -0
- package/packages/utils/src/lib/frameworks/remixRouteFileNameToRoute.js.map +1 -0
- package/packages/utils/src/lib/fs/copyNodeRepoQuickly.js +181 -0
- package/packages/utils/src/lib/fs/copyNodeRepoQuickly.js.map +1 -0
- package/packages/utils/src/lib/fs/rsyncCopy.js +41 -0
- package/packages/utils/src/lib/fs/rsyncCopy.js.map +1 -0
- package/packages/utils/src/lib/getFrameworkForFile.js +64 -0
- package/packages/utils/src/lib/getFrameworkForFile.js.map +1 -0
- package/packages/utils/src/lib/killProcess.server.js +102 -0
- package/packages/utils/src/lib/killProcess.server.js.map +1 -0
- package/packages/utils/src/lib/killProcessAndSubprocesses.server.js +62 -0
- package/packages/utils/src/lib/killProcessAndSubprocesses.server.js.map +1 -0
- package/packages/utils/src/lib/lightweightEntityExtractor.js +320 -0
- package/packages/utils/src/lib/lightweightEntityExtractor.js.map +1 -0
- package/packages/utils/src/lib/loadEnv.js +7 -0
- package/packages/utils/src/lib/loadEnv.js.map +1 -0
- package/packages/utils/src/lib/normalizeKey.js +4 -0
- package/packages/utils/src/lib/normalizeKey.js.map +1 -0
- package/packages/utils/src/lib/safeFileName.js +7 -0
- package/packages/utils/src/lib/safeFileName.js.map +1 -0
- package/packages/utils/src/lib/safeStringify.js +64 -0
- package/packages/utils/src/lib/safeStringify.js.map +1 -0
- package/scripts/finalize-analyzer.cjs +79 -0
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import{jsx as n,jsxs as c,Fragment as te}from"react/jsx-runtime";import{PassThrough as br}from"node:stream";import{createReadableStreamFromReadable as vr,json as D}from"@remix-run/node";import{RemixServer as wr,useLocation as Cr,useNavigate as nt,Link as Q,Meta as xa,Links as ba,ScrollRestoration as va,Scripts as wa,LiveReload as Ca,useLoaderData as Te,useRevalidator as rt,Outlet as Na,useFetcher as fe,useParams as Nr,useSearchParams as xn,useActionData as Sa}from"@remix-run/react";import*as Je from"isbot";import{renderToPipeableStream as Sr}from"react-dom/server";import{useState as M,useEffect as W,useCallback as V,createContext as Er,useContext as Ar,useRef as pe,useMemo as ee}from"react";import{HomeIcon as Ea,GitCommitIcon as Un,File as Aa,ActivityIcon as un,SettingsIcon as _a,PanelsTopLeftIcon as Pa,ComponentIcon as Ta,CheckCircle2 as Rt,Settings as $t,Clock as kt,FileText as Re,CheckCircle as bn,AlertCircle as vn,Pause as _r,Cog as ka,ListTodo as Ia,BarChart3 as Pr,Code as qn,Box as Ma,List as Ra,Tag as $a,Image as ze,CodeXml as Tr,Loader2 as Be,ChevronDown as mn,Search as kr,X as ja,ChevronLeft as Da,ChevronRight as Gn,FolderOpen as La,Code2 as Oa,Zap as Ir,AlertTriangle as Ya,Plus as Fa,Circle as za}from"lucide-react";import"fetch-retry";import Ba from"better-sqlite3";import{Pool as Ua}from"pg";import*as re from"fs";import qe,{existsSync as qa}from"fs";import*as ne from"path";import le from"path";import{OperationNodeTransformer as Ga,Kysely as Mr,ParseJSONResultsPlugin as Ha,SqliteDialect as Wa,PostgresDialect as Ka,sql as Se}from"kysely";import*as Va from"kysely/helpers/sqlite";import*as Ja from"kysely/helpers/postgres";import he from"typescript";import*as we from"fs/promises";import ge,{writeFile as Qa,readFile as Za}from"fs/promises";import*as Xa from"os";import hn from"os";import es from"prompts";import jt from"chalk";import wn,{randomUUID as ft}from"crypto";import{ResizableBox as ts}from"react-resizable";import ns from"openai";import rs from"p-queue";import Hn from"p-retry";import{exec as Cn,execSync as Ee,spawn as Nn}from"child_process";import{promisify as Sn}from"util";import{DynamoDBClient as Gt,PutItemCommand as as}from"@aws-sdk/client-dynamodb";import ss from"json5";import{LRUCache as En}from"lru-cache";import"pluralize";import"piscina";import{marshall as os}from"@aws-sdk/util-dynamodb";import is from"dotenv";import ls,{EventEmitter as cs}from"events";import{v4 as ds}from"uuid";import{fileURLToPath as Rr}from"url";import{Prism as us}from"react-syntax-highlighter";import{vscDarkPlus as ms}from"react-syntax-highlighter/dist/cjs/styles/prism/index.js";import{randomUUID as hs}from"node:crypto";import ps from"v8";import fs from"react-diff-viewer-continued";const Dt=5e3;function gs(e,t,r,a,s){return ys(e.headers.get("user-agent"))||a.isSpaMode?xs(e,t,r,a):bs(e,t,r,a)}function ys(e){return e?"isbot"in Je&&typeof Je.isbot=="function"?Je.isbot(e):"default"in Je&&typeof Je.default=="function"?Je.default(e):!1:!1}function xs(e,t,r,a){return new Promise((s,o)=>{let l=!1;const{pipe:i,abort:d}=Sr(n(wr,{context:a,url:e.url,abortDelay:Dt}),{onAllReady(){l=!0;const m=new br,u=vr(m);r.set("Content-Type","text/html"),s(new Response(u,{headers:r,status:t})),i(m)},onShellError(m){o(m)},onError(m){t=500,l&&console.error(m)}});setTimeout(d,Dt)})}function bs(e,t,r,a){return new Promise((s,o)=>{let l=!1;const{pipe:i,abort:d}=Sr(n(wr,{context:a,url:e.url,abortDelay:Dt}),{onShellReady(){l=!0;const m=new br,u=vr(m);r.set("Content-Type","text/html"),s(new Response(u,{headers:r,status:t})),i(m)},onShellError(m){o(m)},onError(m){t=500,l&&console.error(m)}});setTimeout(d,Dt)})}const vs=Object.freeze(Object.defineProperty({__proto__:null,default:gs},Symbol.toStringTag,{value:"Module"}));function ws({id:e,selected:t,onClick:r,icon:a,name:s}){const[o,l]=M(!1);W(()=>{l(!0)},[]);const i=V(()=>{r?.(e)},[r,e]);return c("button",{className:`
|
|
2
|
+
w-full aspect-square p-3 cursor-pointer focus:outline-none
|
|
3
|
+
flex flex-col items-center justify-center gap-1 text-[#626262]
|
|
4
|
+
hover:bg-[#d8d8d8] text-xs font-ibmPlexSans uppercase
|
|
5
|
+
`,onClick:i,children:[n("div",{className:`${t?"bg-primary-100 text-cygray-10":""} w-10 h-10 rounded-lg flex items-center justify-center`,children:o&&a}),n("span",{className:`${t?"text-primary-100":""} whitespace-nowrap`,children:s})]})}const Cs="/assets/cy-logo-cli-C1gnJVOL.svg";function Ns(){const e=Cr(),t=nt(),[r,a]=M(),s={width:"24px",height:"24px",strokeWidth:1.5},o=[{id:"dashboard",icon:n(Ea,{style:s}),link:"/",name:"Dashboard"},{id:"git",icon:n(Un,{style:s}),link:"/git",name:"Git"},{id:"simulations",icon:c("svg",{width:"24",height:"24",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:s,children:[n("path",{d:"M9 12.75V15.75",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),n("path",{d:"M6 15.75H12",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),n("path",{d:"M6.75 12.7498L11.325 8.17483C11.6067 7.89873 11.9858 7.7447 12.3803 7.7461C12.7747 7.74751 13.1528 7.90423 13.4325 8.18233L16.5 11.2498",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),n("path",{d:"M6 8.25C6.82843 8.25 7.5 7.57843 7.5 6.75C7.5 5.92157 6.82843 5.25 6 5.25C5.17157 5.25 4.5 5.92157 4.5 6.75C4.5 7.57843 5.17157 8.25 6 8.25Z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),n("path",{d:"M15 2.25H3C2.17157 2.25 1.5 2.92157 1.5 3.75V11.25C1.5 12.0784 2.17157 12.75 3 12.75H15C15.8284 12.75 16.5 12.0784 16.5 11.25V3.75C16.5 2.92157 15.8284 2.25 15 2.25Z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]}),link:"/simulations",name:"Simulations"},{id:"files",icon:n(Aa,{style:s}),link:"/files",name:"Files"},{id:"activity",icon:n(un,{style:s}),link:"/activity",name:"Activity"},{id:"settings",icon:n(_a,{style:s}),link:"/settings",name:"Settings"},{id:"commits",icon:n(Un,{style:s}),link:"/commits",name:"Commits",hidden:!0},{id:"pages",icon:n(Pa,{style:s}),link:"/pages",name:"Pages",hidden:!0},{id:"components",icon:n(Ta,{style:s}),link:"/components",name:"Components",hidden:!0}],l=V(i=>{const d=o.find(m=>m.id===i);d?.link&&t(d.link),a(m=>m===i?void 0:i)},[o,t]);return W(()=>{const i={dashboard:["/","/home"],git:["git"],commits:["commits"],simulations:["simulations"],activity:["activity"],files:["files"],settings:["settings"],pages:["pages"],components:["components"]};for(const[d,m]of Object.entries(i))if(m.some(u=>u==="/"?e.pathname==="/":e.pathname.includes(u))){a(d);return}a(void 0)},[e]),n("div",{id:"sidebar",className:"relative w-full h-screen bg-cygray-30 flex flex-col justify-between py-3",children:c("div",{className:"w-full h-full flex flex-col items-center",children:[n("div",{children:n(Q,{to:"/",className:"flex items-center justify-center h-20",children:n("img",{src:Cs,alt:"CodeYam",className:"h-8"})})}),o.filter(i=>!i.hidden).map(i=>n(ws,{id:i.id,selected:i.id===r,onClick:l,icon:i.icon,name:i.name},`sidebar-button-${i.id}`))]})})}const $r=Er(void 0);function Ss({children:e}){const[t,r]=M([]),a=V((o,l="info",i=5e3)=>{const m={id:`toast-${Date.now()}-${Math.random()}`,message:o,type:l,duration:i};r(u=>[...u,m])},[]),s=V(o=>{r(l=>l.filter(i=>i.id!==o))},[]);return n($r.Provider,{value:{toasts:t,showToast:a,closeToast:s},children:e})}function An(){const e=Ar($r);if(!e)throw new Error("useToast must be used within a ToastProvider");return e}function Es({toast:e,onClose:t}){W(()=>{const s=e.duration||5e3;if(s>0){const o=setTimeout(()=>{t(e.id)},s);return()=>clearTimeout(o)}},[e.id,e.duration,t]);const r={success:"â
",error:"â",info:"âšī¸",warning:"â ī¸"};return c("div",{className:`flex items-center gap-3 px-4 py-3 rounded-lg border-2 shadow-lg min-w-[320px] max-w-[500px] animate-[slideIn_0.3s_ease-out] ${{success:"bg-emerald-50 border-emerald-200 text-emerald-900",error:"bg-red-50 border-red-200 text-red-900",info:"bg-blue-50 border-blue-200 text-blue-900",warning:"bg-amber-50 border-amber-200 text-amber-900"}[e.type]}`,children:[n("span",{className:"text-2xl",children:r[e.type]}),n("p",{className:"flex-1 text-sm font-medium m-0",children:e.message}),n("button",{onClick:()=>t(e.id),className:"text-gray-500 hover:text-gray-700 text-xl leading-none bg-transparent border-none cursor-pointer p-0 w-6 h-6 flex items-center justify-center rounded transition-colors hover:bg-black/10",children:"Ã"})]})}function As({toasts:e,onClose:t}){return e.length===0?null:c("div",{className:"fixed top-4 right-4 z-10000 flex flex-col gap-2",children:[n("style",{children:`
|
|
6
|
+
@keyframes slideIn {
|
|
7
|
+
from {
|
|
8
|
+
transform: translateX(400px);
|
|
9
|
+
opacity: 0;
|
|
10
|
+
}
|
|
11
|
+
to {
|
|
12
|
+
transform: translateX(0);
|
|
13
|
+
opacity: 1;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
`}),e.map(r=>n(Es,{toast:r,onClose:t},r.id))]})}function Ye(e,t){const[r,a]=M(""),[s,o]=M(!1),[l,i]=M(null),[d,m]=M(!1);W(()=>{t&&(m(!1),o(!1),i(null))},[t]),W(()=>{if(!e||!t){t||a("");return}const h=async()=>{try{const f=await fetch(`/api/logs/${e}`);if(f.ok){const y=(await f.text()).trim().split(`
|
|
17
|
+
`).filter(x=>x.length>0);if(y.length<3){o(!1),m(!1),i(null),a("");return}const v=y.filter(x=>x.includes("CodeYam Log Level 1"));if(v.length>0){const x=v[v.length-1];a(x.replace(/.*CodeYam Log Level 1: /,""))}const w=y.find(x=>x.includes("$$INTERACTIVE_SERVER_URL$$:"));if(w){const x=w.split("$$INTERACTIVE_SERVER_URL$$:")[1].trim();i(x),m(!0)}y.some(x=>x.includes("CodeYam: Exiting start.js"))&&o(!0)}}catch{}};h().catch(()=>{});const p=setInterval(()=>{h().catch(()=>{})},2e3);return()=>clearInterval(p)},[e,t]);const u=V(()=>{a(""),o(!1),i(null),m(!1)},[]);return{lastLine:r,interactiveUrl:l,isCompleted:s,resetLogs:u}}function at({projectSlug:e,onClose:t}){const[r,a]=M("Loading logs..."),[s,o]=M(!0),[l,i]=M(!0),[d,m]=M("all"),u=pe(null);return W(()=>{const h=async()=>{try{const p=await fetch(`/api/logs/${e}`);if(p.ok){const f=await p.text();if(d==="all")a(f);else{const g=f.trim().split(`
|
|
18
|
+
`).filter(y=>{if(y.length===0)return!1;const v=y.match(/^.*CodeYam Log Level (\d+):/);return!!v&&Number(v[1])<=d});a(g.map(y=>y.replace(/^.*CodeYam Log Level \d+:\s*/,"")).join(`
|
|
19
|
+
`))}l&&u.current&&setTimeout(()=>{u.current?.scrollTo({top:u.current.scrollHeight,behavior:"smooth"})},100)}else a(`Error: ${p.status} - ${await p.text()}`)}catch(p){a(`Error fetching logs: ${p.message}`)}};if(h().catch(()=>{}),s){const p=setInterval(()=>{h().catch(()=>{})},2e3);return()=>clearInterval(p)}},[e,s,l,d]),W(()=>{const h=p=>{p.key==="Escape"&&t()};return window.addEventListener("keydown",h),()=>window.removeEventListener("keydown",h)},[t]),n("div",{className:"fixed inset-0 bg-black/70 flex items-center justify-center z-9999 p-5",onClick:t,children:c("div",{className:"bg-[#1e1e1e] rounded-lg shadow-2xl flex flex-col max-w-[1200px] w-full max-h-[90vh] overflow-hidden",onClick:h=>h.stopPropagation(),children:[c("div",{className:"flex justify-between items-center px-5 py-4 border-b border-[#333] bg-[#252525]",children:[c("h3",{className:"m-0 text-lg font-semibold text-white",children:["Analysis Logs - ",e]}),c("div",{className:"flex items-center gap-4",children:[c("label",{className:"flex items-center gap-2 text-sm text-[#ccc] select-none",children:[n("span",{children:"Log Level:"}),c("select",{value:d,onChange:h=>m(h.target.value==="all"?"all":Number(h.target.value)),className:"bg-[#333] text-white border border-[#555] rounded px-2 py-1 text-sm cursor-pointer outline-none transition-all hover:border-[#777] hover:bg-[#3a3a3a] focus:border-blue-600",children:[n("option",{value:"1",children:"1"}),n("option",{value:"2",children:"2"}),n("option",{value:"3",children:"3"}),n("option",{value:"4",children:"4"}),n("option",{value:"all",children:"All"})]})]}),c("label",{className:"flex items-center gap-1.5 text-sm text-[#ccc] cursor-pointer select-none group",children:[n("input",{type:"checkbox",checked:s,onChange:h=>o(h.target.checked),className:"cursor-pointer"}),n("span",{className:"group-hover:text-white",children:"Auto-refresh"})]}),c("label",{className:"flex items-center gap-1.5 text-sm text-[#ccc] cursor-pointer select-none group",children:[n("input",{type:"checkbox",checked:l,onChange:h=>i(h.target.checked),className:"cursor-pointer"}),n("span",{className:"group-hover:text-white",children:"Auto-scroll"})]}),n("button",{onClick:t,className:"bg-transparent border-none text-[#999] text-2xl cursor-pointer p-0 w-8 h-8 flex items-center justify-center rounded transition-all hover:bg-[#333] hover:text-white",title:"Close (Esc)",children:"â"})]})]}),n("pre",{className:"flex-1 m-0 px-5 py-4 overflow-auto font-mono text-[13px] leading-relaxed text-[#d4d4d4] bg-[#1e1e1e] whitespace-pre-wrap wrap-break-word scrollbar-thin scrollbar-thumb-[#424242] scrollbar-track-[#1e1e1e] hover:scrollbar-thumb-[#4f4f4f]",ref:u,children:r})]})})}function _s({currentRun:e,projectSlug:t,currentEntities:r=[],isAnalysisStarting:a=!1,queuedJobCount:s=0,queueJobs:o=[],currentlyExecuting:l=null,historicalRuns:i=[]}){const[d,m]=M(!1),[u,h]=M(!1),[p,f]=M(!1),[g,y]=M(null),v=!!l||o.length>0,w=!!l,x=l?.entities||r,N=!!e?.analysisCompletedAt;e?.readyToBeCaptured,e?.capturesCompleted;const C=e?.currentEntityShas&&e.currentEntityShas.length>0,b=v,{lastLine:S,isCompleted:_}=Ye(t,b),E=w||b&&!_&&!v,R=(()=>{if(b)return!1;const Y=Date.now()-30*1e3;if(e?.createdAt&&C){const F=e.analysisCompletedAt||e.createdAt;if(new Date(F).getTime()>Y)return!0}if(i.length>0){const F=i[0],Z=F.analysisCompletedAt||F.archivedAt||F.createdAt;if(Z&&new Date(Z).getTime()>Y)return!0}return!1})(),$=(()=>{const Y=Date.now()-1440*60*1e3;if(e?.createdAt&&C){const F=e.analysisCompletedAt||e.createdAt;if(new Date(F).getTime()>Y)return!0}if(i.length>0){const F=i[0],Z=F.analysisCompletedAt||F.archivedAt||F.createdAt;if(Z&&new Date(Z).getTime()>Y)return!0}return!1})(),T=a||E||s>0||R;W(()=>{const I=l?.id||null;T?I!==g&&(h(!0),f(!1),g!==null&&y(null)):(g!==null&&y(null),!$&&u&&!p&&h(!1))},[T,$,u,p,g,l?.id]);const P=()=>l?`Analyzing${o.length>0?` (+${o.length} queued)`:""}`:o.length>0?`${o.length} job${o.length>1?"s":""} queued`:E?N?"Capture in Progress":"Analysis in Progress":R?"Recently completed":"Idle",L=()=>E?"settings":s>0?"clock":R?"check":"activity";return c(te,{children:[c("div",{className:`fixed bottom-4 right-4 z-9998 bg-white rounded-lg shadow-lg border-2 transition-all duration-200 border-gray-300 ${u?"min-w-[400px] max-w-[600px]":"w-auto"}`,style:T?{borderColor:"#005C75"}:{},children:[!u&&c("div",{onClick:()=>{h(!0),f(!0),y(null)},className:"flex items-center gap-2 px-3 py-2 cursor-pointer hover:bg-gray-50 transition-colors rounded-lg",title:"Click to expand",children:[n("span",{className:`${E?"animate-spin":""}`,children:L()==="activity"?n(un,{style:{width:"20px",height:"20px",strokeWidth:1.5}}):L()==="check"?n(Rt,{size:20,style:{color:"#10B981",strokeWidth:1.5}}):L()==="settings"?n($t,{size:20,style:{strokeWidth:1.5}}):n(kt,{size:20,style:{strokeWidth:1.5}})}),c("span",{className:"text-sm font-medium text-gray-700",children:["Activity: ",P()]})]}),u&&c("div",{children:[c("div",{className:"flex justify-between items-center p-3 w-full",children:[c("div",{className:"flex items-center gap-3",children:[n("button",{onClick:()=>{h(!1),y(l?.id||null)},className:"p-1.5 bg-gray-100 text-gray-700 rounded-md hover:bg-gray-200 transition-colors shadow-sm flex items-center justify-center",title:"Collapse","aria-label":"Collapse notification",children:n("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:n("path",{d:"M3 4.5L6 7.5L9 4.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),n("div",{className:`${E?"animate-spin":""}`,children:E?n($t,{size:24,style:{strokeWidth:1.5}}):R?n(Rt,{size:24,style:{color:"#10B981",strokeWidth:1.5}}):n(un,{style:{width:"24px",height:"24px",strokeWidth:1.5}})}),n("div",{className:"flex-1 min-w-0",children:n("h3",{className:"text-sm font-bold text-gray-900 mb-1",children:E?N?"Capture in Progress":"Analysis in Progress":R?"Analysis Complete":"Activity"})})]}),n("div",{children:n("button",{onClick:()=>m(!0),className:"px-3 py-1.5 text-white rounded-md text-xs font-semibold transition-colors whitespace-nowrap",style:{backgroundColor:"#005C75"},onMouseEnter:I=>I.currentTarget.style.backgroundColor="#004560",onMouseLeave:I=>I.currentTarget.style.backgroundColor="#005C75",title:"View full analysis logs",children:"View Logs"})})]}),c("div",{className:"px-4 pb-4 border-t border-gray-200 pt-3",children:[!T&&!$&&c("div",{className:"mb-3",children:[n("p",{className:"text-xs text-gray-600 mb-2",children:"No recent analysis activity. Start an analysis to see progress here."}),c("div",{className:"text-xs text-gray-500 space-y-1",children:[n("div",{children:'âĸ Click "Analyze" on any entity in the Git or Files view'}),c("div",{children:["âĸ Or run"," ",n("code",{className:"bg-gray-100 px-1 rounded",children:"codeyam analyze"})," ","from the command line"]})]})]}),E&&N&&(e?.readyToBeCaptured??0)>0&&c("div",{className:"mb-3 border rounded-md p-2",style:{backgroundColor:"#E8F4F8",borderColor:"#B3D9E8"},children:[n("p",{className:"text-xs font-semibold mb-1",style:{color:"#003D52"},children:"Capture Progress:"}),c("p",{className:"text-xs",style:{color:"#005C75"},children:[e?.capturesCompleted??0," of"," ",e?.readyToBeCaptured??0," entities captured"]})]}),E&&x.length>0&&c("div",{className:"mb-3",children:[c("p",{className:"text-xs font-semibold text-gray-700 mb-2",children:[l?"Analyzing":N?"Capturing":"Analyzing"," ",x.length===1?"Entity":"Entities",":"]}),n("div",{className:"space-y-1 max-h-[200px] overflow-y-auto",children:x.map(I=>c(Q,{to:`/entity/${I.sha}`,className:"flex items-center gap-1.5 text-xs font-medium truncate hover:underline",style:{color:"#005C75"},title:`${I.name} - ${I.filePath}`,children:[n(Re,{size:14,style:{strokeWidth:1.5,flexShrink:0}}),c("span",{className:"truncate",children:[I.name,c("span",{className:"text-gray-500 ml-1",children:["(",I.filePath,")"]})]})]},I.sha))})]}),E&&c("div",{className:"mb-3",children:[n("p",{className:"text-xs font-semibold text-gray-700 mb-1",children:"Current Step:"}),n("p",{className:"text-xs font-mono text-gray-600 break-words",children:S||"Starting analysis..."})]}),o.length>0&&l&&c("div",{className:"mb-3",children:[c("p",{className:"text-xs font-semibold text-gray-700 mb-2",children:["Queued (",o.length,"):"]}),n("div",{className:"space-y-2 max-h-[150px] overflow-y-auto",children:o.map(I=>c("div",{className:"space-y-1",children:[I.entities.length>0?I.entities.slice(0,2).map(Y=>c(Q,{to:`/entity/${Y.sha}`,className:"flex items-center gap-1.5 text-xs font-medium truncate hover:underline",style:{color:"#005C75"},title:`${Y.name} - ${Y.filePath}`,children:[n(kt,{size:14,style:{strokeWidth:1.5,flexShrink:0}}),c("span",{className:"truncate",children:[Y.name,c("span",{className:"text-gray-500 ml-1",children:["(",Y.filePath,")"]})]})]},Y.sha)):c("div",{className:"flex items-center gap-1.5 text-xs text-gray-600 truncate",children:[n(kt,{size:14,style:{strokeWidth:1.5,flexShrink:0}}),I.entities.length," ",I.entities.length===1?"entity":"entities"]}),I.entities.length>2&&c("div",{className:"text-xs text-gray-500 italic pl-4",children:["+",I.entities.length-2," more"]})]},I.id))})]}),$&&i.length>0&&c("div",{className:"mb-3",children:[n("p",{className:"text-xs font-semibold text-gray-700 mb-2",children:"Recently Completed:"}),n("div",{className:"space-y-2",children:i.slice(0,3).map((I,Y)=>{const F=I.entities||[];F.length||I.currentEntityShas?.length||I.entityCount;const Z=I.analysisCompletedAt||I.archivedAt||I.createdAt||"",O=(()=>{if(!Z)return"";const U=Date.now()-new Date(Z).getTime(),k=Math.floor(U/6e4),q=Math.floor(U/36e5);return q>0?`${q}h ago`:k>0?`${k}m ago`:"just now"})();return n("div",{className:"text-xs bg-gray-50 rounded-md p-2",children:c("div",{className:"flex justify-between items-start mb-1",children:[n("div",{children:F.length>0&&c("div",{className:"text-gray-600 text-[10px] space-y-0.5",children:[F.slice(0,3).map(U=>c("div",{className:"flex items-center gap-1 truncate",children:[c(Q,{to:`/entity/${U.sha}`,className:"flex items-center gap-1 hover:underline truncate",style:{color:"#005C75"},children:[n(Re,{size:12,style:{strokeWidth:1.5,flexShrink:0}}),n("span",{className:"truncate",children:U.name})]}),c("span",{className:"text-gray-500 ml-1",children:["(",U.filePath,")"]})]},U.sha)),F.length>3&&c("div",{className:"text-gray-500",children:["+",F.length-3," more"]})]})}),n("div",{className:"text-gray-500 text-[10px]",children:O})]})},Y)})})]}),n("div",{className:"mt-3 pt-3 border-t border-gray-200",children:n(Q,{to:"/activity",className:"text-xs font-medium hover:underline",style:{color:"#005C75"},children:"View All Activity â"})})]})]})]}),d&&t&&n(at,{projectSlug:t,onClose:()=>m(!1)})]})}function Ce(e){return Object.fromEntries(Object.entries(e).map(([t,r])=>[t,r===null?void 0:r]))}function gt(e){const{file_id:t,project_id:r,commit_id:a,file_path:s,entity_type:o,entity_branches:l,analyses:i,commit:d,created_at:m,updated_at:u,...h}=e,p=(l??[]).map(y=>y.branch_id),f=i?i.map($e):void 0,g=d?He(d):void 0;return Ce({...h,fileId:t,projectId:r,commitId:a,filePath:s,entityType:o,commit:g,analyses:f,branchIds:p,createdAt:m,updatedAt:u})}function _n(e){return Ce({id:e.id,projectId:e.project_id,name:e.name,path:e.path,deleted:!!e.deleted,metadata:e.metadata??void 0,createdAt:e.created_at,updatedAt:e.updated_at??void 0})}function Pn(e){const{branches:t,files:r,analyzed_at:a,content_changed_at:s,created_at:o,updated_at:l,github_token:i,configuration:d,team_id:m,...u}=e;return Ce({...u,branches:t?t.map(et):void 0,files:r?r.map(_n):void 0,analyzedAt:a,contentChangedAt:s,createdAt:o,updatedAt:l})}function Ps(e){const{id:t,project_id:r,user_id:a,scenario_id:s,thumbs_up:o,user:l}=e,i=l?{username:l.github_username,avatarUrl:l.github_user.avatar_url}:void 0;return Ce({id:t,projectId:r,userId:a,scenarioId:s,thumbsUp:!!o,user:i})}function Ts(e){const{id:t,project_id:r,user_id:a,scenario_id:s,text:o,created_at:l,updated_at:i,user:d}=e,m=d?{username:d.github_username,avatarUrl:d.github_user.avatar_url}:void 0;return Ce({id:t,projectId:r,userId:a,scenarioId:s,text:o,createdAt:l,updatedAt:i,user:m})}function jr(e){const{project_id:t,analysis_id:r,previous_version_id:a,analysis:s,user_scenarios:o,scenario_comments:l,approved:i,...d}=e,m=s?$e(s):void 0,u=o?o.map(Ps):void 0,h=l?l.map(Ts):void 0;return Ce({...d,projectId:t,analysisId:r,previousVersionId:a,analysis:m,userScenarios:u,comments:h})}function ks(e){return Ce({id:e.id,analysisId:e.analysis_id,entitySha:e.entity_sha,branchId:e.branch_id,active:!!e.active,analysis:e.analysis?$e(e.analysis):void 0,entity:e.entity?gt(e.entity):void 0,branch:e.branch?et(e.branch):void 0,createdAt:e.created_at})}function $e(e){const{project_id:t,commit_id:r,file_id:a,file_path:s,entity_sha:o,entity_type:l,entity_name:i,previous_analysis_id:d,file:m,entity:u,commit:h,project:p,scenarios:f,analysis_branches:g,dependency_analyzed_tree_sha:y,analyzed_tree_sha:v,branch_commit_sha:w,committed_at:x,completed_at:N,created_at:C,updated_at:b,indirect:S,..._}=e,E=u?gt(u):void 0,R=m?_n(m):void 0,$=p?Pn(p):void 0,T=h?He(h):void 0,P=f?f.map(jr):void 0,L=g?g.map(ks):void 0,A=L?L.map(I=>I.branch):void 0;return Ce({..._,projectId:t,commitId:r,fileId:a,filePath:s,entitySha:o,entityType:l,entityName:i,previousAnalysisId:d,entity:E,file:R,commit:T,project:$,scenarios:P,analysisBranches:L,branches:A,dependencyAnalyzedTreeSha:y,analyzedTreeSha:v,branchCommitSha:w,committedAt:x,completedAt:N,createdAt:C,updatedAt:b,indirect:!!S})}function Tn(e){return Ce({id:e.id,commitId:e.commit_id,branchId:e.branch_id,active:!!e.active,commit:e.commit?He(e.commit):void 0,branch:e.branch?et(e.branch):void 0})}function Is(e){const{project_id:t,commit_id:r,created_at:a,updated_at:s,success:o,...l}=e;return Ce({...l,projectId:t,commitId:r,createdAt:a,updatedAt:s,success:!!o})}function He(e){const{project_id:t,branch_id:r,branch:a,background_jobs:s,merged_branch_id:o,mergedBranch:l,ai_message:i,html_url:d,author:m,analyses:u,entities:h,commit_branches:p,committed_at:f,analyzed_at:g,...y}=e,v=a?et(a):void 0,w=l?et(l):void 0,x=s?.length>0?Is(s[s.length-1]):void 0,N=(u??[]).map($e),C=(h??[]).map(gt),b=p?.length>0?p.map(Tn):void 0;return m&&(m.username=m.preferredUsername??m.username),Ce({...y,projectId:t,branchId:r,branch:v,backgroundJob:x,mergedBranchId:o,mergedBranch:w,aiMessage:i,htmlUrl:d,author:m,analyses:N,entities:C,commitBranches:b,committedAt:f,analyzedAt:g})}function et(e){const{project_id:t,content_changed_at:r,commits:a,analysis_branches:s,active_at:o,created_at:l,updated_at:i,primary:d,...m}=e,u=a?a.map(He):void 0,h=s?s.flatMap(p=>$e(p.analysis)):void 0;return Ce({...m,projectId:t,contentChangedAt:r,commits:u,analyses:h,activeAt:o,createdAt:l,updatedAt:i,primary:!!d})}class Ms{#e=new Rs;transformQuery(t){return this.#e.transformNode(t.node)}transformResult(t){return Promise.resolve(t.result)}}class Rs extends Ga{transformValue(t){return{...super.transformValue(t),value:typeof t.value=="boolean"?t.value?1:0:t.value}}transformPrimitiveValueList(t){return{...t,values:t.values.map(r=>typeof r=="boolean"?r?1:0:r)}}}const z=()=>null,$s={analyzed_at:z(),configuration:z(),content_changed_at:z(),created_at:z(),description:z(),github_token:z(),id:z(),metadata:z(),name:z(),path:z(),slug:z(),team_id:z(),updated_at:z()},js=Object.keys($s),Ds={active:z(),analysis_id:z(),branch_id:z(),created_at:z(),entity_sha:z(),id:z()},Ls=Object.keys(Ds),Os={active_at:z(),content_changed_at:z(),created_at:z(),id:z(),metadata:z(),name:z(),primary:z(),project_id:z(),ref:z(),sha:z(),updated_at:z()},Dr=Object.keys(Os),Ys={ai_message:z(),analyzed_at:z(),author_github_username:z(),branch_id:z(),committed_at:z(),created_at:z(),files:z(),html_url:z(),id:z(),merged_branch_id:z(),message:z(),metadata:z(),project_id:z(),sha:z(),title:z(),url:z()},Fs=Object.keys(Ys),zs={commit_id:z(),created_at:z(),description:z(),documentation:z(),entity_type:z(),file_id:z(),file_path:z(),metadata:z(),name:z(),project_id:z(),quality:z(),sha:z(),updated_at:z()},Lr=Object.keys(zs),Bs={active:z(),branch_id:z(),entity_sha:z()},Us=Object.keys(Bs),qs={created_at:z(),deleted:z(),id:z(),metadata:z(),name:z(),path:z(),project_id:z(),updated_at:z()},Gs=Object.keys(qs),Hs={analysis_id:z(),approved:z(),created_at:z(),description:z(),id:z(),metadata:z(),name:z(),previous_version_id:z(),project_id:z()},kn=Object.keys(Hs),Ws=!!Ge("ENABLE_QUERY_LOGGING"),Ks=!!Ge("ENABLE_QUERY_ERROR_LOGGING");Ge("USE_LOCAL_POSTGRESQL_FOR_TESTING");let Nt;function ce(){if(!Nt){const e=Yr();if(e==="sqlite")Nt=Vs();else if(e==="postgresql")Nt=Js();else throw new Error(`Unknown database type: ${e}`)}return Nt}function Vs(e){if(e||(e=Ge("SQLITE_PATH")),e===":memory:"||e==="memory")throw new Error("In-memory SQLite not supported in getDatabase(). Use getDatabaseForTesting() instead.");const t=re.existsSync(e),r=ne.dirname(e);if(!re.existsSync(r))re.mkdirSync(r,{recursive:!0,mode:493});else try{re.chmodSync(r,493)}catch(s){console.warn(`Warning: Could not set permissions on database directory: ${s.message}`)}const a=new Ba(e,{readonly:!1,fileMustExist:!1});if(a.pragma("journal_mode = WAL"),a.pragma("synchronous = FULL"),!process.env.CLAUDE_CODE_MODE)try{const s=a.prepare("SELECT COUNT(*) as count FROM sqlite_master WHERE type='table' AND name='projects'").get();t&&s.count===0&&(console.error("CodeYam DB ERROR: Database file existed but projects table is missing!"),console.error("This likely means SQLite created a new empty database instead of opening the existing one."),console.error("Possible causes: corruption, WAL file issues, or file locking problems."))}catch(s){console.error("CodeYam DB ERROR: Failed to verify database schema:",s)}return new Mr({dialect:new Wa({database:a}),plugins:[new Ha,new Ms],log:Or})}function Js(){const e=Zs();console.log(`CodeYam: Using PostgreSQL database at: ${e}`);const t=new Ua({connectionString:e});return t.on("error",(r,a)=>{console.error("CodeYam: Unexpected error on idle PostgreSQL client",r)}),new Mr({dialect:new Ka({pool:t}),log:Or})}let rn=null;function We(){return rn||(rn=Qs(Yr())),rn}function Or(e){e.level==="error"?Ks&&console.error("Query failed : ",{durationMs:e.queryDurationMillis,error:e.error,sql:e.query.sql,params:e.query.parameters}):Ws&&console.log("Query executed : ",{durationMs:e.queryDurationMillis,sql:e.query.sql,params:e.query.parameters})}function Qs(e){if(e==="sqlite")return Va;if(e==="postgresql")return Ja;throw new Error(`Unknown database type: ${e}`)}function Yr(){if(Ge("SQLITE_PATH"))return"sqlite";if(Ge("POSTGRESQL_URL"))return"postgresql";throw new Error("No database configuration found. Set SQLITE_PATH for SQLite or POSTGRESQL_URL for PostgreSQL")}function Zs(){const e=Ge("POSTGRESQL_URL");if(!e)throw new Error("No PostgreSQL connection string found. Set POSTGRESQL_URL environment variable.");return e}function Ge(e){return typeof window<"u"?window.env?.[e]:process.env[e]}var yt=(e=>(e.Remix="Remix",e.CodeYam="CodeYam",e.CRA="CRA",e.Next="Next",e.NextPages="NextPages",e.Unknown="Unknown",e))(yt||{});const Ht="Default Scenario";let Xs="<main>";function eo(){return Xs}function ae(...e){const t=eo(),r=e.map(s=>{if(s)return typeof s=="string"?s:s instanceof Error?`${s.name}: ${s.message}
|
|
20
|
+
${s.stack}`:typeof s=="object"?to(s):String(s)}).filter(Boolean).join(`
|
|
21
|
+
`),a=`${t} ${r}`;if(!process.env.CODEYAM_ECS_TASK_ARN){console.log(a+`
|
|
22
|
+
`);return}console.log(a.replace(/\n/g,"\r"))}function to(e,t=2){function r(a,s=new WeakMap){return a===null||typeof a!="object"?a:s.has(a)?`"[Circular: ${a.constructor.name}]"`:(s.set(a,!0),Array.isArray(a)?`[${a.map(i=>{const d=r(i,s);return typeof i=="string"?`"${d}"`:d}).join(",")}]`:`{${Object.entries(a).map(([l,i])=>{let d;return typeof i>"u"?null:(typeof i=="function"?d=`"(function: ${i.name||"anonymous"})"`:i instanceof Date?d=`"${i.toISOString()}"`:typeof i=="object"&&i!==null?d=r(i,s):typeof i=="string"?d=`"${i.replace(/"/g,'\\"')}"`:d=JSON.stringify(i),`"${l.replace(/"/g,'\\"')}":${d}`)}).filter(Boolean).join(",")}}`)}try{return JSON.stringify(e,null,t)}catch(a){const s=r(e);if(!t)return s;try{return JSON.stringify(JSON.parse(r(e)),null,t)}catch(o){return console.log("CodeYam Error: error stringifying object to provide proper spacing",{error:o,pureStringifyError:a,serialized:s}),s}}}function Lt(e,t){try{let r=function(o){if(he.isFunctionDeclaration(o)&&dt(o)){const l=o.name?.text||"default",i=o.getText(a),d=an(o);s.push({name:l,code:i,sha:Qe(t,l,i),entityType:"function",isDefault:d})}else if(he.isClassDeclaration(o)&&dt(o)){const l=o.name?.text||"default",i=o.getText(a),d=an(o),m=i.includes("React.")||i.includes("jsx")||i.includes("tsx");s.push({name:l,code:i,sha:Qe(t,l,i),entityType:m?"component":"class",isDefault:d})}else if(he.isInterfaceDeclaration(o)&&dt(o)){const l=o.name.text,i=o.getText(a);s.push({name:l,code:i,sha:Qe(t,l,i),entityType:"interface",isDefault:!1})}else if(he.isTypeAliasDeclaration(o)&&dt(o)){const l=o.name.text,i=o.getText(a);s.push({name:l,code:i,sha:Qe(t,l,i),entityType:"type",isDefault:!1})}else if(he.isVariableStatement(o)&&dt(o)){const l=an(o);o.declarationList.declarations.forEach(i=>{if(he.isIdentifier(i.name)){const d=i.name.text,m=o.getText(a),u=i.initializer?.getText(a)||"",h=(t.endsWith(".tsx")||t.endsWith(".jsx"))&&u.includes("=>")&&(u.includes("<")||u.includes("React."));s.push({name:d,code:m,sha:Qe(t,d,m),entityType:h?"component":"variable",isDefault:l})}})}else if(he.isExportAssignment(o)){const l=o.getText(a);s.push({name:"default",code:l,sha:Qe(t,"default",l),entityType:"unknown",isDefault:!0})}he.forEachChild(o,r)};const a=he.createSourceFile(t,e,he.ScriptTarget.Latest,!0),s=[];return r(a),s}catch(r){return console.error(`Failed to extract entities from ${t}:`,r),[]}}function dt(e){if(!he.canHaveModifiers(e))return!1;const t=he.getModifiers(e);return t?t.some(r=>r.kind===he.SyntaxKind.ExportKeyword):!1}function an(e){if(!he.canHaveModifiers(e))return!1;const t=he.getModifiers(e);return t?t.some(r=>r.kind===he.SyntaxKind.DefaultKeyword):!1}function Qe(e,t,r){const a=wn.createHash("sha256");return a.update(`${e}:${t}:${r}`),a.digest("hex").substring(0,40)}function Wt(e,t,r=[]){const a=Array.isArray(t)?t:[t];return s=>s.columns(a).doUpdateSet(o=>{const l=Object.keys(e).filter(i=>i!==t&&!r.includes(i));return Object.fromEntries(l.map(i=>[i,o.ref(`excluded.${i}`)]))})}function no(e){const{jsonObjectFrom:t}=We();return t(e.selectFrom("github_users").select(["username","preferred_username as preferredUsername","avatar_url as avatarUrl"]).where("github_users.username","=",e.ref("commits.author_github_username")))}async function ro({ids:e,analysisId:t}){const r=ce();try{let a=r.deleteFrom("scenarios");if(e){if(e.length===0)return;a=a.where("id","in",e)}else if(t)a=a.where("analysis_id","=",t);else throw ae("CodeYam Error: No deletion criteria provided",null,{ids:e,analysisId:t}),new Error("No deletion criteria provided for scenarios");await a.execute()}catch(a){throw ae("CodeYam Error: Database error deleting scenarios",a,{ids:e,analysisId:t}),a}}function ao(...e){try{const t=wn.createHash("sha256");for(const r of e)t.update(r);return t.digest("hex")}catch(t){throw console.log("CodeYam Error: Error generating sha",e),t}}function Wn(e,t){return t.map(r=>so(e,r))}function so(e,t){return Se` ${Se.ref(e)}.${Se.ref(t)}`.as(t)}function oo(e,t,r){return t.map(a=>io(e,a,r))}function io(e,t,r){return Se` ${Se.ref(e)}.${Se.ref(t)}`.as(`_cy_${r}:${t}`)}function lo(e,...t){const r={};for(const[a,s]of Object.entries(e)){const o=a.match(/^_cy_(.+?):(.+)$/);if(o){const[,l,i]=o;if(t.includes(l)){r[l]||(r[l]={}),r[l][i]=s;continue}console.warn(`CodeYam Warning: Unrecognized prefix in key '${a}'`);continue}r[a]=s}return r}const co=50;function uo(e,t){return e.length<=t?[e]:Array.from({length:Math.ceil(e.length/t)},(r,a)=>e.slice(a*t,a*t+t))}function Kn({projectId:e,ids:t,fileIds:r,entityName:a,entityShas:s,commitIds:o,branchCommitSha:l,limit:i}){const d=ce(),{jsonObjectFrom:m,jsonArrayFrom:u}=We();let h=d.selectFrom("analyses").selectAll("analyses");if(e&&(h=h.where("project_id","=",e)),t){if(t.length===0)return null;h=h.where("id","in",t)}if(r){if(r.length===0)return null;h=h.where("file_id","in",r)}if(o){if(o.length===0)return null;h=h.where("commit_id","in",o)}return a&&(h=h.where("entity_name","=",a)),s&&(h=h.where("entity_sha","in",s)),l&&(h=h.where("branch_commit_sha","=",l)),i&&(h=h.limit(i)),d.with("filtered_analyses",()=>h).selectFrom("filtered_analyses").selectAll("filtered_analyses").select(p=>[m(p.selectFrom("entities").select(Wn("entities",Lr)).whereRef("entities.sha","=","filtered_analyses.entity_sha").limit(1)).as("entity"),u(p.selectFrom("scenarios").select(Wn("scenarios",kn)).whereRef("scenarios.analysis_id","=","filtered_analyses.id")).as("scenarios"),u(p.selectFrom("analysis_branches").select(["id","branch_id"]).whereRef("analysis_branches.analysis_id","=","filtered_analyses.id")).as("analysis_branches")])}async function ht(e){const{ids:t,fileIds:r,entityShas:a,commitIds:s}=e;try{const l=Object.entries({id:{arr:t,key:"ids"},file_id:{arr:r,key:"fileIds"},entity_sha:{arr:a,key:"entityShas"},commit_id:{arr:s,key:"commitIds"}}).find(([d,{arr:m}])=>m?.length>0);let i=[];if(l){const[d,{arr:m,key:u}]=l,h=uo(m,co),p=[];for(let f=0;f<h.length;f++){const g=h[f],v=await Kn({...e,[u]:g}).execute();v&&p.push(...v)}i=p}else{const m=await Kn(e).execute();if(!m||m.length===0)return ae("CodeYam: No analyses found",null,e),null;i=m}return i.length===0?null:i.map($e)}catch(o){return ae("CodeYam Error: Database error in loadAnalyses",o,e),null}}function mo(e,t){const{jsonArrayFrom:r,jsonObjectFrom:a}=We();let s=e.selectFrom("analysis_branches").select(Ls).select(o=>a(o.selectFrom("branches").select(Dr).whereRef("id","=","analysis_branches.branch_id")).as("branch"));return t&&(s=t(s)),r(s)}async function Fe({id:e,analysisBranchId:t,projectId:r,fileId:a,commitId:s,entityName:o,dependencyAnalyzedTreeSha:l,analyzedTreeSha:i,includeFile:d,includeProject:m,includeCommitAndBranch:u,includeScenarios:h,includeBranches:p}){const f=ce();try{let g=f.selectFrom("analyses").selectAll("analyses");e&&(g=g.where("id","=",e)),r&&(g=g.where("project_id","=",r)),l?g=g.where("dependency_analyzed_tree_sha","=",l):i?g=g.where("analyzed_tree_sha","=",i):a&&(g=g.where("file_id","=",a)),o&&(g=g.where("entity_name","=",o)),s?g=g.where("commit_id","=",s):g=g.orderBy("created_at","desc").limit(1),t&&(g=g.innerJoin("analysis_branches","analyses.id","analysis_branches.analysis_id").where("analysis_branches.id","=",t));const{jsonObjectFrom:y,jsonArrayFrom:v}=We();g=g.select(x=>{const N=[];return N.push(y(x.selectFrom("entities").select(Lr).whereRef("entities.sha","=","analyses.entity_sha")).as("entity")),d&&N.push(y(x.selectFrom("files").select(Gs).whereRef("files.id","=","analyses.file_id")).as("file")),m&&N.push(y(x.selectFrom("projects").select(js).whereRef("projects.id","=","analyses.project_id")).as("project")),h&&N.push(v(x.selectFrom("scenarios").select(kn).whereRef("scenarios.analysis_id","=","analyses.id")).as("scenarios")),p&&N.push(mo(x,C=>C.whereRef("analysis_branches.analysis_id","=","analyses.id")).as("analysis_branches")),u&&N.push(y(x.selectFrom("commits").select(Fs).select(C=>no(C).as("author")).whereRef("commits.id","=","analyses.commit_id")).as("commit")),N});const w=await g.executeTakeFirst();return w?$e(w):(ae("CodeYam Error: Analysis not found",null,{id:e,analysisBranchId:t,projectId:r,fileId:a,commitId:s,entityName:o,dependencyAnalyzedTreeSha:l,analyzedTreeSha:i,includeFile:d,includeProject:m,includeCommitAndBranch:u,includeScenarios:h,includeBranches:p}),null)}catch(g){return ae("CodeYam Error: Database error loading analysis",g,{id:e,analysisBranchId:t,projectId:r,fileId:a,commitId:s,entityName:o,dependencyAnalyzedTreeSha:l,analyzedTreeSha:i,includeFile:d,includeProject:m,includeCommitAndBranch:u,includeScenarios:h,includeBranches:p}),null}}async function Fr({projectId:e,ids:t,names:r,includeInactive:a}){const s=ce();try{let o=s.selectFrom("branches").selectAll("branches").where("project_id","=",e);if(t){if(t.length===0)return[];o=o.where("id","in",t)}if(r){if(r.length===0)return[];o=o.where("name","in",r)}return a||(o=o.where("active_at","is not",null)),(await o.execute()).map(et)}catch(o){return ae("CodeYam Error: Database error loading branches",o,{projectId:e,ids:t,names:r,includeInactive:a}),[]}}async function ho({projectId:e,commitId:t,branchId:r,active:a,includeBranches:s}){const o=ce();try{let l=o.selectFrom("commit_branches").selectAll("commit_branches").innerJoin("branches","commit_branches.branch_id","branches.id").$if(s,m=>m.select(oo("branches",Dr,"branch"))).where("branches.project_id","=",e);t&&(l=l.where("commit_branches.commit_id","=",t)),r&&(l=l.where("commit_branches.branch_id","=",r)),a!==void 0&&(l=l.where("commit_branches.active","=",a));const i=await l.execute();return!i||i.length===0?null:i.map(m=>lo(m,"branch")).map(Tn)}catch(l){return ae("CodeYam Error: Error loading commit branches",l,{projectId:e,commitId:t,branchId:r,active:a,includeBranches:s}),null}}async function po(e){if(e.length===0)return new Map;const t=ce();try{const r=await t.selectFrom("commits").select(["id","branch_id","merged_branch_id"]).where("id","in",e).execute(),a=new Set;if(r.forEach(o=>{o.branch_id&&a.add(o.branch_id),o.merged_branch_id&&a.add(o.merged_branch_id)}),a.size===0)return new Map;const s=await t.selectFrom("branches").selectAll().where("id","in",Array.from(a)).execute();return new Map(s.map(o=>[o.id,o]))}catch(r){return ae("CodeYam Error: Loading branches for commits",r,{commitIds:e}),new Map}}async function fo(e){if(e.length===0)return new Map;const t=ce(),{jsonObjectFrom:r,jsonArrayFrom:a}=We();try{const s=await t.selectFrom("analyses").selectAll("analyses").select(l=>[r(l.selectFrom("files").select(["id","name","path"]).whereRef("files.id","=","analyses.file_id")).as("file"),a(l.selectFrom("scenarios").select(kn).whereRef("scenarios.analysis_id","=","analyses.id")).as("scenarios")]).where("commit_id","in",e).execute(),o=new Map;return s.forEach(l=>{const i=o.get(l.commit_id)||[];i.push(l),o.set(l.commit_id,i)}),o}catch(s){return ae("CodeYam Error: Loading analyses for commits",s,{commitIds:e}),new Map}}async function go(e){if(e.length===0)return new Map;const t=ce();try{const r=await t.selectFrom("entities").selectAll().where("commit_id","in",e).execute(),a=new Map;return r.forEach(s=>{const o=a.get(s.commit_id)||[];o.push(s),a.set(s.commit_id,o)}),a}catch(r){return ae("CodeYam Error: Loading entities for commits",r,{commitIds:e}),new Map}}async function Ot({projectId:e,branchId:t,ids:r,shas:a,fileNames:s,limit:o=10}){if(!e&&!r)throw new Error("Must provide projectId or ids");const l=ce(),{jsonObjectFrom:i}=We();try{let d=l.selectFrom("commits").selectAll("commits").select(y=>[i(y.selectFrom("github_users").select(["username","preferred_username as preferredUsername","avatar_url as avatarUrl"]).where("github_users.username","=",y.ref("commits.author_github_username"))).as("author")]);if(e&&(d=d.where("project_id","=",e)),r){if(r.length===0)return[];d=d.where("id","in",r)}if(a){if(a.length===0)return[];d=d.where("sha","in",a)}if(s&&s.length>0){const y=Se.join(s.map(v=>Se`${v}`),Se`, `);d=d.where(Se`
|
|
23
|
+
EXISTS (
|
|
24
|
+
SELECT 1
|
|
25
|
+
FROM json_each(${Se.ref("commits.files")}) AS f
|
|
26
|
+
WHERE json_extract(f.value, '$.fileName') IN (${y})
|
|
27
|
+
)
|
|
28
|
+
`)}t&&(d=d.where("branch_id","=",t));const m=await d.orderBy("committed_at","desc").limit(o).execute();if(!m||m.length===0)return[];const u=m.map(y=>y.id),[h,p,f]=await Promise.all([po(u),fo(u),go(u)]);return m.map(y=>{const v=y.branch_id?h.get(y.branch_id):void 0,w=y.merged_branch_id?h.get(y.merged_branch_id):void 0,x=p.get(y.id)||[],N=f.get(y.id)||[];return{...y,branch:v,mergedBranch:w,analyses:x,entities:N}}).map(He)}catch(d){return ae("CodeYam Error: Database error loading commits",d,{projectId:e,branchId:t,ids:r,shas:a,limit:o}),[]}}async function tt({projectId:e,branchId:t,fileIds:r,filePaths:a,names:s,shas:o}){if(r&&r.length==0||a&&a.length==0||s&&s.length==0||o&&o.length==0)return[];if(o&&o.length>50){const i=[];for(let d=0;d<o.length;d+=50){const m=o.slice(d,d+50),u=await tt({projectId:e,branchId:t,fileIds:r,filePaths:a,names:s,shas:m});u&&i.push(...u)}return i}const l=ce();try{const d=await l.selectFrom("entities").selectAll("entities").$if(!!t,m=>m.innerJoin("entity_branches","entity_branches.entity_sha","entities.sha").where("entity_branches.branch_id","=",t)).$if(!!e,m=>m.where("entities.project_id","=",e)).$if(!!o,m=>m.where("entities.sha","in",o)).$if(!!a,m=>m.where("entities.file_path","in",a)).$if(!!s,m=>m.where("entities.name","in",s)).$if(!!r,m=>m.where("entities.file_id","in",r)).execute();return!d||d.length===0?(console.log("Load Entities: No entities found",{projectId:e,fileIds:r,filePaths:a,shas:o}),null):d.map(gt)}catch(i){return console.log("Load Entities: Error occurred",i,{projectId:e,fileIds:r,filePaths:a,shas:o}),null}}function yo(e,t){const{jsonArrayFrom:r}=We();let a=e.selectFrom("entity_branches").select(Us);return t&&(a=t(a)),r(a)}async function zr({projectId:e,sha:t}){const r=ce();try{const a=await r.selectFrom("entities").innerJoin("files","entities.file_id","files.id").selectAll("entities").select(s=>yo(s,o=>o.whereRef("entity_branches.entity_sha","=","entities.sha")).as("entity_branches")).where("files.project_id","=",e).where("entities.sha","=",t).executeTakeFirst();return a?gt(a):(process.env.CODEYAM_E2E_BASELINE_MODE!=="true"&&ae("CodeYam Error: Load Entity: Entity not found",null,{projectId:e,sha:t}),null)}catch(a){return ae("CodeYam Error: Load Entity: Database error",a,{projectId:e,sha:t}),null}}const sn=1e3;async function Br({projectId:e,filePaths:t,fileIds:r,fileNames:a}){if(t&&t.length>50){const i=[];for(let d=0;d<t.length;d+=50){const m=t.slice(d,d+50),u=await Br({projectId:e,filePaths:m,fileIds:r,fileNames:a});u&&i.push(...u)}return i}const s=ce(),o=[];let l=0;try{for(;;){let i=s.selectFrom("files").selectAll().where("project_id","=",e).limit(sn).offset(l);if(t){if(t.length===0)return[];i=i.where("path","in",t)}if(r){if(r.length===0)return[];i=i.where("id","in",r)}if(a){if(a.length===0)return[];i=i.where("name","in",a)}const d=await i.execute();if(!d||d.length===0||(o.push(...d),d.length<sn))break;l+=sn}return o?.map(_n)}catch(i){return console.log("CodeYam Error: Error loading project files in loadFiles",i),null}}async function xo({id:e,slug:t,withBranches:r,withFiles:a,silent:s}){try{let l=ce().selectFrom("projects").selectAll();if(e)l=l.where("id","=",e);else if(t)l=l.where("slug","=",t);else throw new Error("Either id or slug must be provided");const i=await l.executeTakeFirst();if(!i)return s||console.log("CodeYam Error: Error loading project",{id:e,slug:t,withBranches:r,withFiles:a}),null;const d=Pn(i);return a&&(d.files=await Br({projectId:d.id})),r&&(d.branches=await Fr({projectId:d.id,includeInactive:!1})),d}catch(o){return s||console.log("CodeYam Error: Error loading project",o),null}}function Yt(e,t){const r={...e};for(const a in t){const s=t[a],o=e[a];s!=null&&typeof s=="object"&&!Array.isArray(s)&&o!==void 0&&o!==null&&typeof o=="object"&&!Array.isArray(o)?r[a]=Yt(o,s):s!==void 0&&(r[a]=s)}return r}async function Ze({commitId:e,commitSha:t,metadataUpdate:r,runStatusUpdate:a,archiveCurrentRun:s,updateCallback:o}){try{return await ce().transaction().execute(async l=>{const i=await l.selectFrom("commits").selectAll().$if(!!e,u=>u.where("id","=",e)).$if(!!t,u=>u.where("sha","=",t)).executeTakeFirst();if(!i)return ae(`CodeYam Error: updateCommitMetadata(): Commit ${e} not found`),null;const d=i.metadata||{};if(a)a.lastUpdatedAt??=new Date().toISOString(),a.currentEntityShas!==void 0&&(console.log("[updateCommitMetadata] Updating currentRun.currentEntityShas"),console.log(`[updateCommitMetadata] Commit SHA: ${t}`),console.log("[updateCommitMetadata] Previous entity SHAs:",d.currentRun?.currentEntityShas),console.log("[updateCommitMetadata] New entity SHAs:",a.currentEntityShas),console.log("[updateCommitMetadata] Archive flag:",s)),r=Yt(r??{},{currentRun:a});else if(!r&&!o)return d;const m=r?Yt(d,r):d;if(s&&m.currentRun){console.log("[updateCommitMetadata] ========================================"),console.log("[updateCommitMetadata] ARCHIVING CURRENT RUN"),console.log(`[updateCommitMetadata] Commit SHA: ${t}`),console.log("[updateCommitMetadata] Current run entity SHAs:",m.currentRun.currentEntityShas),console.log(`[updateCommitMetadata] Current run PIDs: analyzer=${m.currentRun.analyzerPid}, capture=${m.currentRun.capturePid}`),console.log(`[updateCommitMetadata] Current run completed: analyses=${m.currentRun.analysesCompleted}, captures=${m.currentRun.capturesCompleted}`),console.log(`[updateCommitMetadata] Historical runs before archiving: ${m.historicalRuns?.length||0}`);const u={...m.currentRun,archivedAt:new Date().toISOString()};console.log("[updateCommitMetadata] Run to archive:",JSON.stringify(u,null,2)),m.historicalRuns=[...m.historicalRuns||[],u],console.log(`[updateCommitMetadata] Historical runs after archiving: ${m.historicalRuns.length}`),console.log("[updateCommitMetadata] All historical runs:",JSON.stringify(m.historicalRuns.map(h=>({entityShas:h.currentEntityShas,archivedAt:h.archivedAt,completed:{analyses:h.analysesCompleted,captures:h.capturesCompleted}})),null,2)),console.log("[updateCommitMetadata] ========================================")}o&&await o(m,He(i));try{return await l.updateTable("commits").set({metadata:JSON.stringify(m)}).where("id","=",i.id).returningAll().executeTakeFirst()?m:(ae(`CodeYam Error: updateCommitMetadata(): Failed to update commit ${e}`),d)}catch(u){return ae(`CodeYam Error: updateCommitMetadata(): Failed to update commit ${e}`,u),d}})}catch(l){return ae(`CodeYam Error: updateCommitMetadata(): Transaction failed for commit ${e}`,l),null}}async function Ur(e,t,r="analysis"){try{return await ce().transaction().execute(async a=>{const s=await a.selectFrom("analyses").selectAll().where("id","=",e).executeTakeFirst();if(!s)return ae(`CodeYam Error: updateFreshAnalysisMetadata(): Analysis ${e} not found (source: ${r})`,null,{analysisId:e,source:r}),null;const o=$e(s);return t(o.metadata,o),await a.updateTable("analyses").set({metadata:JSON.stringify(o.metadata)}).where("id","=",e).returningAll().executeTakeFirst()?o.metadata:(ae(`CodeYam Error: updateFreshAnalysisMetadata(): Failed to update analysis ${e} (source: ${r})`,null,{analysisId:e,source:r}),null)})}catch(a){return ae(`CodeYam Error: updateFreshAnalysisMetadata(): Transaction failed for analysis ${e} (source: ${r})`,a,{analysisId:e,source:r}),null}}async function xt(e,t,r="capture"){try{return await ce().transaction().execute(async a=>{const s=await a.selectFrom("analyses").selectAll().where("id","=",e).executeTakeFirst();if(!s)return ae(`CodeYam Error: updateFreshAnalysisStatus(): Analysis ${e} not found (source: ${r})`,null,{analysisId:e,source:r}),null;const o=$e(s);return t(o.status,o),await a.updateTable("analyses").set({status:JSON.stringify(o.status)}).where("id","=",e).returningAll().executeTakeFirst()?o.status:(ae(`CodeYam Error: updateFreshAnalysisStatus(): Failed to update analysis ${e} (source: ${r})`,null,{analysisId:e,source:r}),null)})}catch(a){return ae(`CodeYam Error: updateFreshAnalysisStatus(): Transaction failed for analysis ${e} (source: ${r})`,a,{analysisId:e,source:r}),null}}async function bo({projectId:e,projectSlug:t,metadataUpdate:r,updateCallback:a}){if(!e&&!t)throw new Error("Either projectId or projectSlug must be provided");try{return await ce().transaction().execute(async s=>{const o=await s.selectFrom("projects").selectAll().$if(!!e,d=>d.where("id","=",e)).$if(!!t,d=>d.where("slug","=",t)).executeTakeFirst();if(!o)return ae(`CodeYam Error: updateProjectMetadata(): Project ${e} not found`),null;const l=o.metadata||{};if(!r&&!a)return l;const i=r?Yt(l,r):l;a&&await a(i,Pn(o));try{return await s.updateTable("projects").set({metadata:JSON.stringify(i)}).where("id","=",o.id).returningAll().executeTakeFirst()?i:(ae(`CodeYam Error: updateProjectMetadata(): Failed to update project ${e}`),null)}catch(d){return ae(`CodeYam Error: updateProjectMetadata(): Failed to update project ${e}`,d),null}})}catch(s){return ae(`CodeYam Error: updateProjectMetadata(): Transaction failed for project ${e}`,s),null}}function vo(e){const{id:t,projectId:r,analysisId:a,previousVersionId:s,analysis:o,metadata:l,...i}=e;return delete i.userScenarios,delete i.comments,"created_at"in i&&delete i.created_at,{...i,id:t??ft(),metadata:l?JSON.stringify(l):null,project_id:r,analysis_id:a,previous_version_id:s}}async function wo(e){if(e.length===0)return[];const t=ce(),r=e.map(vo);try{return(await t.insertInto("scenarios").values(r).onConflict(Wt(r[0],"id",["created_at"])).returningAll().execute()).map(jr)}catch(a){return ae("CodeYam Error: Database error upserting scenarios",a,{scenarioCount:e.length}),null}}function Co(e){const{id:t,commitId:r,branchId:a,...s}=e;return delete s.commit,delete s.branch,{...s,id:t??ft(),commit_id:r,branch_id:a}}async function Vn(e){if(e.length===0)return[];const t=ce(),r=e.map(Co);try{return(await t.insertInto("commit_branches").values(r).onConflict(Wt(r[0],"id",["created_at"])).returningAll().execute()).map(Tn)}catch(a){return ae("CodeYam Error: Database error upserting commit branches",a,{commitBranchCount:e.length,commitBranchIds:e.map(s=>s.id)}),[]}}async function No(e,t){const r=ce(),a={username:e,avatar_url:t};try{return await r.insertInto("github_users").values(a).onConflict(Wt(a,"username",[])).returningAll().executeTakeFirst()||null}catch(s){return ae("CodeYam Error: Error upserting github user",s,{username:e,avatarUrl:t}),null}}function So(e,t){const{id:r,projectId:a,branchId:s,mergedBranchId:o,aiMessage:l,htmlUrl:i,analyzedAt:d,committedAt:m,author:u,metadata:h,files:p,...f}=e;return delete f.branch,delete f.mergedBranch,delete f.backgroundJob,delete f.analyses,delete f.parents,delete f.entities,delete f.commitBranches,{...f,id:r??ft(),project_id:a??String(t),metadata:h?JSON.stringify(h):void 0,files:p?JSON.stringify(p):void 0,branch_id:s,merged_branch_id:o,author_github_username:u?.username,html_url:i,ai_message:l,analyzed_at:d,committed_at:m}}async function Eo({projectId:e,commits:t}){const r=ce();try{const a=t.reduce((l,i)=>{const{author:d}=i;return d?.username&&d?.avatarUrl&&(l[d.username]=d.avatarUrl),l},{});for(const l in a)await No(l,a[l]);const s=t.map(l=>So(l,e));return(await r.insertInto("commits").values(s).onConflict(Wt(s[0],"id",["created_at"])).returningAll().execute()).map(He)}catch(a){return ae("CodeYam Error: Error saving commits",a,{projectId:e,commitCount:t.length,commitIds:t.map(s=>s.id).filter(Boolean)}),[]}}const Ft=ne.join(Xa.homedir(),".codeyam","secrets.json"),zt=ne.join(process.cwd(),".codeyam","secrets.json");async function st(){let e={};try{if(re.existsSync(zt)){const o=await we.readFile(zt,"utf8");e=JSON.parse(o)}}catch{console.warn(jt.yellow("â Could not read project secrets file, trying home directory"))}if(!e.OPENAI_API_KEY&&!e.ANTHROPIC_API_KEY)try{if(re.existsSync(Ft)){const o=await we.readFile(Ft,"utf8");e={...JSON.parse(o),...e}}}catch{console.warn(jt.yellow("â Could not read home secrets file, falling back to environment variables"))}const t={},r=e.OPENAI_API_KEY||process.env.OPENAI_API_KEY;r&&(t.OPENAI_API_KEY=r);const a=e.ANTHROPIC_API_KEY||process.env.ANTHROPIC_API_KEY;a&&(t.ANTHROPIC_API_KEY=a);const s=e.GROQ_API_KEY||process.env.GROQ_API_KEY;return s&&(t.GROQ_API_KEY=s),t}async function Ao(e,t=!0){const r=t?Ft:zt,a=ne.dirname(r);await we.mkdir(a,{recursive:!0}),await we.writeFile(r,JSON.stringify(e,null,2)),await we.chmod(r,384)}function _o(e=!0){return e?Ft:zt}async function Jn(){const e=await st(),t=[];for(const r of t)e[r];return{isValid:!0,missing:[],secrets:e}}async function Po(e){console.log(),console.log(jt.blue("âš Configuration needed")),console.log();const t={};for(const r of e)switch(r){case"OPENAI_API_KEY":const a=await es({type:"password",name:"key",message:"OpenAI API Key",validate:s=>s&&!s.startsWith("sk-")?"OpenAI API key should start with sk-":!0});a.key&&(t.OPENAI_API_KEY=a.key);break}return t}async function To(e=!0){const t=await Jn();if(t.isValid)return t.secrets;const r=await Po(t.missing),s={...await st(),...r};await Ao(s,e);const o=_o(e);return console.log(jt.green(`â Configuration saved to ${o}`)),(await Jn()).secrets}function qr(e=process.cwd()){let t=ne.resolve(e);const r=ne.parse(t).root;for(;t!==r;){const s=ne.join(t,".codeyam","config.json");if(re.existsSync(s))return t;t=ne.dirname(t)}const a=ne.join(r,".codeyam","config.json");return re.existsSync(a)?r:null}let Gr=qr();function se(){return Gr}function ko(e){Gr=e}function Hr(e){const t={...e};for(const r in e)if(r.includes(".")){const a=r.replace(/\./g,"");t[a]=e[r]}return t}const Io={"Accordion.Item":e=>`<CYAccordion.Root type="single" collapsible>${e}</CYAccordion.Root>`,"Accordion.Header":e=>`<CYAccordion.Root type="single" collapsible><CYAccordion.Item value="item-1">${e}</CYAccordion.Item></CYAccordion.Root>`,"Accordion.Trigger":e=>`<CYAccordion.Root type="single" collapsible><CYAccordion.Item value="item-1"><CYAccordion.Header>${e}</CYAccordion.Header></CYAccordion.Item></CYAccordion.Root>`,"Accordion.Content":e=>`<CYAccordion.Root type="single" collapsible><CYAccordion.Item value="item-1">${e}</CYAccordion.Item></CYAccordion.Root>`,"AlertDialog.Trigger":e=>`<CYAlertDialog.Root>${e}</CYAlertDialog.Root>`,"AlertDialog.Portal":e=>`<CYAlertDialog.Root>${e}</CYAlertDialog.Root>`,"AlertDialog.Overlay":e=>`<CYAlertDialog.Root><CYAlertDialog.Portal>${e}</CYAlertDialog.Portal></CYAlertDialog.Root>`,"AlertDialog.Content":e=>`<CYAlertDialog.Root><CYAlertDialog.Portal>${e}</CYAlertDialog.Portal></CYAlertDialog.Root>`,"AlertDialog.Title":e=>`<CYAlertDialog.Root><CYAlertDialog.Portal><CYAlertDialog.Content>${e}</CYAlertDialog.Content></CYAlertDialog.Portal></CYAlertDialog.Root>`,"AlertDialog.Description":e=>`<CYAlertDialog.Root><CYAlertDialog.Portal><CYAlertDialog.Content>${e}</CYAlertDialog.Content></CYAlertDialog.Portal></CYAlertDialog.Root>`,"AlertDialog.Action":e=>`<CYAlertDialog.Root><CYAlertDialog.Portal><CYAlertDialog.Content>${e}</CYAlertDialog.Content></CYAlertDialog.Portal></CYAlertDialog.Root>`,"AlertDialog.Cancel":e=>`<CYAlertDialog.Root><CYAlertDialog.Portal><CYAlertDialog.Content>${e}</CYAlertDialog.Content></CYAlertDialog.Portal></CYAlertDialog.Root>`,"Avatar.Image":e=>`<CYAvatar.Root>${e}</CYAvatar.Root>`,"Avatar.Fallback":e=>`<CYAvatar.Root>${e}</CYAvatar.Root>`,"Checkbox.Indicator":e=>`<CYCheckbox.Root>${e}</CYCheckbox.Root>`,"Collapsible.Trigger":e=>`<CYCollapsible.Root>${e}</CYCollapsible.Root>`,"Collapsible.Content":e=>`<CYCollapsible.Root>${e}</CYCollapsible.Root>`,"ContextMenu.Trigger":e=>`<CYContextMenu.Root>${e}</CYContextMenu.Root>`,"ContextMenu.Portal":e=>`<CYContextMenu.Root>${e}</CYContextMenu.Root>`,"ContextMenu.Content":e=>`<CYContextMenu.Root><CYContextMenu.Portal>${e}</CYContextMenu.Portal></CYContextMenu.Root>`,"ContextMenu.Item":e=>`<CYContextMenu.Root><CYContextMenu.Content>${e}</CYContextMenu.Content></CYContextMenu.Root>`,"ContextMenu.CheckboxItem":e=>`<CYContextMenu.Root><CYContextMenu.Content>${e}</CYContextMenu.Content></CYContextMenu.Root>`,"ContextMenu.RadioGroup":e=>`<CYContextMenu.Root><CYContextMenu.Content>${e}</CYContextMenu.Content></CYContextMenu.Root>`,"ContextMenu.RadioItem":e=>`<CYContextMenu.Root><CYContextMenu.Content><CYContextMenu.RadioGroup value="item-1">${e}</CYContextMenu.RadioGroup></CYContextMenu.Content></CYContextMenu.Root>`,"ContextMenu.ItemIndicator":e=>`<CYContextMenu.Root><CYContextMenu.Content><CYContextMenu.CheckboxItem checked>${e}</CYContextMenu.CheckboxItem></CYContextMenu.Content></CYContextMenu.Root>`,"ContextMenu.Label":e=>`<CYContextMenu.Root><CYContextMenu.Content>${e}</CYContextMenu.Content></CYContextMenu.Root>`,"ContextMenu.Separator":e=>`<CYContextMenu.Root><CYContextMenu.Content>${e}</CYContextMenu.Content></CYContextMenu.Root>`,"ContextMenu.Sub":e=>`<CYContextMenu.Root><CYContextMenu.Content>${e}</CYContextMenu.Content></CYContextMenu.Root>`,"ContextMenu.SubTrigger":e=>`<CYContextMenu.Root><CYContextMenu.Content><CYContextMenu.Sub>${e}</CYContextMenu.Sub></CYContextMenu.Content></CYContextMenu.Root>`,"ContextMenu.SubContent":e=>`<CYContextMenu.Root><CYContextMenu.Content><CYContextMenu.Sub>${e}</CYContextMenu.Sub></CYContextMenu.Content></CYContextMenu.Root>`,"Dialog.Trigger":e=>`<CYDialog.Root>${e}</CYDialog.Root>`,"Dialog.Portal":e=>`<CYDialog.Root>${e}</CYDialog.Root>`,"Dialog.Overlay":e=>`<CYDialog.Root><CYDialog.Portal>${e}</CYDialog.Portal></CYDialog.Root>`,"Dialog.Content":e=>`<CYDialog.Root><CYDialog.Portal>${e}</CYDialog.Portal></CYDialog.Root>`,"Dialog.Title":e=>`<CYDialog.Root><CYDialog.Portal><CYDialog.Content>${e}</CYDialog.Content></CYDialog.Portal></CYDialog.Root>`,"Dialog.Description":e=>`<CYDialog.Root><CYDialog.Portal><CYDialog.Content>${e}</CYDialog.Content></CYDialog.Portal></CYDialog.Root>`,"Dialog.Close":e=>`<CYDialog.Root><CYDialog.Portal><CYDialog.Content>${e}</CYDialog.Content></CYDialog.Portal></CYDialog.Root>`,"DropdownMenu.Trigger":e=>`<CYDropdownMenu.Root>${e}</CYDropdownMenu.Root>`,"DropdownMenu.Portal":e=>`<CYDropdownMenu.Root>${e}</CYDropdownMenu.Root>`,"DropdownMenu.Content":e=>`<CYDropdownMenu.Root><CYDropdownMenu.Portal>${e}</CYDropdownMenu.Portal></CYDropdownMenu.Root>`,"DropdownMenu.Item":e=>`<CYDropdownMenu.Root><CYDropdownMenu.Content>${e}</CYDropdownMenu.Content></CYDropdownMenu.Root>`,"DropdownMenu.CheckboxItem":e=>`<CYDropdownMenu.Root><CYDropdownMenu.Content>${e}</CYDropdownMenu.Content></CYDropdownMenu.Root>`,"DropdownMenu.RadioGroup":e=>`<CYDropdownMenu.Root><CYDropdownMenu.Content>${e}</CYDropdownMenu.Content></CYDropdownMenu.Root>`,"DropdownMenu.RadioItem":e=>`<CYDropdownMenu.Root><CYDropdownMenu.Content><CYDropdownMenu.RadioGroup value="item-1">${e}</CYDropdownMenu.RadioGroup></CYDropdownMenu.Content></CYDropdownMenu.Root>`,"DropdownMenu.ItemIndicator":e=>`<CYDropdownMenu.Root><CYDropdownMenu.Content><CYDropdownMenu.CheckboxItem checked>${e}</CYDropdownMenu.CheckboxItem></CYDropdownMenu.Content></CYDropdownMenu.Root>`,"DropdownMenu.Label":e=>`<CYDropdownMenu.Root><CYDropdownMenu.Content>${e}</CYDropdownMenu.Content></CYDropdownMenu.Root>`,"DropdownMenu.Separator":e=>`<CYDropdownMenu.Root><CYDropdownMenu.Content>${e}</CYDropdownMenu.Content></CYDropdownMenu.Root>`,"DropdownMenu.Sub":e=>`<CYDropdownMenu.Root><CYDropdownMenu.Content>${e}</CYDropdownMenu.Content></CYDropdownMenu.Root>`,"DropdownMenu.SubTrigger":e=>`<CYDropdownMenu.Root><CYDropdownMenu.Content><CYDropdownMenu.Sub>${e}</CYDropdownMenu.Sub></CYDropdownMenu.Content></CYDropdownMenu.Root>`,"DropdownMenu.SubContent":e=>`<CYDropdownMenu.Root><CYDropdownMenu.Content><CYDropdownMenu.Sub>${e}</CYDropdownMenu.Sub></CYDropdownMenu.Content></CYDropdownMenu.Root>`,"Form.Field":e=>`<CYForm.Root>${e}</CYForm.Root>`,"Form.Label":e=>`<CYForm.Root><CYForm.Field name="test-field">${e}</CYForm.Field></CYForm.Root>`,"Form.Control":e=>`<CYForm.Root><CYForm.Field name="test-field">${e}</CYForm.Field></CYForm.Root>`,"Form.Message":e=>`<CYForm.Root><CYForm.Field name="test-field">${e}</CYForm.Field></CYForm.Root>`,"Form.ValidityState":e=>`<CYForm.Root><CYForm.Field name="test-field">${e}</CYForm.Field></CYForm.Root>`,"Form.Submit":e=>`<CYForm.Root>${e}</CYForm.Root>`,"HoverCard.Trigger":e=>`<CYHoverCard.Root>${e}</CYHoverCard.Root>`,"HoverCard.Portal":e=>`<CYHoverCard.Root>${e}</CYHoverCard.Root>`,"HoverCard.Content":e=>`<CYHoverCard.Root><CYHoverCard.Portal>${e}</CYHoverCard.Portal></CYHoverCard.Root>`,"Menubar.Menu":e=>`<CYMenubar.Root>${e}</CYMenubar.Root>`,"Menubar.Trigger":e=>`<CYMenubar.Root><CYMenubar.Menu>${e}</CYMenubar.Menu></CYMenubar.Root>`,"Menubar.Portal":e=>`<CYMenubar.Root><CYMenubar.Menu>${e}</CYMenubar.Menu></CYMenubar.Root>`,"Menubar.Content":e=>`<CYMenubar.Root><CYMenubar.Menu>${e}</CYMenubar.Menu></CYMenubar.Root>`,"Menubar.Item":e=>`<CYMenubar.Root><CYMenubar.Menu><CYMenubar.Content>${e}</CYMenubar.Content></CYMenubar.Menu></CYMenubar.Root>`,"NavigationMenu.List":e=>`<CYNavigationMenu.Root>${e}</CYNavigationMenu.Root>`,"NavigationMenu.Item":e=>`<CYNavigationMenu.Root><CYNavigationMenu.List>${e}</CYNavigationMenu.List></CYNavigationMenu.Root>`,"NavigationMenu.Trigger":e=>`<CYNavigationMenu.Root><CYNavigationMenu.List><CYNavigationMenu.Item>${e}</CYNavigationMenu.Item></CYNavigationMenu.List></CYNavigationMenu.Root>`,"NavigationMenu.Content":e=>`<CYNavigationMenu.Root><CYNavigationMenu.List><CYNavigationMenu.Item><CYNavigationMenu.Trigger />{/* Dummy trigger for context */}${e}</CYNavigationMenu.Item></CYNavigationMenu.List></CYNavigationMenu.Root>`,"NavigationMenu.Link":e=>`<CYNavigationMenu.Root><CYNavigationMenu.List><CYNavigationMenu.Item>${e}</CYNavigationMenu.Item></CYNavigationMenu.List></CYNavigationMenu.Root>`,"NavigationMenu.Indicator":e=>`<CYNavigationMenu.Root><CYNavigationMenu.List><CYNavigationMenu.Item><CYNavigationMenu.Trigger />{/* Dummy trigger for context */}</CYNavigationMenu.Item>${e}</CYNavigationMenu.List></CYNavigationMenu.Root>`,"NavigationMenu.Viewport":e=>`<CYNavigationMenu.Root>${e}</CYNavigationMenu.Root>`,"Popover.Trigger":e=>`<CYPopover.Root>${e}</CYPopover.Root>`,"Popover.Portal":e=>`<CYPopover.Root>${e}</CYPopover.Root>`,"Popover.Content":e=>`<CYPopover.Root><CYPopover.Portal>${e}</CYPopover.Portal></CYPopover.Root>`,"Popover.Close":e=>`<CYPopover.Root><CYPopover.Content>${e}</CYPopover.Content></CYPopover.Root>`,"Popover.Anchor":e=>`<CYPopover.Root>${e}</CYPopover.Root>`,"Progress.Indicator":e=>`<CYProgress.Root value={50}>${e}</CYProgress.Root>`,"RadioGroup.Item":e=>`<CYRadioGroup.Root>${e}</CYRadioGroup.Root>`,"RadioGroup.Indicator":e=>`<CYRadioGroup.Root><CYRadioGroup.Item value="item-1">${e}</CYRadioGroup.Item></CYRadioGroup.Root>`,"ScrollArea.Viewport":e=>`<CYScrollArea.Root>${e}</CYScrollArea.Root>`,"ScrollArea.Scrollbar":e=>`<CYScrollArea.Root>${e}</CYScrollArea.Root>`,"ScrollArea.Thumb":e=>`<CYScrollArea.Root><CYScrollArea.Scrollbar orientation="vertical">${e}</CYScrollArea.Scrollbar></CYScrollArea.Root>`,"ScrollArea.Corner":e=>`<CYScrollArea.Root>${e}</CYScrollArea.Root>`,"Select.Trigger":e=>`<CYSelect.Root>${e}</CYSelect.Root>`,"Select.Value":e=>`<CYSelect.Root><CYSelect.Trigger>${e}</CYSelect.Trigger></CYSelect.Root>`,"Select.Icon":e=>`<CYSelect.Root><CYSelect.Trigger>${e}</CYSelect.Trigger></CYSelect.Root>`,"Select.Portal":e=>`<CYSelect.Root>${e}</CYSelect.Root>`,"Select.Content":e=>`<CYSelect.Root><CYSelect.Portal>${e}</CYSelect.Portal></CYSelect.Root>`,"Select.Viewport":e=>`<CYSelect.Root><CYSelect.Content>${e}</CYSelect.Content></CYSelect.Root>`,"Select.Item":e=>`<CYSelect.Root><CYSelect.Content>${e}</CYSelect.Content></CYSelect.Root>`,"Select.ItemText":e=>`<CYSelect.Root><CYSelect.Content><CYSelect.Item value="item-1">${e}</CYSelect.Item></CYSelect.Content></CYSelect.Root>`,"Select.ItemIndicator":e=>`<CYSelect.Root><CYSelect.Content><CYSelect.Item value="item-1">${e}</CYSelect.Item></CYSelect.Content></CYSelect.Root>`,"Select.Group":e=>`<CYSelect.Root><CYSelect.Content>${e}</CYSelect.Content></CYSelect.Root>`,"Select.Label":e=>`<CYSelect.Root><CYSelect.Content><CYSelect.Group>${e}</CYSelect.Group></CYSelect.Content></CYSelect.Root>`,"Select.Separator":e=>`<CYSelect.Root><CYSelect.Content>${e}</CYSelect.Content></CYSelect.Root>`,"Slider.Track":e=>`<CYSlider.Root>${e}</CYSlider.Root>`,"Slider.Range":e=>`<CYSlider.Root><CYSlider.Track>${e}</CYSlider.Track></CYSlider.Root>`,"Slider.Thumb":e=>`<CYSlider.Root>${e}</CYSlider.Root>`,"Switch.Thumb":e=>`<CYSwitch.Root>${e}</CYSwitch.Root>`,"Tabs.List":e=>`<CYTabs.Root defaultValue="tab1">${e}</CYTabs.Root>`,"Tabs.Trigger":e=>`<CYTabs.Root defaultValue="tab1"><CYTabs.List>${e}</CYTabs.List></CYTabs.Root>`,"Tabs.Content":e=>`<CYTabs.Root defaultValue="tab1">${e}</CYTabs.Root>`,"Toast.Root":e=>`<CYToast.Provider>${e}</CYToast.Provider>`,"Toast.Title":e=>`<CYToast.Provider><CYToast.Root>${e}</CYToast.Root></CYToast.Provider>`,"Toast.Description":e=>`<CYToast.Provider><CYToast.Root>${e}</CYToast.Root></CYToast.Provider>`,"Toast.Action":e=>`<CYToast.Provider><CYToast.Root>${e}</CYToast.Root></CYToast.Provider>`,"Toast.Close":e=>`<CYToast.Provider><CYToast.Root>${e}</CYToast.Root></CYToast.Provider>`,"Toast.Viewport":e=>`<CYToast.Provider>${e}</CYToast.Provider>`,"ToggleGroup.Item":e=>`<CYToggleGroup.Root type="single">${e}</CYToggleGroup.Root>`,"Toolbar.Button":e=>`<CYToolbar.Root>${e}</CYToolbar.Root>`,"Toolbar.Link":e=>`<CYToolbar.Root>${e}</CYToolbar.Root>`,"Toolbar.Separator":e=>`<CYToolbar.Root>${e}</CYToolbar.Root>`,"Toolbar.ToggleGroup":e=>`<CYToolbar.Root>${e}</CYToolbar.Root>`,"Toolbar.ToggleItem":e=>`<CYToolbar.Root><CYToolbar.ToggleGroup type="single">${e}</CYToolbar.ToggleGroup></CYToolbar.Root>`,"Tooltip.Root":e=>`<CYTooltip.Provider>${e}</CYTooltip.Provider>`,"Tooltip.Trigger":e=>`<CYTooltip.Provider><CYTooltip.Root>${e}</CYTooltip.Root></CYTooltip.Provider>`,"Tooltip.Portal":e=>`<CYTooltip.Provider><CYTooltip.Root>${e}</CYTooltip.Root></CYTooltip.Provider>`,"Tooltip.Content":e=>`<CYTooltip.Provider><CYTooltip.Root><CYTooltip.Portal>${e}</CYTooltip.Portal></CYTooltip.Root></CYTooltip.Provider>`,"Tooltip.Arrow":e=>`<CYTooltip.Provider><CYTooltip.Root><CYTooltip.Content>${e}</CYTooltip.Content></CYTooltip.Root></CYTooltip.Provider>`};Hr(Io);const Mo={"Command.Input":e=>`<CYCommand>${e}</CYCommand>`,"Command.List":e=>`<CYCommand>${e}</CYCommand>`,"Command.Item":e=>`<CYCommand><CYCommand.List>${e}</CYCommand.List></CYCommand>`,"Command.Group":e=>`<CYCommand><CYCommand.List>${e}</CYCommand.List></CYCommand>`,"Command.Separator":e=>`<CYCommand><CYCommand.List>${e}</CYCommand.List></CYCommand>`,"Command.Empty":e=>`<CYCommand><CYCommand.List>${e}</CYCommand.List></CYCommand>`,"Command.Loading":e=>`<CYCommand><CYCommand.List>${e}</CYCommand.List></CYCommand>`,"Command.Shortcut":e=>`<CYCommand><CYCommand.List><CYCommand.Item value="x">${e}</CYCommand.Item></CYCommand.List></CYCommand>`,"Command.Dialog":e=>`<CYCommand.Dialog open>${e}</CYCommand.Dialog>`};Hr(Mo);function pn(e,t,r=new WeakSet){if(!t)return e;if(!e)return t;try{if(typeof t=="object"&&t!==null){if(r.has(t))throw new Error("Circular reference detected during deep merge");r.add(t)}const a={...e};for(const s in t)if(t[s]===null)delete a[s];else if(Array.isArray(t[s])){a[s]=[];for(let o=0;o<t[s].length;o++){const l=t[s][o];typeof l=="object"&&l!==null?a[s][o]=pn(a?.[s]?.[o],l,r):a[s][o]=l}}else typeof t[s]=="object"&&t[s]!==null?a[s]=pn(a[s]??{},t[s],r):a[s]=t[s];return a}catch(a){throw console.log("CodeYam: Error merging data",e,t),a}}async function Ro({projectId:e,commit:t,branch:r}){let a;const s={commitId:t.id,branchId:r.id,active:!0},o=await ho({projectId:e,commitId:t.id,includeBranches:!0});if(o&&o.length>0){a=o.sort((d,m)=>(d.branch.metadata?.permanent?.order??999)-(m.branch.metadata?.permanent?.order??999))[0]?.branch,a&&r.metadata?.permanent?.order!==void 0&&(r.metadata?.permanent?.order<=a.metadata?.permanent?.order?a=r:s.active=!1);const i=o.filter(d=>d.active&&d.branch.id!==a.id||!d.active&&d.branch.id===a.id);i.length>0&&await Vn(i.map(d=>({...d,active:d.branchId===a.id})))}o?.find(i=>i.branchId===s.branchId)||await Vn([s])}function ot(){if(process.env.SQLITE_PATH)return process.env.SQLITE_PATH;const e=se();if(!e)throw new Error("Could not find project root. Please run this command inside a CodeYam project.");return le.join(e,".codeyam","db.sqlite3")}async function ve(){const e=await To();process.env.SQLITE_PATH=ot(),e.OPENAI_API_KEY&&(process.env.OPENAI_API_KEY=e.OPENAI_API_KEY)}async function Ae(e){await ve();const t=await xo({slug:e});if(!t)throw new Error(`Project with slug "${e}" not found in database`);const a=(await Fr({projectId:t.id,names:["_local"]}))?.[0];if(!a)throw new Error(`Local development branch not found for project "${e}". Please run "codeyam init" to set up local analysis.`);return{project:t,branch:a}}async function $o(e,t,r){await ve();const a=ao(`${e.slug}-local-${Date.now()}-${Math.random()}`),s={sha:a,projectId:e.id,branchId:t.id,message:`Local analysis: ${r.join(", ")} at ${new Date().toISOString()}`,url:`local://codeyam/${e.slug}/${a}`,htmlUrl:`local://codeyam/${e.slug}/${a}`,author:{username:"local-dev",avatarUrl:"https://github.com/identicons/local-dev.png"},committedAt:new Date().toISOString(),parents:[],files:r.map(l=>({fileName:l,status:"modified",patch:""})),metadata:{baseline:!1,receivedAt:new Date().toISOString()}},o=await Eo({projectId:e.id,commits:[s]});if(!o||o.length===0)throw new Error("Failed to create fake commit");return await Ro({projectId:e.id,commit:o[0],branch:t}),o[0]}async function bt(){await ve();const e=await tt({});if(!e||e.length===0)return e;const t=e.filter(i=>!i.metadata?.isSuperseded),r=t.map(i=>i.sha),a=t.map(i=>i.metadata?.previousVersionWithAnalyses).filter(i=>!!i),s=[...new Set([...r,...a])],o=await ht({entityShas:s}),l=new Map;if(o)for(const i of o)l.has(i.entitySha)||l.set(i.entitySha,[]),l.get(i.entitySha).push(i);return t.map(i=>{const d=l.get(i.sha)||[];if(d.length>0)return{...i,analyses:d};const m=i.metadata?.previousVersionWithAnalyses;if(m){const u=l.get(m)||[];return{...i,analyses:u}}return{...i,analyses:[]}})}async function Kt(e,t){await ve();const r=await ht({entityShas:[e],limit:1});if(r&&r.length>0&&t){const a=await zr({projectId:r[0].projectId,sha:e});if(a)for(const s of r)s.entity=a}return r||[]}async function Me(e){await ve();const t=await _e();if(!t)return null;const{project:r}=await Ae(t);return await zr({projectId:r.id,sha:e})}async function Wr(e){await ve();const t=[],r=[];if(e.metadata?.importedExports&&e.metadata.importedExports.length>0){const a=e.metadata.importedExports;for(const s of a){if(!s.filePath||!s.name)continue;const o=await tt({projectId:e.projectId,filePaths:[s.filePath],names:[s.name]});if(o&&o.length>0){const l=o[0],i=await ht({entityShas:[l.sha],limit:1});let d,m;if(i&&i.length>0&&i[0].scenarios){const u=i[0].scenarios.find(h=>h.metadata?.screenshotPaths?.[0]);u&&(d=u.metadata?.screenshotPaths?.[0],m=u.name)}t.push({...l,screenshotPath:d,scenarioName:m})}}}if(e.metadata?.importedBy){const a=[];for(const s in e.metadata.importedBy)for(const o in e.metadata.importedBy[s]){const l=e.metadata.importedBy[s][o];l.shas&&a.push(...l.shas)}if(a.length>0){const s=await tt({projectId:e.projectId,shas:a});if(s)for(const o of s){const l=await ht({entityShas:[o.sha],limit:1});let i,d;if(l&&l.length>0&&l[0].scenarios){const m=l[0].scenarios.find(u=>u.metadata?.screenshotPaths?.[0]);m&&(i=m.metadata?.screenshotPaths?.[0],d=m.name)}r.push({...o,screenshotPath:i,scenarioName:d})}}}return{importedEntities:t,importingEntities:r}}async function _e(){try{const e=se();if(!e)return null;const t=le.join(e,".codeyam","config.json");return JSON.parse(await ge.readFile(t,"utf8")).projectSlug||null}catch(e){return console.error("[getProjectSlug] Error:",e),null}}async function Ke(){await ve();try{const e=await _e();if(!e)return null;const{project:t,branch:r}=await Ae(e),a=await Ot({projectId:t.id,branchId:r.id,limit:1});return a&&a.length>0?a[0]:null}catch(e){return console.error("[getCurrentCommit] Error:",e),null}}async function Kr(){try{const e=se();if(!e)return null;const t=le.join(e,".codeyam","config.json");return JSON.parse(await ge.readFile(t,"utf8"))}catch(e){return console.error("[getProjectConfig] Error:",e),null}}async function Vr(e){try{const t=se();if(!t)return console.error("[getEntityCodeFromFilesystem] No project root found"),null;if(!e.filePath)return console.error("[getEntityCodeFromFilesystem] Entity has no filePath"),null;const r=le.join(t,e.filePath);return await ge.readFile(r,"utf8")}catch(t){return console.error("[getEntityCodeFromFilesystem] Error reading file:",t),null}}async function Jr(e){if(await ve(),!e.filePath||!e.name||!e.projectId)return console.error("[getEntityHistory] Entity missing required fields (filePath, name, or projectId)"),[];const t=await tt({projectId:e.projectId,filePaths:[e.filePath],names:[e.name]});if(!t||t.length===0)return[];const r=t.map(l=>l.sha),a=await ht({entityShas:r}),s=new Map;if(a)for(const l of a)s.has(l.entitySha)||s.set(l.entitySha,[]),s.get(l.entitySha).push(l);for(const[l,i]of s.entries())i.sort((d,m)=>{const u=new Date(d.createdAt||0).getTime();return new Date(m.createdAt||0).getTime()-u});const o=t.map(l=>({...l,analyses:s.get(l.sha)||[]}));return o.sort((l,i)=>{const d=l.analyses[0]?.createdAt||l.createdAt||"",m=i.analyses[0]?.createdAt||i.createdAt||"";return new Date(m).getTime()-new Date(d).getTime()}),o}async function Qr(e){try{const t=se();if(!t)return console.error("[updateProjectConfig] No project root found"),!1;const r=le.join(t,".codeyam","config.json"),a=await ge.readFile(r,"utf8"),s=JSON.parse(a),o={...s,...e},l=JSON.stringify(o,null,2);if(await ge.writeFile(r,l,"utf8"),s.projectSlug){const i={};e.universalMocks!==void 0&&(i.universalMocks=e.universalMocks),e.pathsToIgnore!==void 0&&(i.pathsToIgnore=e.pathsToIgnore),e.webapps!==void 0&&(i.webapps=e.webapps),await bo({projectSlug:s.projectSlug,metadataUpdate:i})}return!0}catch(t){return console.error("[updateProjectConfig] Error:",t),!1}}const jo=Object.freeze(Object.defineProperty({__proto__:null,getAllEntities:bt,getAnalysesForEntity:Kt,getCurrentCommit:Ke,getEntityBySha:Me,getEntityCodeFromFilesystem:Vr,getEntityHistory:Jr,getProjectConfig:Kr,getProjectSlug:_e,getRelatedEntities:Wr,updateProjectConfig:Qr},Symbol.toStringTag,{value:"Module"})),Zr="secrets.json";function Xr(e){return le.join(e,".codeyam",Zr)}function ea(){return le.join(hn.homedir(),".codeyam",Zr)}async function Vt(e){let t={};try{const r=ea(),a=await ge.readFile(r,"utf-8");t=JSON.parse(a)}catch{}try{const r=Xr(e),a=await ge.readFile(r,"utf-8"),s=JSON.parse(a);t={...t,...s}}catch{}return t}async function Do(e,t,r=!0){const a=r?ea():Xr(e),s=le.dirname(a);await ge.mkdir(s,{recursive:!0}),await ge.writeFile(a,JSON.stringify(t,null,2)+`
|
|
29
|
+
`,"utf-8")}async function Lo(e){const t=await Vt(e);return!!(t.ANTHROPIC_API_KEY&&t.ANTHROPIC_API_KEY.length>0)||!!(t.OPENAI_API_KEY&&t.OPENAI_API_KEY.length>0)||!!(t.GROQ_API_KEY&&t.GROQ_API_KEY.length>0)||!!(t.OPENROUTER_API_KEY&&t.OPENROUTER_API_KEY.length>0)}const Oo="/assets/globals-B0f88RTV.css";function Yo({text:e,subtext:t,linkText:r,linkTo:a}){const[s,o]=M(!1);return s?null:n("div",{className:"bg-blue-100 border rounded border-blue-800 shadow-sm mx-6 mt-6",children:c("div",{className:"max-w-7xl mx-auto px-4 py-3 flex items-center justify-between",children:[c("div",{className:"flex items-center gap-3 flex-1",children:[n("div",{className:"shrink-0",children:n("svg",{className:"w-5 h-5 text-yellow-600",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",viewBox:"0 0 24 24",stroke:"currentColor",children:n("path",{d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"})})}),c("div",{className:"flex-1",children:[n("p",{className:"text-sm font-medium text-blue-900",children:e}),n("p",{className:"text-xs text-blue-700 mt-0.5",children:t})]}),n(Q,{to:a,className:"shrink-0 px-4 py-2 bg-blue-600 text-white text-sm font-medium rounded hover:bg-blue-700 transition-colors",children:r})]}),n("button",{type:"button",onClick:()=>o(!0),className:"shrink-0 ml-4 p-1 rounded text-blue-600 hover:text-blue-800 hover:bg-blue-100 transition-colors","aria-label":"Dismiss banner",children:n("svg",{className:"w-5 h-5",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",viewBox:"0 0 24 24",stroke:"currentColor",children:n("path",{d:"M6 18L18 6M6 6l12 12"})})})]})})}const Fo=()=>[{rel:"stylesheet",href:Oo},{rel:"icon",href:"/favicon.svg",type:"image/svg+xml"},{rel:"alternate icon",href:"/cy-logo-cli.svg"}];async function zo({request:e,context:t}){try{const r=se()||process.cwd(),[a,s,o]=await Promise.all([Ke(),_e(),Vt(r)]);if(!s)throw new Error("Project slug not found");const i=t.analysisQueue?.getState(),d=await Promise.all((i?.jobs||[]).map(async C=>{const b=[];if(C.entityShas&&C.entityShas.length>0){const S=C.entityShas.map(E=>Me(E)),_=await Promise.all(S);b.push(..._.filter(E=>E!==null))}return{...C,entities:b}}));let m=null;if(i?.currentlyExecuting){const C=i.currentlyExecuting,b=[];if(C.entityShas&&C.entityShas.length>0){const S=C.entityShas.map(E=>Me(E)),_=await Promise.all(S);b.push(..._.filter(E=>E!==null))}m={...C,entities:b}}let u=a?.metadata?.currentRun?.currentEntityShas||[];if(u.length===0){const C=a?.metadata?.historicalRuns||[];if(C.length>0){const S=[...C].sort((_,E)=>{const R=_.archivedAt||_.createdAt||"";return(E.archivedAt||E.createdAt||"").localeCompare(R)})[0];if(S){const _=S.analysisCompletedAt||S.createdAt;if(_){const E=new Date(_).getTime(),$=Date.now()-1440*60*1e3;E>$&&(u=S.currentEntityShas||[])}}}}const p=(await Promise.all(u.map(C=>Me(C)))).filter(C=>C!==null),f=[];o.ANTHROPIC_API_KEY&&f.push("ANTHROPIC_API_KEY"),o.GROQ_API_KEY&&f.push("GROQ_API_KEY"),o.OPENAI_API_KEY&&f.push("OPENAI_API_KEY"),o.OPENROUTER_API_KEY&&f.push("OPENROUTER_API_KEY");const{project:g,branch:y}=await Ae(s),v=await Ot({projectId:g.id,branchId:y.id,limit:20}),w=[];for(const C of v){const b=C.metadata?.historicalRuns||[];for(const S of b){const _=S.currentEntityShas||[];if(_.length>0){const E=_.map(T=>Me(T)),$=(await Promise.all(E)).filter(T=>T!==null);w.push({...S,entities:$})}else w.push(S)}}const x=w.sort((C,b)=>{const S=C.archivedAt||C.analysisCompletedAt||C.createdAt||"";return(b.archivedAt||b.analysisCompletedAt||b.createdAt||"").localeCompare(S)}),N={currentRun:a?.metadata?.currentRun,projectSlug:s,currentEntities:p,availableAPIKeys:f,queuedJobCount:d.length,queueJobs:d,currentlyExecuting:m,historicalRuns:x};return D(N)}catch(r){return console.error("Failed to load root data:",r),D({currentRun:void 0,projectSlug:null,currentEntities:[],availableAPIKeys:[],queuedJobCount:0,queueJobs:[],currentlyExecuting:null,historicalRuns:[]})}}function Bo(){const{currentRun:e,projectSlug:t,currentEntities:r,availableAPIKeys:a,queuedJobCount:s,queueJobs:o,currentlyExecuting:l,historicalRuns:i}=Te(),{toasts:d,closeToast:m}=An(),u=rt(),h=pe(u),p=Cr();W(()=>{h.current=u},[u]);const f=p.pathname.startsWith("/entity/")&&p.pathname.includes("/edit/")||p.pathname.startsWith("/dev/");return W(()=>{const g=new EventSource("/api/events");let y=null,v=0;const w=2e3;return g.addEventListener("message",x=>{if(JSON.parse(x.data).type==="db-change"){const C=Date.now(),b=C-v;b<w?(y&&clearTimeout(y),y=setTimeout(()=>{h.current.revalidate(),v=Date.now(),y=null},w-b)):(h.current.revalidate(),v=C)}}),g.addEventListener("error",x=>{console.error("SSE connection error:",x)}),()=>{y&&clearTimeout(y),g.close()}},[]),c(te,{children:[c("div",{className:`min-h-screen ${f?"":"grid"} bg-cygray-10`,style:f?void 0:{gridTemplateColumns:"96px minmax(900px, 1fr)"},children:[!f&&n(Ns,{}),c("div",{className:"max-h-screen overflow-auto bg-white",children:[a.length===0&&n(Yo,{text:"No AI API keys configured. Please provide an AI API key at your earliest convenience.",subtext:"An API key is required for stable, frequent use of CodeYam",linkText:"Configure API Keys",linkTo:"/settings"}),n(Na,{})]})]}),n(As,{toasts:d,onClose:m}),n(_s,{currentRun:e,projectSlug:t,currentEntities:r,isAnalysisStarting:!1,queuedJobCount:s,queueJobs:o,currentlyExecuting:l,historicalRuns:i})]})}function Uo(){return c("html",{lang:"en",children:[c("head",{children:[n("meta",{charSet:"utf-8"}),n("meta",{name:"viewport",content:"width=device-width,initial-scale=1"}),n(xa,{}),n(ba,{})]}),c("body",{children:[n(Ss,{children:n(Bo,{})}),n(va,{}),n(wa,{}),n(Ca,{})]})]})}const qo=Object.freeze(Object.defineProperty({__proto__:null,default:Uo,links:Fo,loader:zo},Symbol.toStringTag,{value:"Module"})),ta=Er({dimensions:{height:720,width:1200},updateDimensions:()=>{},iframeRef:{current:null},scale:1,updateScale:()=>{},maxWidth:1200,updateMaxWidth:()=>{}}),In=()=>{const e=Ar(ta);if(!e)throw new Error("useWebContainer must be used within a WebContainerProvider");return e},Jt=({children:e})=>{const[t,r]=M({height:720,width:1200}),[a,s]=M(1),[o,l]=M(1200),i=pe(null),d=V(({height:h,width:p})=>{r(f=>({height:h??f.height,width:p??f.width}))},[]),m=V(h=>{s(h)},[]),u=V(h=>{l(h)},[]);return n(ta.Provider,{value:{dimensions:t,updateDimensions:d,iframeRef:i,scale:a,updateScale:m,maxWidth:o,updateMaxWidth:u},children:e})},Go=ts,Ho=typeof window<"u",Wo=1200,Ko=720,Qn=30,Vo=({id:e,scenarioName:t,iframeUrl:r,defaultWidth:a=1440,defaultHeight:s=900,onDataOverride:o,onIframeLoad:l,onScaleChange:i,onDimensionChange:d})=>{const[m,u]=M(!1),[h,p]=M(!1),[f,g]=M(Wo),[y,v]=M(Ko),[w,x]=M(null),[N,C]=M(null),{dimensions:b,updateDimensions:S,iframeRef:_,updateScale:E,updateMaxWidth:R}=In(),$=ee(()=>Math.min(1,f/b.width),[f,b.width]),T=N!==null?N:$;W(()=>{m||(E(T),i?.(T))},[T,E,i,m]),W(()=>{R(f)},[f,R]);const P=V(()=>{u(!0),C($)},[$]),L=V(()=>{u(!1),C(null)},[]),A=V((O,U)=>{const k=N!==null?N:1,q=Math.round(U.size.width/k);S({width:q}),d?.(q,b.height)},[S,N,d,b.height]),I=V(()=>{setTimeout(()=>{p(!0)},100),l&&l()},[l]);W(()=>{const O=U=>{if(U.data.type==="codeyam-resize"){if(t&&U.data.name!==t||b.height===U.data.height||U.data.height===0)return;S({height:U.data.height})}};return window.addEventListener("message",O),()=>{window.removeEventListener("message",O)}},[_,t,a,b,S]),W(()=>{h&&o&&o(_.current)},[h,o,_]),W(()=>{if(!t)return;const O=setInterval(()=>{_?.current?.contentWindow?.postMessage({type:"codeyam-respond",name:t},"*")},1e3);return()=>clearInterval(O)},[t,_]),W(()=>{const O=()=>{const U=document.getElementById("scenario-container");if(!U)return;const k=U.getBoundingClientRect(),q=U.clientWidth-Qn*2,j=window.innerHeight-k.top-Qn*2,B=Math.max(j,400),G=window.innerHeight-k.top;g(q),v(B),x(G)};return O(),window.addEventListener("resize",O),()=>window.removeEventListener("resize",O)},[]),W(()=>{S({width:a,height:s})},[a,s,S]);const Y=ee(()=>b.width*T,[b.width,T]),F=ee(()=>{const O=b.height,U=O*T;return O&&O!==720&&O!==900&&U<y?U:y},[b.height,y,T]),Z=V(()=>{window.history.back()},[]);return Ho?c("div",{id:"scenario-container",className:"relative bg-gray-100 w-full flex items-center justify-center",style:w?{height:`${w}px`}:{},children:[m&&n("div",{className:"fixed inset-0 z-50 bg-transparent"}),n("style",{children:`
|
|
30
|
+
.react-resizable-handle-e {
|
|
31
|
+
display: flex !important;
|
|
32
|
+
align-items: center !important;
|
|
33
|
+
justify-content: center !important;
|
|
34
|
+
width: 6px !important;
|
|
35
|
+
height: 48px !important;
|
|
36
|
+
right: -8px !important;
|
|
37
|
+
top: 50% !important;
|
|
38
|
+
transform: translateY(-50%) !important;
|
|
39
|
+
cursor: ew-resize !important;
|
|
40
|
+
background: #d1d5db !important;
|
|
41
|
+
border-radius: 3px !important;
|
|
42
|
+
opacity: 0 !important;
|
|
43
|
+
transition: all 0.2s ease !important;
|
|
44
|
+
}
|
|
45
|
+
.react-resizable-handle-e:hover {
|
|
46
|
+
opacity: 0.8 !important;
|
|
47
|
+
background: #9ca3af !important;
|
|
48
|
+
}
|
|
49
|
+
.react-resizable:hover .react-resizable-handle-e {
|
|
50
|
+
opacity: 0.4 !important;
|
|
51
|
+
}
|
|
52
|
+
`}),n(Go,{width:Y,height:F,minConstraints:[300,200],maxConstraints:[f,y],className:"relative bg-white rounded-lg shadow-md",resizeHandles:["e"],onResizeStart:P,onResizeStop:L,onResize:A,children:n("div",{className:"overflow-auto",style:{width:`${Y}px`,height:`${F}px`},children:n("div",{style:{width:`${b.width}px`,height:`${b.height}px`,transform:`scale(${T})`,transformOrigin:"top left"},children:r?n("iframe",{ref:_,className:"w-full h-full rounded-lg",src:r,onLoad:I,sandbox:"allow-scripts allow-same-origin"}):c("p",{className:"w-full h-full flex flex-col gap-3 items-center justify-center",children:[n("span",{className:"text-xl font-light",children:"Oops! Looks like this scenario is not available yet. Please check back later."}),n("span",{className:"text-blue-600 cursor-pointer",onClick:Z,children:"Go back"})]})})})},`resizable-box-${e}`)]}):n("div",{className:"relative bg-gray-100 w-full h-full flex items-center justify-center",children:n("p",{className:"text-gray-500",children:"Loading interactive view..."})})};function Jo({presets:e,customSizes:t,currentWidth:r,currentHeight:a,scale:s,onSizeChange:o,onSaveCustomSize:l,onRemoveCustomSize:i,className:d=""}){const[m,u]=M(!1),[h,p]=M(String(r)),[f,g]=M(String(a)),[y,v]=M(!1),[w,x]=M(!1),N=pe(null);W(()=>{y||p(String(r))},[r,y]),W(()=>{w||g(String(a))},[a,w]),W(()=>{const P=L=>{N.current&&!N.current.contains(L.target)&&u(!1)};return document.addEventListener("mousedown",P),()=>document.removeEventListener("mousedown",P)},[]);const C=ee(()=>{const P=e.find(A=>A.width===r&&A.height===a);if(P)return P.name;const L=t.find(A=>A.width===r&&A.height===a);return L?L.name:"Custom"},[e,t,r,a]),b=C==="Custom",S=P=>{o(P.width,P.height),u(!1)},_=P=>{const L=P.target.value;p(L);const A=parseInt(L,10);!isNaN(A)&&A>0&&o(A,a)},E=P=>{const L=P.target.value;g(L);const A=parseInt(L,10);!isNaN(A)&&A>0&&o(r,A)},R=()=>{v(!1);const P=parseInt(h,10);(isNaN(P)||P<=0)&&p(String(r))},$=()=>{x(!1);const P=parseInt(f,10);(isNaN(P)||P<=0)&&g(String(a))},T=P=>{(P.key==="Enter"||P.key==="Escape")&&P.target.blur()};return c("div",{className:`flex items-center gap-3 ${d}`,children:[c("div",{className:"relative",ref:N,children:[c("button",{onClick:()=>u(!m),className:"flex items-center gap-2 px-3 py-1.5 bg-white border border-gray-300 rounded-md text-sm font-medium text-gray-700 hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-[#005c75] focus:ring-offset-1 min-w-[120px] justify-between",children:[n("span",{children:C}),n("svg",{className:`w-4 h-4 transition-transform ${m?"rotate-180":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:n("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]}),m&&n("div",{className:"absolute top-full left-0 mt-1 min-w-full bg-white border border-gray-200 rounded-md shadow-lg z-50",children:c("div",{className:"py-1",children:[e.length>0&&c(te,{children:[n("div",{className:"px-3 py-1 text-xs font-semibold text-gray-500 uppercase tracking-wider whitespace-nowrap",children:"Presets"}),e.map(P=>c("button",{onClick:()=>S(P),className:`w-full text-left px-3 py-2 text-sm hover:bg-gray-100 flex justify-between items-center gap-4 whitespace-nowrap ${C===P.name?"bg-[#f0f7f9] text-[#005c75]":"text-gray-700"}`,children:[n("span",{children:P.name}),c("span",{className:"text-xs text-gray-500",children:[P.width," x ",P.height]})]},P.name))]}),t.length>0&&c(te,{children:[n("div",{className:"border-t border-gray-100 my-1"}),n("div",{className:"px-3 py-1 text-xs font-semibold text-gray-500 uppercase tracking-wider whitespace-nowrap",children:"Custom"}),[...t].sort((P,L)=>P.width-L.width).map(P=>c("div",{className:`flex items-center gap-1 hover:bg-gray-100 ${C===P.name?"bg-[#f0f7f9] text-[#005c75]":"text-gray-700"}`,children:[c("button",{onClick:()=>S(P),className:"flex-1 text-left px-3 py-2 text-sm flex justify-between items-center gap-4 whitespace-nowrap cursor-pointer",children:[n("span",{children:P.name}),c("span",{className:"text-xs text-gray-500",children:[P.width," x ",P.height]})]}),i&&n("button",{onClick:L=>{L.stopPropagation(),C===P.name&&e.length>0&&o(e[0].width,e[0].height),i(P.name)},className:"p-1.5 mr-1 text-gray-400 hover:text-red-500 hover:bg-red-50 rounded cursor-pointer transition-colors",title:"Remove custom size",children:n("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:n("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]},P.name))]})]})})]}),c("div",{className:"flex items-center gap-1 text-sm",children:[c("div",{className:"flex items-center",children:[n("input",{type:"text",value:h,onChange:_,onFocus:()=>v(!0),onBlur:R,onKeyDown:T,className:"w-16 px-2 py-1 text-right border border-gray-300 rounded-l-md text-sm focus:outline-none focus:ring-2 focus:ring-[#005c75] focus:border-[#005c75]"}),n("span",{className:"px-2 py-1 bg-gray-100 border border-l-0 border-gray-300 rounded-r-md text-gray-500 text-sm",children:"px"})]}),n("span",{className:"text-gray-400 mx-1",children:"Ã"}),c("div",{className:"flex items-center",children:[n("input",{type:"text",value:f,onChange:E,onFocus:()=>x(!0),onBlur:$,onKeyDown:T,className:"w-16 px-2 py-1 text-right border border-gray-300 rounded-l-md text-sm focus:outline-none focus:ring-2 focus:ring-[#005c75] focus:border-[#005c75]"}),n("span",{className:"px-2 py-1 bg-gray-100 border border-l-0 border-gray-300 rounded-r-md text-gray-500 text-sm",children:"px"})]}),s!==void 0&&s<1&&c("span",{className:"text-xs text-gray-500 ml-1",children:["(",Math.round(s*100),"%)"]})]}),b&&n("button",{onClick:l,className:"px-3 py-1.5 bg-[#005c75] text-white text-sm font-medium rounded-md hover:bg-[#004a5c] focus:outline-none focus:ring-2 focus:ring-[#005c75] focus:ring-offset-1 transition-colors",children:"Save Custom Size"})]})}function on(e,t,r){if(Array.isArray(e)){if(!isNaN(parseInt(t)))return e[parseInt(t)];for(const a of e)if(a.name===t||a.title===t||a.id===t)return a}return e[t]}function fn(e){return e&&(typeof e=="object"||Array.isArray(e))}function Qo(e){return Array.isArray(e)?e.length:void 0}function Zo(e){const{data:t,structure:r}=e;if(!(!t&&!r)){if(Array.isArray(r))return Array.isArray(t)?t.map((a,s)=>s.toString()):[];if(typeof r=="object")return[...new Set([...Object.keys(t),...Object.keys(r)])].sort((s,o)=>{const l=fn(t[s]),i=fn(t[o]);return l&&!i?1:!l&&i?-1:s.localeCompare(o)});if(typeof t=="object")return Object.keys(t).sort((s,o)=>s.localeCompare(o))}}function Xo({scenarioFormData:e,handleInputChange:t}){return c("div",{className:"p-3 flex flex-col gap-3",children:[c("div",{className:"grid w-full max-w-sm items-center gap-1.5",children:[n("label",{htmlFor:"name",className:"text-sm font-medium text-gray-700",children:"Name"}),n("input",{type:"text",id:"name",placeholder:"Name",name:"name",value:e.name,onChange:t,required:!0,className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"})]}),c("div",{className:"grid w-full gap-1.5 pt-2",children:[n("label",{htmlFor:"description",className:"text-sm font-medium text-gray-700",children:"Description"}),n("textarea",{placeholder:"Type your message here.",id:"description",name:"description",value:e.description,onChange:t,required:!0,className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 min-h-[100px]"})]}),n("button",{type:"submit",className:"mt-3 w-full px-4 py-2 bg-blue-600 text-white rounded-md hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500 font-medium",children:"Save Name & Description"})]})}function ei({path:e,namedPath:t,isArray:r,count:a,onClick:s}){const o=V(()=>{s&&s(e)},[s,e]);return c("div",{className:"bg-blue-50 p-3 rounded-lg flex items-center justify-between cursor-pointer group hover:bg-blue-100 transition-colors border border-blue-200",onClick:o,children:[c("div",{className:"flex items-center gap-3",children:[r&&n("svg",{className:"w-4 h-4 text-gray-500",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:n("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 6h16M4 12h16M4 18h16"})}),c("div",{className:"capitalize font-medium text-gray-900",children:[t[t.length-1],a!==void 0&&` (${a})`]})]}),c("div",{className:"flex items-center gap-3",children:[r&&n("svg",{className:"w-5 h-5 text-red-500 opacity-0 group-hover:opacity-100 transition-opacity",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:n("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"})}),n("svg",{className:"w-4 h-4 text-gray-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:n("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})]})]})}var na=(e=>(e.STRING="string",e.NUMBER="number",e.BOOLEAN="boolean",e.UNION="union",e.OBJECT="object",e.ARRAY="array",e))(na||{});const ti=({name:e,value:t,options:r,onChange:a})=>{const s=V(o=>{a({target:{name:e,value:o.target.value}})},[e,a]);return n("select",{name:e,value:t,onChange:s,className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500",children:r.map((o,l)=>n("option",{value:o.trim(),children:o.trim()},l))})},ni=({name:e,value:t,onChange:r})=>{const a=V(s=>{const o=s.target.checked;r({target:{name:e,value:o}})},[e,r]);return n("label",{className:"flex items-center gap-2 cursor-pointer",children:n("input",{type:"checkbox",name:e,checked:t,onChange:a,className:`w-10 h-6 rounded-full appearance-none cursor-pointer transition-colors relative
|
|
53
|
+
bg-gray-300 checked:bg-blue-600
|
|
54
|
+
after:content-[''] after:absolute after:top-1 after:left-1 after:w-4 after:h-4
|
|
55
|
+
after:bg-white after:rounded-full after:transition-transform
|
|
56
|
+
checked:after:translate-x-4`})})};function ri({dataType:e,path:t,value:r,onChange:a}){const s=ee(()=>t[t.length-1],[t]),o=ee(()=>t.join("-"),[t]),l=V(d=>{a(t,d.target.value)},[a,t]),i=V(d=>{a(t,d.target.value)},[a,t]);return c("div",{className:"grid w-full max-w-sm items-center gap-1.5",children:[n("label",{htmlFor:o,className:"capitalize text-sm font-medium text-gray-700",children:s==="~~codeyam-code~~"?"Dynamic Field":s}),e.includes("|")?n(ti,{name:o,value:r,options:e.split("|"),onChange:l}):e===na.BOOLEAN?n(ni,{name:o,value:r??!1,onChange:i}):n("input",{id:o,name:o,type:"text",value:JSON.stringify(r??"").replace(/"/g,""),onChange:l,className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"},`Input-${o}`)]})}function ai({analysis:e,scenarioName:t,dataItem:r,onResult:a,onGenerateData:s}){const[o,l]=M(!1),[i,d]=M(""),m=V(async()=>{if(!s){console.error("onGenerateData prop is required for AI data generation");return}l(!0);try{const h=e.scenarios.find(v=>v.name===t);if(!h)throw new Error("Scenario not found");const p=e.scenarios.find(v=>v.name===Ht),f=await s(i,r);if(!f){console.error("Error getting AI guess for scenario data"),l(!1);return}const g=(v,w)=>{const x=Object.assign({},v);return y(v)&&y(w)&&Object.keys(w).forEach(N=>{y(w[N])?N in v?x[N]=g(v[N],w[N]):Object.assign(x,{[N]:w[N]}):Object.assign(x,{[N]:w[N]})}),x},y=v=>v&&typeof v=="object"&&!Array.isArray(v);h.metadata.data=g(g(p?.metadata.data||{},h.metadata.data),f.data||{}),a(h),l(!1),d("")}catch(h){console.error("Error generating AI data:",h),l(!1)}},[e,i,r,t,a,s]),u=V(h=>{d(h.target.value)},[]);return c("div",{className:"w-full p-3 flex flex-col gap-2 rounded-lg border-2 border-blue-200 text-sm bg-blue-50",children:[n("div",{className:"font-medium text-gray-700",children:"Describe the data changes to the AI"}),n("textarea",{className:"peer w-full h-16 p-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500",placeholder:"Type your message here.",onChange:u,value:i}),n("button",{type:"button",disabled:o,className:`w-full px-4 py-2 bg-blue-600 text-white rounded-md hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500 disabled:bg-gray-400 disabled:cursor-not-allowed font-medium ${i.length>0?"flex":"hidden peer-focus-within:flex"} items-center justify-center gap-2`,onClick:()=>void m(),children:o?c(te,{children:[c("svg",{className:"animate-spin h-4 w-4 text-white",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[n("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),n("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),"Please wait"]}):"Generate Data"})]})}function si({namedPath:e,path:t,last:r,onClick:a}){const s=V(()=>a(r?t.slice(0,-1):t),[r,t,a]);return n("div",{className:"capitalize cursor-pointer hover:text-blue-600 transition-colors",onClick:s,children:e[e.length-1]})}function oi({dataItem:e,onClick:t}){const r=V(()=>t([]),[t]),a=ee(()=>e.namedPath.length>=2?e.namedPath.length-2:0,[e]);return c("div",{className:"text-sm flex items-center gap-2 py-3 px-2 border-b border-t border-gray-300 bg-gray-50",children:[n("svg",{className:"w-4 h-4 cursor-pointer hover:text-blue-600",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",onClick:r,children:n("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"})}),e.namedPath.length>2&&c("div",{className:"flex items-center gap-1",children:[n("div",{children:"..."}),n("svg",{className:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:n("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})]}),e.namedPath.slice(a).map((s,o)=>c("div",{className:"flex items-center gap-1",children:[n(si,{namedPath:e.namedPath.slice(0,o+a+1),path:e.path.slice(0,o+a+1),last:o+a===e.namedPath.length-1,onClick:t}),o+a<e.namedPath.length-1&&n("svg",{className:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:n("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})]},`path-${s}-${o+a}`))]})}function Zn({analysis:e,scenarioName:t,dataItem:r,onClick:a,onChange:s,onAIResult:o,onGenerateData:l,saveFeedback:i}){const d=ee(()=>r.data,[r]),m=ee(()=>Zo(r),[r]);return c("div",{className:"w-full flex flex-col gap-6 px-3 mt-3",children:[r.path.length>0&&n(oi,{dataItem:r,onClick:a}),c("div",{className:"flex flex-col gap-3",children:[n(ai,{analysis:e,scenarioName:t,dataItem:r,onResult:o,onGenerateData:l}),m?.map((u,h)=>{if(fn(d[u])){let f=u;isNaN(Number(u))||(f=d[u].name??d[u].title??d[u].id??`${r.path[r.path.length-1].replace(/s$/,"")} ${parseInt(u)+1}`);const g=[...r.path,u],y=[...r.namedPath,f];return n(ei,{path:g,namedPath:y,isArray:Array.isArray(d),count:Qo(d[u]),onClick:a},`data-${u}-${h}`)}if(u==="id")return null;const p=[...r.path,u];return n(ri,{dataType:r.structure?.[u]??"string",path:p,value:d[u],onChange:s},`InputField-${p.join("-")}`)})]}),n("input",{type:"hidden",name:"recapture",id:"recapture-input",value:"false"}),c("div",{className:"flex gap-2",children:[n("button",{type:"submit",onClick:()=>{const u=document.getElementById("recapture-input");u&&(u.value="false")},disabled:i?.isSaving,className:"flex-1 px-4 py-2 bg-blue-600 text-white rounded-md hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500 font-medium disabled:opacity-50 disabled:cursor-not-allowed",children:i?.isSaving?"Saving...":"Save Changes"}),n("button",{type:"submit",onClick:()=>{const u=document.getElementById("recapture-input");u&&(u.value="true")},disabled:i?.isSaving,className:"flex-1 px-4 py-2 bg-gray-100 text-gray-700 border border-gray-300 rounded-md hover:bg-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 font-medium disabled:opacity-50 disabled:cursor-not-allowed",children:"Save & Recapture"})]}),i?.message&&!i?.isSaving&&n("div",{className:`mt-3 p-3 rounded-md text-sm font-medium ${i.isError?"bg-red-50 text-red-700 border border-red-200":"bg-green-50 text-green-700 border border-green-200"}`,children:i.message})]})}function Xn({title:e,children:t,defaultOpen:r=!1,borderT:a=!1,borderB:s=!1}){const[o,l]=M(r),i=[];return a&&i.push("border-t"),s&&i.push("border-b"),c("div",{className:`${i.join(" ")} border-gray-300`,children:[c("button",{type:"button",onClick:()=>l(!o),className:"w-full px-4 py-3 flex items-center justify-between bg-gray-50 hover:bg-gray-100 transition-colors text-left font-semibold text-gray-900",children:[n("span",{children:e}),n("svg",{className:`transition-transform ${o?"rotate-180":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",style:{width:"20px",height:"20px",minWidth:"20px",minHeight:"20px",maxWidth:"20px",maxHeight:"20px",flexShrink:0},children:n("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]}),o&&n("div",{className:"px-4 py-3",children:t})]})}const ii=({currentScenario:e,defaultScenario:t,dataStructure:r,analysis:a,shouldCreateNewScenario:s,onSave:o,onNavigate:l,iframeRef:i,onGenerateData:d,saveFeedback:m})=>{const u=V((_,E)=>{const R=Object.assign({},_),$=T=>T&&typeof T=="object"&&!Array.isArray(T);return $(_)&&$(E)&&Object.keys(E).forEach(T=>{$(E[T])?T in _?R[T]=u(_[T],E[T]):Object.assign(R,{[T]:E[T]}):Object.assign(R,{[T]:E[T]})}),R},[]),[h,p]=M({name:e.name,description:e.description,data:u(t.metadata.data,e.metadata.data)}),[f,g]=M(null),y=ee(()=>({...h.data}),[h]),v=ee(()=>({...y.mockData?{"Retrieved Data":y.mockData}:{},...y.argumentsData?{"Function Arguments":y.argumentsData}:{}}),[y]),w=ee(()=>{const _={...r.arguments?{"Function Arguments":r.arguments}:{},...r.dataForMocks?{"Retrieved Data":r.dataForMocks}:{}};return Object.keys(_).reduce((E,R)=>{if(R.includes(".")){const[$,T]=R.split(".");E[$]||(E[$]={}),E[$][T]=_[R]}else E[R]=_[R];return E},{})},[r]),x=V(async _=>{_.preventDefault();const R=_.target.querySelector('input[name="recapture"]')?.value==="true",$={mockData:h.data.mockData??{},argumentsData:h.data.argumentsData??[]};console.log("[ScenarioEditor] Saving scenario data:",{scenarioName:h.name,shouldRecapture:R,dataToSave:$,rawFormData:h.data,iframePayload:{arguments:y.argumentsData??[],...y.mockData??{}}}),console.log("[ScenarioEditor] Full dataToSave JSON:",JSON.stringify($,null,2).substring(0,1e3));const T=a?.scenarios.map(P=>!s&&P.name===e.name?{...P,name:h.name,description:h.description,metadata:{...P.metadata,data:$}}:P);s&&T.push({name:h.name,description:h.description,metadata:{data:$,interactiveExamplePath:a?.scenarios[0].metadata.interactiveExamplePath}}),console.log("[ScenarioEditor] Updated scenarios to save:",T),o&&await o(T,{recapture:R}),l&&l(h.name)},[a,e.name,h,y,s,o,l]),N=V(_=>{p(E=>({...E,[_.target.name]:_.target.value}))},[]),C=V(_=>{g(E=>{if(!E)return null;for(const R of[{arguments:_.metadata.data.argumentsData},_.metadata.data.mockData]){let $=R;for(const T of E.path)if($=on($,T),!$)break;$&&(E.data=$)}return{...E}}),p({name:_.name,description:_.description,data:_.metadata.data})},[]),b=V((_,E)=>{p(R=>{for(const $ of[{"Function Arguments":R.data.argumentsData},{"Retrieved Data":R.data.mockData}]){let T=$;for(const P of _.slice(0,-1))if(T=on(T,P),!T)break;if(T){const P=T[_[_.length-1]];g(L=>L?(L.namedPath[L.namedPath.length-1]===P&&(L.namedPath[L.namedPath.length-1]=E.toString()),L.data[_[_.length-1]]=E,{...L}):null),T[_[_.length-1]]=E}}return{...R}})},[]),S=V(_=>{if(_.length===0){g(null);return}let E=v;const R=[];let $=w;for(const T of _){if(R.push(isNaN(parseInt(T))?T:E[T]?.name??E[T]?.title??E[T]?.id??T),E=on(E,T),!E){console.log("Data not found",E,T),g(null);return}Array.isArray($)?$=$[0]:$=$[T]}g({path:_,namedPath:R,data:E,structure:$})},[v,w]);return W(()=>{const _=E=>{E.data.type==="codeyam-log"&&E.data.data?.includes("Error")&&console.error("[ScenarioEditor] Error from iframe:",E.data.data)};return window.addEventListener("message",_),()=>window.removeEventListener("message",_)},[]),W(()=>{if(i?.current?.contentWindow){const _={arguments:y.argumentsData??[],...y.mockData??{}},E={type:"codeyam-override-data",name:e.name,data:JSON.stringify(_)};console.log("[ScenarioEditor] â SENDING codeyam-override-data:",{type:E.type,name:E.name,dataPreview:JSON.stringify(_).substring(0,200)+"...",fullData:_}),i.current.contentWindow.postMessage(E,"*")}},[y,e,i]),n("form",{method:"post",onSubmit:_=>void x(_),children:f?n(Zn,{analysis:a,scenarioName:h.name,dataItem:f,onClick:S,onChange:b,onAIResult:C,onGenerateData:d,saveFeedback:m}):c(te,{children:[n(Xn,{title:"Edit Name and Description",borderT:!0,children:n(Xo,{scenarioFormData:h,handleInputChange:N})}),e.metadata.data&&n(Xn,{title:"Edit Scenario Data",defaultOpen:!0,borderT:!0,borderB:!0,children:n(Zn,{analysis:a,scenarioName:h.name,dataItem:{path:[],namedPath:[],data:v,structure:w},onClick:S,onChange:b,onAIResult:C,onGenerateData:d,saveFeedback:m})})]})})};function er(e){const t=e.replace(/[^a-zA-Z0-9_]+/g,"_");return t.slice(0,1).toUpperCase()+t.slice(1)}function Mn({analysisId:e,scenarioId:t,scenarioName:r,projectSlug:a,enabled:s=!0}){const o=fe(),[l,i]=M(null),[d,m]=M(!1),[u,h]=M(!1),[p,f]=M(!1),g=pe(!1),y=pe(null),v=pe(null),[w,x]=M(0),[N,C]=M(0),b=pe(null),S=pe(!1),{interactiveUrl:_,resetLogs:E}=Ye(a,s),R=pe(t);W(()=>{if(R.current!==t&&(R.current=t,y.current&&v.current&&r)){const T=er(v.current),P=er(r),L=y.current.replace(T,P);i(L),h(!0),f(!1),x(0),C(A=>A+1),S.current=!1,b.current&&(clearTimeout(b.current),b.current=null);return}},[t,r]),W(()=>{if(_){const T=_+"?width=600px";y.current=T,r&&(v.current=r),i(T),m(!1),h(!0)}},[_]),W(()=>{const T=P=>{P.data.type==="codeyam-resize"&&(S.current||(S.current=!0,b.current&&(clearTimeout(b.current),b.current=null),x(0),f(!0),requestAnimationFrame(()=>{requestAnimationFrame(()=>{h(!1)})})))};return window.addEventListener("message",T),()=>window.removeEventListener("message",T)},[]);const $=()=>{S.current=!1,b.current&&clearTimeout(b.current);const T=500*Math.pow(2,w);b.current=setTimeout(()=>{S.current||(w<2?(x(P=>P+1),C(P=>P+1),h(!0)):(console.error("[useInteractiveMode] Interactive mode failed to load after 3 attempts - showing iframe anyway"),f(!0),h(!1)))},T)};return W(()=>{s&&!g.current&&t&&e&&(g.current=!0,m(!0),f(!1),i(null),(async()=>{if(a)try{await fetch(`/api/logs/${a}`,{method:"DELETE"})}catch(P){console.error("[useInteractiveMode] Failed to clear log file:",P)}E(),o.submit({action:"start",analysisId:e,scenarioId:t},{method:"post",action:"/api/interactive-mode"})})())},[s,t,e,E,a]),W(()=>{const T=e,P=()=>{if(g.current&&T){const A=new URLSearchParams({action:"stop",analysisId:T});console.log("[useInteractiveMode] Sending stop request via sendBeacon");const I=navigator.sendBeacon("/api/interactive-mode",A);console.log("[useInteractiveMode] sendBeacon result:",I),I||(console.log("[useInteractiveMode] sendBeacon failed, using fetch fallback"),fetch("/api/interactive-mode",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:A,keepalive:!0}).catch(Y=>console.error("Failed to stop interactive mode:",Y)))}},L=()=>{P()};return window.addEventListener("beforeunload",L),()=>{window.removeEventListener("beforeunload",L),console.log("[useInteractiveMode] Cleanup running:",{hasStarted:g.current,analysisId:T}),P()}},[e]),{interactiveServerUrl:l,isStarting:d,isLoading:u,showIframe:p,iframeKey:N,onIframeLoad:$}}function Rn({scenarioId:e,scenarioName:t,iframeUrl:r,isStarting:a,isLoading:s,showIframe:o,iframeKey:l,onIframeLoad:i,onScaleChange:d,onDimensionChange:m,projectSlug:u,defaultWidth:h=1440,defaultHeight:p=900,retryCount:f=0}){const{lastLine:g}=Ye(u??null,a||s);return r?c("div",{className:"flex-1 min-h-0 relative",children:[n("div",{style:{opacity:o?1:0},children:n(Vo,{id:e,scenarioName:t,iframeUrl:r,defaultWidth:h,defaultHeight:p,onIframeLoad:i,onScaleChange:d,onDimensionChange:m},l)}),!o&&(a||s)&&n("div",{className:"absolute inset-0 flex items-center justify-center z-10",children:c("div",{className:"flex flex-col items-center gap-3",children:[n("div",{className:"w-12 h-12",children:n("svg",{className:"animate-spin",viewBox:"0 0 50 50",children:n("circle",{cx:"25",cy:"25",r:"20",fill:"none",stroke:"#005c75",strokeWidth:"4",strokeDasharray:"31.4 31.4",strokeLinecap:"round"})})}),c("div",{className:"text-center",children:[n("p",{className:"text-base font-semibold text-[#005c75] mb-1",children:a&&!r?"Starting interactive mode...":`Checking server stability. Attempt #${f+1}..`}),g&&!r&&n("p",{className:"text-xs font-mono text-[#666] leading-relaxed",children:g}),r&&f>0&&c("p",{className:"text-xs font-mono text-[#666] leading-relaxed",children:["Waiting for application to initialize... (attempt"," ",f+1,")"]})]})]})})]}):n("div",{className:"flex-1 flex flex-col items-center justify-center p-12 text-center bg-[#f6f9fc]",children:c("div",{className:"flex flex-col items-center gap-6 max-w-2xl",children:[n("div",{className:"w-12 h-12 mb-2",children:n("svg",{className:"animate-spin",viewBox:"0 0 50 50",children:n("circle",{cx:"25",cy:"25",r:"20",fill:"none",stroke:"#005c75",strokeWidth:"4",strokeDasharray:"31.4 31.4",strokeLinecap:"round"})})}),n("h2",{className:"text-2xl font-semibold text-[#005c75] leading-[30px] m-0 font-['IBM_Plex_Sans']",children:s?"Interactive mode ready: launching...":"Starting Interactive Mode..."}),g&&n("p",{className:"text-xs font-mono text-[#005c75] text-center leading-5 m-0 max-w-xl font-['IBM_Plex_Mono']",children:g}),n("p",{className:"text-xs text-[#8e8e8e] text-center leading-5 m-0 font-['IBM_Plex_Mono']",children:s?"Loading the page in the background...":"Setting up the dev server for this scenario..."})]})})}const li=({data:e})=>[{title:e?.scenario?`Edit ${e.scenario.name} - CodeYam`:"Edit Scenario - CodeYam"},{name:"description",content:"Edit scenario data"}];async function ci({params:e}){const{sha:t,scenarioId:r}=e;if(!t)throw new Response("Entity SHA is required",{status:400});if(!r)throw new Response("Scenario ID is required",{status:400});const a=await Kt(t,!0),s=a&&a.length>0?a[0]:null;if(!s)throw new Response("Analysis not found",{status:404});const o=s.scenarios?.find(d=>d.id===r);if(!o)throw new Response("Scenario not found",{status:404});const l=s.scenarios?.find(d=>d.name===Ht),i=await _e();return D({analysis:s,scenario:o,defaultScenario:l||o,entitySha:t,projectSlug:i})}function di(){const e=Te(),t=e.analysis,r=e.scenario,a=e.defaultScenario,s=e.entitySha,o=e.projectSlug,l=nt(),{iframeRef:i}=In(),[d,m]=M(!1),[u,h]=M(null),[p,f]=M(null),[g,y]=M(!1),[v,w]=M(!1),[x,N]=M(null),{interactiveServerUrl:C,isStarting:b,isLoading:S,showIframe:_,iframeKey:E,onIframeLoad:R}=Mn({analysisId:t?.id,scenarioId:r?.id,scenarioName:r?.name,projectSlug:o,enabled:!0}),$=V(async(A,I)=>{m(!0),h(null),f(null),console.log("[EditScenario] Starting save with options:",I),console.log("[EditScenario] Scenarios to save:",A);try{const Y={analysis:t,scenarios:A};console.log("[EditScenario] Sending to /api/save-scenarios:",{analysisId:t.id,scenarioCount:A.length,scenarioNames:A.map(O=>O.name)});const F=await fetch("/api/save-scenarios",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Y)}),Z=await F.json();if(console.log("[EditScenario] API response:",Z),!F.ok||!Z.success)throw new Error(Z.error||"Failed to save scenarios");if(console.log("[EditScenario] Scenarios saved successfully"),I?.recapture&&r.id&&C){console.log("[EditScenario] ========== DIRECT CAPTURE START =========="),console.log("[EditScenario] Taking screenshot from running server",{scenarioId:r.id,projectId:t.projectId,serverUrl:C}),h("Changes saved. Capturing screenshot...");const O={serverUrl:C,scenarioId:r.id,projectId:t.projectId,viewportWidth:1440};console.log("[EditScenario] Capture request body:",O);const U=await fetch("/api/capture-screenshot",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(O)});console.log("[EditScenario] Capture response status:",U.status);const k=await U.json();if(console.log("[EditScenario] Capture response body:",k),!U.ok||!k.success)throw console.error("[EditScenario] Capture failed:",k),new Error(k.error||"Failed to capture screenshot");console.log("[EditScenario] Screenshot captured successfully:",k),console.log("[EditScenario] ========== DIRECT CAPTURE COMPLETE =========="),h("Recapture successful")}else if(I?.recapture&&!C){console.log("[EditScenario] No running server, using queued recapture");const O=new FormData;O.append("analysisId",t.id||""),O.append("scenarioId",r.id||"");const U=await fetch("/api/recapture-scenario",{method:"POST",body:O}),k=await U.json();if(!U.ok||!k.success)throw new Error(k.error||"Failed to trigger recapture");console.log("Recapture queued:",k),f(k.jobId),h("Changes saved. Screenshot recapture queued.")}else h("Changes saved successfully.")}catch(Y){console.error("Error saving scenarios:",Y),h(`Error: ${Y instanceof Error?Y.message:String(Y)}`)}finally{m(!1)}},[t,r.id,C]),T=V(A=>{},[]),P=V(async(A,I)=>{const Y=await fetch("/api/generate-scenario-data",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({description:A,existingScenarios:t.scenarios,scenariosDataStructure:t.metadata?.scenariosDataStructure,editingMockName:r.name,editingMockData:I?.data})}),F=await Y.json();if(!Y.ok||!F.success)throw new Error(F.error||"Failed to generate scenario data");return F.data},[t,r.name]),L=V(async()=>{if(!r.id){N("Cannot delete scenario without ID");return}y(!0),N(null);try{const A=await fetch("/api/delete-scenario",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({scenarioId:r.id,screenshotPaths:r.metadata?.screenshotPaths||[]})}),I=await A.json();if(!A.ok||!I.success)throw new Error(I.error||"Failed to delete scenario");l(`/entity/${s}`)}catch(A){console.error("[EditScenario] Error deleting scenario:",A),N(A instanceof Error?A.message:"Failed to delete scenario"),w(!1)}finally{y(!1)}},[r.id,r.metadata?.screenshotPaths,s,l]);return c("div",{className:"h-screen bg-gray-50 flex flex-col",children:[c("header",{className:"bg-white border-b border-gray-200 px-8 py-6 shrink-0",children:[n("div",{className:"mb-4",children:c(Q,{to:`/entity/${s}`,className:"text-blue-600 no-underline text-sm font-medium transition-colors hover:text-blue-700 hover:underline",children:["â Back to ",t.entity?.name]})}),c("h1",{className:"text-[32px] font-bold text-gray-900 m-0 mb-3",children:["Edit Scenario: ",r.name]}),r.description&&n("p",{className:"text-gray-600 text-[15px] leading-relaxed m-0",children:r.description})]}),c("div",{className:"flex flex-1 gap-0 min-h-0",children:[c("aside",{className:"w-[400px] bg-white border-r border-gray-200 overflow-y-auto shrink-0",children:[n(ii,{currentScenario:r,defaultScenario:a,dataStructure:t.metadata?.scenariosDataStructure||{},analysis:t,shouldCreateNewScenario:!1,onSave:$,onNavigate:T,iframeRef:i,onGenerateData:P,saveFeedback:{isSaving:d,message:u,isError:u?.startsWith("Error")??!1}}),u==="Recapture successful"&&n("div",{className:"px-4 pb-4",children:n(Q,{to:`/entity/${s}`,className:"text-blue-600 hover:text-blue-700 hover:underline text-sm",children:"View updated screenshot on entity page â"})}),c("div",{className:"border-t border-gray-200 p-4 mt-4",children:[n("div",{className:"text-sm text-gray-600 mb-3",children:"Permanently remove this scenario and its screenshots."}),v?c("div",{className:"space-y-3",children:[c("div",{className:"text-sm text-red-600 font-medium",children:['Are you sure you want to delete "',r.name,'"?']}),c("div",{className:"flex gap-2",children:[n("button",{onClick:()=>void L(),disabled:g,className:"flex-1 px-4 py-2 bg-red-600 text-white rounded-md text-sm font-medium hover:bg-red-700 disabled:bg-red-400 disabled:cursor-not-allowed transition-colors",children:g?"Deleting...":"Yes, Delete"}),n("button",{onClick:()=>w(!1),disabled:g,className:"flex-1 px-4 py-2 bg-gray-100 text-gray-700 border border-gray-300 rounded-md text-sm font-medium hover:bg-gray-200 disabled:opacity-50 transition-colors",children:"Cancel"})]})]}):n("button",{onClick:()=>w(!0),className:"w-full px-4 py-2 bg-red-50 text-red-600 border border-red-200 rounded-md text-sm font-medium hover:bg-red-100 transition-colors",children:"Delete Scenario"}),x&&n("div",{className:"mt-3 text-sm text-red-600 bg-red-50 px-3 py-2 rounded-md",children:x})]})]}),n("main",{className:"flex-1 bg-gray-100 overflow-auto flex flex-col min-w-0",children:n(Rn,{scenarioId:r.id||r.name,scenarioName:r.name,iframeUrl:C,isStarting:b,isLoading:S,showIframe:_,iframeKey:E,onIframeLoad:R,projectSlug:o,defaultWidth:1440,defaultHeight:900})})]})]})}function ui(){return n(Jt,{children:n(di,{})})}const mi=Object.freeze(Object.defineProperty({__proto__:null,default:ui,loader:ci,meta:li},Symbol.toStringTag,{value:"Module"})),hi=({data:e})=>[{title:e?.entity?`Create Scenario - ${e.entity.name} - CodeYam`:"Create Scenario - CodeYam"},{name:"description",content:"Create a new scenario"}];async function pi({params:e}){const{sha:t}=e;if(!t)throw new Response("Entity SHA is required",{status:400});const r=await Kt(t,!0),a=r&&r.length>0?r[0]:null;if(!a)throw new Response("Analysis not found",{status:404});const s=a.scenarios?.find(l=>l.name===Ht);if(!s)throw new Response("Default scenario not found",{status:404});const o=await _e();return D({analysis:a,defaultScenario:s,entity:a.entity,entitySha:t,projectSlug:o})}function fi(){const{analysis:e,defaultScenario:t,entity:r,entitySha:a,projectSlug:s}=Te(),o=nt(),{iframeRef:l}=In(),[i,d]=M(""),[m,u]=M(!1),[h,p]=M(!1),[f,g]=M(null),[y,v]=M(null),{interactiveServerUrl:w,isStarting:x,isLoading:N,showIframe:C,iframeKey:b,onIframeLoad:S}=Mn({analysisId:e?.id,scenarioId:t?.id,scenarioName:t?.name,projectSlug:s,enabled:!0}),_=V(async()=>{if(!i.trim()){g("Please describe how you want to change the scenario");return}u(!0),g(null),v("Generating scenario with AI...");try{const R=await fetch("/api/generate-scenario-data",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({description:i,existingScenarios:e.scenarios,scenariosDataStructure:e.metadata?.scenariosDataStructure})}),$=await R.json();if(!R.ok||!$.success)throw new Error($.error||"Failed to generate scenario data");console.log("[CreateScenario] AI generated scenario:",$.data);const T=$.data;if(!T.name||!T.data)throw new Error("AI response missing required fields (name or data)");v("Saving new scenario..."),p(!0);const P={name:T.name,description:T.description||i,metadata:{data:T.data,interactiveExamplePath:t.metadata?.interactiveExamplePath}},L=[...e.scenarios||[],P],A=await fetch("/api/save-scenarios",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({analysis:e,scenarios:L})}),I=await A.json();if(!A.ok||!I.success)throw new Error(I.error||"Failed to save scenario");console.log("[CreateScenario] Scenario saved:",I);const Y=I.analysis?.scenarios?.find(F=>F.name===T.name);if(!Y?.id){console.warn("[CreateScenario] Could not find saved scenario ID, navigating to entity page"),v("Scenario created! Redirecting..."),setTimeout(()=>o(`/entity/${a}`),1e3);return}if(w){v("Capturing screenshot...");const F=await fetch("/api/capture-screenshot",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({serverUrl:w,scenarioId:Y.id,projectId:e.projectId,viewportWidth:1440})}),Z=await F.json();!F.ok||!Z.success?(console.error("[CreateScenario] Capture failed:",Z),v("Scenario created! (Screenshot capture failed)")):v("Scenario created and captured!")}else v("Scenario created!");setTimeout(()=>{o(`/entity/${a}/scenarios/${Y.id}`)},1e3)}catch(R){console.error("[CreateScenario] Error:",R),g(R instanceof Error?R.message:String(R)),v(null)}finally{u(!1),p(!1)}},[i,e,t,a,w,o]),E=m||h;return c("div",{className:"h-screen bg-gray-50 flex flex-col",children:[c("header",{className:"bg-white border-b border-gray-200 px-8 py-6 shrink-0",children:[n("div",{className:"mb-4",children:c(Q,{to:`/entity/${a}`,className:"text-blue-600 no-underline text-sm font-medium transition-colors hover:text-blue-700 hover:underline",children:["â Back to ",r?.name]})}),n("h1",{className:"text-[32px] font-bold text-gray-900 m-0 mb-3",children:"Create New Scenario"}),n("p",{className:"text-gray-600 text-[15px] leading-relaxed m-0",children:"Create a new scenario based on the Default Scenario"})]}),c("div",{className:"flex flex-1 gap-0 min-h-0",children:[c("aside",{className:"w-[400px] bg-white border-r border-gray-200 overflow-y-auto shrink-0 p-6 flex flex-col",children:[c("div",{className:"mb-6",children:[n("h2",{className:"text-lg font-semibold text-gray-900 mb-2",children:"Default Scenario Preview"}),n("p",{className:"text-sm text-gray-600 leading-relaxed",children:"The preview on the right shows the Default Scenario. Describe how you'd like to change it to create your new scenario."})]}),c("div",{className:"flex-1",children:[n("label",{htmlFor:"prompt",className:"block text-sm font-medium text-gray-700 mb-2",children:"How would you like to change it for your new scenario?"}),n("textarea",{id:"prompt",value:i,onChange:R=>d(R.target.value),placeholder:"e.g., Show an empty state with no items in the list, or Display an error message when the API fails, or Show a user with admin privileges...",className:"w-full h-40 px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:ring-blue-500 focus:border-blue-500 text-sm resize-none",disabled:E})]}),c("div",{className:"mt-6 space-y-3",children:[n("button",{onClick:()=>void _(),disabled:E||!i.trim(),className:"w-full px-4 py-2 bg-[#005c75] text-white rounded-md text-sm font-medium hover:bg-[#004a5e] disabled:bg-gray-400 disabled:cursor-not-allowed transition-colors",children:E?"Creating...":"Create Scenario"}),y&&n("div",{className:"text-sm text-blue-600 bg-blue-50 px-3 py-2 rounded-md",children:y}),f&&n("div",{className:"text-sm text-red-600 bg-red-50 px-3 py-2 rounded-md",children:f})]})]}),n("main",{className:"flex-1 bg-gray-100 overflow-auto flex flex-col min-w-0",children:n(Rn,{scenarioId:t.id||t.name,scenarioName:t.name,iframeUrl:w,isStarting:x,isLoading:N,showIframe:C,iframeKey:b,onIframeLoad:S,projectSlug:s,defaultWidth:1440,defaultHeight:900})})]})]})}function gi(){return n(Jt,{children:n(fi,{})})}const yi=Object.freeze(Object.defineProperty({__proto__:null,default:gi,loader:pi,meta:hi},Symbol.toStringTag,{value:"Module"}));var K;(e=>{(t=>{t.OPENAI_GPT5="openai/gpt-5",t.OPENAI_GPT5_MINI="openai/gpt-5-mini",t.OPENAI_GPT5_NANO="openai/gpt-5-nano",t.OPENAI_GPT4_1="openai/gpt-4.1",t.OPENAI_GPT4_1_MINI="openai/gpt-4.1-mini",t.OPENAI_GPT4_O="openai/gpt-4o",t.OPENAI_GPT4_O_MINI="openai/gpt-4o-mini",t.OPENAI_GPT_OSS_120B_GROQ="openai/gpt-oss-120b-groq",t.OPENAI_GPT_OSS_120B_DEEPINFRA="openai/gpt-oss-120b-deepinfra",t.QWEN3_235B_INSTRUCT_DEEPINFRA="qwen/qwen3-235b-instruct-deepinfra",t.QWEN3_CODER_480B_INSTRUCT_DEEPINFRA="qwen/qwen3-coder-480b-instruct-deepinfra",t.GOOGLE_GEMINI_2_5_PRO_DEEPINFRA="google/gemini-2.5-pro-deepinfra",t.GOOGLE_GEMINI_2_5_FLASH_DEEPINFRA="google/gemini-2.5-flash-deepinfra",t.GOOGLE_GEMINI_2_5_FLASH_LITE_OPENROUTER="google/gemini-2.5-flash-lite-openrouter",t.META_LLAMA_4_MAVERICK_OPENROUTER="meta-llama/llama-4-maverick-openrouter",t.DEEPSEEK_V3_1_TERMINUS_OPENROUTER="deepseek/v3.1-terminus-openrouter",t.ANTHROPIC_CLAUDE_4_5_HAIKU="anthropic/claude-4.5-haiku",t.ANTHROPIC_CLAUDE_4_5_SONNET="anthropic/claude-4.5-sonnet",t.PHIND_CODELLAMA="phind/codellama",t.GOOGLE_GEMINI_PRO="google/gemini-pro",t.GOOGLE_PALM_2_CODE_CHAT_32K="google/palm-2-code-chat-32k",t.META_CODELLAMA_34B_INSTRUCT="meta-llama/codellama-34b-instruct",t.OPENAI_GPT4_PREVIEW="openai/gpt-4-preview"})(e.Model||(e.Model={}))})(K||(K={}));function ra(e,t){return e?Object.values(K.Model).includes(e)?e:(console.warn(`Invalid model in environment variable: ${e}. Falling back to ${t}`),t):t}const aa=ra(process.env.DEFAULT_SMALLER_MODEL,K.Model.OPENAI_GPT4_1_MINI),xi=ra(process.env.DEFAULT_LARGER_MODEL,K.Model.OPENAI_GPT4_1),Ie={name:"OpenAI",baseURL:"https://api.openai.com/v1",apiKeyEnvVar:"OPENAI_API_KEY"},ln={name:"OpenRouter",baseURL:"https://openrouter.ai/api/v1",apiKeyEnvVar:"OPENROUTER_API_KEY"},bi={name:"Groq",baseURL:"https://api.groq.com/openai/v1",apiKeyEnvVar:"GROQ_API_KEY"},tr={name:"Anthropic",baseURL:"https://api.anthropic.com/v1/",apiKeyEnvVar:"ANTHROPIC_API_KEY"},Le={name:"DeepInfra",baseURL:"https://api.deepinfra.com/v1/",apiKeyEnvVar:"DEEPINFRA_API_KEY"},vi={[K.Model.OPENAI_GPT5]:{id:K.Model.OPENAI_GPT5,provider:Ie,apiModelName:"gpt-5",maxCompletionTokens:128e3,pricing:{input:1.25,output:10},reasoningEffort:"minimal"},[K.Model.OPENAI_GPT5_MINI]:{id:K.Model.OPENAI_GPT5_MINI,provider:Ie,apiModelName:"gpt-5-mini",maxCompletionTokens:128e3,pricing:{input:.25,output:2},reasoningEffort:"minimal"},[K.Model.OPENAI_GPT5_NANO]:{id:K.Model.OPENAI_GPT5_NANO,provider:Ie,apiModelName:"gpt-5-nano",maxCompletionTokens:128e3,pricing:{input:.05,output:.4},reasoningEffort:"minimal"},[K.Model.OPENAI_GPT4_1]:{id:K.Model.OPENAI_GPT4_1,provider:Ie,apiModelName:"gpt-4.1",maxCompletionTokens:32768,pricing:{input:2,output:8}},[K.Model.OPENAI_GPT4_1_MINI]:{id:K.Model.OPENAI_GPT4_1_MINI,provider:Ie,apiModelName:"gpt-4.1-mini",maxCompletionTokens:32768,pricing:{input:.4,output:1.6}},[K.Model.OPENAI_GPT4_O]:{id:K.Model.OPENAI_GPT4_O,provider:Ie,apiModelName:"gpt-4o",maxCompletionTokens:16384,pricing:{input:2.5,output:10}},[K.Model.OPENAI_GPT4_O_MINI]:{id:K.Model.OPENAI_GPT4_O_MINI,provider:Ie,apiModelName:"gpt-4o-mini",maxCompletionTokens:16384,pricing:{input:.15,output:.6}},[K.Model.GOOGLE_GEMINI_2_5_FLASH_LITE_OPENROUTER]:{id:K.Model.GOOGLE_GEMINI_2_5_FLASH_LITE_OPENROUTER,provider:ln,apiModelName:"google/gemini-2.5-flash-lite",maxCompletionTokens:1048576,pricing:{input:.1,output:.4},reasoningEffort:"minimal"},[K.Model.META_LLAMA_4_MAVERICK_OPENROUTER]:{id:K.Model.META_LLAMA_4_MAVERICK_OPENROUTER,provider:ln,apiModelName:"meta-llama/llama-4-maverick",maxCompletionTokens:1048576,pricing:{input:.15,output:.6},reasoningEffort:"minimal"},[K.Model.DEEPSEEK_V3_1_TERMINUS_OPENROUTER]:{id:K.Model.DEEPSEEK_V3_1_TERMINUS_OPENROUTER,provider:ln,apiModelName:"deepseek/deepseek-v3.1-terminus",maxCompletionTokens:163840,pricing:{input:.23,output:.9},reasoningEffort:"minimal"},[K.Model.OPENAI_GPT_OSS_120B_GROQ]:{id:K.Model.OPENAI_GPT_OSS_120B_GROQ,provider:bi,apiModelName:"openai/gpt-oss-120b",maxCompletionTokens:131072,pricing:{input:.15,output:.75},reasoningEffort:"low"},[K.Model.OPENAI_GPT_OSS_120B_DEEPINFRA]:{id:K.Model.OPENAI_GPT_OSS_120B_DEEPINFRA,provider:Le,apiModelName:"openai/gpt-oss-120b-Turbo",maxCompletionTokens:32768,pricing:{input:.15,output:.6},reasoningEffort:"low"},[K.Model.QWEN3_235B_INSTRUCT_DEEPINFRA]:{id:K.Model.QWEN3_235B_INSTRUCT_DEEPINFRA,provider:Le,apiModelName:"Qwen/Qwen3-235B-A22B-Instruct-2507",maxCompletionTokens:32768,pricing:{input:.09,output:.57}},[K.Model.QWEN3_CODER_480B_INSTRUCT_DEEPINFRA]:{id:K.Model.QWEN3_CODER_480B_INSTRUCT_DEEPINFRA,provider:Le,apiModelName:"Qwen/Qwen3-Coder-480B-A35B-Instruct",maxCompletionTokens:32768,pricing:{input:.4,output:1.6}},[K.Model.GOOGLE_GEMINI_2_5_PRO_DEEPINFRA]:{id:K.Model.GOOGLE_GEMINI_2_5_PRO_DEEPINFRA,provider:Le,apiModelName:"google/gemini-2.5-pro",maxCompletionTokens:1048576,pricing:{input:1.25,output:10},reasoningEffort:"low"},[K.Model.GOOGLE_GEMINI_2_5_FLASH_DEEPINFRA]:{id:K.Model.GOOGLE_GEMINI_2_5_FLASH_DEEPINFRA,provider:Le,apiModelName:"google/gemini-2.5-flash",maxCompletionTokens:1048576,pricing:{input:.3,output:2.5},reasoningEffort:"low"},[K.Model.ANTHROPIC_CLAUDE_4_5_HAIKU]:{id:K.Model.ANTHROPIC_CLAUDE_4_5_HAIKU,provider:tr,apiModelName:"claude-haiku-4-5",maxCompletionTokens:2e5,pricing:{input:1,output:5}},[K.Model.ANTHROPIC_CLAUDE_4_5_SONNET]:{id:K.Model.ANTHROPIC_CLAUDE_4_5_SONNET,provider:tr,apiModelName:"claude-sonnet-4-5",maxCompletionTokens:2e5,pricing:{input:3,output:15}},[K.Model.PHIND_CODELLAMA]:{id:K.Model.PHIND_CODELLAMA,provider:Ie,apiModelName:"phind-codellama",maxCompletionTokens:16384,pricing:{input:0,output:0}},[K.Model.GOOGLE_GEMINI_PRO]:{id:K.Model.GOOGLE_GEMINI_PRO,provider:Le,apiModelName:"google/gemini-pro",maxCompletionTokens:32768,pricing:{input:0,output:0}},[K.Model.GOOGLE_PALM_2_CODE_CHAT_32K]:{id:K.Model.GOOGLE_PALM_2_CODE_CHAT_32K,provider:Le,apiModelName:"google/palm-2-code-chat-32k",maxCompletionTokens:32768,pricing:{input:0,output:0}},[K.Model.META_CODELLAMA_34B_INSTRUCT]:{id:K.Model.META_CODELLAMA_34B_INSTRUCT,provider:Le,apiModelName:"meta-llama/codellama-34b-instruct",maxCompletionTokens:16384,pricing:{input:0,output:0}},[K.Model.OPENAI_GPT4_PREVIEW]:{id:K.Model.OPENAI_GPT4_PREVIEW,provider:Ie,apiModelName:"gpt-4-preview",maxCompletionTokens:128e3,pricing:{input:0,output:0}}};function Qt(e){const t=vi[e];if(!t)throw new Error(`Unknown model: ${e}`);return t}function wi(e){return Qt(e).maxCompletionTokens}function Ci(e){return Qt(e).pricing}const nr=1e6;function Ni({model:e,usage:t}){const r=Ci(e);return r?t.prompt_tokens*(r.input/nr)+t.completion_tokens*(r.output/nr):null}function Si({chatRequest:e,chatCompletion:t,model:r}){if("error"in t&&t.error)return{model:r,prompt_type:e.type,system_message:e.messages.system,prompt_text:e.messages.prompt,response:JSON.stringify(t,null,2),error:JSON.stringify(t.error)};if(!e.model)return null;const a=t.usage||{prompt_tokens:0,completion_tokens:0},s=Ni({model:r,usage:a});return{model:r,prompt_type:e.type,system_message:e.messages.system,prompt_text:e.messages.prompt,response:JSON.stringify(t,null,2),input_tokens:a.prompt_tokens,output_tokens:a.completion_tokens,cost:s?Math.round(s*1e5)/1e5:void 0}}function Ei({messages:{system:e,prompt:t},model:r,responseType:a,jsonSchema:s}){const o=r??aa,l=Qt(o);wi(o);const i=[];return e&&i.push({role:"system",content:e}),i.push({role:"user",content:[{type:"text",text:t}]}),{messages:i,model:l.apiModelName,response_format:a==="json_schema"&&s?{type:"json_schema",json_schema:{name:s.name,schema:s.schema,strict:s.strict!==!1}}:{type:a&&a=="text"?"text":"json_object"},...l.reasoningEffort&&{reasoning_effort:l.reasoningEffort}}}Sn(Cn);const St=new rs({concurrency:100,timeout:1200*1e3,throwOnTimeout:!0,autoStart:!0}),rr={retries:4,factor:2,minTimeout:1e3,maxTimeout:6e4,randomize:!0},Et={};async function gn({type:e,systemMessage:t,prompt:r,jsonResponse:a=!0,jsonSchema:s,model:o=aa,attempts:l=0}){if(process.env.CODEYAM_LLM_FIXTURES_DIR)return await Ai(e,process.env.CODEYAM_LLM_FIXTURES_DIR);console.log(`CodeYam Debug: LLM Pool [queued=${St.size}, running=${St.pending}]`);const i=Date.now();let d,m=0;const u=Qt(o),h=process.env[u.provider.apiKeyEnvVar];if(!h)throw new Error(`API key not found for provider ${u.provider.name}. Please set ${u.provider.apiKeyEnvVar} environment variable.`);console.log(`Using ${u.provider.name} for AI request`);const p=new ns({apiKey:h,baseURL:u.provider.baseURL}),f={type:e,messages:{system:t,prompt:r},model:o,responseType:s?"json_schema":a?"json_object":"text",jsonSchema:s},g=Ei(f),y=await St.add(()=>(d=Date.now(),Hn(()=>p.chat.completions.create(g,{timeout:300*1e3}),{...rr,onFailedAttempt:S=>{m++,console.log(`CodeYam Error: Completion call failed [model=${o}]`,{error:S,prompt:r,systemMessage:t,attempts:l,retryCount:m})}})),{throwOnTimeout:!0}),v=Date.now(),w=Si({chatRequest:f,chatCompletion:y,model:o});if(!w)throw new Error("Failed to get LLM call stats");w.retries=m,w.wait_ms=d-i,w.duration_ms=v-i;const x=y.choices?.[0];let N=null;if(x){if(!x.finish_reason)throw console.log(`CodeYam Error: completionCall(): empty completion from LLM, [type=${e}]`,JSON.stringify({chatCompletion:y,chatRequest:f},null,2)),new Error("completionCall(): missing finish_reason in LLM response");N=x.message?.content}let C=N;N&&(C=N.replace(/<think>[\s\S]*?<\/think>/g,"").trim());const b=a?C&&(C.match(/\{[\s\S]*\}/)?.[0]??C):C;if(!b){if(console.log(`CodeYam Error: completionCall(): empty completion from LLM, [type=${e}]`,JSON.stringify({completion:b,rawCompletion:N,chatCompletion:y,chatRequest:f},null,2)),l<3)return console.log("CodeYam Error: Retrying completion",{prompt:r,systemMessage:t,attempts:l}),await gn({type:e,systemMessage:t,prompt:r,jsonResponse:a,model:o,attempts:l+1});throw new Error("completionCall(): empty completion from LLM")}if(b.replace(/\s/g,"")==="")throw console.log("CodeYam Error: Empty Completion",{rawCompletion:N,prompt:r,systemMessage:t}),new Error("Empty completion");if(a)try{JSON.parse(b)}catch(S){if(console.log("CodeYam Error: Invalid JSON in completion",{error:S.message,model:o,completion:b.substring(0,500),rawCompletion:N?.substring(0,500)}),l<3){console.log("CodeYam Error: Retrying with correction prompt",{attempts:l,parseError:S.message});const _=`Your previous response contained invalid JSON with the following error:
|
|
57
|
+
|
|
58
|
+
${S.message}
|
|
59
|
+
|
|
60
|
+
Here was your previous response:
|
|
61
|
+
\`\`\`
|
|
62
|
+
${b}
|
|
63
|
+
\`\`\`
|
|
64
|
+
|
|
65
|
+
Please provide a corrected version with valid JSON only. Do not include any explanatory text, just the valid JSON object.`,E=await St.add(()=>Hn(()=>p.chat.completions.create({...g,messages:[{role:"system",content:t},{role:"user",content:r},{role:"assistant",content:b},{role:"user",content:_}]},{timeout:300*1e3}),{...rr,onFailedAttempt:P=>{console.log("CodeYam Error: Correction call failed",{error:P,attempts:l})}}),{throwOnTimeout:!0}),R=E.choices?.[0]?.message?.content;let $=R;R&&($=R.replace(/<think>[\s\S]*?<\/think>/g,"").trim());const T=$&&($.match(/\{[\s\S]*\}/)?.[0]??$);if(!T)throw new Error("Correction attempt returned empty completion");try{JSON.parse(T),console.log("CodeYam: JSON correction successful");const P=Date.now();return w.duration_ms=P-i,{finishReason:E.choices[0].finish_reason,completion:T,stats:w}}catch(P){return console.log("CodeYam Error: Corrected JSON still invalid",{error:P.message,correctedCompletion:T.substring(0,500)}),await gn({type:e,systemMessage:t,prompt:r,jsonResponse:a,model:o,attempts:l+1})}}throw new Error(`Invalid JSON after ${l} attempts: ${S.message}`)}return{finishReason:y.choices[0].finish_reason,completion:b,stats:w}}async function Ai(e,t){const r=await import("fs"),a=await import("path");console.log(`CodeYam Test: Replaying LLM call for type '${e}' from ${t}`);try{if(!r.existsSync(t))throw console.log(`CodeYam Test: Fixtures directory does not exist yet: ${t}`),new Error(`No LLM fixture files found - directory does not exist: ${t}`);const s=r.readdirSync(t).filter(h=>h.endsWith(".json"));if(s.length===0)throw new Error(`No LLM fixture files found in ${t}`);const o={};for(const h of s)try{const p=r.readFileSync(a.join(t,h),"utf-8"),f=JSON.parse(p);o[f.prompt_type]||(o[f.prompt_type]=[]),o[f.prompt_type].push(f)}catch(p){console.warn(`Failed to parse LLM fixture file ${h}:`,p)}const l=o[e];if(!l||l.length===0){const h=Object.keys(o).join(", ");throw new Error(`No captured LLM call found for type '${e}'. Available types: ${h}`)}const i=`${t}::${e}`;Et[i]||(Et[i]=0);const d=Et[i];Et[i]=(d+1)%l.length;const m=l[d];console.log(`CodeYam Test: Replaying LLM response for '${e}' [${d+1}/${l.length}]`);let u;try{u=JSON.parse(m.response).choices?.[0]?.message?.content||m.response}catch{u=m.response}return{finishReason:"stop",completion:u,stats:{model:m.model??"fixture",prompt_type:e,system_message:m.system_message??"",prompt_text:m.prompt_text??"",response:m.response??"",input_tokens:m.input_tokens??0,output_tokens:m.output_tokens??0,cost:m.cost??0,retries:0,wait_ms:0,duration_ms:1}}}catch(s){throw console.error("CodeYam Test Error: Failed to replay LLM call:",s),s}}function ar(){return process.env.DYNAMODB_PREFIX?`${process.env.DYNAMODB_PREFIX}-llm-calls`:null}async function _i(e){const{propsJson:t,...r}=e,a=JSON.stringify(t,null,2),s=ft(),o=Date.now(),l={...r,id:s,created_at:o,props:a};let i;const d=`${l.object_id}_${s}.json`;if(process.env.DYNAMODB_PATH?i=ne.join(process.env.DYNAMODB_PATH,d):process.env.CODEYAM_LOCAL_PROJECT_PATH&&(i=ne.join(process.env.CODEYAM_LOCAL_PROJECT_PATH,".codeyam","llm-calls",d)),i)try{const u=ne.dirname(i);return await we.mkdir(u,{recursive:!0}),await we.writeFile(i,JSON.stringify(l,null,2)),console.log(`CodeYam: Saved LLM call to local file: ${i}`),{id:s}}catch(u){return console.log("CodeYam Error: Failed to save LLM call to local file",u),{id:"-1"}}const m=ar();if(!m)return console.log("[CodeYam] No DynamoDB table name for LLM calls, skipping save"),{id:"-1"};for(const[u,h]of Object.entries(l))typeof h>"u"&&console.log(`CodeYam Warning: LLM call ${s} property ${u} with explicit value 'undefined'`);try{return await new Gt().send(new as({TableName:ar(),Item:os(l,{removeUndefinedValues:!0})})),{id:s}}catch(u){return console.log(`CodeYam Error: Failed to save LLM call to DynamoDB table ${m}`,u),{id:"-1"}}}new Gt({});new Gt({});new Gt({});function sa(e){if(e==null)return null;const t=e.match(/```json\s*([\s\S]*?)\s*```/);t&&(e=t[1]),e=e.replace(/"[^"]+"\s*:\s*undefined\s*,?\s*/g,""),e=e.replace(/,(\s*[}\]])/g,"$1");try{return ss.parse(e)}catch(r){const s=r.message.match(/invalid character .* at (\d+):(\d+)/);if(s){const o=parseInt(s[2],10);if(e.substring(o-2,o-1)==='"')return e=e.substring(0,o-2)+"\\"+e.substring(o-2),sa(e)}return null}}const Pi=3,Ti=2,$n=()=>({max:1e4,maxSize:10*1e3*1e3,sizeCalculation:(e,t)=>16+Pi*String(t).length*(1+Ti)});new En($n());new En($n());new En($n());class ki{constructor(){this.byMethodName=new Map,this.byClassAndMethod=new Map}register(t,r,a){this.byMethodName.has(t)||this.byMethodName.set(t,[]),this.byMethodName.get(t).push(r),a&&(this.byClassAndMethod.has(a)||this.byClassAndMethod.set(a,new Map),this.byClassAndMethod.get(a).set(t,r))}getByMethodName(t){return this.byMethodName.get(t)}getByClassAndMethod(t,r){return this.byClassAndMethod.get(t)?.get(r)}}class Ii{getReturnType(){return"array"}addEquivalences(t,r,a){a.addType(r,"array"),a.addType(t,"array");const s=t.getLastFunctionCallSegment();if(s&&s.args.length>0){const o=s.args[0];a.addType(o,"function"),a.addEquivalence(o.withParameter(0),r.withElement("*"))}}isComplete(){return!0}}class Mi{getReturnType(){return"unknown"}addEquivalences(t,r,a){a.addType(r,"array");const s=t.getLastFunctionCallSegment();if(s&&s.args.length>0){const o=s.args[0];a.addType(o,"function"),a.addEquivalence(o.withParameter(0),r.withElement("*"))}}isComplete(){return!0}}class Ri{getReturnType(){return"unknown"}addEquivalences(t,r,a){a.addType(r,"array");const s=t.getLastFunctionCallSegment();if(s&&s.args.length>0){const o=s.args[0];if(a.addType(o,"function"),a.addEquivalence(o.withParameter(1),r.withElement("*")),s.args.length>1){const l=s.args[1];a.addEquivalence(o.withParameter(0),l)}}}isComplete(){return!0}}class $i{getReturnType(){return"array"}addEquivalences(t,r,a){a.addType(r,"array");const s=t.getLastFunctionCallSegment();s&&s.args.forEach(o=>{a.addEquivalence(t,o)}),a.addType(t,"array"),a.addEquivalence(t,r.withElement("*"))}isComplete(){return!0}}class ji{getReturnType(){return"array"}addEquivalences(t,r,a){a.addType(r,"array");const s=t.withReturnValues();a.addType(s,"array")}isComplete(){return!0}}class Di{getReturnType(){return"array"}addEquivalences(t,r,a){a.addType(r,"array"),a.addType(t,"array");const s=t.getLastFunctionCallSegment();if(s&&s.args.length>2)for(let o=2;o<s.args.length;o++){const l=s.args[o];a.addEquivalence(r.withElement("*"),l)}}isComplete(){return!0}}class Li{getReturnType(){return"string"}addEquivalences(t,r,a){a.addType(r,"array");const s=t.getLastFunctionCallSegment();if(s&&s.args.length>0){const o=s.args[0];a.addEquivalence(t.withParameter(0),o)}}isComplete(){return!0}}class Oi{getReturnType(){return"array"}addEquivalences(t,r,a){a.addType(r,"array");const s=t.getLastFunctionCallSegment();if(s&&s.args.length>0){const o=s.args[0];a.addType(o,"function"),a.addEquivalence(o.withParameter(0),r.withElement("*"))}}isComplete(){return!0}}class Yi{getReturnType(){return"unknown"}addEquivalences(t,r,a){t.getLastFunctionCallSegment()}isComplete(){return!0}}class Fi{getReturnType(){return"array"}addEquivalences(t,r,a){const s=t.getLastFunctionCallSegment();if(a.addType(t.withParameter(1),"function"),s&&s.args.length>0){const o=s.args[0];a.addEquivalence(t.withParameter(0),o)}}isComplete(){return!0}}function zi(){const e=new ki;return e.register("filter",new Ii,"Array"),e.register("map",new Oi,"Array"),e.register("join",new Li,"Array"),e.register("find",new Mi,"Array"),e.register("reduce",new Ri,"Array"),e.register("concat",new $i,"Array"),e.register("slice",new ji,"Array"),e.register("splice",new Di,"Array"),e.register("useState",new Fi,"React"),e.register("useMemo",new Yi,"React"),e}zi();const Bi=new Set(["filter","sort","slice","splice","unshift","push","reverse","entries"]),Ui=new Set(["find","at","pop","shift"]),qi=new Set(["map","reduce","flatMap","concat","join","some"]),Gi=new Set([...Bi,...Ui,...qi]),Hi=new Set(["trim","concat","replace","replaceAll","toLowerCase","toUpperCase","trimStart","trimEnd","padStart","padEnd","normalize","slice","substring","substr","toString()","toLocaleLowerCase","toLocaleUpperCase"]),Wi=new Set(["split","match","endsWith","startsWith","includes","indexOf","lastIndexOf","charAt","charCodeAt","codePointAt","repeat","search","valueOf","localeCompare","length"]),Ki=new Set([...Hi,...Wi]);[...Gi,...Ki];new Set(Object.getOwnPropertyNames(Array.prototype).filter(e=>typeof Array.prototype[e]=="function")),new Set(Object.getOwnPropertyNames(String.prototype).filter(e=>typeof String.prototype[e]=="function")),new Set(Object.getOwnPropertyNames(Number.prototype).filter(e=>typeof Number.prototype[e]=="function")),new Set(Object.getOwnPropertyNames(Boolean.prototype).filter(e=>typeof Boolean.prototype[e]=="function")),new Set(Object.getOwnPropertyNames(Date.prototype).filter(e=>typeof Date.prototype[e]=="function"));function Vi({description:e,existingScenarios:t,scenariosDataStructure:r}){return`Mock Scenario Data Structure:
|
|
66
|
+
\`\`\`
|
|
67
|
+
${JSON.stringify(r,null,2)}
|
|
68
|
+
\`\` Existing Mock Scenario Data:
|
|
69
|
+
\`\`\`
|
|
70
|
+
${JSON.stringify(t,null,2)}
|
|
71
|
+
\`\`\`
|
|
72
|
+
New Scenario user-created prompt: "${e}"
|
|
73
|
+
`}function Ji({description:e,editingMockName:t,editingMockData:r,existingScenarios:a,scenariosDataStructure:s}){const o=a.find(l=>l.name===Ht);return`Mock Scenario Data Structure:
|
|
74
|
+
\`\`\`
|
|
75
|
+
${JSON.stringify({props:s.arguments,dataVariables:s.dataForMocks},null,2)}
|
|
76
|
+
\`\`\`
|
|
77
|
+
|
|
78
|
+
Existing Mock Scenario Data:
|
|
79
|
+
\`\`\`
|
|
80
|
+
${JSON.stringify(a.map(l=>({name:l.name,data:pn(o.metadata.data,l.metadata.data)})),null,2)}
|
|
81
|
+
\`\`\`
|
|
82
|
+
|
|
83
|
+
Mock Scenario that should be edited: "${t}"
|
|
84
|
+
${r?`The portion of the data that should be edited:
|
|
85
|
+
\`\`\`
|
|
86
|
+
${JSON.stringify(r,null,2)}
|
|
87
|
+
\`\`\``:""}
|
|
88
|
+
|
|
89
|
+
How this data should be changed: "${e}"
|
|
90
|
+
`}async function Qi({description:e,editingMockName:t,editingMockData:r,existingScenarios:a,scenariosDataStructure:s,model:o}){const l=t?Ji({description:e,editingMockName:t,editingMockData:r,existingScenarios:a,scenariosDataStructure:s}):Vi({description:e,existingScenarios:a,scenariosDataStructure:s}),i=await gn({type:"guessScenarioDataFromDescription",systemMessage:t?Xi(r):Zi,prompt:l,model:o??xi});await _i({object_type:"guessScenarioDataFromDescription",object_id:"new",propsJson:{description:e,editingMockName:t,editingMockData:r,existingScenarios:a,scenariosDataStructure:s,model:o},...i.stats});const{completion:d}=i;return d?sa(d):(console.log("CodeYam: guessing scenario data failed: No response from AI"),null)}const Zi=`
|
|
91
|
+
You will be provided with a list of data secnarios for a component and the overall structure for the data. Additionally you'll receive a description for a new scenario written by the user.
|
|
92
|
+
|
|
93
|
+
Your goal is to add one scenario to the list of existing scenarios by generating an english name, proper description, and a JSON data structure that describes the data that would be used in a scenario for the code.
|
|
94
|
+
|
|
95
|
+
The data for the scenario will be merged with the "Default Scenario" data, so you don't need to replicate any data in the default scenario but must overwrite any data that should be different.
|
|
96
|
+
|
|
97
|
+
You must respond with valid JSON following this format of this TS type definition:
|
|
98
|
+
\`\`\`
|
|
99
|
+
export type ScenarioData = {
|
|
100
|
+
name: string;
|
|
101
|
+
description: string;
|
|
102
|
+
data: {
|
|
103
|
+
mockData: { [key: string]: unknown };
|
|
104
|
+
argumentsData: { [key: string]: unknown };
|
|
105
|
+
};
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
\`\`\`
|
|
109
|
+
`,Xi=e=>`
|
|
110
|
+
You will be provided with a list of data secnarios for a component and the overall structure for the data. Additionally you'll receive a description for a new scenario written by the user.
|
|
111
|
+
|
|
112
|
+
Your goal is to edit one of the scenarios, named as the "Mock Scenario that should be edited".
|
|
113
|
+
${e?`
|
|
114
|
+
We only want to edit a specific portion of the data, which is provided in the "The portion of the data that should be edited" section. You should only change the data that is provided in this section.`:""}
|
|
115
|
+
|
|
116
|
+
Always return the complete data structure for the scenario, with both mockData and argumentsData, even if you only changed a small portion of the data.
|
|
117
|
+
|
|
118
|
+
You must respond with valid JSON following this type definition:
|
|
119
|
+
\`\`\`
|
|
120
|
+
{
|
|
121
|
+
data: {
|
|
122
|
+
mockData: { [key: string]: unknown };
|
|
123
|
+
argumentsData: { [key: string]: unknown };
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
\`\`\`
|
|
127
|
+
`;async function el({request:e}){if(e.method!=="POST")return D({error:"Method not allowed"},{status:405});try{const t=await e.json(),{description:r,existingScenarios:a,scenariosDataStructure:s,editingMockName:o,editingMockData:l}=t;if(!r)return D({error:"Missing required field: description"},{status:400});const i=await Qi({description:r,existingScenarios:a??[],scenariosDataStructure:s,editingMockName:o,editingMockData:l});return D({success:!0,data:i})}catch(t){return console.error("[Generate Scenario Data API] Error:",t),D({error:"Failed to generate scenario data",details:t instanceof Error?t.message:String(t)},{status:500})}}const tl=Object.freeze(Object.defineProperty({__proto__:null,action:el},Symbol.toStringTag,{value:"Module"}));async function nl(e,t){const r=se();if(!r)return{entityCalls:[],analysisCalls:[]};const a=ne.join(r,".codeyam","llm-calls");try{await we.access(a)}catch{return{entityCalls:[],analysisCalls:[]}}const s=[],o=[];try{const i=(await we.readdir(a)).filter(w=>w.endsWith(".json")),d=`${e}_`,m=t?`${t}_`:null,u=[],h=[];for(const w of i)w.startsWith(d)||m&&w.startsWith(m)?u.push(w):h.push(w);const p=u.map(async w=>{try{const x=ne.join(a,w),N=await we.readFile(x,"utf-8");return JSON.parse(N)}catch{return null}}),f=h.map(async w=>{try{const x=ne.join(a,w),N=await we.readFile(x,"utf-8"),C=JSON.parse(N);return C.object_id===e||t&&C.object_id===t?C:null}catch{return null}}),[g,y]=await Promise.all([Promise.all(p),Promise.all(f)]),v=[...g,...y].filter(w=>w!==null);for(const w of v)w.object_id===e?s.push(w):t&&w.object_id===t&&o.push(w);s.sort((w,x)=>x.created_at-w.created_at),o.sort((w,x)=>x.created_at-w.created_at)}catch(l){console.error("Error loading LLM calls:",l)}return{entityCalls:s,analysisCalls:o}}async function rl({params:e,request:t}){const{entitySha:r}=e;if(!r)return D({error:"Entity SHA is required"},{status:400});const s=new URL(t.url).searchParams.get("analysisId")||void 0,o=await nl(r,s);return D(o)}const al=Object.freeze(Object.defineProperty({__proto__:null,loader:rl},Symbol.toStringTag,{value:"Module"}));function sl(e){const t=e||process.env.CODEYAM_ROOT_PATH||process.cwd();try{const r=Ee("git status --porcelain",{cwd:t,encoding:"utf8",stdio:["pipe","pipe","ignore"]});return ol(r)}catch(r){return console.error("Failed to get git status:",r),[]}}function ol(e){const t=e.trim().split(`
|
|
128
|
+
`).filter(a=>a.length>0),r=[];for(const a of t){const s=a[0],o=a[1];let l=a.slice(2).replace(/^[ \t]+/,""),i,d=!1,m;if(s==="A"||o==="A")i="added",d=s==="A";else if(s==="M"||o==="M")i="modified",d=s==="M";else if(s==="D"||o==="D")i="deleted",d=s==="D";else if(s==="R"||o==="R"){i="renamed",d=s==="R";const u=l.indexOf(" -> ");u!==-1&&(m=l.slice(0,u).trim(),l=l.slice(u+4).trim())}else o==="?"?(i="untracked",d=!1):(i="modified",d=s!==" "&&s!=="?");if(l.endsWith("/")){const u=process.env.CODEYAM_ROOT_PATH||process.cwd(),h=le.join(u,l);try{const p=(g,y)=>{const v=qe.readdirSync(g,{withFileTypes:!0}),w=[];for(const x of v){const N=le.join(g,x.name),C=le.relative(u,N);x.isDirectory()?w.push(...p(N,y)):x.isFile()&&w.push(C)}return w},f=p(h,u);for(const g of f)r.push({path:g,status:i,staged:d,...m&&{oldPath:m}})}catch(p){console.error(`Failed to expand directory ${l}:`,p)}}else r.push({path:l,status:i,staged:d,...m&&{oldPath:m}})}return r}function il(e){const t=e||process.env.CODEYAM_ROOT_PATH||process.cwd();try{return Ee("git branch --show-current",{cwd:t,encoding:"utf8",stdio:["pipe","pipe","ignore"]}).trim()||null}catch(r){return console.error("Failed to get current branch:",r),null}}function ll(e){const t=e||process.env.CODEYAM_ROOT_PATH||process.cwd();try{const a=Ee('git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null || echo ""',{cwd:t,encoding:"utf8",stdio:["pipe","pipe","ignore"]}).trim().match(/refs\/remotes\/origin\/(.+)/);if(a)return a[1];try{return Ee("git show-ref --verify --quiet refs/heads/main",{cwd:t,stdio:["pipe","pipe","ignore"]}),"main"}catch{try{return Ee("git show-ref --verify --quiet refs/heads/master",{cwd:t,stdio:["pipe","pipe","ignore"]}),"master"}catch{return"main"}}}catch(r){return console.error("Failed to get default branch:",r),"main"}}function cl(e){const t=e||process.env.CODEYAM_ROOT_PATH||process.cwd();try{return Ee('git branch --format="%(refname:short)"',{cwd:t,encoding:"utf8",stdio:["pipe","pipe","ignore"]}).trim().split(`
|
|
129
|
+
`).filter(a=>a.length>0)}catch(r){return console.error("Failed to get branches:",r),[]}}function oa(){const e=se();return e?sl(e):[]}function dl(){const e=se();return e?il(e):null}function ul(){const e=se();return e?ll(e):"main"}function ml(){const e=se();return e?cl(e):[]}function ia(e,t){const r=se();return r?hl(e,t,r):[]}function hl(e,t,r){const a=r||process.env.CODEYAM_ROOT_PATH||process.cwd();try{return Ee(`git diff --name-status ${e}...${t}`,{cwd:a,encoding:"utf8",stdio:["pipe","pipe","ignore"]}).trim().split(`
|
|
130
|
+
`).filter(l=>l.length>0).map(l=>{const i=l.split(" "),d=i[0];let m=i[1],u,h;return d==="A"?h="added":d==="M"?h="modified":d==="D"?h="deleted":d.startsWith("R")?(h="renamed",u=i[1],m=i[2]):h="modified",{path:m,status:h,...u&&{oldPath:u}}})}catch(s){return console.error("Failed to get branch diff:",s),[]}}function pl(e,t){const r=t||process.env.CODEYAM_ROOT_PATH||process.cwd();try{let a="";try{a=Ee(`git show HEAD:"${e}"`,{cwd:r,encoding:"utf8",stdio:["pipe","pipe","ignore"],maxBuffer:1024*1024*10})}catch{a=""}let s="";try{s=qe.readFileSync(le.join(r,e),"utf8")}catch(o){console.error(`Failed to read current file ${e}:`,o),s=""}return{oldContent:a,newContent:s,fileName:e}}catch(a){return console.error(`Failed to get diff for ${e}:`,a),{oldContent:"Error loading old content",newContent:"Error loading new content",fileName:e}}}function fl(e){const t=se();return t?pl(e,t):{oldContent:"Error: No project root",newContent:"Error: No project root",fileName:e}}function gl(e,t,r,a){const s=a||process.env.CODEYAM_ROOT_PATH||process.cwd();try{let o="";try{o=Ee(`git show ${t}:"${e}"`,{cwd:s,encoding:"utf8",stdio:["pipe","pipe","ignore"],maxBuffer:1024*1024*10})}catch{o=""}let l="";try{l=Ee(`git show ${r}:"${e}"`,{cwd:s,encoding:"utf8",stdio:["pipe","pipe","ignore"],maxBuffer:1024*1024*10})}catch{l=""}return{oldContent:o,newContent:l,fileName:e}}catch(o){return console.error(`Failed to get branch diff for ${e}:`,o),{oldContent:"Error loading old content",newContent:"Error loading new content",fileName:e}}}function It(e,t,r){const a=se();return a?gl(e,t,r,a):{oldContent:"Error: No project root",newContent:"Error: No project root",fileName:e}}function sr(e,t){try{return Ee(`git rev-parse ${e}`,{cwd:t,encoding:"utf8",stdio:["pipe","pipe","ignore"]})?.toString()?.trim()??null}catch(r){return console.error(`Failed to get commit SHA for ${e}:`,r),""}}function yl(e,t,r,a){const s=wn.createHash("sha256");return s.update(`${e}:${t}:${r}:${a}`),s.digest("hex").substring(0,16)}function la(){const e=se();if(!e)throw new Error("No project root found");const t=le.join(e,".codeyam","cache","branch-entity-diff");return qe.existsSync(t)||qe.mkdirSync(t,{recursive:!0}),t}function xl(e){try{const t=la(),r=le.join(t,`${e}.json`);if(!qe.existsSync(r))return null;const a=qe.readFileSync(r,"utf8");return JSON.parse(a)}catch(t){return console.error("Failed to read cache:",t),null}}function bl(e,t){try{const r=la(),a=le.join(r,`${e}.json`);qe.writeFileSync(a,JSON.stringify(t,null,2))}catch(r){console.error("Failed to write cache:",r)}}function vl(e,t,r){const a=Lt(t,e),s=Lt(r,e),o=new Map(a.map(u=>[u.name,u])),l=new Map(s.map(u=>[u.name,u])),i=[],d=[],m=[];for(const[u,h]of l){const p=o.get(u);p?p.sha!==h.sha&&d.push({name:u,baseSha:p.sha,compareSha:h.sha,entityType:h.entityType}):i.push(h)}for(const[u,h]of o)l.has(u)||m.push(h);return{filePath:e,newEntities:i,modifiedEntities:d,deletedEntities:m}}function wl(e,t){const r=se();if(!r)throw new Error("No project root found");const a=sr(e,r),s=sr(t,r);if(!a||!s)throw new Error(`Failed to get commit SHAs for branches: ${e}, ${t}`);const o=yl(e,t,a,s),l=xl(o);if(l)return console.log(`Using cached branch entity diff: ${o}`),l;const i=ia(e,t),d=[];for(const u of i)if(u.path.match(/\.(tsx?|jsx?)$/))if(u.status==="deleted"){const h=It(u.path,e,t),p=Lt(h.oldContent,u.path);d.push({filePath:u.path,newEntities:[],modifiedEntities:[],deletedEntities:p})}else if(u.status==="added"){const h=It(u.path,e,t),p=Lt(h.newContent,u.path);d.push({filePath:u.path,newEntities:p,modifiedEntities:[],deletedEntities:[]})}else{const h=It(u.path,e,t),p=vl(u.path,h.oldContent,h.newContent);(p.newEntities.length>0||p.modifiedEntities.length>0||p.deletedEntities.length>0)&&d.push(p)}const m={baseBranch:e,compareBranch:t,baseCommitSha:a,compareCommitSha:s,fileComparisons:d,cacheKey:o,computedAt:new Date().toISOString()};return bl(o,m),m}function Cl({request:e}){try{const t=new URL(e.url),r=t.searchParams.get("base"),a=t.searchParams.get("compare");if(!r||!a)return D({error:"Missing required parameters: base and compare"},{status:400});const s=wl(r,a);return D(s)}catch(t){return console.error("Failed to compute branch entity diff:",t),D({error:"Failed to compute branch entity diff",details:t instanceof Error?t.message:String(t)},{status:500})}}const Nl=Object.freeze(Object.defineProperty({__proto__:null,loader:Cl},Symbol.toStringTag,{value:"Module"}));async function Sl({request:e}){if(e.method!=="POST")return D({error:"Method not allowed"},{status:405});try{const t=await e.json(),{serverUrl:r,scenarioId:a,projectId:s,viewportWidth:o=1440}=t;if(!r||!a||!s)return D({error:"Missing required fields: serverUrl, scenarioId, and projectId"},{status:400});console.log(`[Capture] URL to capture: ${r}`),console.log(`[Capture] Scenario ID from request: ${a}`);const l=se();if(!l)return D({error:"Project root not found"},{status:500});const i=ne.join(l,"background","src","lib","virtualized","playwright","captureFromUrl.ts"),d=JSON.stringify({url:r,scenarioId:a,projectId:s,projectRoot:l,viewportWidth:o}),m=await new Promise(p=>{const f=ne.join(l,".codeyam","db.sqlite3"),g=Nn("npx",["tsx",i,d],{cwd:l,env:{...process.env,SQLITE_PATH:f}});let y="",v="";g.stdout.on("data",w=>{const x=w.toString();y+=x;const N=x.trim().split(`
|
|
131
|
+
`);for(const C of N)C.includes("[Capture]")&&console.log(C)}),g.stderr.on("data",w=>{const x=w.toString();v+=x,console.error("[Capture:Error]",x.trim())}),g.on("close",w=>{p(w===0?{success:!0,output:y}:{success:!1,output:y,error:v||`Process exited with code ${w}`})}),g.on("error",w=>{console.error("[Capture] Failed to spawn child process:",w),p({success:!1,output:"",error:w.message})})});if(!m.success)return D({error:"Failed to capture screenshot",details:m.error},{status:500});const u=m.output.match(/\[Capture\] RESULT:(.+)/);if(!u)return D({error:"Failed to parse capture result"},{status:500});const h=JSON.parse(u[1]);return D(h)}catch(t){return console.error("[Capture] Error:",t),D({error:"Failed to capture screenshot",details:t instanceof Error?t.message:String(t)},{status:500})}}const El=Object.freeze(Object.defineProperty({__proto__:null,action:Sl},Symbol.toStringTag,{value:"Module"}));async function Al(e,t,r){console.log(`[recapture] Starting recapture for analysis ${e} with width ${t}`),await ve();const a=await Fe({id:e,includeScenarios:!0,includeCommitAndBranch:!0});if(!a)throw console.log(`[recapture] Analysis ${e} not found`),new Error(`Analysis ${e} not found`);const s=ce(),o=a.entitySha,l=await s.selectFrom("entities").select(["metadata"]).where("sha","=",o).executeTakeFirst();let i={};if(l?.metadata&&(typeof l.metadata=="string"?i=JSON.parse(l.metadata):i=l.metadata),i.defaultWidth=t,await s.updateTable("entities").set({metadata:JSON.stringify(i)}).where("sha","=",o).execute(),console.log(`[recapture] Updated defaultWidth for entity ${o} to ${t}`),!a.commit)throw new Error(`Commit not found for analysis ${e}`);console.log(`[recapture] Loaded analysis with ${a.scenarios?.length||0} scenarios`),await xt(e,f=>{if(f&&(f.readyToBeCaptured=!0,f.scenarios))for(const g of f.scenarios)delete g.screenshotStartedAt,delete g.screenshotFinishedAt,delete g.interactiveStartedAt,delete g.interactiveFinishedAt}),console.log(`[recapture] Marked analysis ${e} as ready to be captured`);const d=se();if(!d)throw new Error("Project root not found");const m=ne.join(d,".codeyam","config.json"),u=JSON.parse(re.readFileSync(m,"utf8")),{projectSlug:h}=u;if(!h)throw new Error("Project slug not found in config");const{jobId:p}=r.enqueue({type:"recapture",commitSha:a.commit.sha,projectSlug:h,analysisId:e,defaultWidth:t});return console.log(`[recapture] Recapture job queued with ID: ${p}`),{jobId:p}}async function _l(e,t,r){console.log(`[recapture] Starting scenario recapture for analysis ${e}, scenario ${t}`),await ve();const a=await Fe({id:e,includeScenarios:!0,includeCommitAndBranch:!0});if(!a)throw console.log(`[recapture] Analysis ${e} not found`),new Error(`Analysis ${e} not found`);if(!a.commit)throw new Error(`Commit not found for analysis ${e}`);const s=a.scenarios?.find(u=>u.id===t);if(!s)throw console.log(`[recapture] Scenario ${t} not found in analysis ${e}`),new Error(`Scenario ${t} not found in analysis ${e}`);console.log(`[recapture] Found scenario: ${s.name}`),await xt(e,u=>{if(u&&(u.readyToBeCaptured=!0,u.scenarios)){const h=u.scenarios.find(p=>p.name===s.name);h&&(delete h.error,delete h.errorStack,delete h.screenshotStartedAt,delete h.screenshotFinishedAt,delete h.interactiveStartedAt,delete h.interactiveFinishedAt)}}),console.log(`[recapture] Cleared errors and marked scenario ${s.name} for recapture`);const o=se();if(!o)throw new Error("Project root not found");const l=ne.join(o,".codeyam","config.json"),i=JSON.parse(re.readFileSync(l,"utf8")),{projectSlug:d}=i;if(!d)throw new Error("Project slug not found in config");const{jobId:m}=r.enqueue({type:"recapture",commitSha:a.commit.sha,projectSlug:d,analysisId:e,scenarioId:t});return console.log(`[recapture] Scenario recapture job queued with ID: ${m}`),{jobId:m}}function Bt(e){return ne.join(e,".codeyam","queue.json")}function ut(e){const t=Bt(e);if(!re.existsSync(t))return{paused:!1,jobs:[]};try{const r=re.readFileSync(t,"utf8");return JSON.parse(r)}catch(r){return console.error("Failed to load queue state:",r),{paused:!1,jobs:[]}}}function Pl(e,t){const r=Bt(e),a=ne.dirname(r);re.existsSync(a)||re.mkdirSync(a,{recursive:!0});try{re.writeFileSync(r,JSON.stringify(t,null,2),"utf8")}catch(s){throw console.error("Failed to save queue state:",s),s}}async function Tl({sourcePath:e,destinationPath:t,excludes:r=[],keepExisting:a=!1,silent:s=!1,extraArgs:o=[]}){return new Promise((l,i)=>{const d=e.endsWith("/")?e:`${e}/`,m=t.endsWith("/")?t:`${t}/`,u=["-a"];a||u.push("--delete","--force"),u.push(...o);for(const f of r)u.push(`--exclude=${f}`);u.push(d,m);const h=Date.now(),p=Nn("rsync",u);p.on("exit",f=>{if(f===0){if(!s){const g=((Date.now()-h)/1e3).toFixed(1);console.log(`Directory synced from ${e} to ${t} [Time: ${g}s]`)}l()}else i(new Error(`rsync failed with exit code ${f}`))}),p.on("error",f=>{s||console.log("Error occurred:",f),i(f)})})}const kl=Sn(Cn);async function Il(e){return new Promise(t=>setTimeout(t,e))}function Ml(e){try{return process.kill(e,0),!0}catch{return!1}}async function ca(e){try{const{stdout:t}=await kl(`ps -A -o pid=,ppid= | awk '$2 == ${e} { print $1 }'`),r=t.trim().split(`
|
|
132
|
+
`).filter(s=>s.trim()).map(s=>parseInt(s.trim(),10)).filter(s=>!isNaN(s)),a=[...r];for(const s of r){const o=await ca(s);a.push(...o)}return a}catch{return[]}}function or(e,t,r){try{process.kill(e,t)}catch(a){r?.(`Error sending ${t} to process ${e}: ${a}`)}}async function Rl(e,t,r){const a=await ca(e);for(const s of a.reverse())await or(s,t,r);await or(e,t,r)}async function Ut(e,t=console.log,r=1){if(e==process.pid)throw new Error(`Eek! killProcess(${e}) called on self!`);let a=0;async function s(o,l){await Rl(e,o,t);for(let i=0;i<l;i++)if(await Il(1e3),a+=1e3,!await Ml(e))return t(`Process tree ${e} successfully killed with ${o} after ${a/1e3} seconds.`),!0;return t(`Process tree still running after ${o}...`),!1}if(await s("SIGINT",5)||await s("SIGTERM",5))return!0;for(let o=0;o<r;o++)if(await s("SIGKILL",2))return!0;return console.warn(`CodeYam Warning: Completely failed to kill process tree ${e} after ${a/1e3} seconds.`),!1}function $l(e){const t=new Date().toISOString();e.currentRun&&(e.currentRun.archivedAt=t,e.historicalRuns??=[],e.historicalRuns.push(e.currentRun)),e.currentRun={id:hs(),createdAt:t}}is.config({quiet:!0});var da=(e=>(e.Server="server",e.Analyzer="analyzer",e.Capture="capture",e.Controller="controller",e.Worker="worker",e.Project="project",e.Other="other",e))(da||{});class jl extends ls{constructor(){super(...arguments),this.processes=new Map}register(t){const r=ds(),{process:a,type:s,name:o,metadata:l,parentId:i}=t,d={id:r,type:s,name:o,pid:a.pid,state:"running",startedAt:Date.now(),metadata:l,parentId:i,children:[]};if(this.processes.set(r,{info:d,process:a}),i){const h=this.processes.get(i);h&&(h.info.children=h.info.children||[],h.info.children.push(r))}const m=(h,p)=>{this.handleProcessExit(r,h,p)},u=h=>{this.handleProcessError(r,h)};return a.on("exit",m),a.on("error",u),a.__cleanup=()=>{a.removeListener("exit",m),a.removeListener("error",u)},this.emit("processStarted",d),r}unregister(t){const r=this.processes.get(t);return r?(r.process.__cleanup&&r.process.__cleanup(),this.processes.delete(t),!0):!1}getInfo(t){const r=this.processes.get(t);return r?{...r.info}:null}listAll(){return Array.from(this.processes.values()).map(t=>({...t.info}))}listByType(t){return this.listAll().filter(r=>r.type===t)}listByState(t){return this.listAll().filter(r=>r.state===t)}findByName(t){return this.listAll().filter(r=>r.name===t)}async shutdown(t,r={}){const a=this.processes.get(t);if(!a)throw new Error(`Process not found: ${t}`);const{info:s,process:o}=a;if(s.state==="completed"||s.state==="failed"||s.state==="killed")return;if(r.shutdownChildren&&s.children&&s.children.length>0&&await Promise.all(s.children.map(i=>this.shutdown(i,r))),o.pid)try{await Ut(o.pid,i=>console.log(`[Process ${t}] ${i}`))}catch(i){console.warn(`Error killing process ${t}:`,i)}await new Promise(i=>setTimeout(i,100)),s.state==="running"&&(s.state="killed",s.endedAt=Date.now());const l=o.__cleanup;l&&l()}async shutdownByType(t,r={}){const a=this.listByType(t);await Promise.all(a.map(s=>this.shutdown(s.id,r)))}async shutdownAll(t={}){const r=this.listAll();await Promise.all(r.map(a=>this.shutdown(a.id,t)))}cleanupCompleted(t={}){const{retentionMs:r=6e4}=t,a=Date.now();for(const[s,o]of this.processes.entries()){const{info:l}=o;if((l.state==="completed"||l.state==="failed"||l.state==="killed")&&l.endedAt&&a-l.endedAt>r){const i=o.process.__cleanup;i&&i(),this.processes.delete(s)}}}handleProcessExit(t,r,a){const s=this.processes.get(t);if(!s)return;const{info:o}=s;o.endedAt=Date.now(),o.exitCode=r,o.signal=a,r===0?o.state="completed":a?o.state="killed":o.state="failed",this.emit("processExited",o)}handleProcessError(t,r){const a=this.processes.get(t);if(!a)return;const{info:s}=a;s.endedAt=Date.now(),s.state="failed",s.metadata={...s.metadata,error:r.message},this.emit("processExited",s)}}let cn=null;function Dl(){return cn||(cn=new jl),cn}const Ll={stdoutToConsole:!0,stdoutToFile:!0,stderrToConsole:!0,stderrToFile:!0};function Ol({command:e,args:t,workingDir:r,outputOptions:a=Ll,processName:s,env:o}){const l={...process.env,...o||{},CODEYAM_PROCESS_NAME:`codeyam-${s}`},i=Nn(e,t,{cwd:r,env:l});return Dl().register({process:i,type:da.Other,name:s,metadata:{command:e,args:t,workingDir:r}}),{promise:new Promise(u=>{const h=f=>{const g=le.join(r,"log.txt");re.appendFile(g,f,y=>{y&&console.log("Error writing to log file:",y)})},p=(f,g="")=>{const y=new Date().toLocaleString();return f.split(`
|
|
133
|
+
`).map(w=>w.trim()?`[${y}]${g} ${w}`:w).join(`
|
|
134
|
+
`)};i.stdout.on("data",function(f){const g=f?.toString()??"",y=p(g);a.stdoutToConsole&&console.log(y),a.stdoutToFile&&h(y+`
|
|
135
|
+
`),a.stdoutCallback&&a.stdoutCallback(g)}),i.stderr.on("data",function(f){const g=f?.toString()??"",y=p(g,"<STDERR>");a.stderrToConsole&&console.error(y),a.stderrToFile&&h(y+`
|
|
136
|
+
`),a.stderrCallback&&a.stderrCallback(g)}),i.on("exit",function(f){u(f)})}),process:i}}function Yl(e){const t=[];return Object.keys(e).forEach(r=>{const a=e[r];a!==void 0&&(typeof a=="boolean"?a&&t.push(`--${r}`):a!==null&&t.push(`--${r}`,String(a)))}),t}function Fl({absoluteCodeyamRootPath:e,startEnv:t,startArgs:r,outputOptions:a}){const s=Object.entries(t).map(([l,i])=>`${l}=${i}`).join(`
|
|
137
|
+
`);re.writeFileSync(`${e}/.env`,s);const o=Yl(r);return Ol({command:"node",args:["--enable-source-maps","./dist/project/start.js",...o],workingDir:e,outputOptions:a,processName:"analyzer",env:t})}const zl=ne.dirname(Rr(import.meta.url));function Bl(e){let t=e;for(;t!==ne.dirname(t);){const r=ne.join(t,"package.json");if(re.existsSync(r))try{if(JSON.parse(re.readFileSync(r,"utf8")).name==="@codeyam/codeyam-cli")return t}catch{}t=ne.dirname(t)}throw new Error("Could not find @codeyam/codeyam-cli package root")}function jn(){const e=Bl(zl);return ne.join(e,"analyzer-template")}function it(e){return`/tmp/codeyam/local-dev/${e}/codeyam`}async function ir(e){const t=jn(),r=it(e);if(!re.existsSync(t))throw new Error(`Analyzer template not found at ${t}. Did the build process complete successfully?`);await we.mkdir(ne.dirname(r),{recursive:!0}),await Tl({sourcePath:t,destinationPath:r,silent:!0})}function Zt(e,t,r,a){const s=it(e);if(!re.existsSync(s))throw new Error(`Analyzer not found at ${s}. The analyzer template may not be initialized. Try running 'codeyam init' or contact support if the issue persists.`);const o=void 0;return Fl({absoluteCodeyamRootPath:s,startEnv:t,startArgs:r,outputOptions:{stdoutToConsole:!1,stdoutToFile:!0,stdoutCallback:o,stderrToConsole:!1,stderrToFile:!0,stderrCallback:o}})}function Ul(e){const t=jn(),r=it(e),a=ne.join(t,".build-info.json"),s=ne.join(r,".build-info.json");if(!re.existsSync(a))return{isFresh:!1,reason:"Template build marker missing - template may be corrupted"};if(!re.existsSync(r))return{isFresh:!1,reason:"Cached analyzer does not exist"};if(!re.existsSync(s))return{isFresh:!1,reason:"Cached analyzer build marker missing - was created with old version"};try{const o=JSON.parse(re.readFileSync(a,"utf8")),l=JSON.parse(re.readFileSync(s,"utf8"));return o.buildTime>l.buildTime?{isFresh:!1,reason:`Template is newer (${o.buildTimestamp}) than cached version (${l.buildTimestamp})`}:{isFresh:!0}}catch(o){return{isFresh:!1,reason:`Error reading build markers: ${o.message}`}}}async function ql(e,t){const r=it(e);if(!re.existsSync(r)){t.update("Creating analyzer..."),await ir(e);return}const a=Ul(e);a.isFresh||(t.update(`Updating analyzer (${a.reason})...`),await ir(e))}const Gl=ne.dirname(Rr(import.meta.url));function ua(){let e=Gl;for(;e!==ne.dirname(e);){const t=ne.join(e,"package.json");if(re.existsSync(t))try{if(JSON.parse(re.readFileSync(t,"utf8")).name==="@codeyam/codeyam-cli")return e}catch{}e=ne.dirname(e)}return null}function Hl(){const e=ua();return e?ne.join(e,"package.json"):null}function Mt(e){if(!re.existsSync(e))return null;try{return JSON.parse(re.readFileSync(e,"utf8"))}catch{return null}}function Wl(e){let t="unknown";const r=ua(),a=Hl();if(a)try{t=JSON.parse(re.readFileSync(a,"utf8")).version||"unknown"}catch{}let s=null;if(r){const u=[ne.join(r,"src/webserver/build-info.json"),ne.join(r,"codeyam-cli/src/webserver/build-info.json")];for(const h of u)if(s=Mt(h),s)break}const o=jn(),l=ne.join(o,".build-info.json"),i=Mt(l);let d=null;if(e){const u=it(e),h=ne.join(u,".build-info.json");d=Mt(h)}let m=!1;return i&&d?m=i.buildTime>d.buildTime:i&&!d&&e&&(m=!0),{cliVersion:t,webserverVersion:s,templateVersion:i,cachedAnalyzerVersion:d,isCacheStale:m}}function ma(e){const t=it(e),r=ne.join(t,".build-info.json");return Mt(r)?.version??null}class Kl extends cs{watcher=null;dbPath=null;isWatching=!1;async start(){if(!this.isWatching)try{this.dbPath=ot();const{default:t}=await import("chokidar"),r=[this.dbPath,`${this.dbPath}-wal`,`${this.dbPath}-shm`];this.watcher=t.watch(r,{persistent:!0,ignoreInitial:!0,usePolling:!0,interval:1e3}),this.watcher.on("change",a=>{const s=Date.now(),o=new Date(s).toISOString();console.log("[dbNotifier] ========================================"),console.log(`[dbNotifier] Database file changed: ${a}`),console.log(`[dbNotifier] Timestamp: ${o} (${s})`),console.log(`[dbNotifier] Listeners count: ${this.listenerCount("change")}`),console.log("[dbNotifier] ========================================"),this.emit("change",{type:"unknown",timestamp:s})}).on("error",a=>{console.error("Database watcher error:",a),this.emit("error",a)}),this.isWatching=!0}catch(t){console.error("Failed to start database watcher:",t),this.emit("error",t)}}notifyChange(t="unknown"){const r=Date.now(),a=new Date(r).toISOString();console.log("[dbNotifier] ========================================"),console.log("[dbNotifier] Manual notification triggered"),console.log(`[dbNotifier] Change type: ${t}`),console.log(`[dbNotifier] Timestamp: ${a} (${r})`),console.log(`[dbNotifier] Listeners count: ${this.listenerCount("change")}`),console.log("[dbNotifier] ========================================"),this.emit("change",{type:t,timestamp:r})}stop(){this.watcher&&(this.watcher.close(),this.watcher=null,this.isWatching=!1,console.log("Database watcher stopped"))}}const Xe=new Kl;async function Vl(e,t){console.log(`[Queue] Executing job ${e.id} (${e.type})`);try{if(e.type==="analysis")await Jl(e,t);else if(e.type==="recapture")await Ql(e,t);else if(e.type==="debug-setup")await Zl(e,t);else if(e.type==="interactive-start")await Xl(e,t);else if(e.type==="interactive-stop")await ec(e,t);else throw new Error(`Unknown job type: ${e.type}`);console.log(`[Queue] Job ${e.id} completed successfully`)}catch(r){throw console.error(`[Queue] Job ${e.id} failed:`,r),r}}async function Jl(e,t){const{projectSlug:r,commitSha:a,entityShas:s}=e;if(!a)throw new Error("Analysis job missing commitSha");const o=s||[],{project:l}=await Ae(r);await ql(r,{update:g=>console.log(`[Queue] ${g}`)});const i=ma(r),d={...await st(),PROJECT_SLUG:r,USE_WORKER_THREADS:"true",COMMIT_SHA:a,CODEYAM_LOCAL_PROJECT_PATH:t,SQLITE_PATH:ot(),...o.length>0?{ENTITY_SHAS:o.join(",")}:{},...e.onlyDataStructure?{ONLY_DATA_STRUCTURE:"true"}:{},...i?{ANALYZER_VERSION:i}:{}},m=l.metadata?.webapps?.[0];if(!m)throw new Error("No webapps found in project metadata");const u=e.onlyDataStructure,h={packageManager:l.metadata?.packageManager||"npm",absoluteProjectRootPath:`/tmp/codeyam/local-dev/${r}/project`,port:0,noServer:!0,framework:m.framework,...u?{}:{orchestrateCapture:"local-sequential"}},p=Zt(r,d,h),f=g=>{try{return process.kill(g,0),!0}catch{return!1}};await Ze({commitSha:a,runStatusUpdate:{currentEntityShas:o,entityCount:o.length||e.filePaths?.length||0,analysesCompleted:0,capturesCompleted:0,createdAt:new Date().toISOString(),analyzerPid:p.process.pid}}),Xe.notifyChange("commit");try{try{const g=new Promise((y,v)=>setTimeout(()=>v(new Error("Analysis timed out after 60 minutes")),36e5));await Promise.race([p.promise,g]),await Ze({commitSha:a,runStatusUpdate:{analyzerPid:void 0},archiveCurrentRun:!0}),Xe.notifyChange("commit"),await Ze({commitSha:a,runStatusUpdate:{currentEntityShas:[]}}),Xe.notifyChange("commit"),await new Promise(y=>setTimeout(y,2e3))}finally{if(p.process.pid)try{f(p.process.pid)&&await Ut(p.process.pid,()=>{})}catch{}}}catch(g){if(console.error(`[Queue] Analysis job ${e.id} failed:`,g),p.process.pid&&f(p.process.pid))try{await Ut(p.process.pid,()=>{})}catch{}try{await Ze({commitSha:a,runStatusUpdate:{analyzerPid:void 0,failedAt:new Date().toISOString(),failureReason:g instanceof Error?g.message:String(g)}}),Xe.notifyChange("commit")}catch(y){console.error("[Queue] Failed to update commit metadata after job failure:",y)}throw g}}async function Ql(e,t){const{projectSlug:r,analysisId:a,scenarioId:s,defaultWidth:o}=e;if(!a)throw new Error("Recapture job missing analysisId");const l=await Fe({id:a,includeScenarios:!0,includeCommitAndBranch:!0});if(!l||!l.commit)throw new Error(`Analysis ${a} not found`);if(o){const{getDatabase:p}=await import("./index-DHr4rT4u.js"),f=p(),g=await f.selectFrom("entities").select(["metadata"]).where("sha","=",l.entitySha).executeTakeFirst();let y={};g?.metadata&&(typeof g.metadata=="string"?y=JSON.parse(g.metadata):y=g.metadata),y.defaultWidth=o,await f.updateTable("entities").set({metadata:JSON.stringify(y)}).where("sha","=",l.entitySha).execute()}await xt(a,p=>{if(p.readyToBeCaptured=!0,p.scenarios)for(const f of p.scenarios)(!s||f.name===s)&&(delete f.screenshotStartedAt,delete f.screenshotFinishedAt,delete f.interactiveStartedAt,delete f.interactiveFinishedAt,delete f.error,delete f.errorStack)});const{project:i}=await Ae(r),d=ma(r),m={...await st(),PROJECT_SLUG:r,USE_WORKER_THREADS:"true",COMMIT_SHA:l.commit.sha,CODEYAM_LOCAL_PROJECT_PATH:t,SQLITE_PATH:ot(),READY_TO_BE_CAPTURED:"true",ANALYSIS_IDS:a,...s?{SCENARIO_IDS:s}:{},...d?{ANALYZER_VERSION:d}:{}},u={packageManager:i.metadata?.packageManager||"npm",absoluteProjectRootPath:`/tmp/codeyam/local-dev/${r}/project`,port:void 0,noServer:!0,framework:i.metadata?.webapps?.[0]?.framework??yt.Next,orchestrateCapture:"local-sequential"},h=Zt(r,m,u);try{await h.promise}finally{try{h.process.kill("SIGTERM")}catch{}}}async function Zl(e,t){const{projectSlug:r,analysisId:a,scenarioId:s}=e;if(!a)throw new Error("Debug setup job missing analysisId");const o=await Fe({id:a,includeScenarios:!0,includeCommitAndBranch:!0});if(!o||!o.commit)throw new Error(`Analysis ${a} not found`);const{project:l}=await Ae(r),i={...await st(),PROJECT_SLUG:r,USE_WORKER_THREADS:"true",COMMIT_SHA:o.commit.sha,CODEYAM_LOCAL_PROJECT_PATH:t,SQLITE_PATH:ot(),READY_TO_BE_CAPTURED:"true",ANALYSIS_IDS:a,PREP_ONLY:"true"};s&&(i.SCENARIO_IDS=s);const d={packageManager:l.metadata?.packageManager||"npm",absoluteProjectRootPath:`/tmp/codeyam/local-dev/${r}/project`,port:void 0,noServer:!1,framework:l.metadata?.webapps?.[0]?.framework||yt.Next},u=await Zt(r,i,d).promise;if(u!==0)throw new Error(`Prep process exited with code ${u}`)}async function Xl(e,t){const{projectSlug:r,analysisId:a,scenarioId:s}=e;if(!a)throw new Error("Interactive start job missing analysisId");const o=await Fe({id:a,includeScenarios:!0,includeCommitAndBranch:!0});if(!o||!o.commit)throw new Error(`Analysis ${a} not found`);const{project:l}=await Ae(r),i={...await st(),PROJECT_SLUG:r,USE_WORKER_THREADS:"true",COMMIT_SHA:o.commit.sha,CODEYAM_LOCAL_PROJECT_PATH:t,SQLITE_PATH:ot(),READY_TO_BE_CAPTURED:"true",ANALYSIS_IDS:a,INTERACTIVE_MODE:"true"};s&&(i.SCENARIO_IDS=s);const d={packageManager:l.metadata?.packageManager||"npm",absoluteProjectRootPath:`/tmp/codeyam/local-dev/${r}/project`,port:void 0,noServer:!1,framework:l.metadata?.webapps?.[0]?.framework||yt.Next};await xt(a,u=>{u.readyToBeCaptured=!0});const m=Zt(r,i,d);await Ur(a,u=>{u.interactiveMode={pid:m.process.pid,startedAt:new Date().toISOString(),jobId:e.id}}),console.log(`[Queue] Interactive mode started for analysis ${a}, PID: ${m.process.pid}`)}async function ec(e,t){const{projectSlug:r,analysisId:a}=e;if(!a)throw new Error("Interactive stop job missing analysisId");const s=await Fe({id:a,includeScenarios:!0,includeCommitAndBranch:!0});if(!s)throw new Error(`Analysis ${a} not found`);const o=s.metadata?.interactiveMode;if(!o?.pid){console.log(`[Queue] No interactive mode process found for analysis ${a}`);return}const l=o.pid;console.log(`[Queue] Stopping interactive mode for analysis ${a}, killing PID: ${l}`);try{try{process.kill(l,0)}catch{console.log(`[Queue] Process ${l} already exited`);return}await Ut(l,()=>{}),console.log(`[Queue] Successfully killed interactive mode process ${l}`)}catch(i){throw console.error(`[Queue] Failed to kill process ${l}:`,i),i}finally{await Ur(a,i=>{i.interactiveMode=null})}}class tc{constructor(t,r){this.processing=!1,this.completionCallbacks=new Map,this.completedJobs=new Map,this.projectRoot=t,this.state={paused:!1,jobs:[]},this.onStateChange=r}start(){this.state=ut(this.projectRoot),this.state.jobs.length>0?(this.state.paused=!0,this.save(),console.log(`[Queue] Found ${this.state.jobs.length} queued jobs from previous session (paused)`)):this.state.paused=!1}enqueue(t){const r=t.commitSha||ft(),a={...t,id:r,queuedAt:new Date().toISOString()};this.state.jobs.push(a),this.save(),console.log(`[Queue] Enqueued job ${r} (${a.type})`);const s=new Promise((o,l)=>{this.completionCallbacks.set(r,i=>{i?l(i):o()})});return this.state.paused||this.processNext().catch(o=>{console.error("[Queue] ERROR in processNext():",o)}),{jobId:r,completion:s}}resume(){console.log("[Queue] Resuming queue"),this.state.paused=!1,this.save(),this.processNext()}pause(){console.log("[Queue] Pausing queue"),this.state.paused=!0,this.save()}getState(){return{...this.state}}getJobResult(t){return this.completedJobs.get(t)}async processNext(){if(this.state.paused||this.processing||this.state.jobs.length===0)return;this.processing=!0;const t=this.state.jobs[0];console.log(`[Queue] Starting job ${t.id} (${t.type})`);try{this.state.currentlyExecuting=this.state.jobs.shift(),this.save(),await Vl(t,this.projectRoot),this.state.currentlyExecuting=void 0,this.save(),this.completedJobs.set(t.id,{id:t.id,status:"success",completedAt:new Date().toISOString()});const r=this.completionCallbacks.get(t.id);r&&(r(),this.completionCallbacks.delete(t.id)),console.log(`[Queue] Job ${t.id} completed`)}catch(r){console.error(`[Queue] Job ${t.id} failed:`,r),this.state.currentlyExecuting=void 0,this.save(),this.completedJobs.set(t.id,{id:t.id,status:"error",error:r?.message||"Unknown error",completedAt:new Date().toISOString()});const a=this.completionCallbacks.get(t.id);a&&(a(r),this.completionCallbacks.delete(t.id))}finally{this.processing=!1,!this.state.paused&&this.state.jobs.length>0&&setImmediate(()=>void this.processNext())}}save(){Pl(this.projectRoot,this.state),this.onStateChange&&this.onStateChange()}}class nc{constructor(t,r,a=100){this.watcher=null,this.debounceTimer=null,this.projectRoot=t,this.onChange=r,this.debounceMs=a}start(){const t=Bt(this.projectRoot);if(!re.existsSync(t)){console.log("[QueueFileWatcher] Queue file does not exist yet, will start watching when created"),this.watchDirectory();return}this.watchFile(t)}watchDirectory(){const t=Bt(this.projectRoot),r=t.substring(0,t.lastIndexOf("/"));try{this.watcher=re.watch(r,(a,s)=>{s==="queue.json"&&(this.stop(),this.watchFile(t),this.notifyChange())}),console.log("[QueueFileWatcher] Watching .codeyam directory for queue.json creation")}catch(a){console.error("[QueueFileWatcher] Failed to watch directory:",a)}}watchFile(t){try{this.watcher=re.watch(t,r=>{r==="change"&&this.notifyChange()}),console.log("[QueueFileWatcher] Watching queue.json for changes")}catch(r){console.error("[QueueFileWatcher] Failed to watch queue file:",r)}}notifyChange(){this.debounceTimer&&clearTimeout(this.debounceTimer),this.debounceTimer=setTimeout(()=>{this.onChange(),this.debounceTimer=null},this.debounceMs)}stop(){this.watcher&&(this.watcher.close(),this.watcher=null),this.debounceTimer&&(clearTimeout(this.debounceTimer),this.debounceTimer=null)}}class rc{constructor(t,r,a){this.fileWatcher=null,this.serverInfo=t,this.projectRoot=r,this.onStateChange=a,this.cachedState=ut(r)}start(){this.cachedState=ut(this.projectRoot),console.log(`[ProxyQueue] Connected to background server at ${this.serverInfo.url}`),console.log(`[ProxyQueue] Current queue has ${this.cachedState.jobs.length} jobs`),this.fileWatcher=new nc(this.projectRoot,()=>{console.log("[ProxyQueue] Detected queue.json change from background server"),this.refreshState()}),this.fileWatcher.start()}enqueue(t){let r,a;const s=new Promise((l,i)=>{r=l,a=i}),o=`proxy-${Date.now()}-${Math.random().toString(36).slice(2)}`;return this.enqueueRemote(t).then(l=>{console.log(`[ProxyQueue] Job enqueued on background server: ${l.jobId}`),this.refreshState(),r()}).catch(l=>{console.error("[ProxyQueue] Failed to enqueue job:",l),a(l)}),{jobId:o,completion:s}}async enqueueRemote(t){const r=await fetch(`${this.serverInfo.url}/api/queue`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"enqueue",...t})});if(!r.ok){const a=await r.text();throw new Error(`Failed to enqueue: ${r.status} ${a}`)}return r.json()}resume(){console.log("[ProxyQueue] Sending resume command to background server"),this.sendAction("resume").catch(t=>{console.error("[ProxyQueue] Failed to resume:",t)})}pause(){console.log("[ProxyQueue] Sending pause command to background server"),this.sendAction("pause").catch(t=>{console.error("[ProxyQueue] Failed to pause:",t)})}async sendAction(t){const r=await fetch(`${this.serverInfo.url}/api/queue`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:t})});if(!r.ok){const a=await r.text();throw new Error(`Failed to ${t}: ${r.status} ${a}`)}this.refreshState()}getState(){return this.cachedState=ut(this.projectRoot),{...this.cachedState}}refreshState(){this.cachedState=ut(this.projectRoot),this.onStateChange&&this.onStateChange()}async isServerAlive(){try{const t=new AbortController,r=setTimeout(()=>t.abort(),2e3),a=await fetch(`${this.serverInfo.url}/api/health`,{signal:t.signal});return clearTimeout(r),a.ok}catch{return!1}}getServerInfo(){return{...this.serverInfo}}stop(){this.fileWatcher&&(this.fileWatcher.stop(),this.fileWatcher=null)}}function ac(e){const t=ne.join(e,".codeyam","server.json");if(!re.existsSync(t))return null;try{const r=re.readFileSync(t,"utf8");return JSON.parse(r)}catch{return null}}function sc(e){try{return process.kill(e,0),!0}catch{return!1}}async function oc(e){try{const t=new AbortController,r=setTimeout(()=>t.abort(),2e3),a=await fetch(`${e}/api/health`,{signal:t.signal});return clearTimeout(r),a.ok}catch{return!1}}async function ic(e){const t=ac(e);return!t||!sc(t.pid)||!await oc(t.url)?null:{url:t.url,port:t.port,pid:t.pid}}let mt=null,At=null;async function lc(){if(!mt){if(At){await At;return}At=(async()=>{try{const e=process.env.CODEYAM_ROOT_PATH||qr()||process.cwd();ko(e),console.log(`[GlobalQueue] Project root: ${e}`);const t=await ic(e);if(t){console.log(`[GlobalQueue] Detected background server at ${t.url} (PID: ${t.pid})`),console.log("[GlobalQueue] Using proxy queue");const r=new rc(t,e,()=>{Xe.notifyChange("unknown")});await r.start(),mt=r}else{console.log("[GlobalQueue] No background server detected, using local queue");const r=new tc(e,()=>{Xe.notifyChange("unknown")});await r.start(),mt=r}console.log("[GlobalQueue] Queue initialized")}catch(e){throw console.error("[GlobalQueue] Failed to initialize queue:",e),e}})(),await At}}async function je(){return mt||await lc(),mt}async function cc({request:e,context:t}){if(e.method!=="POST")return D({error:"Method not allowed"},{status:405});let r=t.analysisQueue;if(r||(r=await je()),!r)return D({error:"Queue not initialized"},{status:500});try{const a=await e.formData(),s=a.get("analysisId"),o=a.get("scenarioId");if(!s||!o)return D({error:"Missing required fields: analysisId and scenarioId"},{status:400});console.log(`[API] Starting scenario recapture for analysis ${s}, scenario ${o}`);const l=await _l(s,o,r);return console.log("[API] Scenario recapture queued",l),D({success:!0,message:"Scenario recapture queued",...l})}catch(a){return console.log("[API] Error during scenario recapture:",a),D({error:"Failed to recapture scenario",details:a instanceof Error?a.message:String(a)},{status:500})}}const dc=Object.freeze(Object.defineProperty({__proto__:null,action:cc},Symbol.toStringTag,{value:"Module"}));async function uc({params:e,request:t}){const{projectSlug:r}=e;if(!r)return new Response("Project slug is required",{status:400});if(t.method!=="DELETE")return new Response("Method not allowed",{status:405});const a=`/tmp/codeyam/local-dev/${r}/codeyam/log.txt`;try{return await Qa(a,"","utf-8"),new Response("Logs cleared successfully",{status:200,headers:{"Content-Type":"text/plain; charset=utf-8"}})}catch(s){console.error("[api.logs] Error clearing log file:",s);const o=s instanceof Error?s.message:String(s);return new Response(`Error clearing log file: ${o}`,{status:500,headers:{"Content-Type":"text/plain; charset=utf-8"}})}}async function mc({params:e}){const{projectSlug:t}=e;if(!t)return new Response("Project slug is required",{status:400});const r=`/tmp/codeyam/local-dev/${t}/codeyam/log.txt`;try{if(!qa(r))return new Response("No logs available yet. Analysis may not have started.",{status:404,headers:{"Content-Type":"text/plain; charset=utf-8"}});const a=await Za(r,"utf-8");return!a||a.trim().length===0?new Response("Log file is empty. Waiting for analysis to start...",{headers:{"Content-Type":"text/plain; charset=utf-8"}}):new Response(a,{headers:{"Content-Type":"text/plain; charset=utf-8"}})}catch(a){console.error("[api.logs] Error reading log file:",a);const s=a instanceof Error?a.message:String(a);return new Response(`Error reading log file: ${s}`,{status:500,headers:{"Content-Type":"text/plain; charset=utf-8"}})}}const hc=Object.freeze(Object.defineProperty({__proto__:null,action:uc,loader:mc},Symbol.toStringTag,{value:"Module"}));async function pc(e,t){console.log(`[executeLibraryFunction] Starting execution for analysis ${e}, scenario ${t}`),await ve();const r=await Fe({id:e,includeScenarios:!0,includeFile:!0});if(!r)throw new Error(`Analysis ${e} not found`);const a=r.scenarios?.find(o=>o.id===t);if(!a)throw new Error(`Scenario ${t} not found in analysis ${e}`);console.log(`[executeLibraryFunction] Executing ${r.entityName} with scenario ${a.name}`);const s={returnValue:{status:"success",data:a.metadata?.data?.argumentsData?.[0]||{},timestamp:new Date().toISOString()},error:null,sideEffects:{consoleOutput:[{level:"log",args:[`Executing ${r.entityName}...`]},{level:"log",args:["Processing input:",JSON.stringify(a.metadata?.data?.argumentsData)]},{level:"log",args:["Execution completed successfully"]}],fileWrites:[],apiCalls:[]},timing:{duration:Math.floor(Math.random()*100)+10,timestamp:new Date().toISOString()}};return console.log(`[executeLibraryFunction] Execution completed for ${r.entityName}`),s}async function fc({request:e}){if(e.method!=="POST")return D({error:"Method not allowed"},{status:405});try{const t=await e.formData(),r=t.get("analysisId"),a=t.get("scenarioId");if(!r||!a)return D({error:"Missing required fields: analysisId and scenarioId"},{status:400});console.log(`[API] Executing library function for analysis ${r}, scenario ${a}`);const s=await pc(r,a);return console.log("[API] Function execution completed successfully"),D({success:!0,result:s})}catch(t){return console.log("[API] Error during function execution:",t),D({success:!1,error:"Failed to execute function",details:t instanceof Error?t.message:String(t)},{status:500})}}const gc=Object.freeze(Object.defineProperty({__proto__:null,action:fc},Symbol.toStringTag,{value:"Module"}));function yc({request:e}){return D({status:"ok"})}async function xc({request:e,context:t}){if(e.method!=="POST")return D({error:"Method not allowed"},{status:405});let r=t.analysisQueue;if(r||(r=await je()),!r)return console.error("[Interactive Mode API] Queue not initialized"),D({error:"Queue not initialized"},{status:500});try{const a=await e.formData(),s=a.get("action"),o=a.get("analysisId"),l=a.get("scenarioId");if(!s||!o)return D({error:"Missing required fields: action and analysisId"},{status:400});if(s!=="start"&&s!=="stop")return D({error:'Invalid action. Must be "start" or "stop"'},{status:400});const i=await _e();if(console.log("[Interactive Mode API] projectSlug:",i),!i)return D({error:"Project not initialized"},{status:500});if(s==="start"){const d=await r.enqueue({type:"interactive-start",analysisId:o,scenarioId:l,projectSlug:i});return D({success:!0,action:"start",message:"Interactive mode starting...",jobId:d})}else{const d=await r.enqueue({type:"interactive-stop",analysisId:o,projectSlug:i});return D({success:!0,action:"stop",message:"Interactive mode stopping...",jobId:d})}}catch(a){console.error("[Interactive Mode API] Error:",a);const s=a instanceof Error?a.message:String(a),o=a instanceof Error?a.stack:void 0;return console.error("[Interactive Mode API] Error stack:",o),D({error:"Failed to control interactive mode",details:s},{status:500})}}const bc=Object.freeze(Object.defineProperty({__proto__:null,action:xc,loader:yc},Symbol.toStringTag,{value:"Module"}));async function vc({request:e}){if(e.method!=="POST")return D({error:"Method not allowed"},{status:405});try{const t=await e.json(),{scenarioId:r,screenshotPaths:a}=t;if(!r)return D({error:"Missing required field: scenarioId"},{status:400});if(console.log(`[API] Deleting scenario ${r}`),a&&a.length>0){const s=se();if(s)for(const o of a){const l=le.join(s,".codeyam","captures","screenshots",o);try{await ge.unlink(l),console.log(`[API] Deleted screenshot: ${l}`)}catch(i){console.log(`[API] Could not delete screenshot ${l}:`,i instanceof Error?i.message:i)}}}return await ro({ids:[r]}),console.log(`[API] Scenario ${r} deleted successfully`),D({success:!0,message:"Scenario deleted successfully"})}catch(t){return console.error("[API] Error deleting scenario:",t),D({error:"Failed to delete scenario",details:t instanceof Error?t.message:String(t)},{status:500})}}const wc=Object.freeze(Object.defineProperty({__proto__:null,action:vc},Symbol.toStringTag,{value:"Module"})),lr=Sn(Cn);async function Cc({request:e}){const r=new URL(e.url).searchParams.get("pids");if(!r)return D({error:"Missing pids parameter"},{status:400});const a=r.split(",").map(o=>parseInt(o.trim(),10)).filter(o=>!isNaN(o));if(a.length===0)return D({error:"No valid PIDs provided"},{status:400});const s=await Promise.all(a.map(async o=>{const l=Nc(o),i=l?await Sc(o):null;return{pid:o,isRunning:l,processName:i}}));return D({processes:s})}function Nc(e){try{return process.kill(e,0),!0}catch{return!1}}async function Sc(e){try{const{stdout:t}=await lr(`ps -p ${e} -o comm=`);return t.trim()||null}catch{try{const{stdout:r}=await lr(`ps -p ${e} -o args=`),a=r.trim(),s=a.match(/codeyam-(\w+)/);return s?`codeyam-${s[1]}`:a.split(" ")[0]||null}catch{return null}}}const Ec=Object.freeze(Object.defineProperty({__proto__:null,loader:Cc},Symbol.toStringTag,{value:"Module"}));async function Ac({request:e}){if(e.method!=="POST")return D({error:"Method not allowed"},{status:405});try{const t=await e.json(),{analysis:r,scenarios:a}=t;if(!r||!a)return D({error:"Missing required fields: analysis and scenarios"},{status:400});console.log(`[API] Saving scenarios for analysis ${r.id}`),console.log(`[API] Received ${a.length} scenarios to save`),a.forEach((i,d)=>{const m=i.metadata?.data?.argumentsData,u=Array.isArray(m)&&m.length>0?JSON.stringify(m[0]).substring(0,200):"empty-or-not-array";console.log(`[API] Scenario ${d}: ${i.name}`,{id:i.id,projectId:i.projectId,analysisId:i.analysisId,hasMetadata:!!i.metadata,hasData:!!i.metadata?.data,mockDataKeys:i.metadata?.data?.mockData?Object.keys(i.metadata.data.mockData):[],argumentsDataLength:Array.isArray(m)?m.length:"not-array",argumentsDataPreview:u})});const s=a.map(i=>({...i,projectId:i.projectId||r.projectId,analysisId:i.analysisId||r.id})),o=await wo(s);if(!o||o.length===0)throw new Error("Failed to save scenarios to database");console.log(`[API] Scenarios saved successfully for analysis ${r.id}`),console.log(`[API] Saved ${o.length} scenarios to database`),o.forEach((i,d)=>{const m=i.metadata?.data?.argumentsData;console.log(`[API] Saved scenario ${d}: ${i.name}`,{id:i.id,argumentsDataLength:Array.isArray(m)?m.length:"not-array"})});const l={...r,scenarios:o};return D({success:!0,analysis:l})}catch(t){return console.error("[API] Error saving scenarios:",t),D({error:"Failed to save scenarios",details:t instanceof Error?t.message:String(t)},{status:500})}}const _c=Object.freeze(Object.defineProperty({__proto__:null,action:Ac},Symbol.toStringTag,{value:"Module"}));async function Pc({request:e}){try{const t=await e.json(),{pid:r,signal:a="SIGTERM",commitSha:s}=t;if(!r||typeof r!="number")return D({error:"Missing or invalid pid parameter"},{status:400});if(!cr(r))return D({error:"Process not running",pid:r},{status:404});try{process.kill(r,a)}catch(u){return D({error:"Failed to kill process",pid:r,details:u instanceof Error?u.message:String(u)},{status:500})}const l=3e4,i=500,d=Date.now();let m=!0;for(;m&&Date.now()-d<l;)await new Promise(u=>setTimeout(u,i)),m=cr(r);if(m){console.warn(`Process ${r} didn't die after SIGTERM, sending SIGKILL`);try{process.kill(r,"SIGKILL"),await new Promise(u=>setTimeout(u,2e3))}catch(u){console.error(`Failed to SIGKILL process ${r}:`,u)}}if(s)try{await Ze({commitSha:s,runStatusUpdate:{analyzerPid:void 0,capturePid:void 0,failedAt:new Date().toISOString(),failureReason:`Process ${r} killed by user`}})}catch(u){console.error("Failed to update database after killing process:",u)}return D({success:!0,pid:r,signal:a,message:`Process ${r} killed successfully`,waitedMs:Date.now()-d})}catch(t){return console.error("Error in kill-process API:",t),D({error:"Internal server error",details:t instanceof Error?t.message:String(t)},{status:500})}}function cr(e){try{return process.kill(e,0),!0}catch{return!1}}const Tc=Object.freeze(Object.defineProperty({__proto__:null,action:Pc},Symbol.toStringTag,{value:"Module"}));async function kc({params:e}){const t=e["*"];if(!t)return new Response("Screenshot path is required",{status:400});const r=se();if(!r)return console.error("[screenshot api] Project root not found"),new Response("Project root not found",{status:500});const a=le.join(r,".codeyam","captures","screenshots",t);try{await ge.access(a);const s=await ge.readFile(a),o=le.extname(a).toLowerCase(),l=o===".png"?"image/png":o===".jpg"||o===".jpeg"?"image/jpeg":"application/octet-stream";return new Response(s,{status:200,headers:{"Content-Type":l,"Cache-Control":"public, max-age=3600"}})}catch{return new Response("Screenshot not found",{status:404})}}const Ic=Object.freeze(Object.defineProperty({__proto__:null,loader:kc},Symbol.toStringTag,{value:"Module"}));function Mc(e){const t=Date.now(),r=new Date(e).getTime(),a=t-r,s=Math.floor(a/6e4),o=Math.floor(s/60);return s<1?"just now":s<60?`${s}m ago`:o<24?`${o}h ago`:`${Math.floor(o/24)}d ago`}function Rc({state:e,currentRun:t}){fe();const r=t?.currentEntityShas&&t.currentEntityShas.length>0;return!e.currentlyExecuting&&(!e.jobs||e.jobs.length===0)?null:c("div",{className:"bg-white border-2 rounded-xl shadow-lg p-5 mb-6",style:{borderColor:"#005C75"},children:[e.currentlyExecuting&&!r&&c("div",{className:"mb-4 border-2 rounded-lg p-3",style:{backgroundColor:"#e8f1f5",borderColor:"#005C75"},children:[c("div",{className:"flex items-center gap-2 mb-1",children:[n($t,{size:20,className:"animate-spin",style:{color:"#005C75"}}),n("span",{className:"text-sm font-bold",style:{color:"#003d52"},children:"Starting analysis..."})]}),c("p",{className:"text-xs mb-2",style:{color:"#004a5e"},children:["Booting analyzer for"," ",e.currentlyExecuting.entities?.length||e.currentlyExecuting.entityShas?.length||1," ",(e.currentlyExecuting.entities?.length||e.currentlyExecuting.entityShas?.length)===1?"entity":"entities"]}),e.currentlyExecuting.entities&&e.currentlyExecuting.entities.length>0&&c("div",{className:"space-y-1 mt-2 max-h-[100px] overflow-y-auto bg-white rounded-md p-2 border",style:{borderColor:"#b3d9e6"},children:[e.currentlyExecuting.entities.slice(0,3).map(a=>c(Q,{to:`/entity/${a.sha}`,className:"flex items-center gap-1.5 text-xs hover:underline font-medium truncate",title:`${a.name} - ${a.filePath}`,style:{color:"#005C75"},onMouseEnter:s=>s.currentTarget.style.color="#003d52",onMouseLeave:s=>s.currentTarget.style.color="#005C75",children:[n(Re,{size:12,style:{strokeWidth:1.5,flexShrink:0}}),c("span",{className:"truncate",children:[a.name,c("span",{className:"text-gray-400 ml-1",children:["(",a.filePath,")"]})]})]},a.sha)),e.currentlyExecuting.entities.length>3&&c("div",{className:"text-xs italic",style:{color:"#005C75"},children:["+",e.currentlyExecuting.entities.length-3," more entities"]})]}),n("p",{className:"text-xs mt-2",style:{color:"#005C75"},children:"This may take 2-3 minutes for environment setup"})]}),e.jobs.length>0&&c("div",{className:"space-y-2",children:[e.jobs.slice(0,5).map((a,s)=>{a.entities?.length||a.entityShas?.length,a.filePaths?.length,a.entityNames?.[0];const o=a.entities&&a.entities.length>0;return n("div",{className:"flex items-start gap-3",children:c("div",{className:"flex-1 min-w-0",children:[c("div",{className:"flex items-center gap-2 mb-1",children:[c("span",{className:"text-sm font-semibold text-gray-700",children:["Job ",s+1]}),n("span",{className:"text-xs text-gray-400",children:"âĸ"}),n("span",{className:"text-xs text-gray-500",children:Mc(a.queuedAt)})]}),o&&c("div",{className:"space-y-1 mt-2 max-h-[120px] overflow-y-auto bg-white rounded-md p-2 border border-gray-200",children:[a.entities.slice(0,5).map(l=>c(Q,{to:`/entity/${l.sha}`,className:"flex items-center gap-1.5 text-xs hover:underline font-medium truncate",title:`${l.name} - ${l.filePath}`,style:{color:"#005C75"},onMouseEnter:i=>i.currentTarget.style.color="#003d52",onMouseLeave:i=>i.currentTarget.style.color="#005C75",children:[n(Re,{size:12,style:{strokeWidth:1.5,flexShrink:0}}),c("span",{className:"truncate",children:[l.name,c("span",{className:"text-gray-400 ml-1",children:["(",l.filePath,")"]})]})]},l.sha)),a.entities.length>5&&c("div",{className:"text-xs text-gray-500 italic",children:["+",a.entities.length-5," more entities"]})]}),a.type==="recapture"&&a.scenarioId&&c("div",{className:"text-xs text-gray-500 mt-1 font-mono",children:["Scenario: ",a.scenarioId]})]})},a.id)}),e.jobs.length>5&&c("div",{className:"text-xs text-gray-500 text-center py-2",children:["+",e.jobs.length-5," more jobs in queue"]})]})]})}function be({screenshotPath:e,cacheBuster:t,alt:r,className:a="",title:s}){const[o,l]=M("loading"),[i,d]=M(!1),m=pe(null),u=t?`/api/screenshot/${e}?cb=${t}`:`/api/screenshot/${e}`,h=()=>{l("success"),d(!0)},p=()=>{l("error"),d(!1)};return W(()=>{l("loading"),d(!1);const f=m.current;f?.complete&&(f.naturalHeight!==0?(l("success"),d(!0)):(l("error"),d(!1)))},[u]),e?c("div",{className:"relative w-full h-full flex items-center justify-center",title:s,children:[n("img",{ref:m,src:u,alt:r,onLoad:h,onError:p,className:a||"max-w-full max-h-full object-contain",style:{visibility:i?"visible":"hidden",position:i?"relative":"absolute"}}),o==="loading"&&n("div",{className:"absolute inset-0 bg-gray-100 animate-pulse rounded flex items-center justify-center",children:n("svg",{className:"w-8 h-8 text-gray-300",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:n("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"})})}),o==="error"&&c("div",{className:"absolute inset-0 border-2 border-dashed border-gray-300 bg-gray-50 rounded flex flex-col items-center justify-center text-xs gap-1",children:[n("span",{className:"text-2xl text-gray-400",children:"đˇ"}),n("span",{className:"text-gray-400 whitespace-nowrap",children:"No Screenshot"})]})]}):n("div",{className:"w-full h-full border-2 border-dashed border-gray-300 bg-gray-50 rounded flex flex-col items-center justify-center text-xs gap-1",title:s,children:n("span",{className:"text-2xl text-gray-400",children:"đˇ"})})}function Dn(e,t,r,a,s){const o=t?.scenarios?.find(F=>F.name===e.name),l=!!o?.startedAt,i=!!o?.screenshotStartedAt,d=!!o?.screenshotFinishedAt,m=!!o?.finishedAt,u=1800*1e3,h=i&&!d&&o?.screenshotStartedAt&&Date.now()-new Date(o.screenshotStartedAt).getTime()>u,p=!!e.metadata?.screenshotPaths?.[0]||!!e.metadata?.executionResult,f=i&&!d,g=o?.error,y=e.metadata?.executionResult?.error,v=[];if(t?.errors&&t.errors.length>0)for(const F of t.errors)v.push({source:`${F.phase} phase`,message:F.message});if(t?.steps)for(const F of t.steps)F.error&&v.push({source:F.name,message:F.error});const w=!p&&!g&&!y&&v.length>0,x=!!(g||y||h||w),N=h?"Capture timed out after 30 minutes":(typeof g=="string"?g:null)||y?.message||(w?`Analysis error: ${v[0].message}`:null),C=h?"The capture process has been running for more than 30 minutes and likely got stuck. Consider re-running the analysis.":o?.errorStack||y?.stack||null,S=(a&&s?s.jobs.some(F=>F.entityShas?.includes(a)||F.type==="analysis"&&F.entityShas&&F.entityShas.length===0)||s.currentlyExecuting?.entityShas?.includes(a):!1)&&!l&&!x||!!o?.analyzing&&!l&&!x,_=l&&!i&&!m&&!x,E=(S||_||f)&&!x,R=(S||_)&&r===!1&&!p;let $;R?$="crashed":x?$="error":p||m?$="completed":f?$="capturing":_?$="starting":S?$="queued":$="pending";let T="đˇ",P="pending",L=!1,A=`Not captured: ${e.name}`;const I="border-gray-300",Y=x||R?"bg-red-50":"bg-white";return x||R?(T="â ī¸",P="error",A=`Error: ${R?"Analysis process crashed":N||"Unknown error"}`):S?(T="â¯",P="queued",A=`Queued: ${e.name}`):_?(T="â¯",P="starting",L=!0,A=`Starting server for ${e.name}...`):f&&!x?(T="â¯",P="capturing",L=!0,A=`Capturing ${e.name}...`):p&&(T="â",P="completed",A=e.name),{hasError:x||R,errorMessage:R?"Analysis process crashed":N,errorStack:R?"Process terminated unexpectedly before completing analysis":C,isCapturing:f,isCaptured:p,hasCrashed:R,isAnalyzing:E,isQueued:S,isServerStarting:_,status:$,icon:T,iconType:P,shouldSpin:L,title:A,borderColor:I,bgColor:Y}}function Ln({scenario:e,entitySha:t,size:r="medium",showBorder:a=!0,isOutdated:s=!1}){const o=Dn(e,void 0,void 0,t,void 0),l=e.metadata?.executionResult,i=!!l,m=(e.metadata?.data?.argumentsData||[]).length,u=l?.returnValue!==void 0&&l?.returnValue!==null,h=l?.sideEffects?.consoleOutput?.length||0,p=l?.timing?.duration||0;let f=0;m>0&&f++,m>2&&f++,u&&f++,h>0&&f++,f=Math.min(3,f);const g=r==="small"?{width:"w-[50px]",height:"h-[38px]",iconSize:"text-base",textSize:"text-[8px]"}:{width:"w-20",height:"h-15",iconSize:"text-xl",textSize:"text-[10px]"},v=o.hasError?{border:"border-red-400",bg:"bg-red-50",icon:"text-red-600",badge:"bg-red-100 text-red-700"}:i?s?{border:"border-amber-500",bg:"bg-amber-50",icon:"text-amber-700",badge:"bg-amber-100 text-amber-700"}:{border:"border-blue-400",bg:"bg-blue-50",icon:"text-blue-600",badge:"bg-blue-100 text-blue-700"}:{border:"border-gray-300 border-dashed",bg:"bg-gray-50",icon:"text-gray-400",badge:"bg-gray-100 text-gray-600"},w=a?`border-2 ${v.border}`:"",x=Array.from({length:3},(C,b)=>n("div",{className:`w-1 h-1 rounded-full ${b<f?v.icon.replace("text-","bg-"):"bg-gray-300"}`},b)),N=o.hasError?`Error: ${o.errorMessage||"Unknown error"}`:i?`${e.name}
|
|
138
|
+
${m} args â ${u?"value":"void"}${h>0?` (${h} logs)`:""}
|
|
139
|
+
${p}ms`:`Not executed: ${e.name}`;return c(Q,{to:`/entity/${t}/scenarios/${e.id}`,className:`relative ${g.width} ${g.height} ${w} rounded ${v.bg} flex flex-col items-center justify-center gap-0.5 cursor-pointer transition-all hover:scale-105 hover:shadow-md`,title:N,children:[n("div",{className:`${v.icon} ${g.iconSize} font-mono font-bold`,children:o.hasError?"â ":i?"Æ":"â"}),i&&!o.hasError&&c("div",{className:`flex items-center gap-0.5 ${g.textSize} ${v.badge} px-1 rounded`,children:[n("span",{children:m}),n("span",{children:"â"}),n("span",{children:u?"â":"â
"})]}),i&&!o.hasError&&r==="medium"&&n("div",{className:"flex gap-0.5 mt-0.5",children:x}),i&&!o.hasError&&p>100&&r==="medium"&&n("div",{className:`absolute top-0.5 right-0.5 ${g.textSize} ${v.badge} px-1 rounded`,children:p>1e3?`${Math.round(p/1e3)}s`:`${p}ms`}),i&&!o.hasError&&h>0&&r==="medium"&&c("div",{className:"absolute bottom-0.5 left-0.5 text-[8px] text-gray-500",children:["đ",h]})]})}function On({scenario:e,entity:t,analysisStatus:r,queueState:a,processIsRunning:s,size:o="medium",cacheBuster:l,className:i="",viewMode:d}){if(t.entityType==="library")return n(Ln,{scenario:e,entitySha:t.sha,size:o==="small"?"small":"medium"});const u=Dn(e,r,s,t.sha,a),h=o==="small"?{containerClass:"w-16 h-12",iconSize:"text-xl"}:o==="large"?{containerClass:"w-full h-[67px]",iconSize:"text-2xl"}:{containerClass:"w-20 h-15",iconSize:"text-2xl"},p=`relative ${h.containerClass} ${i}`,f=()=>{const y=`/entity/${t.sha}/scenarios/${e.id}`;return d?`${y}/${d}`:y};if(u.isCaptured){const y=e.metadata?.screenshotPaths?.[0];return n(Q,{to:f(),className:`${p} overflow-hidden bg-gray-50 cursor-pointer transition-all flex items-center justify-center hover:scale-105 hover:shadow-md`,children:n(be,{screenshotPath:y,cacheBuster:l,alt:e.name,title:e.name,className:"max-w-full max-h-full object-contain object-center"})})}const g=()=>{const y={size:o==="small"?16:o==="large"?24:20,strokeWidth:2},x=c(te,{children:[n("style",{children:`
|
|
140
|
+
@keyframes strongPulse {
|
|
141
|
+
0%, 100% { opacity: 0.2; }
|
|
142
|
+
50% { opacity: 1; }
|
|
143
|
+
}
|
|
144
|
+
`}),c("div",{className:`${o==="small"?"text-base":o==="large"?"text-2xl":"text-xl"} font-bold tracking-widest flex items-center justify-center text-gray-600`,children:[n("span",{style:{animation:"strongPulse 1.5s ease-in-out infinite"},children:"."}),n("span",{style:{animation:"strongPulse 1.5s ease-in-out infinite",animationDelay:"0.3s"},children:"."}),n("span",{style:{animation:"strongPulse 1.5s ease-in-out infinite",animationDelay:"0.6s"},children:"."})]})]});if(u.shouldSpin||u.iconType==="queued"||u.iconType==="pending")return x;switch(u.iconType){case"starting":case"capturing":return x;case"error":return n(vn,{...y});case"completed":return n(bn,{...y});default:return x}};return n(Q,{to:f(),className:`${p} ${u.bgColor} flex flex-col items-center justify-center cursor-pointer transition-all hover:scale-105 hover:shadow-md`,title:u.title,children:n("div",{className:h.iconSize,children:g()})})}async function $c({request:e,context:t,params:r}){let a=t.analysisQueue;a||(a=await je());const s=new URL(e.url),o=parseInt(s.searchParams.get("page")||"1",10),l=20,i=r.tab||"current";if(!a)return D({error:"Queue not initialized",state:{paused:!1,jobs:[]},currentRun:void 0,historicalRuns:[],totalHistoricalRuns:0,currentPage:o,totalPages:0,projectSlug:null,commitSha:void 0,queueJobs:[],currentlyExecuting:null,currentEntities:[],tab:i,hasCurrentActivity:!1,queuedCount:0,recentCompletedRuns:[],totalCompletedRuns:0},{status:500});const d=a.getState(),m=await _e();let u=null;if(m&&d?.currentlyExecuting?.commitSha){const{project:P,branch:L}=await Ae(m),A=await Ot({projectId:P.id,branchId:L.id,shas:[d.currentlyExecuting.commitSha]});u=A&&A.length>0?A[0]:null}else u=await Ke();const h=async P=>{const L=await Me(P);if(!L)return null;const{getAnalysesForEntity:A}=await Promise.resolve().then(()=>jo),I=await A(P,!1);return{...L,analyses:I||[]}},p=await Promise.all((d?.jobs||[]).map(async P=>{const L=[];if(P.entityShas&&P.entityShas.length>0){const A=P.entityShas.map(Y=>h(Y)),I=await Promise.all(A);L.push(...I.filter(Y=>Y!==null))}return{...P,entities:L}}));let f=null;if(d?.currentlyExecuting){const P=d.currentlyExecuting,L=[];if(P.entityShas&&P.entityShas.length>0){const A=P.entityShas.map(Y=>h(Y)),I=await Promise.all(A);L.push(...I.filter(Y=>Y!==null))}f={...P,entities:L}}const g=u?.metadata?.currentRun?.currentEntityShas||[],v=(await Promise.all(g.map(P=>h(P)))).filter(P=>P!==null),w=[];if(m)try{const{project:P,branch:L}=await Ae(m),A=await Ot({projectId:P.id,branchId:L.id,limit:100});for(const I of A){const Y=I.metadata?.historicalRuns||[];w.push(...Y)}}catch(P){console.error("[activity.tsx] Failed to load historical runs from commits:",P)}const x=[...w].sort((P,L)=>{const A=P.archivedAt||P.createdAt||"";return(L.archivedAt||L.createdAt||"").localeCompare(A)}),N=(o-1)*l,C=N+l,b=x.slice(N,C),S=Math.ceil(x.length/l),_=await Promise.all(b.map(async P=>{const L=P.currentEntityShas||[];if(L.length===0)return{...P,entities:[]};const A=await Promise.all(L.map(I=>h(I)));return{...P,entities:A.filter(I=>I!==null)}})),E=!!f,R=p.length,$=x.filter(P=>{const L=!!P.failedAt,A=P.readyToBeCaptured,I=P.capturesCompleted??0,Y=A===void 0?!0:A===0||I>=A;return!L&&!!P.analysisCompletedAt&&Y}),T=await Promise.all($.slice(0,3).map(async P=>{const L=P.currentEntityShas||[];if(L.length===0)return{...P,entities:[]};const A=await Promise.all(L.map(I=>h(I)));return{...P,entities:A.filter(I=>I!==null)}}));return D({state:{...d,jobs:p,currentlyExecuting:f},currentRun:u?.metadata?.currentRun,historicalRuns:_,totalHistoricalRuns:x.length,currentPage:o,totalPages:S,projectSlug:m,commitSha:u?.sha,queueJobs:p,currentlyExecuting:f,currentEntities:v,tab:i,hasCurrentActivity:E,queuedCount:R,recentCompletedRuns:T,totalCompletedRuns:$.length})}function jc({activeTab:e,hasCurrentActivity:t,queuedCount:r,historicCount:a}){const s=[{id:"current",label:"Current Activity",hasContent:t,count:null},{id:"queued",label:"Queued Activity",hasContent:r>0,count:r},{id:"historic",label:"Historic Activity",hasContent:a>0,count:a}];return n("div",{className:"border-b border-gray-200 mb-6",children:n("nav",{className:"flex gap-8",children:s.map(o=>{const l=e===o.id;return n(Q,{to:o.id==="current"?"/activity":`/activity/${o.id}`,className:`
|
|
145
|
+
relative pb-4 px-2 text-sm font-medium transition-colors
|
|
146
|
+
${l?"border-b-2":"text-gray-500 hover:text-gray-700"}
|
|
147
|
+
`,style:l?{color:"#005C75",borderColor:"#005C75"}:{},children:c("span",{className:"flex items-center gap-2",children:[o.label,o.count!==null&&o.count>0&&n("span",{className:`
|
|
148
|
+
inline-flex items-center justify-center px-2 py-0.5 text-xs font-semibold rounded-full
|
|
149
|
+
${l?"":"bg-gray-200 text-gray-700"}
|
|
150
|
+
`,style:l?{backgroundColor:"#e8f1f5",color:"#005C75"}:{},children:o.count}),o.count===null&&o.hasContent&&n("span",{className:`
|
|
151
|
+
inline-block w-2 h-2 rounded-full
|
|
152
|
+
${l?"":"bg-gray-400"}
|
|
153
|
+
`,style:l?{backgroundColor:"#005C75"}:{}})]})},o.id)})})})}function Dc(e){const t=new Date(e),a=Math.floor((new Date().getTime()-t.getTime())/1e3);if(a<60)return"just now";const s=Math.floor(a/60);if(s<60)return`${s}m ago`;const o=Math.floor(s/60);return o<24?`${o}h ago`:`${Math.floor(o/24)}d ago`}function Lc({currentlyExecuting:e,currentRun:t,state:r,projectSlug:a,commitSha:s,onShowLogs:o,recentCompletedRuns:l,totalCompletedRuns:i}){const[d,m]=M({}),[u,h]=M({isKilling:!1,current:0,total:0}),p=rt(),f=!!e,g=e?.entities||[],y=!!t?.analysisCompletedAt,v=f,{lastLine:w}=Ye(a,v);return W(()=>{if(!t)return;const x=[t.analyzerPid,t.capturePid].filter(b=>!!b);if(x.length===0)return;const N=async()=>{try{const S=await(await fetch(`/api/process-status?pids=${x.join(",")}`)).json();if(S.processes){const _={};S.processes.forEach(E=>{_[E.pid]={isRunning:E.isRunning,processName:E.processName}}),m(_)}}catch(b){console.error("Failed to fetch process statuses:",b)}};N();const C=setInterval(()=>void N(),5e3);return()=>clearInterval(C)},[t?.analyzerPid,t?.capturePid]),v?c("div",{className:"bg-white rounded-xl shadow-lg p-6",style:{borderWidth:"2px",borderColor:"#005C75"},children:[c("div",{className:"flex items-start justify-between mb-4",children:[c("div",{className:"flex items-center gap-3 mb-2",children:[n("div",{className:"p-2 bg-gray-100 rounded-full animate-spin",children:n(ka,{size:24,className:"text-gray-700"})}),n("h3",{className:"text-xl font-bold text-gray-900",children:y?"Capture in Progress":"Analysis in Progress"})]}),n("button",{onClick:o,className:"px-4 py-2 text-white rounded-md text-sm font-semibold transition-colors",style:{backgroundColor:"#005C75"},onMouseEnter:x=>x.currentTarget.style.backgroundColor="#003d52",onMouseLeave:x=>x.currentTarget.style.backgroundColor="#005C75",children:"View Logs"})]}),y&&(t?.readyToBeCaptured??0)>0&&c("div",{className:"rounded-md p-4 mb-4",style:{backgroundColor:"#f0f5f8",borderColor:"#b3d9e8",borderWidth:"1px"},children:[n("p",{className:"text-sm font-semibold mb-1",style:{color:"#00263d"},children:"Capture Progress:"}),c("div",{className:"flex items-center gap-4",children:[c("p",{className:"text-sm",style:{color:"#004560"},children:[t?.capturesCompleted??0," of"," ",t?.readyToBeCaptured??0," entities captured"]}),n("div",{className:"flex-1 rounded-full h-2",style:{backgroundColor:"#b3d9e8"},children:n("div",{className:"h-2 rounded-full transition-all duration-300",style:{backgroundColor:"#005C75",width:`${(t?.capturesCompleted??0)/(t?.readyToBeCaptured??1)*100}%`}})})]})]}),g&&g.length>0&&c("div",{className:"mb-4",children:[c("p",{className:"text-sm font-semibold text-gray-700 mb-2",children:[y?"Capturing":"Analyzing"," ",g.length," ",g.length===1?"Entity":"Entities",":"]}),n("div",{className:"space-y-3",children:g.map(x=>{const N=x.analyses?.[0],C=N?.scenarios||[],b=N?.status;return c("div",{className:"bg-gray-50 rounded-md p-3",children:[c(Q,{to:`/entity/${x.sha}`,className:"flex items-center gap-1.5 text-sm hover:underline font-medium truncate mb-2",title:`${x.name} - ${x.filePath}`,style:{color:"#005C75"},onMouseEnter:S=>S.currentTarget.style.color="#003d52",onMouseLeave:S=>S.currentTarget.style.color="#005C75",children:[n(Re,{size:14,style:{strokeWidth:1.5,flexShrink:0}}),c("span",{className:"truncate",children:[x.name,c("span",{className:"text-gray-500 ml-2 text-xs",children:["(",x.filePath,")"]})]})]}),C.length>0&&n("div",{className:"flex gap-2 flex-wrap",children:C.slice(0,5).map((S,_)=>S.id?n(On,{scenario:S,entity:{sha:x.sha,entityType:x.entityType},analysisStatus:b,queueState:r,processIsRunning:v,size:"small"},_):null)})]},x.sha)})})]}),w&&c("div",{className:"flex flex-col gap-2 mb-4",children:[n("p",{className:"text-sm font-semibold text-gray-700",children:"Current Step:"}),n("p",{className:"text-sm text-gray-600 font-mono",children:w})]}),(t?.analyzerPid||t?.capturePid)&&c("div",{className:"flex flex-col gap-4",children:[n("p",{className:"text-sm font-semibold text-gray-700",children:"Running Processes:"}),c("div",{className:"flex items-center justify-between bg-gray-50 rounded-md p-3",children:[c("div",{className:"flex items-center gap-4 flex-wrap",children:[t.analyzerPid&&c("div",{className:"flex items-center gap-2",children:[c("span",{className:"text-xs font-mono bg-gray-200 px-2 py-1 rounded",children:["Analyzer: ",t.analyzerPid]}),d[t.analyzerPid]&&n("span",{className:`text-xs px-2 py-1 rounded ${d[t.analyzerPid].isRunning?"bg-green-100 text-green-700":"bg-red-100 text-red-700"}`,children:d[t.analyzerPid].isRunning?"Running":"Stopped"})]}),t.capturePid&&c(te,{children:[t.analyzerPid&&n("span",{className:"text-gray-400",children:"|"}),c("div",{className:"flex items-center gap-2",children:[c("span",{className:"text-xs font-mono bg-gray-200 px-2 py-1 rounded",children:["Capture: ",t.capturePid]}),d[t.capturePid]&&n("span",{className:`text-xs px-2 py-1 rounded ${d[t.capturePid].isRunning?"bg-green-100 text-green-700":"bg-red-100 text-red-700"}`,children:d[t.capturePid].isRunning?"Running":"Stopped"})]})]})]}),(d[t.analyzerPid]?.isRunning||d[t.capturePid]?.isRunning)&&c("div",{className:"flex items-center gap-3",children:[u.isKilling&&c("span",{className:"text-xs text-gray-600 font-medium",children:["Killing process ",u.current," of"," ",u.total,"..."]}),n("button",{onClick:()=>{const x=[t.analyzerPid,t.capturePid].filter(b=>!!b&&d[b]?.isRunning);if(x.length===0)return;const N=x.join(", ");if(!confirm(`Are you sure you want to kill all running processes (${N})?`))return;h({isKilling:!0,current:1,total:x.length}),(async()=>{for(let b=0;b<x.length;b++){const S=x[b];try{await fetch("/api/kill-process",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({pid:S,commitSha:s||""})})}catch(_){console.error(`Failed to kill process ${S}:`,_)}b<x.length-1&&h({isKilling:!0,current:b+2,total:x.length})}h({isKilling:!1,current:0,total:0}),p.revalidate()})()},disabled:u.isKilling,className:"px-3 py-1 bg-red-600 text-white rounded-md text-xs font-semibold hover:bg-red-700 transition-colors whitespace-nowrap disabled:opacity-50 disabled:cursor-not-allowed",children:u.isKilling?"Killing...":"Kill All Processes"})]})]})]})]}):c("div",{className:"space-y-6",children:[c("div",{className:"bg-gray-50 rounded-xl p-12 text-center",children:[n("div",{className:"flex justify-center mb-4",children:n("div",{className:"p-2 bg-gray-200 rounded-lg",children:n(_r,{size:20,className:"text-gray-600"})})}),n("h3",{className:"text-xl font-semibold text-gray-700 mb-2",children:"No Current Activity"}),c("p",{className:"text-gray-500",children:["There are no analyses currently running. Trigger an analysis from the"," ",n(Q,{to:"/git",className:"text-[#005C75] underline hover:text-[#004a5e]",children:"Git"})," ","or"," ",n(Q,{to:"/files",className:"text-[#005C75] underline hover:text-[#004a5e]",children:"Files"})," ","page."]})]}),l&&l.length>0&&c("div",{className:"bg-white border border-gray-200 rounded-xl p-6",children:[n("h3",{className:"text-lg font-semibold text-gray-900 mb-4",children:"Recent Completed Analyses"}),n("div",{className:"space-y-3",children:l.map(x=>{const N=x.analysisCompletedAt||x.archivedAt||x.createdAt,C=x.entities&&x.entities.length>0;return c("div",{className:"bg-green-50 border border-green-200 rounded-lg p-4",children:[c("div",{className:"flex items-center gap-2 mb-2",children:[n(bn,{size:18,className:"text-green-600"}),n("span",{className:"text-sm font-semibold text-gray-900",children:"Completed"}),n("span",{className:"text-xs text-gray-400",children:"âĸ"}),n("span",{className:"text-xs text-gray-500",children:N?Dc(N):"Unknown"})]}),C&&c("div",{className:"ml-7 space-y-1",children:[x.entities.slice(0,3).map(b=>c(Q,{to:`/entity/${b.sha}`,className:"flex items-center gap-1.5 text-sm hover:underline truncate",title:`${b.name} - ${b.filePath}`,style:{color:"#005C75"},onMouseEnter:S=>S.currentTarget.style.color="#003d52",onMouseLeave:S=>S.currentTarget.style.color="#005C75",children:[n(Re,{size:14,style:{strokeWidth:1.5,flexShrink:0}}),c("span",{className:"truncate",children:[b.name,c("span",{className:"text-gray-400 ml-1 text-xs",children:["(",b.filePath,")"]})]})]},b.sha)),x.entities.length>3&&c("div",{className:"text-xs text-gray-500 italic",children:["+",x.entities.length-3," more entities"]})]})]},x.id)})}),i>3&&n("div",{className:"mt-4 text-center",children:n(Q,{to:"/activity/historic",className:"text-sm font-medium",style:{color:"#005C75"},onMouseEnter:x=>x.currentTarget.style.color="#003d52",onMouseLeave:x=>x.currentTarget.style.color="#005C75",children:"View All Historic Activity â"})})]})]})}function Oc({queueJobs:e,state:t,currentRun:r}){return!e||e.length===0?c("div",{className:"bg-gray-50 rounded-xl p-12 text-center",children:[n("div",{className:"flex justify-center mb-4",children:n("div",{className:"p-3 bg-gray-200 rounded-lg",children:n(Ia,{size:20,className:"text-gray-600"})})}),n("h3",{className:"text-xl font-semibold text-gray-700 mb-2",children:"No Queued Jobs"}),n("p",{className:"text-gray-500",children:"Analysis jobs will appear here when they are queued but not yet started."})]}):n("div",{children:n(Rc,{state:t,currentRun:r})})}function Yc({historicalRuns:e,totalHistoricalRuns:t,currentPage:r,totalPages:a,tab:s}){return t===0?c("div",{className:"bg-gray-50 rounded-xl p-12 text-center",children:[n("div",{className:"flex justify-center mb-4",children:n("div",{className:"p-3 bg-gray-200 rounded-lg",children:n(Pr,{size:20,className:"text-gray-600"})})}),n("h3",{className:"text-xl font-semibold text-gray-700 mb-2",children:"No Historic Activity"}),n("p",{className:"text-gray-500",children:"Completed analyses will appear here for historical reference."})]}):c("div",{className:"bg-white border border-gray-200 rounded-xl p-6",children:[n("div",{className:"space-y-3",children:e.map(o=>{const l=!!o.failedAt,i=o.readyToBeCaptured,d=o.capturesCompleted??0,m=i===void 0?!0:i===0||d>=i,u=!l&&!!o.analysisCompletedAt&&m,h=o.createdAt?new Date(o.createdAt):null,p=o.failedAt?new Date(o.failedAt):o.analysisCompletedAt?new Date(o.analysisCompletedAt):null,f=h&&p?(p.getTime()-h.getTime())/1e3:null,g=o.entities&&o.entities.length>0;return n("div",{className:`border rounded-lg p-4 ${l?"bg-red-50 border-red-200":u?"bg-green-50 border-green-200":"bg-gray-50 border-gray-200"}`,children:c("div",{className:"flex items-start justify-between",children:[c("div",{className:"flex-1",children:[c("div",{className:"flex items-center gap-2 mb-1",children:[l?n(vn,{size:20,className:"text-red-500"}):u?n(bn,{size:20,className:"text-green-500"}):n(_r,{size:20,className:"text-gray-400"}),n("span",{className:"text-sm font-semibold text-gray-900",children:l?"Failed":u?"Completed":"Incomplete"}),n("span",{className:"text-xs text-gray-400",children:"âĸ"}),n("span",{className:"text-xs text-gray-500",children:o.archivedAt?new Date(o.archivedAt).toLocaleString():o.createdAt?new Date(o.createdAt).toLocaleString():"Unknown"})]}),g&&c("div",{className:"ml-7 mt-2 space-y-2 max-h-[300px] overflow-y-auto bg-white rounded-md p-2 border border-gray-200",children:[o.entities.slice(0,5).map(y=>{const v=y.analyses?.[0],w=v?.scenarios||[];return c("div",{className:"pb-2 border-b last:border-b-0 border-gray-100",children:[c(Q,{to:`/entity/${y.sha}`,className:"flex items-center gap-1.5 text-xs hover:underline font-medium truncate mb-1",title:`${y.name} - ${y.filePath}`,style:{color:"#005C75"},onMouseEnter:x=>x.currentTarget.style.color="#003d52",onMouseLeave:x=>x.currentTarget.style.color="#005C75",children:[n(Re,{size:12,style:{strokeWidth:1.5,flexShrink:0}}),c("span",{className:"truncate",children:[y.name,c("span",{className:"text-gray-400 ml-1",children:["(",y.filePath,")"]})]})]}),w.length>0&&n("div",{className:"flex gap-1.5 flex-wrap mt-1.5",children:w.slice(0,5).map((x,N)=>x.id?n(On,{scenario:x,entity:{sha:y.sha,entityType:y.entityType},analysisStatus:v?.status,queueState:void 0,processIsRunning:!1,size:"small"},N):null)})]},y.sha)}),o.entities.length>5&&c("div",{className:"text-xs text-gray-500 italic pt-1",children:["+",o.entities.length-5," more entities"]})]}),o.failureReason&&n("p",{className:"text-xs text-red-600 mt-2 font-mono ml-7",children:o.failureReason})]}),f!==null&&c("div",{className:"text-xs text-gray-500",children:[f.toFixed(1),"s"]})]})},o.id)})}),a>1&&c("div",{className:"mt-6 flex items-center justify-between border-t border-gray-200 pt-4",children:[c("div",{className:"text-sm text-gray-600",children:["Showing ",(r-1)*20+1," -"," ",Math.min(r*20,t)," of"," ",t," runs"]}),c("div",{className:"flex gap-2",children:[r>1&&n(Q,{to:`/activity/${s}?page=${r-1}`,className:"px-3 py-1 bg-gray-100 text-gray-700 rounded-md text-sm font-medium hover:bg-gray-200 transition-colors",children:"Previous"}),r<a&&n(Q,{to:`/activity/${s}?page=${r+1}`,className:"px-3 py-1 bg-gray-100 text-gray-700 rounded-md text-sm font-medium hover:bg-gray-200 transition-colors",children:"Next"})]})]})]})}function Fc(){const e=Te(),t=Nr(),[r,a]=M(!1),s=t.tab||"current";return c("div",{className:"px-36 py-12",children:[c("div",{className:"mb-8",children:[n("h1",{className:"text-3xl font-bold text-gray-900 mb-2",children:"Activity"}),n("p",{className:"text-gray-600",children:"View queued, current, and historical analysis activity"})]}),n(jc,{activeTab:s,hasCurrentActivity:e.hasCurrentActivity,queuedCount:e.queuedCount,historicCount:e.totalHistoricalRuns}),s==="current"&&n(Lc,{currentlyExecuting:e.currentlyExecuting,currentRun:e.currentRun,state:e.state,projectSlug:e.projectSlug,commitSha:e.commitSha,onShowLogs:()=>a(!0),recentCompletedRuns:e.recentCompletedRuns,totalCompletedRuns:e.totalCompletedRuns}),s==="queued"&&n(Oc,{queueJobs:e.queueJobs,state:e.state,currentRun:e.currentRun}),s==="historic"&&n(Yc,{historicalRuns:e.historicalRuns,totalHistoricalRuns:e.totalHistoricalRuns,currentPage:e.currentPage,totalPages:e.totalPages,tab:s}),r&&e.projectSlug&&n(at,{projectSlug:e.projectSlug,onClose:()=>a(!1)})]})}const zc=Object.freeze(Object.defineProperty({__proto__:null,default:Fc,loader:$c},Symbol.toStringTag,{value:"Module"}));async function ha(e,t,r){await ve();const a=await Fe({id:e,includeScenarios:!0,includeCommitAndBranch:!0});if(!a)throw new Error(`Analysis ${e} not found`);if(!a.commit)throw new Error(`Commit not found for analysis ${e}`);const s=se();if(!s)throw new Error("Project root not found");const o=ne.join(s,".codeyam","config.json"),l=JSON.parse(re.readFileSync(o,"utf8")),{projectSlug:i}=l;if(!i)throw new Error("Project slug not found in config");const d=`/tmp/codeyam/local-dev/${i}/codeyam/log.txt`;try{re.writeFileSync(d,"","utf8")}catch{}const{project:m}=await Ae(i),u=m.metadata?.packageManager||"npm",h=m.metadata?.webapps?.[0]?.framework??yt.Next,p=3112,f=`/tmp/codeyam/local-dev/${i}/project`,g=m.metadata?.webapps||[];if(g.length===0)throw new Error(`No webapps found in project metadata for project ${i}`);const y=g.length>1?g.find(b=>a.filePath.includes(b.path??""))??g[0]:g[0];await xt(e,b=>{if(b&&(b.readyToBeCaptured=!0,b.scenarios))for(const S of b.scenarios)(!t||S.name===t)&&(delete S.screenshotStartedAt,delete S.screenshotFinishedAt,delete S.interactiveStartedAt,delete S.interactiveFinishedAt,delete S.error,delete S.errorStack)});const{jobId:v}=r.enqueue({type:"debug-setup",commitSha:a.commit.sha,projectSlug:i,analysisId:e,scenarioId:t,prepOnly:!0}),x=(()=>{const b=y?.startCommand;if(!b)return`${u} ${u==="npm"?"run ":""}dev`;const S=b.args?.map($=>$.replace(/\$PORT/g,String(p)))??[],_=[],E=l.environmentVariables||[];for(const $ of E)if($.key&&$.value!==void 0){const T=String($.value).replace(/'/g,"'\\''");_.push(`${$.key}='${T}'`)}if(b.env)for(const[$,T]of Object.entries(b.env)){const L=String(T).replace(/\$PORT/g,String(p)).replace(/'/g,"'\\''");_.push(`${$}='${L}'`)}const R=_.length>0?_.join(" ")+" ":"";return b.command==="sh"&&S[0]==="-c"&&S[1]?`${R}sh -c "${S[1]}"`:`${R}${b.command} ${S.join(" ")}`})(),N={title:"Debug Setup In Progress",sections:[{heading:"Status",items:[{content:"Setting up debug environment... This may take a minute."},{label:"Project Path",content:f}]},{heading:"What's Happening",items:[{content:"1. Preparing analyzer and dependencies"},{content:"2. Syncing project files"},{content:"3. Setting up mock environment"}]},{heading:"Next Steps (Once Complete)",items:[{label:"1. Open the project directory",content:`code ${f}`,isCode:!0},{label:"2. Start the development server (copy & paste this exact command)",content:x,isCode:!0},{label:"3. View the scenario in your browser",content:`http://localhost:${p}/static/codeyam-sample`,isLink:!0}]}]};return{success:!0,jobId:v,analysisId:e,scenarioId:t,projectPath:f,projectSlug:i,port:p,packageManager:u,framework:h,instructions:N}}async function Bc({request:e,context:t}){const r=new URL(e.url),a=r.searchParams.get("analysisId"),s=r.searchParams.get("scenarioId")||void 0;if(!a)return D({error:"Missing analysisId parameter",usage:"GET /api/debug-setup?analysisId=<uuid>&scenarioId=<uuid>",example:'curl "http://localhost:3111/api/debug-setup?analysisId=f35509cb-b8f1-4d86-998e-fc24201ae2c7"'},{status:400});let o=t.analysisQueue;if(o||(o=await je()),!o)return D({error:"Queue not initialized"},{status:500});console.log("[Debug Setup API] GET request for:",{analysisId:a,scenarioId:s});try{const l=await ha(a,s,o);return D({...l,success:!0,message:"Debug setup queued"})}catch(l){return console.error("[Debug Setup API] GET Error:",l),D({error:"Failed to setup debug environment",details:l.message},{status:500})}}async function Uc({request:e,context:t}){if(e.method!=="POST")return D({error:"Method not allowed"},{status:405});let r=t.analysisQueue;if(r||(r=await je()),!r)return D({error:"Queue not initialized"},{status:500});try{const a=await e.formData(),s=a.get("analysisId"),o=a.get("scenarioId");if(!s)return D({error:"Missing required field: analysisId"},{status:400});const l=await ha(s,o,r);return D({...l,success:!0,message:"Debug setup queued"})}catch(a){console.error("[Debug Setup API] Error during debug setup:",a);const s=a instanceof Error?a.message:String(a),o=a instanceof Error?a.stack:void 0;return console.error("[Debug Setup API] Error stack:",o),D({error:"Failed to setup debug environment",details:s},{status:500})}}const qc=Object.freeze(Object.defineProperty({__proto__:null,action:Uc,loader:Bc},Symbol.toStringTag,{value:"Module"}));async function Gc({request:e,context:t}){if(e.method!=="POST")return D({error:"Method not allowed"},{status:405});let r=t.analysisQueue;if(r||(r=await je()),!r)return D({error:"Queue not initialized"},{status:500});try{const a=await e.formData(),s=a.get("analysisId"),o=a.get("defaultWidth");if(!s||!o)return D({error:"Missing required fields: analysisId and defaultWidth"},{status:400});const l=parseInt(o,10);if(isNaN(l)||l<320||l>3840)return D({error:"Invalid defaultWidth: must be between 320 and 3840"},{status:400});console.log(`[API] Starting recapture for analysis ${s} with width ${l}`);const i=await Al(s,l,r);return console.log("[API] Recapture queued",i),D({success:!0,message:"Recapture queued",...i})}catch(a){return console.log("[API] Error during recapture:",a),D({error:"Failed to recapture screenshots",details:a instanceof Error?a.message:String(a)},{status:500})}}const Hc=Object.freeze(Object.defineProperty({__proto__:null,action:Gc},Symbol.toStringTag,{value:"Module"}));function Yn(e,t){const r=e.metadata?.isUncommitted===!0,a=e.analyses&&e.analyses.length>0&&e.analyses.some(l=>l.scenarios&&l.scenarios.length>0);if(!r){const l=!!e.metadata?.previousVersionWithAnalyses,i=a&&e.analyses&&e.analyses.length>0&&e.analyses[0].entitySha!==e.sha;return l||i?a?{state:"committed_no_simulations",hasSimulations:!0,hasOutdatedSimulations:!0,canGenerateSimulations:!0,badge:{label:"Committed - Simulations Outdated",color:"text-orange-700",bgColor:"bg-orange-50",borderColor:"border-orange-300",icon:"â "}}:{state:"committed_no_simulations",hasSimulations:!1,hasOutdatedSimulations:!1,canGenerateSimulations:!0,badge:{label:"Not Yet Analyzed",color:"text-gray-600",bgColor:"bg-gray-50",borderColor:"border-gray-200",icon:"â"}}:a?{state:"committed_with_simulations",hasSimulations:!0,hasOutdatedSimulations:!1,canGenerateSimulations:!1,badge:{label:"Up to date",color:"text-green-700",bgColor:"bg-green-50",borderColor:"border-green-200",icon:"â"}}:{state:"committed_no_simulations",hasSimulations:!1,hasOutdatedSimulations:!1,canGenerateSimulations:!0,badge:{label:"Not analyzed",color:"text-gray-600",bgColor:"bg-gray-50",borderColor:"border-gray-200",icon:"â"}}}const s=!!e.metadata?.previousCommittedSha;if(!!e.metadata?.previousVersionWithAnalyses||s){const l=a&&e.analyses&&e.analyses.length>0&&e.analyses[0].entitySha===e.metadata?.previousVersionWithAnalyses;return a&&!l?{state:"uncommitted_with_new_simulations",hasSimulations:!0,hasOutdatedSimulations:!1,canGenerateSimulations:!1,badge:{label:"Up-to-date Simulations",color:"text-green-700",bgColor:"bg-green-50",borderColor:"border-green-200",icon:"â"}}:a?{state:"uncommitted_outdated_simulations",hasSimulations:!0,hasOutdatedSimulations:!0,canGenerateSimulations:!0,badge:{label:"Edited - Simulations Outdated",color:"text-amber-700",bgColor:"bg-amber-50",borderColor:"border-amber-300",icon:"â "}}:{state:"uncommitted_outdated_simulations",hasSimulations:!1,hasOutdatedSimulations:!1,canGenerateSimulations:!0,badge:{label:"Not Analyzed",color:"text-gray-600",bgColor:"bg-gray-50",borderColor:"border-gray-200",icon:"â"}}}else return a?{state:"uncommitted_with_new_simulations",hasSimulations:!0,hasOutdatedSimulations:!1,canGenerateSimulations:!1,badge:{label:"Up-to-date Simulations",color:"text-green-700",bgColor:"bg-green-50",borderColor:"border-green-200",icon:"â"}}:{state:"uncommitted_no_previous_simulations",hasSimulations:!1,hasOutdatedSimulations:!1,canGenerateSimulations:!0,badge:{label:"New",color:"text-purple-700",bgColor:"bg-purple-50",borderColor:"border-purple-200",icon:"+"}}}function Fn(e){return Yn(e).hasOutdatedSimulations}const _t=70;function Wc({scenarios:e,analysis:t,selectedScenario:r,entitySha:a,cacheBuster:s,activeTab:o,entityType:l,entity:i,queueState:d,processIsRunning:m,viewMode:u,setViewMode:h,onDebugSetup:p,debugFetcher:f}){const g=pe(null),[y,v]=M(new Set);W(()=>{g.current&&o==="scenarios"&&g.current.scrollIntoView({behavior:"smooth",block:"nearest"})},[r?.id,o]);const w=C=>`/entity/${a}/scenarios/${C}`,x=C=>{v(b=>{const S=new Set(b);return S.has(C)?S.delete(C):S.add(C),S})},N=(C,b=2)=>{const _=C.split(`
|
|
154
|
+
`).slice(0,b).join(" ").trim();return _.length>_t?_.substring(0,_t-3):(C.split(`
|
|
155
|
+
`).length>b||C.length>_.length,_)};return c("aside",{className:"w-[220px] bg-white border-r border-[#e1e1e1] shrink-0 flex flex-col gap-2 p-3",children:[h&&c("div",{children:[n("div",{className:"text-[10px] text-[#626262] font-medium mb-[6px]",children:"View"}),c("div",{className:"grid grid-cols-2 gap-0",role:"group","aria-label":"View mode selector",children:[n("button",{className:`px-[7px] h-[22px] text-[10px] font-medium rounded-l-[4px] border border-[#c7c7c7] transition-colors ${u==="screenshot"?"bg-white text-[#3e3e3e] border-[#c7c7c7]":"bg-[#e1e1e1] text-[#626262] border-[rgba(0,92,117,0.05)] hover:bg-[#d4d4d4]"}`,onClick:()=>h("screenshot"),"aria-label":"Screenshot view","aria-pressed":u==="screenshot",children:"đ¸ Screenshot"}),n("button",{className:`px-[7px] h-[22px] text-[10px] font-medium rounded-r-[4px] border border-[#c7c7c7] border-l-0 transition-colors ${u==="interactive"?"bg-white text-[#3e3e3e] border-[#c7c7c7]":"bg-[#e1e1e1] text-[#626262] border-[rgba(0,92,117,0.05)] hover:bg-[#d4d4d4]"}`,onClick:()=>h("interactive"),"aria-label":"Interactive view","aria-pressed":u==="interactive",children:"đŽ Interactive"})]})]}),r&&c("div",{className:"grid grid-cols-2 gap-1",children:[n(Q,{to:`/entity/${a}/edit/${r.id}`,className:"h-[22px] bg-[#e0e9ec] text-[#005c75] border border-[#e0e9ec] rounded-[4px] text-[10px] font-normal cursor-pointer transition-colors hover:bg-[#cbf3fa] no-underline flex items-center justify-center",title:"Edit Scenario Data",children:"Edit Scenario"}),n("button",{className:"h-[22px] bg-[#e0e9ec] text-[#005c75] border border-[#e0e9ec] rounded-[4px] text-[10px] font-normal cursor-pointer transition-colors hover:bg-[#cbf3fa] disabled:bg-gray-400 disabled:text-gray-600 disabled:cursor-not-allowed flex items-center justify-center",onClick:p,disabled:f?.state!=="idle",title:"Setup Debug Environment",children:f?.state==="idle"?"Debug Scenario":"Setting up..."})]}),i&&i.filePath&&n("div",{children:n(Q,{to:`/entity/${a}/create-scenario`,className:"w-full px-[10px] h-[22px] bg-[#005c75] text-white border border-[rgba(0,92,117,0.05)] rounded text-[10px] font-normal cursor-pointer transition-colors hover:bg-[#004a5e] no-underline flex items-center justify-center",children:"Create New Scenario"})}),n("div",{className:"border-t border-[#e1e1e1] pt-3",children:n("div",{className:"text-[10px] text-[#626262] font-medium",children:"Scenarios"})}),e.length===0?n("div",{className:"",children:n("p",{className:"text-[#8e8e8e] text-xs font-medium m-0 text-left leading-5",children:"No Scenarios"})}):n("div",{className:"overflow-y-auto flex-1",children:n("div",{className:"flex flex-col gap-[11.6px]",children:e.map((C,b)=>{const S=r?.id===C.id,_=y.has(C.id||"");return C.id?c(Q,{to:w(C.id),ref:S?g:null,className:`group flex flex-col w-full border rounded-[5.155px] cursor-pointer transition-all no-underline overflow-hidden ${S?"border-[#005c75] bg-white":"border-[#e1e1e1] bg-white hover:border-[#005c75]"}`,children:[n("div",{className:"w-full flex justify-center border-b border-[#e1e1e1]",children:n(On,{scenario:C,entity:{sha:a,entityType:l},analysisStatus:t?.status,queueState:d,processIsRunning:m,size:"large",cacheBuster:s,viewMode:u})}),c("div",{className:"px-[7px] py-[6.444px]",children:[n("div",{className:"text-xs font-semibold text-[#343434]",children:C.name}),C.description&&n("div",{className:"mt-[4px]",children:c("div",{className:"text-xs leading-[15px] text-[#808080] font-normal",children:[_?C.description:N(C.description),!_&&C.description.length>_t&&c(te,{children:["...",n("button",{onClick:E=>{E.preventDefault(),E.stopPropagation(),x(C.id)},className:"text-[10px] text-[#005c75] font-medium cursor-pointer hover:underline ml-1",children:"Read More"})]}),_&&C.description.length>_t&&n("button",{onClick:E=>{E.preventDefault(),E.stopPropagation(),x(C.id)},className:"text-[10px] text-[#005c75] font-medium cursor-pointer hover:underline ml-1",children:"Read Less"})]})})]})]},b):null})})})]})}function Kc({scenario:e,analysis:t,entity:r}){const a=e.metadata?.executionResult||null,s=e.metadata?.data?.argumentsData||[],o=l=>{if(!l)return"No execution results available yet. Run the function to capture side effects including console output, file operations, and API calls.";const i=[],d=l.sideEffects?.consoleOutput||[];d.length>0&&(i.push(`Console Output: ${d.length} log ${d.length===1?"entry":"entries"} captured`),d.forEach(h=>{i.push(` [${h.level.toUpperCase()}] ${h.args.join(" ")}`)}));const m=l.sideEffects?.fileWrites||[];m.length>0&&(i.push(`
|
|
156
|
+
File System Operations: ${m.length} ${m.length===1?"operation":"operations"} detected`),m.forEach(h=>{i.push(` ${h.operation}: ${h.path}${h.size?` (${h.size} bytes)`:""}`)}));const u=l.sideEffects?.apiCalls||[];return u.length>0&&(i.push(`
|
|
157
|
+
API Calls: ${u.length} ${u.length===1?"call":"calls"} made`),u.forEach(h=>{i.push(` ${h.method} ${h.url}${h.status?` â ${h.status}`:""}${h.duration?` (${h.duration}ms)`:""}`)})),l.error&&i.push(`
|
|
158
|
+
Error: ${l.error.name||"Error"}: ${l.error.message}`),i.length===0?"No side effects detected. The function executed without console output, file operations, or API calls.":i.join(`
|
|
159
|
+
`)};return c("div",{className:"flex w-full h-full gap-0",children:[c("div",{className:"flex-1 border border-gray-200 bg-white rounded flex flex-col",children:[n("div",{className:"px-4 pt-3.5 pb-2.5",children:n("h3",{className:"text-[9px] font-semibold text-[#005c75] uppercase tracking-wide text-center m-0",children:"Input Data"})}),n("div",{className:"flex-1 overflow-auto px-4 pb-0",children:n("pre",{className:"text-xs font-mono text-gray-800 whitespace-pre-wrap break-words m-0",children:JSON.stringify(s,null,2)})})]}),c("div",{className:"flex-1 border border-gray-200 bg-white rounded flex flex-col ml-[-1px]",children:[n("div",{className:"px-4 pt-3.5 pb-2.5",children:n("h3",{className:"text-[9px] font-semibold text-[#005c75] uppercase tracking-wide text-center m-0",children:"Returned Data"})}),n("div",{className:"flex-1 overflow-auto px-4 pb-0",children:a?n("pre",{className:"text-xs font-mono text-gray-800 whitespace-pre-wrap break-words m-0",children:a.returnValue!==void 0?JSON.stringify(a.returnValue,null,2):"undefined"}):n("div",{className:"text-sm text-gray-500 italic",children:"No execution results yet"})})]}),c("div",{className:"flex-1 border border-gray-200 bg-white rounded flex flex-col ml-[-1px]",children:[n("div",{className:"px-4 pt-3.5 pb-2.5",children:n("h3",{className:"text-[9px] font-semibold text-[#005c75] uppercase tracking-wide text-center m-0",children:"Side Effects"})}),n("div",{className:"flex-1 overflow-auto px-4 pb-4",children:n("p",{className:"text-sm text-gray-700 leading-[22px] m-0 whitespace-pre-wrap",children:o(a)})})]})]})}const Pt=10,Vc=1024;function Jc({currentViewportWidth:e,currentPresetName:t,onDevicePresetClick:r,devicePresets:a}){const[s,o]=M(null),l=pe(null),i=ee(()=>[...a].sort((y,v)=>y.width-v.width),[a]),{fittingPresets:d,overflowPresets:m}=ee(()=>{const y=[],v=[];for(const w of i)w.width<=Vc?y.push(w):v.push(w);return v.sort((w,x)=>x.width-w.width),{fittingPresets:y,overflowPresets:v}},[i]),u=V(y=>{if(!l.current)return null;const v=l.current.getBoundingClientRect(),w=y-v.left,x=v.width,N=x/2,b=(d.length>0?d[d.length-1].width:0)/2,S=N-b,_=N+b,E=m.length>0?(m.length-1)*Pt:0;if(m.length>0){if(w<S){if(w<=E){const $=Math.min(Math.floor(w/Pt),m.length-1);return m[$]}return m[m.length-1]}if(w>_){const $=x-w;if($<=E){const T=Math.min(Math.floor($/Pt),m.length-1);return m[T]}return m[m.length-1]}}const R=Math.abs(w-N);for(let $=d.length-1;$>=0;$--){const T=d[$],P=d[$-1],L=T.width/2,A=P?P.width/2:0;if(R<=L&&R>=A)return T}return d[0]||m[m.length-1]||null},[d,m]),h=V(y=>{const v=u(y.clientX);o(v)},[u]),p=V(()=>{o(null)},[]),f=V(y=>{const v=u(y.clientX);v&&r(v)},[u,r]),g=s||{name:t,width:e};return c("div",{ref:l,className:"relative h-6 bg-[#f6f9fc] shrink-0 overflow-hidden cursor-pointer",onMouseMove:h,onMouseLeave:p,onClick:f,children:[n("div",{className:"absolute inset-0 flex items-center justify-center pointer-events-none",children:n("div",{className:"h-full transition-all duration-100 bg-[rgba(0,92,117,0.15)]",style:{width:`${e}px`}})}),n("div",{className:"absolute inset-0 pointer-events-none",children:d.map(y=>{const v=y.width===e,w=s?.name===y.name,x=y.width/2;return c("div",{children:[n("div",{className:"absolute top-0 bottom-0",style:{left:`calc(50% - ${x}px)`},children:n("div",{className:`w-0.5 h-full transition-colors duration-75 ${v||w?"bg-[#005c75]":"bg-[rgba(0,92,117,0.25)]"}`})}),n("div",{className:"absolute top-0 bottom-0",style:{left:`calc(50% + ${x}px)`},children:n("div",{className:`w-0.5 h-full transition-colors duration-75 ${v||w?"bg-[#005c75]":"bg-[rgba(0,92,117,0.25)]"}`})})]},y.name)})}),n("div",{className:"absolute inset-0 pointer-events-none",children:m.map((y,v)=>{const w=v*Pt,x=y.width===e,N=s?.name===y.name;return c("div",{children:[n("div",{className:"absolute top-0 bottom-0",style:{left:`${w}px`},children:n("div",{className:`w-0.5 h-full transition-colors duration-75 ${x||N?"bg-[#005c75]":"bg-[rgba(0,92,117,0.25)]"}`})}),n("div",{className:"absolute top-0 bottom-0",style:{right:`${w}px`},children:n("div",{className:`w-0.5 h-full transition-colors duration-75 ${x||N?"bg-[#005c75]":"bg-[rgba(0,92,117,0.25)]"}`})})]},y.name)})}),n("div",{className:"absolute inset-0 flex items-center justify-center pointer-events-none",children:c("div",{className:`text-[10px] px-2 py-0.5 rounded shadow-sm whitespace-nowrap transition-colors ${s?"bg-[#005c75] text-white":"bg-white/90 text-[#005c75] border border-[rgba(0,92,117,0.25)]"}`,children:[g.name," - ",g.width,"px"]})})]})}function Qc({width:e,height:t,onSave:r,onCancel:a}){const[s,o]=M(""),[l,i]=M(""),d=()=>{const u=s.trim();if(!u){i("Please enter a name for this custom size");return}r(u)};return n("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center p-4 z-50",children:c("div",{className:"bg-white rounded-lg max-w-md w-full p-6 shadow-xl",children:[c("div",{className:"flex items-center justify-between mb-6",children:[n("h2",{className:"text-xl font-semibold text-gray-900",children:"Save Custom Size"}),n("button",{onClick:a,className:"text-gray-400 hover:text-gray-600 transition-colors","aria-label":"Close",children:n("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:n("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),c("div",{className:"mb-6 p-4 bg-gray-50 rounded-lg border border-gray-200",children:[n("div",{className:"text-sm text-gray-500 mb-1",children:"Dimensions"}),c("div",{className:"text-lg font-medium text-gray-900",children:[e,"px à ",t,"px"]})]}),c("div",{className:"mb-6",children:[n("label",{htmlFor:"custom-size-name",className:"block text-sm font-medium text-gray-700 mb-2",children:"Name"}),n("input",{id:"custom-size-name",type:"text",value:s,onChange:u=>{o(u.target.value),i("")},onKeyDown:u=>{u.key==="Enter"&&s.trim()&&d(),u.key==="Escape"&&a()},placeholder:"e.g., iPhone 15 Pro",className:`w-full px-3 py-2 border rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-[#005c75] focus:border-[#005c75] ${l?"border-red-300":"border-gray-300"}`,autoFocus:!0}),l&&n("p",{className:"mt-1 text-sm text-red-600",children:l})]}),c("div",{className:"flex gap-3 justify-end",children:[n("button",{onClick:a,className:"px-4 py-2 bg-gray-100 text-gray-700 text-sm font-medium rounded-md hover:bg-gray-200 focus:outline-none focus:ring-2 focus:ring-gray-300 transition-colors",children:"Cancel"}),n("button",{onClick:d,disabled:!s.trim(),className:"px-4 py-2 bg-[#005c75] text-white text-sm font-medium rounded-md hover:bg-[#004a5c] focus:outline-none focus:ring-2 focus:ring-[#005c75] focus:ring-offset-1 transition-colors disabled:bg-gray-300 disabled:cursor-not-allowed",children:"Save"})]})]})})}function Zc(e){const[t,r]=M([]),a=e?`codeyam-custom-sizes-${e}`:null;W(()=>{if(!a||typeof window>"u"){r([]);return}try{const i=localStorage.getItem(a);if(i){const d=JSON.parse(i);Array.isArray(d)&&r(d)}}catch(i){console.error("[useCustomSizes] Failed to load custom sizes:",i),r([])}},[a]);const s=V(i=>{if(!(!a||typeof window>"u"))try{localStorage.setItem(a,JSON.stringify(i))}catch(d){console.error("[useCustomSizes] Failed to save custom sizes:",d)}},[a]),o=V((i,d,m)=>{r(u=>{const h=u.findIndex(g=>g.name===i),p={name:i,width:d,height:m};let f;return h>=0?(f=[...u],f[h]=p):f=[...u,p],s(f),f})},[s]),l=V(i=>{r(d=>{const m=d.filter(u=>u.name!==i);return s(m),m})},[s]);return{customSizes:t,addCustomSize:o,removeCustomSize:l}}const dr=1440,Tt=[{name:"Mobile",width:375,height:667},{name:"Tablet",width:768,height:1024},{name:"Laptop",width:1024,height:768},{name:"Desktop",width:1440,height:900}];function pa({selectedScenario:e,analysis:t,entity:r,viewMode:a,cacheBuster:s,hasScenarios:o,isAnalyzing:l=!1,projectSlug:i,hasAnApiKey:d=!0}){const m=fe(),[u,h]=M(!1),[p,f]=M(!1),[g,y]=M({name:"Desktop",width:dr,height:900}),[v,w]=M(dr),[x,N]=M(1),{customSizes:C,addCustomSize:b,removeCustomSize:S}=Zc(i),_=ee(()=>[...Tt,...C],[C]),E=(H,oe)=>{w(H);const ke=_.find(ye=>ye.width===H&&ye.height===oe);y({name:ke?.name||"Custom",width:H,height:oe})},R=H=>{w(H.width),y({name:H.name,width:H.width,height:H.height})},$=H=>{b(H,g.width,g.height??900),f(!1),y(oe=>({...oe,name:H}))},T=(H,oe)=>{w(H);const ke=_.find(ye=>ye.width===H&&ye.height===oe);y(ye=>({name:ke?.name||"Custom",width:H,height:ye.height}))},P=e?.metadata?.screenshotPaths?.[0],L=ee(()=>!e||!t?.status?.scenarios?null:t.status.scenarios.find(H=>H.name===e.name),[e,t?.status?.scenarios]),A=ee(()=>{const H=[];if(t?.status?.errors&&t.status.errors.length>0)for(const oe of t.status.errors)H.push({source:`${oe.phase} phase`,message:oe.message,stack:oe.stack});if(t?.status?.steps)for(const oe of t.status.steps)oe.error&&H.push({source:oe.name,message:oe.error,stack:oe.errorStack});return H},[t?.status?.errors,t?.status?.steps]),I=L?.error||(e?.metadata?.error?"Error during capture":null),Y=L?.errorStack,{interactiveServerUrl:F,isStarting:Z,isLoading:O,showIframe:U,iframeKey:k,onIframeLoad:q}=Mn({analysisId:t?.id,scenarioId:e?.id,scenarioName:e?.name,projectSlug:i,enabled:a==="interactive"}),j=ee(()=>F||null,[F]),B=!l&&o&&e&&!e.metadata?.screenshotPaths?.[0]&&t?.status?.scenarios?.some(H=>H.name===e.name&&H.screenshotStartedAt&&!H.screenshotFinishedAt),{lastLine:G}=Ye(i,l||a==="interactive"||B||!1);return e?c(te,{children:[n("main",{className:"flex-1 bg-[#f9f9f9] overflow-auto flex flex-col min-w-0",children:(l||B)&&!P&&!I&&a==="screenshot"?n("div",{className:"flex-1 flex flex-col items-center justify-center p-6 text-center bg-linear-to-br from-blue-50 to-indigo-50",children:c("div",{className:"max-w-2xl w-full bg-white rounded-t-2xl shadow-xl p-8",children:[c("div",{className:"mb-8",children:[n("div",{className:"inline-flex items-center justify-center w-24 h-24 bg-blue-100 rounded-full mb-6",children:n("span",{className:"text-5xl animate-spin",children:"âī¸"})}),n("h2",{className:"text-3xl font-bold text-gray-900 mb-4 m-0",children:B?`Capturing ${r?.name}`:`Analyzing ${r?.name}`}),n("p",{className:"text-base text-gray-600 leading-relaxed m-0 mb-2",children:B?`Taking screenshots for ${t?.scenarios?.length||0} scenario${t?.scenarios?.length!==1?"s":""}...`:`Generating simulations and scenarios for this ${r?.entityType} entity...`}),e&&c("p",{className:"text-sm text-blue-600 font-semibold m-0",children:["Currently processing: ",e.name]})]}),G&&n("div",{className:"bg-[#f6f9fc] border-2 border-[#e1e1e1] rounded-lg p-6 mb-6",children:c("div",{className:"flex items-start gap-3",children:[n("span",{className:"text-xl shrink-0",children:"đ"}),c("div",{className:"flex-1 min-w-0",children:[n("h3",{className:"text-xs font-semibold text-gray-700 uppercase tracking-wide mb-2 m-0",children:"Current Progress"}),n("p",{className:"text-sm text-gray-900 font-mono wrap-break-word m-0",title:G,children:G})]})]})}),i&&n("button",{onClick:()=>h(!0),className:"px-6 py-3 bg-[#005c75] text-white border-none rounded-lg text-base font-semibold cursor-pointer transition-all hover:bg-[#004a5e] hover:shadow-lg",children:"đ View Full Logs"}),n("p",{className:"text-xs text-gray-500 mt-8 m-0",children:"Screenshots will appear here as they are captured. This may take a few minutes."})]})}):a==="screenshot"&&(P||I)||a==="interactive"&&(j||Z)||a==="data"?c(te,{children:[I&&!P&&n("div",{className:"bg-red-50 border-l-4 border-red-500 mx-5 mt-4 p-4 rounded-r max-h-[400px] overflow-auto",role:"alert",children:c("div",{className:"flex items-start gap-3",children:[n("span",{className:"text-red-500 text-xl shrink-0","aria-hidden":"true",children:"â ī¸"}),c("div",{className:"flex-1 min-w-0",children:[n("h3",{className:"text-sm font-semibold text-red-800 m-0 mb-2",children:"Capture Error"}),n("div",{className:"max-h-[200px] overflow-auto",children:n("p",{className:"text-sm text-red-700 m-0 mb-2 font-mono whitespace-pre-wrap wrap-break-word",children:I})}),Y&&c("details",{className:"mt-2",children:[n("summary",{className:"text-xs text-red-600 cursor-pointer hover:text-red-800 font-medium",children:"View stack trace"}),n("div",{className:"mt-2 p-3 bg-red-100 rounded max-h-[300px] overflow-auto",children:n("pre",{className:"text-xs text-red-900 font-mono whitespace-pre-wrap wrap-break-word m-0",children:Y})})]})]})]})}),a==="interactive"?c("div",{className:"flex-1 flex flex-col min-h-0",children:[j&&n("div",{className:"bg-gray-50 border-b border-gray-200 px-6 py-3 shrink-0 flex justify-center",children:n(Jo,{presets:[...Tt],customSizes:C,currentWidth:g.width,currentHeight:g.height??900,scale:x,onSizeChange:E,onSaveCustomSize:()=>f(!0),onRemoveCustomSize:S})}),j&&n("div",{className:"bg-[#f6f9fc] border-b border-[rgba(0,92,117,0.25)] flex justify-center",children:n("div",{style:{maxWidth:`${Tt[Tt.length-1].width}px`,width:"100%"},children:n(Jc,{currentViewportWidth:v,currentPresetName:g.name,onDevicePresetClick:R,devicePresets:_})})}),n(Rn,{scenarioId:e.id,scenarioName:e.name,iframeUrl:j,isStarting:Z,isLoading:O,showIframe:U,iframeKey:k,onIframeLoad:q,onScaleChange:N,onDimensionChange:T,projectSlug:i,defaultWidth:g.width,defaultHeight:g.height})]}):a==="data"?n("div",{className:"flex-1 min-h-0",children:n(Kc,{scenario:e,analysis:t,entity:r})}):n("div",{className:"flex-1 flex flex-col",children:n("div",{className:"flex-1 p-6 flex items-center justify-center",children:n("div",{className:"transition-all duration-300",style:{maxWidth:`${v}px`},children:(P||!I)&&n(be,{screenshotPath:P,cacheBuster:s,alt:e.name,className:"w-full rounded-lg shadow-[0_10px_25px_rgba(0,0,0,0.1)] bg-white"})})})})]}):n("div",{className:"flex-1 flex flex-col",children:n("div",{className:"flex-1 flex flex-col items-center justify-center p-6 overflow-auto w-full",children:l&&!P?n("div",{className:"w-full h-full flex items-center justify-center",children:n("div",{className:"bg-blue-50 border-2 border-blue-200 rounded-lg p-8",children:c("div",{className:"flex items-start gap-4 mb-6",children:[n("span",{className:"animate-spin text-4xl shrink-0",children:"âī¸"}),c("div",{className:"flex-1",children:[n("h3",{className:"text-xl font-semibold text-blue-900 m-0 mb-3",children:"Capturing Screenshot"}),c("p",{className:"text-sm text-blue-800 m-0 mb-4",children:["Analysis is in progress for"," ",n("strong",{children:e.name}),". The screenshot will appear here once capture is complete."]}),G&&c("div",{className:"bg-white border border-blue-200 rounded p-4 mt-4",children:[n("h4",{className:"text-xs font-semibold text-blue-800 m-0 mb-2 uppercase tracking-wide",children:"Current Progress"}),n("p",{className:"text-sm text-blue-900 m-0 font-mono wrap-break-word",children:G})]}),i&&n("button",{onClick:()=>h(!0),className:"mt-4 px-4 py-2 bg-[#005c75] text-white border-none rounded-md text-sm font-semibold cursor-pointer transition-colors hover:bg-[#004a5e]",children:"đ View Full Logs"})]})]})})}):I?c("div",{className:"w-full h-full flex flex-col items-center justify-center overflow-auto gap-6",children:[!d&&n("div",{className:"bg-blue-50 border-2 border-blue-300 rounded-lg p-8",children:c("div",{className:"flex-1 flex flex-col gap-4 items-center justify-center",children:[c("div",{className:"flex items-start gap-4",children:[n("span",{className:"text-blue-600 text-2xl shrink-0",children:"đ"}),n("h3",{className:"text-xl font-semibold text-blue-900 m-0 mb-3",children:"Improve Analysis Quality with an API Key"})]}),c("div",{className:"bg-white border border-blue-200 rounded p-4",children:[n("h4",{className:"text-xs font-semibold text-blue-900 m-0 mb-2 uppercase tracking-wide",children:"CodeYam requires an AI API key for reliable analysis."}),c("ul",{className:"text-sm text-blue-800 m-0 space-y-1 pl-5 list-disc",children:[n("li",{children:"You can use API keys for a variety of models"}),n("li",{children:"Faster analysis processing"}),n("li",{children:"Better handling of complex code structures"}),n("li",{children:"Improved scenario generation quality"})]})]}),n(Q,{to:"/settings",className:"inline-block px-4 py-2 bg-blue-600 text-white border-none rounded-md text-sm font-semibold cursor-pointer transition-colors hover:bg-blue-700",children:"đ Configure API Keys"})]})}),n("div",{className:"bg-red-50 border-2 border-red-300 rounded-lg p-8 w-full max-w-4xl my-auto",children:c("div",{className:"flex items-start gap-4 mb-6",children:[n("span",{className:"text-red-500 text-4xl shrink-0",children:"â ī¸"}),c("div",{className:"flex-1 min-w-0",children:[n("h3",{className:"text-xl font-semibold text-red-800 m-0 mb-3",children:"Capture Failed"}),n("p",{className:"text-sm text-red-700 m-0 mb-4",children:"An error occurred while capturing this scenario. No screenshot is available."}),c("div",{className:"bg-white border border-red-200 rounded p-4",children:[n("h4",{className:"text-xs font-semibold text-red-800 m-0 mb-2 uppercase tracking-wide",children:"Error Message"}),n("div",{className:"max-h-[300px] overflow-auto",children:n("p",{className:"text-sm text-red-900 m-0 font-mono whitespace-pre-wrap wrap-break-word",children:I})})]}),Y&&c("details",{className:"mt-4",children:[n("summary",{className:"text-sm text-red-700 cursor-pointer hover:text-red-900 font-semibold",children:"đ View full stack trace"}),n("div",{className:"mt-3 bg-white border border-red-200 rounded p-4 max-h-[400px] overflow-auto",children:n("pre",{className:"text-xs text-red-900 font-mono whitespace-pre-wrap wrap-break-word m-0",children:Y})})]})]})]})})]}):A.length>0?n("div",{className:"w-full h-full flex items-center justify-center overflow-auto",children:n("div",{className:"bg-red-50 border-2 border-red-300 rounded-lg p-8 w-full max-w-4xl my-auto",children:c("div",{className:"flex items-start gap-4 mb-6",children:[n("span",{className:"text-red-500 text-4xl shrink-0",children:"â ī¸"}),c("div",{className:"flex-1 min-w-0",children:[n("h3",{className:"text-xl font-semibold text-red-800 m-0 mb-3",children:"Analysis Error"}),n("p",{className:"text-sm text-red-700 m-0 mb-4",children:A.length===1?"An error occurred during analysis. Screenshot capture was not completed.":`${A.length} errors occurred during analysis. Screenshot capture was not completed.`}),A.map((H,oe)=>c("div",{className:"bg-white border border-red-200 rounded p-4 mb-4 last:mb-0",children:[n("h4",{className:"text-xs font-semibold text-red-800 m-0 mb-2 uppercase tracking-wide",children:H.source}),n("div",{className:"max-h-[200px] overflow-auto",children:n("p",{className:"text-sm text-red-900 m-0 font-mono whitespace-pre-wrap wrap-break-word",children:H.message})}),H.stack&&c("details",{className:"mt-2",children:[n("summary",{className:"text-xs text-red-700 cursor-pointer hover:text-red-900 font-semibold",children:"View stack trace"}),n("div",{className:"mt-2 bg-red-50 border border-red-200 rounded p-3 max-h-[200px] overflow-auto",children:n("pre",{className:"text-xs text-red-900 font-mono whitespace-pre-wrap wrap-break-word m-0",children:H.stack})})]})]},oe))]})]})})}):c("div",{className:"flex flex-col items-center gap-4 text-center",children:[n("span",{className:"text-6xl text-gray-300",children:"đˇ"}),n("p",{className:"text-lg text-gray-500 m-0",children:"No screenshot available for this scenario"}),n("p",{className:"text-sm text-gray-400 m-0",children:"Try recapturing or debugging this scenario"})]})})})}),u&&i&&n(at,{projectSlug:i,onClose:()=>h(!1)}),p&&n(Qc,{width:g.width,height:g.height??900,onSave:$,onCancel:()=>f(!1)})]}):!o&&r?l?n("div",{className:"flex-1 flex flex-col items-center justify-center p-12 text-center bg-[#f6f9fc]",children:c("div",{className:"flex flex-col items-center gap-6 max-w-2xl",children:[n("div",{className:"w-12 h-12 mb-2",children:n("svg",{className:"animate-spin",viewBox:"0 0 50 50",children:n("circle",{cx:"25",cy:"25",r:"20",fill:"none",stroke:"#005c75",strokeWidth:"4",strokeDasharray:"31.4 31.4",strokeLinecap:"round"})})}),n("h2",{className:"text-2xl font-semibold text-[#005c75] leading-[30px] m-0 font-['IBM_Plex_Sans']",children:B?"Capturing screenshots...":"Analyzing..."}),n("p",{className:"text-xs text-[#8e8e8e] text-center leading-5 m-0 font-['IBM_Plex_Mono']",children:"This may take a few minutes."}),G&&n("p",{className:"text-xs font-mono text-[#005c75] text-center leading-5 m-0 max-w-xl",children:G}),i&&n("button",{onClick:()=>h(!0),className:"w-[148px] px-2.5 py-[5px] bg-[#005c75] text-white border-none rounded-sm text-xs font-medium cursor-pointer transition-colors hover:bg-[#004a5c] font-['IBM_Plex_Sans']",children:"View full logs"})]})}):A.length>0?n("div",{className:"flex-1 flex flex-col items-center justify-center p-6 bg-[#f6f9fc] overflow-auto",children:c("div",{className:"bg-red-50 border-2 border-red-300 rounded-lg p-8 w-full max-w-4xl",children:[c("div",{className:"flex items-start gap-4 mb-6",children:[n("span",{className:"text-red-500 text-4xl shrink-0",children:"â ī¸"}),c("div",{className:"flex-1 min-w-0",children:[n("h3",{className:"text-xl font-semibold text-red-800 m-0 mb-3",children:"Analysis Failed"}),n("p",{className:"text-sm text-red-700 m-0 mb-4",children:A.length===1?"An error occurred during analysis. No scenarios were generated.":`${A.length} errors occurred during analysis. No scenarios were generated.`}),A.map((H,oe)=>c("div",{className:"bg-white border border-red-200 rounded p-4 mb-4 last:mb-0",children:[n("h4",{className:"text-xs font-semibold text-red-800 m-0 mb-2 uppercase tracking-wide",children:H.source}),n("div",{className:"max-h-[200px] overflow-auto",children:n("p",{className:"text-sm text-red-900 m-0 font-mono whitespace-pre-wrap wrap-break-word",children:H.message})}),H.stack&&c("details",{className:"mt-2",children:[n("summary",{className:"text-xs text-red-700 cursor-pointer hover:text-red-900 font-semibold",children:"View stack trace"}),n("div",{className:"mt-2 bg-red-50 border border-red-200 rounded p-3 max-h-[200px] overflow-auto",children:n("pre",{className:"text-xs text-red-900 font-mono whitespace-pre-wrap wrap-break-word m-0",children:H.stack})})]})]},oe))]})]}),r.filePath&&n("div",{className:"flex justify-center mt-4",children:n("button",{onClick:()=>{m.submit({entitySha:r.sha,filePath:r.filePath},{method:"post",action:"/api/analyze"})},disabled:m.state!=="idle",className:"h-[42px] px-6 py-2 bg-[#005c75] text-white border-none rounded-lg text-sm font-medium cursor-pointer transition-all hover:bg-[#004a5e] disabled:bg-gray-400 disabled:cursor-not-allowed",children:m.state!=="idle"?"Retrying...":"Retry Analysis"})})]})}):n("div",{className:"flex-1 flex flex-col items-center justify-center p-6 text-center bg-[#f6f9fc]",children:c("div",{className:"max-w-[600px]",children:[n("h2",{className:"text-[28px] font-semibold text-[#343434] mb-4 m-0 leading-10",children:"No simulations yet"}),n("p",{className:"text-base font-normal text-[#3e3e3e] mb-8 leading-6 m-0",children:"Analyze the code to create simulations and create test scenarios automatically."}),r.filePath&&n("button",{onClick:()=>{m.submit({entitySha:r.sha,filePath:r.filePath},{method:"post",action:"/api/analyze"})},disabled:m.state!=="idle",className:"h-[54px] w-[183px] px-2.5 py-[5px] bg-[#005c75] text-white border-none rounded-lg text-base font-medium cursor-pointer transition-all hover:bg-[#004a5e] disabled:bg-gray-400 disabled:cursor-not-allowed",children:m.state!=="idle"?"Analyzing...":"Analyze"})]})}):n("div",{className:"flex-1 flex flex-col items-center justify-center p-6 text-center",children:n("p",{className:"text-base text-gray-500 m-0",children:"Select a scenario to view its screenshot"})})}function ur({hasIndirectBadge:e,onAnalyze:t}){return c(te,{children:[n("div",{className:"px-5 py-3 bg-white border-b border-[#e1e1e1]",children:c("div",{className:"flex items-center justify-end gap-2",children:[e&&n("span",{className:"px-[5px] py-0 h-[25px] flex items-center bg-[#fce8c5] text-[#ef4444] rounded text-xs font-medium leading-5",children:"Indirect"}),n("span",{className:"px-[5px] py-0 h-[25px] flex items-center bg-[#efefef] text-[#3e3e3e] rounded text-xs font-medium leading-5",children:"0 scenarios"})]})}),c("div",{className:"px-5 py-5 bg-white rounded-bl-lg rounded-br-lg flex items-center justify-between",children:[n("p",{className:"text-sm font-normal text-[#8e8e8e] m-0 leading-[22px]",children:"No analyses available for this version."}),n("button",{className:"px-[15px] py-0 h-[23px] bg-[#005c75] text-white rounded text-xs font-medium leading-5 border-none cursor-pointer hover:bg-[#004a5e] transition-colors flex items-center justify-center",onClick:t,children:"Analyze"})]})]})}function Xc({entity:e,history:t}){const[r,a]=M("entity"),[s,o]=M(new Set),l=t.filter(u=>u.analyses.length>0).length,i=ee(()=>{const u=new Map;return t.forEach(h=>{h.analyses.forEach(p=>{p.scenarios?.forEach(f=>{u.has(f.name)||u.set(f.name,[]),u.get(f.name).push({version:h,analysis:p,scenario:f})})})}),Array.from(u.entries()).map(([h,p])=>({name:h,description:p[0]?.scenario.description||"",versions:p.sort((f,g)=>{const y=new Date(f.analysis.createdAt||0).getTime();return new Date(g.analysis.createdAt||0).getTime()-y})}))},[t]),d=i.length,m=u=>{o(h=>{const p=new Set(h);return p.has(u)?p.delete(u):p.add(u),p})};return n("div",{className:"flex-1 bg-[#f9f9f9] overflow-auto",children:c("div",{className:"max-w-[1400px] mx-auto px-8 py-8",children:[n("div",{className:"mb-8",children:c("div",{className:"flex items-center gap-6 border-b-2 border-[#e1e1e1]",children:[c("button",{onClick:()=>a("entity"),className:`flex items-center gap-2 px-0 py-3 border-b-2 transition-colors bg-transparent cursor-pointer ${r==="entity"?"border-[#005c75] text-[#232323]":"border-transparent text-[#626262] hover:text-[#232323]"}`,children:[n("span",{className:"text-base font-semibold leading-6",children:"Entity History"}),n("span",{className:`flex items-center justify-center min-w-[22px] h-[22px] px-[5px] rounded-lg text-xs font-medium leading-5 ${r==="entity"?"bg-[#e0e9ec] text-[#005c75]":"bg-[#ebf0f2] text-[#626262]"}`,children:l})]}),c("button",{onClick:()=>a("scenarios"),className:`flex items-center gap-2 px-0 py-3 border-b-2 transition-colors bg-transparent cursor-pointer ${r==="scenarios"?"border-[#005c75] text-[#232323]":"border-transparent text-[#626262] hover:text-[#232323]"}`,children:[n("span",{className:"text-base font-normal leading-6",children:"Scenario Changes"}),n("span",{className:`flex items-center justify-center min-w-[22px] h-[22px] px-[5px] rounded-lg text-xs font-medium leading-5 ${r==="scenarios"?"bg-[#e0e9ec] text-[#005c75]":"bg-[#ebf0f2] text-[#626262]"}`,children:d})]})]})}),t.length===0?n("div",{className:"bg-white rounded-lg border border-gray-200 p-12 text-center",children:n("p",{className:"text-gray-500 text-base m-0",children:"No history available"})}):r==="entity"?c("div",{className:"relative pl-12",children:[t.length>1&&n("div",{className:"absolute left-[17.5px] top-10 bottom-10 w-px bg-[#c7c7c7]"}),t.map((u,h)=>c("div",{className:"relative mb-12 last:mb-0",children:[n("div",{className:"absolute left-[-35px] top-[19px] w-[11.5px] h-[11.5px] rounded-full bg-[#00925d]"}),c("div",{className:"bg-white rounded-lg border border-[#e1e1e1] overflow-hidden",children:[n("div",{className:"px-5 py-3 bg-[#f6f9fc] border-b border-[#e1e1e1]",children:c("div",{className:"flex items-center justify-between",children:[c("div",{className:"flex items-center gap-3",children:[u.sha===e?.sha&&n("span",{className:"px-[5px] py-0 h-[25px] flex items-center bg-[#deeafc] text-[#2f80ed] rounded text-xs font-medium leading-5",children:"Current Version"}),c("span",{className:"text-xs font-mono text-[#646464] leading-5",children:["SHA:"," ",n("span",{className:"text-[#3e3e3e]",children:u.sha.substring(0,8)})]})]}),n("span",{className:"text-xs font-medium text-[#8e8e8e] leading-[22px]",children:u.createdAt&&new Date(u.createdAt).toLocaleString("en-US",{month:"2-digit",day:"2-digit",year:"2-digit",hour:"2-digit",minute:"2-digit",hour12:!1})})]})}),u.analyses.length>0?n("div",{children:u.analyses.map((p,f)=>n("div",{children:!p.scenarios||p.scenarios.length===0?n(ur,{hasIndirectBadge:p.indirect,onAnalyze:()=>{console.log("Analyze version:",u.sha)}}):c(te,{children:[n("div",{className:"px-5 py-3 bg-white border-b border-[#e1e1e1]",children:c("div",{className:"flex items-center justify-end gap-2",children:[p.indirect&&n("span",{className:"px-[5px] py-0 h-[25px] flex items-center bg-[#fce8c5] text-[#ef4444] rounded text-xs font-medium leading-5",children:"Indirect"}),c("span",{className:"px-[5px] py-0 h-[25px] flex items-center bg-[#efefef] text-[#3e3e3e] rounded text-xs font-medium leading-5",children:[p.scenarios.length," scenario",p.scenarios.length!==1?"s":""]})]})}),p.metadata?.scenarioChangesOverview&&n("div",{className:"p-5 bg-[#f6f9fc] border-b border-[#e1e1e1]",children:c("p",{className:"text-sm text-[#005c75] m-0 leading-[22px]",children:[c("span",{className:"font-medium",children:["What Changed:"," "]}),p.metadata.scenarioChangesOverview]})}),p.scenarios&&p.scenarios.length>0&&n("div",{className:"p-5 bg-white",children:n("div",{className:"flex gap-4 flex-wrap",children:p.scenarios.map((g,y)=>{const v=g.metadata?.screenshotPaths?.[0],w=`${g.name}-${y}`;return c("div",{className:"w-[187px] border border-[#e1e1e1] rounded bg-white overflow-hidden",children:[n("div",{className:"h-[110px] border-b border-[#e1e1e1] bg-gray-50 flex items-center justify-center p-[5.6px]",children:v?n(be,{screenshotPath:v,alt:g.name,className:"max-w-full max-h-full object-contain rounded-sm"}):c("div",{className:"flex flex-col items-center gap-1",children:[n("span",{className:"text-gray-400 text-xl",children:"đˇ"}),n("span",{className:"text-gray-400 text-[10px]",children:"No Screenshot"})]})}),n("div",{className:"p-[5.6px]",children:n("p",{className:"text-[10.2px] font-medium text-[#343434] m-0 leading-[13px] line-clamp-3",children:g.name})})]},w)})})})]})},p.id||f))}):n(ur,{onAnalyze:()=>{console.log("Analyze version:",u.sha)}})]})]},u.sha))]}):n("div",{className:"relative pl-12",children:i.length===0?n("div",{className:"bg-white rounded-lg border border-gray-200 p-12 text-center",children:n("p",{className:"text-gray-500 text-base m-0",children:"No scenarios found"})}):i.map((u,h)=>{const p=s.has(u.name),f=p?u.versions:u.versions.slice(0,1),g=u.versions.length-1;return u.versions[0]?.version.sha,e?.sha,c("div",{className:"relative mb-12 last:mb-0",children:[n("div",{className:"absolute left-[-35px] top-[42px] w-[13.26px] h-[13.26px] rounded-full bg-[#00925d]"}),c("div",{className:"bg-white rounded-lg border border-[#e1e1e1] overflow-hidden",children:[c("div",{className:"px-5 py-5 bg-[#f6f9fc] border-b border-[#e1e1e1]",children:[n("h3",{className:"text-base font-semibold text-[#232323] m-0 mb-1 leading-6",children:u.name}),u.description&&n("p",{className:"text-sm font-normal text-[#626262] m-0 leading-[22px]",children:u.description})]}),c("div",{className:"p-5 bg-white",children:[f.map((v,w)=>{const{version:x,analysis:N,scenario:C}=v,b=C.metadata?.screenshotPaths?.[0],S=w===0;return c("div",{className:`flex gap-5 items-start ${S?"":"mt-5 pt-5 border-t border-[#e1e1e1]"}`,children:[n("div",{className:"w-[175px] h-[110px] border border-[#e1e1e1] rounded bg-gray-50 flex items-center justify-center shrink-0",children:b?n(be,{screenshotPath:b,alt:C.name,className:"max-w-full max-h-full object-contain rounded-sm"}):c("div",{className:"flex flex-col items-center gap-1",children:[n("span",{className:"text-gray-400 text-xl",children:"đˇ"}),n("span",{className:"text-gray-400 text-[10px]",children:"No screenshot"})]})}),c("div",{className:"flex-1 flex flex-col gap-2",children:[c("div",{className:"flex items-center gap-2 flex-wrap",children:[x.sha===e?.sha&&n("span",{className:"px-[5px] py-0 h-[25px] flex items-center bg-[#deeafc] text-[#2f80ed] rounded text-xs font-medium leading-5",children:"Current Version"}),S&&u.versions.length>1&&c("span",{className:"px-[5px] py-0 h-[25px] flex items-center bg-[#e0e9ec] text-[#005c75] rounded text-xs font-medium leading-5",children:[u.versions.length," versions"]})]}),c("p",{className:"text-xs font-mono text-[#646464] m-0 leading-5",children:["SHA:"," ",n("span",{className:"text-[#3e3e3e]",children:x.sha.substring(0,8)})]}),N.createdAt&&c("p",{className:"text-xs font-medium text-[#8e8e8e] m-0 leading-[22px]",children:["Captured:"," ",new Date(N.createdAt).toLocaleString("en-US",{month:"2-digit",day:"2-digit",year:"2-digit",hour:"2-digit",minute:"2-digit",hour12:!1})]}),N.indirect&&n("span",{className:"px-[5px] py-0 h-[25px] flex items-center bg-[#fce8c5] text-[#ef4444] rounded text-xs font-medium leading-5 self-start",children:"Indirect"})]})]},`${x.sha}-${w}`)}),g>0&&c("button",{onClick:()=>m(u.name),className:"mt-5 flex items-center gap-2 text-sm text-[#005c75] bg-transparent border-none cursor-pointer p-0 hover:underline",children:[n("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",className:`transition-transform ${p?"rotate-180":""}`,children:n("path",{d:"M4 6L8 10L12 6",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),p?"Hide":`${g} previous version${g!==1?"s":""}`]})]})]})]},u.name)})})]})})}function Oe({type:e}){const t={visual:{iconColor:"#7c3aed",bgColor:"bg-purple-100",bgHex:"#f3e8ff"},library:{iconColor:"#0DBFE9",bgColor:"bg-cyan-100",bgHex:"#cffafe"},type:{iconColor:"#dc2626",bgColor:"bg-red-100",bgHex:"#fee2e2"},data:{iconColor:"#2563eb",bgColor:"bg-blue-100",bgHex:"#dbeafe"},index:{iconColor:"#ea580c",bgColor:"bg-orange-100",bgHex:"#ffedd5"},functionCall:{iconColor:"#7c3aed",bgColor:"bg-purple-100",bgHex:"#f3e8ff"},class:{iconColor:"#059669",bgColor:"bg-emerald-100",bgHex:"#d1fae5"},method:{iconColor:"#0891b2",bgColor:"bg-cyan-100",bgHex:"#cffafe"},other:{iconColor:"#6b7280",bgColor:"bg-gray-100",bgHex:"#f3f4f6"}},r=t[e]||t.other,a=()=>{switch(e){case"library":return n(Tr,{size:16,color:r.iconColor});case"visual":return n(ze,{size:16,color:r.iconColor});case"type":return n($a,{size:16,color:r.iconColor});case"data":return n(Pr,{size:16,color:r.iconColor});case"index":return n(Ra,{size:16,color:r.iconColor});case"functionCall":return n(qn,{size:16,color:r.iconColor});case"class":return n(Ma,{size:16,color:r.iconColor});case"method":return n(qn,{size:16,color:r.iconColor});case"other":return n(Re,{size:16,color:r.iconColor});default:return n(Re,{size:16,color:r.iconColor})}};return n("span",{className:`flex items-center justify-center w-8 h-8 rounded ${r.bgColor}`,children:a()})}function mr({entity:e,analysisInfo:t,from:r}){return n(Q,{to:`/entity/${e.sha}${r?`?from=${r}`:""}`,className:"block group",children:c("div",{className:"flex gap-0 border border-gray-200 rounded-lg overflow-hidden transition-all hover:border-[#005c75] hover:shadow-md bg-white h-[100px]",children:[e.screenshotPath?n("div",{className:"w-[125px] h-full bg-gray-50 flex items-center justify-center shrink-0 rounded-bl-[8px] rounded-tl-[8px] border-r border-gray-200",children:n(be,{screenshotPath:e.screenshotPath,alt:e.name,className:"max-w-full max-h-full object-contain"})}):n("div",{className:"w-[125px] h-full bg-[#efefef] flex items-center justify-center shrink-0 rounded-bl-[8px] rounded-tl-[8px] border-r border-gray-200",children:n("span",{className:"text-[40px]",children:n(Oe,{type:e.entityType})})}),c("div",{className:"flex-1 flex items-center justify-between px-4 min-w-0",children:[c("div",{className:"flex-1 min-w-0",children:[c("div",{className:"flex items-center gap-2 mb-1",children:[n(Oe,{type:e.entityType}),n("div",{className:"text-base font-medium text-black truncate group-hover:text-[#005c75] transition-colors",children:e.name})]}),n("div",{className:"text-[10px] text-[#8e8e8e] truncate mb-1 font-mono",title:e.filePath,children:e.filePath}),t.hasScenarios&&c("div",{className:"flex items-center gap-2 mt-2",children:[c("span",{className:"px-[5px] py-0 bg-[#efefef] text-[#3e3e3e] rounded text-[10px] font-medium",children:[t.scenarioCount," scenarios"]}),n("span",{className:"text-xs text-[#8e8e8e]",children:t.timestamp})]})]}),n("div",{className:"shrink-0 ml-4",children:t.status==="not_analyzed"?c(te,{children:[c("div",{className:"flex items-center gap-1 px-3 py-1 bg-[#f9f9f9] border border-[#e1e1e1] rounded mb-2",children:[n("div",{className:"w-2 h-2 rounded-full bg-[#c7c7c7]"}),n("span",{className:"text-[10px] font-semibold text-[#646464]",children:"Not analyzed"})]}),n("button",{className:"w-full px-3 py-1 bg-[#005c75] text-white border-none rounded text-[10px] font-medium cursor-pointer transition-colors hover:bg-[#004a5c]",onClick:a=>{a.preventDefault()},children:"Analyze"})]}):t.status==="up_to_date"?c("div",{className:"flex items-center gap-1 px-3 py-1 bg-[#f2fcf9] border border-[#c8f2e3] rounded",children:[n("div",{className:"w-2 h-2 rounded-full bg-[#00925d]"}),n("span",{className:"text-[10px] font-semibold text-[#00925d]",children:"Up to date"})]}):c(te,{children:[c("div",{className:"flex items-center gap-1 px-3 py-1 bg-[#e0e9ec] border border-[#e0e9ec] rounded mb-2",children:[n("div",{className:"w-2 h-2 rounded-full bg-[#005c75]"}),n("span",{className:"text-[10px] font-semibold text-[#005c75]",children:"Out of date"})]}),n("button",{className:"w-full px-3 py-1 bg-[#005c75] text-white border-none rounded text-[10px] font-medium cursor-pointer transition-colors hover:bg-[#004a5c]",onClick:a=>{a.preventDefault()},children:"Analyze"})]})})]})]})},e.sha)}const hr=e=>{const t=Math.random();return t<.33?{status:"not_analyzed",label:"Not analyzed",color:"gray"}:t<.66?{status:"up_to_date",label:"Up to date",color:"green",hasScenarios:!0,scenarioCount:3,timestamp:"10/21/25, 10:15"}:{status:"out_of_date",label:"Out of date",color:"teal"}};function ed({importedEntities:e,importingEntities:t}){const[r]=xn(),a=r.get("from"),s=e.length>0,o=t.length>0;return n("div",{className:"max-w-[1400px] mx-auto",children:c("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-8",children:[c("div",{className:"bg-white rounded-lg border border-[#e1e1e1] overflow-hidden",children:[c("div",{className:"px-6 py-4 flex items-start justify-between",children:[c("div",{children:[c("div",{className:"flex items-center gap-2 mb-1",children:[n("h3",{className:"text-base font-semibold text-black m-0 leading-6",children:"Imports"}),n("span",{className:"px-2 h-[20.464px] flex items-center justify-center bg-[#deeafc] text-[#2f80ed] rounded-[9.095px] text-xs font-semibold leading-5",children:e.length})]}),n("p",{className:"text-sm text-[#646464] m-0 leading-[22px]",children:"Entities imported by this component."})]}),n("button",{className:"px-[10px] py-[5px] bg-[#005c75] text-white border-none rounded text-xs font-medium cursor-pointer transition-colors hover:bg-[#004a5c]",children:"Analyze All"})]}),s?n("div",{className:"p-6 space-y-4",children:e.map(l=>n(mr,{entity:l,analysisInfo:hr(),from:a},l.sha))}):n("div",{className:"bg-[#f6f9fc] h-[339.923px] flex items-center justify-center",children:n("p",{className:"text-sm text-[#646464] m-0 leading-[22px]",children:"No imports."})})]}),c("div",{className:"bg-white rounded-lg border border-[#e1e1e1] overflow-hidden",children:[c("div",{className:"px-6 py-4 flex items-start justify-between",children:[c("div",{children:[c("div",{className:"flex items-center gap-2 mb-1",children:[n("h3",{className:"text-base font-semibold text-black m-0 leading-6",children:"Imported By"}),n("span",{className:"px-2 h-[20.464px] flex items-center justify-center bg-[#f3eefe] text-[#9b51e0] rounded-[9.095px] text-xs font-semibold leading-5",children:t.length})]}),n("p",{className:"text-sm text-[#646464] m-0 leading-[22px]",children:"Entities that import this component."})]}),n("button",{className:"px-[10px] py-[5px] bg-[#005c75] text-white border-none rounded text-xs font-medium cursor-pointer transition-colors hover:bg-[#004a5c]",children:"Analyze All"})]}),o?n("div",{className:"p-6 space-y-4",children:t.map(l=>n(mr,{entity:l,analysisInfo:hr(),from:a},l.sha))}):n("div",{className:"bg-[#f6f9fc] h-[339.923px] flex items-center justify-center",children:n("p",{className:"text-sm text-[#646464] m-0 leading-[22px] text-center",children:"Not imported by any entity."})})]})]})})}function td({relatedEntities:e}){return n("div",{className:"flex-1 bg-[#f9f9f9] overflow-auto p-8",children:n(ed,{importedEntities:e.importedEntities,importingEntities:e.importingEntities})})}function nd({data:e,defaultExpanded:t=!1,maxDepth:r=3}){return n("div",{className:"font-mono text-sm",children:n(pt,{data:e,depth:0,defaultExpanded:t,maxDepth:r})})}function pt({data:e,depth:t,defaultExpanded:r,maxDepth:a,objectKey:s,showInlineToggle:o=!1}){const[l,i]=M(r||t<2);if(W(()=>{i(r||t<2)},[r,t]),e===null)return n("span",{className:"text-gray-500",children:"null"});if(e===void 0)return n("span",{className:"text-gray-500",children:"undefined"});const d=typeof e;if(d==="string")return c("span",{className:"text-green-600",children:['"',e,'"']});if(d==="number")return n("span",{className:"text-blue-600",children:e});if(d==="boolean")return n("span",{className:"text-purple-600",children:e.toString()});if(Array.isArray(e))return e.length===0?n("span",{className:"text-gray-600",children:"[]"}):c("span",{children:[c("button",{className:"text-gray-600 hover:text-gray-900 cursor-pointer bg-transparent border-none p-0 font-mono hover:bg-gray-100 rounded",onClick:()=>i(!l),children:[c("span",{children:[l?"âŧ":"âļ"," ","["]}),!l&&c("span",{children:[e.length,"]"]})]}),l?c(te,{children:[n("div",{className:"ml-4 border-l-2 border-gray-200 pl-3 mt-1",children:e.map((m,u)=>n("div",{className:"py-0.5",children:n(pt,{data:m,depth:t+1,defaultExpanded:r,maxDepth:a})},u))}),n("div",{className:"text-gray-600",children:"]"})]}):null]});if(d==="object"){const m=Object.keys(e);if(m.length===0)return n("span",{className:"text-gray-600",children:"{}"});const u=p=>p!==null&&typeof p=="object"&&!Array.isArray(p)&&Object.keys(p).length>0,h=p=>Array.isArray(p)&&p.length>0;return c("span",{children:[c("button",{className:"text-gray-600 hover:text-gray-900 cursor-pointer bg-transparent border-none p-0 font-mono hover:bg-gray-100 rounded",onClick:()=>i(!l),children:[c("span",{children:[l?"âŧ":"âļ"," ","{"]}),!l&&c("span",{children:[m.length,"}"]})]}),l?c(te,{children:[n("div",{className:"ml-4 border-l-2 border-gray-200 pl-3 mt-1",children:m.map(p=>{const f=e[p],g=u(f),y=h(f);return n("div",{className:"py-0.5",children:g?n(zn,{propertyKey:p,value:f,depth:t,defaultExpanded:r,maxDepth:a}):y?n(Bn,{propertyKey:p,value:f,depth:t,defaultExpanded:r,maxDepth:a}):c(te,{children:[c("span",{className:"text-orange-600",children:[p,": "]}),n(pt,{data:f,depth:t+1,defaultExpanded:r,maxDepth:a})]})},p)})}),n("div",{className:"text-gray-600",children:"}"})]}):null]})}return n("span",{className:"text-gray-500",children:String(e)})}function zn({propertyKey:e,value:t,depth:r,defaultExpanded:a,maxDepth:s}){const[o,l]=M(a||r<2),i=Object.keys(t);return W(()=>{l(a||r<2)},[a,r]),c(te,{children:[c("button",{className:"cursor-pointer bg-transparent border-none p-0 font-mono hover:bg-gray-100 rounded inline-flex items-baseline",style:{marginLeft:"-14px"},onClick:()=>l(!o),children:[n("span",{className:"text-gray-600 hover:text-gray-900 mr-1",children:o?"âŧ":"âļ"}),c("span",{className:"text-orange-600",children:[e,": "]}),n("span",{className:"text-gray-600 ml-0.5",children:"{"}),!o&&c("span",{className:"text-gray-600",children:[i.length,"}"]})]}),o&&c(te,{children:[n("div",{className:"ml-4 border-l-2 border-gray-200 pl-3 mt-1",children:i.map(d=>{const m=t[d],u=m!==null&&typeof m=="object"&&!Array.isArray(m)&&Object.keys(m).length>0,h=Array.isArray(m)&&m.length>0;return n("div",{className:"py-0.5",children:u?n(zn,{propertyKey:d,value:m,depth:r+1,defaultExpanded:a,maxDepth:s}):h?n(Bn,{propertyKey:d,value:m,depth:r+1,defaultExpanded:a,maxDepth:s}):c(te,{children:[c("span",{className:"text-orange-600",children:[d,": "]}),n(pt,{data:m,depth:r+2,defaultExpanded:a,maxDepth:s})]})},d)})}),n("div",{className:"text-gray-600",children:"}"})]})]})}function Bn({propertyKey:e,value:t,depth:r,defaultExpanded:a,maxDepth:s}){const[o,l]=M(a||r<2);return W(()=>{l(a||r<2)},[a,r]),c(te,{children:[c("button",{className:"cursor-pointer bg-transparent border-none p-0 font-mono hover:bg-gray-100 rounded inline-flex items-baseline",style:{marginLeft:"-14px"},onClick:()=>l(!o),children:[n("span",{className:"text-gray-600 hover:text-gray-900 mr-1",children:o?"âŧ":"âļ"}),c("span",{className:"text-orange-600",children:[e,": "]}),n("span",{className:"text-gray-600 ml-0.5",children:"["}),!o&&c("span",{className:"text-gray-600",children:[t.length,"]"]})]}),o&&c(te,{children:[n("div",{className:"ml-4 border-l-2 border-gray-200 pl-3 mt-1",children:t.map((i,d)=>{const m=i!==null&&typeof i=="object"&&!Array.isArray(i)&&Object.keys(i).length>0,u=Array.isArray(i)&&i.length>0;return n("div",{className:"py-0.5",children:m?n(zn,{propertyKey:d.toString(),value:i,depth:r+1,defaultExpanded:a,maxDepth:s}):u?n(Bn,{propertyKey:d.toString(),value:i,depth:r+1,defaultExpanded:a,maxDepth:s}):n(pt,{data:i,depth:r+2,defaultExpanded:a,maxDepth:s})},d)})}),n("div",{className:"text-gray-600",children:"]"})]})]})}function dn({label:e,count:t,isActive:r,onClick:a,badgeColorActive:s,badgeTextActive:o}){return c("button",{onClick:a,className:`px-6 py-3 text-sm font-medium relative transition-colors ${r?"text-[#005c75]":"text-[#3e3e3e] hover:text-gray-900 hover:bg-gray-50"}`,children:[e,t!==void 0&&n("span",{className:`ml-2 px-2 py-0.5 rounded-full text-xs font-semibold ${r?`${s} ${o}`:"bg-gray-200 text-gray-700"}`,children:t}),r&&n("div",{className:"absolute bottom-0 left-0 right-0 h-0.5 bg-[#005c75]"})]})}function pr({label:e,isActive:t,onClick:r,disabled:a=!1}){return n("button",{onClick:r,className:`w-full text-left px-3 py-2.5 rounded-md transition-all text-sm ${t?"bg-[#f6f9fc] text-[#005c75] font-medium border-l-2 border-[#005c75] pl-[10px]":"text-[#3e3e3e] hover:bg-gray-50"}`,disabled:a,children:e})}function fr({call:e,scenarioName:t}){const[r,a]=M(!1),[s,o]=M("system"),l=p=>new Date(p).toLocaleString("en-US",{month:"2-digit",day:"2-digit",year:"2-digit",hour:"2-digit",minute:"2-digit",hour12:!1}),i=p=>p?`$${p.toFixed(4)}`:null,d=(p,f)=>{if(!p&&!f)return null;const g=[];return p&&g.push(`${p.toLocaleString()} in`),f&&g.push(`${f.toLocaleString()} out`),g.join(" / ")},m=ee(()=>{try{const p=JSON.parse(e.response);return p.choices?.[0]?.message?.content?p.choices[0].message.content:p.content?.[0]?.text?p.content[0].text:e.response}catch{return e.response}},[e.response]),u=ee(()=>{try{return JSON.stringify(JSON.parse(e.props),null,2)}catch{return e.props}},[e.props]),h=ee(()=>{if(t)return t;try{return JSON.parse(e.props)?.scenario?.name||null}catch{return null}},[e.props,t]);return c("div",{className:"bg-white rounded-lg border border-[#e1e1e1] overflow-hidden",children:[n("div",{className:"px-5 py-4 bg-[#f6f9fc] border-b border-[#e1e1e1] cursor-pointer hover:bg-[#edf2f7] transition-colors",onClick:()=>a(!r),children:c("div",{className:"flex items-start justify-between gap-4",children:[c("div",{className:"flex-1 min-w-0",children:[c("div",{className:"flex items-center gap-2 mb-2 flex-wrap",children:[n("span",{className:"px-2 py-0.5 h-[22px] flex items-center bg-[#005c75] text-white rounded text-[11px] font-medium",children:e.prompt_type}),n("span",{className:"px-2 py-0.5 h-[22px] flex items-center bg-[#efefef] text-[#3e3e3e] rounded text-[11px] font-medium",children:e.model}),h&&n("span",{className:"px-2 py-0.5 h-[22px] flex items-center bg-[#deeafc] text-[#2f80ed] rounded text-[11px] font-medium",children:h}),e.error&&n("span",{className:"px-2 py-0.5 h-[22px] flex items-center bg-[#fce8c5] text-[#ef4444] rounded text-[11px] font-medium",children:"Error"})]}),c("div",{className:"flex items-center gap-4 text-xs text-[#626262]",children:[n("span",{children:l(e.created_at)}),d(e.input_tokens,e.output_tokens)&&n("span",{children:d(e.input_tokens,e.output_tokens)}),i(e.cost)&&n("span",{className:"text-[#005c75] font-medium",children:i(e.cost)})]}),c("div",{className:"text-[11px] text-[#8a8a8a] font-mono mt-1",children:[".codeyam/llm-calls/",e.id,".json"]})]}),n("svg",{width:"20",height:"20",viewBox:"0 0 16 16",fill:"none",className:`transition-transform shrink-0 ${r?"rotate-180":""}`,children:n("path",{d:"M4 6L8 10L12 6",stroke:"#626262",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]})}),r&&c("div",{className:"border-t border-[#e1e1e1]",children:[c("div",{className:"flex border-b border-[#e1e1e1] bg-[#fafafa]",children:[n("button",{onClick:()=>o("system"),className:`px-4 py-2 text-[13px] font-medium border-b-2 transition-colors bg-transparent cursor-pointer ${s==="system"?"border-[#005c75] text-[#005c75]":"border-transparent text-[#626262] hover:text-[#232323]"}`,children:"System"}),n("button",{onClick:()=>o("prompt"),className:`px-4 py-2 text-[13px] font-medium border-b-2 transition-colors bg-transparent cursor-pointer ${s==="prompt"?"border-[#005c75] text-[#005c75]":"border-transparent text-[#626262] hover:text-[#232323]"}`,children:"Prompt"}),n("button",{onClick:()=>o("response"),className:`px-4 py-2 text-[13px] font-medium border-b-2 transition-colors bg-transparent cursor-pointer ${s==="response"?"border-[#005c75] text-[#005c75]":"border-transparent text-[#626262] hover:text-[#232323]"}`,children:"Response"}),n("button",{onClick:()=>o("props"),className:`px-4 py-2 text-[13px] font-medium border-b-2 transition-colors bg-transparent cursor-pointer ${s==="props"?"border-[#005c75] text-[#005c75]":"border-transparent text-[#626262] hover:text-[#232323]"}`,children:"Context"})]}),s&&c("div",{className:"p-4 bg-white max-h-[400px] overflow-auto",children:[s==="system"&&n("div",{children:e.system_message?n("pre",{className:"text-xs font-mono text-[#3e3e3e] whitespace-pre-wrap bg-[#f6f9fc] p-3 rounded border border-[#e1e1e1] m-0 overflow-auto",children:e.system_message}):n("p",{className:"text-xs text-[#626262] italic m-0",children:"No system message"})}),s==="prompt"&&n("div",{children:n("pre",{className:"text-xs font-mono text-[#3e3e3e] whitespace-pre-wrap bg-[#f6f9fc] p-3 rounded border border-[#e1e1e1] m-0 overflow-auto",children:e.prompt_text})}),s==="response"&&c("div",{children:[e.error&&c("div",{className:"mb-4 p-3 bg-[#fef2f2] border border-[#fecaca] rounded",children:[n("h4",{className:"text-xs font-semibold text-[#dc2626] uppercase mb-1",children:"Error"}),n("p",{className:"text-xs text-[#dc2626] m-0",children:e.error})]}),n("pre",{className:"text-xs font-mono text-[#3e3e3e] whitespace-pre-wrap bg-[#f6f9fc] p-3 rounded border border-[#e1e1e1] m-0 overflow-auto",children:m})]}),s==="props"&&n("pre",{className:"text-xs font-mono text-[#3e3e3e] whitespace-pre-wrap bg-[#f6f9fc] p-3 rounded border border-[#e1e1e1] m-0 overflow-auto",children:u})]}),e.error&&!s&&n("div",{className:"p-4 bg-[#fef2f2] border-t border-[#fecaca]",children:c("p",{className:"text-xs text-[#dc2626] m-0",children:[n("span",{className:"font-semibold",children:"Error: "}),e.error]})})]})]})}const gr=["generateEntityScenarios","analyzeEntity","generateDataStructure","generateEntityDescription"];function rd({entity:e,analysis:t,scenarios:r,onAnalyze:a,llmCalls:s}){const[o,l]=M("entity"),[i,d]=M("isolatedDataStructure"),[m,u]=M(r.length>0?{scenarioId:r[0].id||r[0].name}:null),[h,p]=M("entity"),{entityLlmCalls:f,scenarioLlmCalls:g,totalLlmCalls:y}=ee(()=>{if(!s)return{entityLlmCalls:[],scenarioLlmCalls:[],totalLlmCalls:0};const N=[...s.entityCalls,...s.analysisCalls],C=N.filter(S=>S.object_type==="entity"||gr.includes(S.prompt_type)),b=N.filter(S=>S.object_type!=="entity"&&!gr.includes(S.prompt_type));return C.sort((S,_)=>_.created_at-S.created_at),b.sort((S,_)=>_.created_at-S.created_at),{entityLlmCalls:C,scenarioLlmCalls:b,totalLlmCalls:N.length}},[s]),v=[{id:"isolatedDataStructure",title:"Isolated Data Structure",data:e?.metadata?.isolatedDataStructure,description:"Entity's own data structure without dependencies"},{id:"mergedDataStructure",title:"Merged Data Structure",data:t?.metadata?.mergedDataStructure,description:"Combined data structure including dependencies"},{id:"conditionalUsages",title:"Conditional Usages",data:e?.metadata?.isolatedDataStructure?.conditionalUsages,description:"Attributes used in conditionals (if, ternary, switch, &&) - candidates for key attributes"},{id:"keyAttributes",title:"Key Attributes",data:t?.metadata?.keyAttributes,description:"Important attributes identified during analysis"},{id:"importedExports",title:"Imported Dependencies",data:e?.metadata?.importedExports,description:"The imported dependencies used by this entity"},{id:"scenariosDataStructure",title:"Scenarios Data Structure",data:t?.metadata?.scenariosDataStructure,description:"Structure template used across all scenarios"}],w=v.filter(N=>N.data!==void 0&&N.data!==null).length;let x=null;if(o==="entity"){const N=v.find(C=>C.id===i);N&&N.data!==void 0&&N.data!==null&&(x={title:N.title,description:N.description,data:N.data})}else if(o==="scenarios"&&m){const N=r.find(C=>(C.id||C.name)===m.scenarioId);N&&(x={title:N.name,description:N.description||"Scenario data and configuration",data:N.metadata})}return c("div",{className:"max-w-[1800px] mx-auto h-full flex flex-col",children:[n("div",{className:"mb-6 shrink-0",children:c("div",{className:"flex border-b border-gray-200 relative",children:[n(dn,{label:"Entity",isActive:o==="entity",onClick:()=>l("entity"),badgeColorActive:"bg-[#e0e9ec]",badgeTextActive:"text-[#005c75]"}),n(dn,{label:"Scenarios",count:r.length,isActive:o==="scenarios",onClick:()=>l("scenarios"),badgeColorActive:"bg-[#ebf0f2]",badgeTextActive:"text-[#626262]"}),n(dn,{label:"LLM Calls",count:y,isActive:o==="llm-calls",onClick:()=>l("llm-calls"),badgeColorActive:"bg-[#ebf0f2]",badgeTextActive:"text-[#626262]"}),t?.metadata?.analyzerVersion&&c("div",{className:"ml-auto flex items-center text-xs text-gray-500",children:[n("span",{className:"font-medium",children:"Analyzer:"}),n("span",{className:"ml-1 font-mono",children:t.metadata.analyzerVersion})]})]})}),o==="llm-calls"?c("div",{className:"flex-1 min-h-0",children:[c("div",{className:"flex gap-4 mb-4",children:[c("button",{onClick:()=>p("entity"),className:`px-4 py-2 rounded-lg text-sm font-medium transition-colors ${h==="entity"?"bg-[#005c75] text-white":"bg-white border border-gray-200 text-gray-600 hover:bg-gray-50"}`,children:["Entity Calls (",f.length,")"]}),c("button",{onClick:()=>p("scenario"),className:`px-4 py-2 rounded-lg text-sm font-medium transition-colors ${h==="scenario"?"bg-[#005c75] text-white":"bg-white border border-gray-200 text-gray-600 hover:bg-gray-50"}`,children:["Scenario Calls (",g.length,")"]})]}),n("div",{className:"space-y-4 overflow-y-auto",style:{maxHeight:"calc(100vh - 350px)"},children:h==="entity"?f.length===0?n("div",{className:"bg-white rounded-lg border border-gray-200 p-8 text-center",children:n("p",{className:"text-gray-500 text-sm m-0",children:"No entity-level LLM calls found"})}):f.map(N=>n(fr,{call:N},N.id)):g.length===0?n("div",{className:"bg-white rounded-lg border border-gray-200 p-8 text-center",children:n("p",{className:"text-gray-500 text-sm m-0",children:"No scenario-level LLM calls found"})}):g.map(N=>n(fr,{call:N},N.id))})]}):c("div",{className:"grid grid-cols-[340px_1fr] gap-6 flex-1 min-h-0",children:[n("div",{className:"bg-white rounded-lg border border-gray-200 p-4 overflow-y-auto",children:o==="entity"?c(te,{children:[n("h3",{className:"text-xs font-medium text-black mb-3 uppercase tracking-wide",children:"ENTITY SECTIONS"}),w===0?n("p",{className:"text-sm text-[#646464] leading-[22px]",children:"No entity data available."}):n("nav",{className:"space-y-1",children:v.map(N=>{const C=N.data!==void 0&&N.data!==null;return n(pr,{label:N.title,isActive:i===N.id,onClick:()=>d(N.id),disabled:!C},N.id)})})]}):c(te,{children:[n("h3",{className:"text-xs font-medium text-black mb-3 uppercase tracking-wide",children:"SCENARIOS"}),r.length===0?n("p",{className:"text-sm text-[#646464] leading-[22px]",children:"No scenarios available."}):n("nav",{className:"space-y-1",children:r.map(N=>{const C=N.id||N.name,b=m?.scenarioId===C;return n(pr,{label:N.name,isActive:b,onClick:()=>u({scenarioId:C})},C)})})]})}),n("div",{className:"bg-white rounded-lg border border-gray-200 overflow-hidden flex flex-col",children:x?n(ad,{title:x.title,description:x.description,data:x.data}):o==="scenarios"&&r.length===0?n(yr,{title:"No Simulations Yet",description:"Analyze the code to create simulations and create test scenarios automatically.",onAnalyze:a}):o==="entity"?n(yr,{title:"No Entity Data Yet",description:"Entity data structures will appear here after analysis is complete.",onAnalyze:a}):n("div",{className:"p-6 text-center py-12 text-gray-500",children:"Select a section to view data"})})]})]})}function yr({title:e,description:t,onAnalyze:r}){return c("div",{className:"flex flex-col items-center justify-center h-full bg-[#f6f9fc]",children:[n("h2",{className:"text-[28px] font-semibold text-[#646464] leading-[40px] mb-2 text-center",children:e}),n("p",{className:"text-base text-[#646464] leading-6 mb-6 text-center max-w-[600px]",children:t}),r&&n("button",{onClick:r,className:"h-[54px] w-[183px] bg-[#005c75] text-white text-base font-medium rounded-lg border-none cursor-pointer hover:bg-[#004a5e] transition-colors",children:"Analyze"})]})}function ad({title:e,description:t,data:r}){const[a,s]=M(!0),[o,l]=M("Copy JSON");return c(te,{children:[c("div",{className:"px-6 py-4 border-b border-gray-200 bg-gray-50",children:[n("h3",{className:"text-base font-semibold text-black m-0",children:e}),n("p",{className:"text-sm text-[#646464] mt-1 m-0",children:t})]}),c("div",{className:"px-6 py-4 bg-white flex justify-between items-center",children:[c("div",{className:"flex gap-2",children:[n("button",{onClick:()=>s(!0),className:`px-4 h-8 text-sm font-medium rounded border-none cursor-pointer transition-colors ${a?"bg-[#005c75] text-white":"bg-[#e0e9ec] hover:bg-[#d0dfe4] text-[#005c75]"}`,children:"Expand All"}),n("button",{onClick:()=>s(!1),className:`px-4 h-8 text-sm font-medium rounded border-none cursor-pointer transition-colors ${a?"bg-[#e0e9ec] hover:bg-[#d0dfe4] text-[#005c75]":"bg-[#005c75] text-white"}`,children:"Collapse All"})]}),n("button",{onClick:()=>{const d=JSON.stringify(r,null,2);navigator.clipboard.writeText(d),l("Copied!"),setTimeout(()=>l("Copy JSON"),2e3)},className:"px-4 h-8 bg-[#343434] hover:bg-[#232323] text-white text-sm font-medium rounded border-none cursor-pointer transition-colors whitespace-nowrap",children:o})]}),n("div",{className:"overflow-y-auto flex-1",children:n("div",{className:"p-6",children:r?n("div",{className:"bg-gray-50 rounded-lg p-3 overflow-x-auto",children:n(nd,{data:r,defaultExpanded:a,maxDepth:99})}):n("div",{className:"text-center py-12 text-gray-500",children:"No data available for this section"})})})]})}function sd({entity:e,analysis:t,scenarios:r,onAnalyze:a}){const s=fe();return W(()=>{if(e?.sha&&s.state==="idle"&&!s.data){const o=t?.id?`/api/llm-calls/${e.sha}?analysisId=${t.id}`:`/api/llm-calls/${e.sha}`;s.load(o)}},[e?.sha,t?.id,s.state,s.data]),n("div",{className:"flex-1 min-h-0 bg-[#f9f9f9] overflow-auto p-8",children:n(rd,{entity:e,analysis:t,scenarios:r,onAnalyze:a,llmCalls:s.data})})}function yn({content:e,label:t="Copy",copiedLabel:r="â Copied!",className:a="",duration:s=2e3,ariaLabel:o}){const[l,i]=M(!1),d=V(()=>{navigator.clipboard.writeText(e).then(()=>{i(!0),setTimeout(()=>i(!1),s)}).catch(m=>{console.error("Failed to copy:",m)})},[e,s]);return n("button",{onClick:d,className:a,disabled:l,"aria-label":o||(l?"Copied to clipboard":"Copy to clipboard"),"aria-live":"polite",children:l?r:t})}const od={margin:0,padding:"24px",backgroundColor:"#101827",fontSize:"14px",lineHeight:"1.5"},id={minWidth:"3em",paddingRight:"1em",color:"#6b7280",userSelect:"none"},ld=2e3,cd=e=>{if(!e)return"typescript";switch(e.split(".").pop()?.toLowerCase()){case"ts":case"tsx":return"typescript";case"js":case"jsx":return"javascript";case"json":return"json";case"css":return"css";default:return"typescript"}};function dd({entity:e,entityCode:t}){return n("div",{className:"flex-1 bg-[#f9f9f9] overflow-auto p-8",children:c("div",{className:"bg-white rounded-tl-lg rounded-tr-lg border border-gray-200 overflow-hidden",children:[c("div",{className:"px-6 py-4 border-b border-gray-200 bg-gray-50 flex justify-between items-center",children:[c("div",{children:[n("h2",{className:"text-lg font-semibold text-gray-900 m-0",children:"Source Code"}),n("p",{className:"text-xs text-[#646464] font-mono mt-1 m-0",children:e?.filePath})]}),t&&n(yn,{content:t,label:"Copy Code",duration:ld,className:"px-[10px] py-[5px] bg-[#005c75] text-white border-none rounded text-xs font-medium cursor-pointer transition-colors hover:bg-[#004a5c] disabled:opacity-75 disabled:cursor-not-allowed"})]}),n("div",{className:"p-0",children:t?n("div",{className:"relative",children:n(us,{language:cd(e?.filePath),style:ms,showLineNumbers:!0,customStyle:od,lineNumberStyle:id,children:t})}):n("div",{className:"p-12 text-center text-gray-500",children:"No code available"})})]})})}const ud=({data:e})=>[{title:e?.entity?`${e.entity.name} - CodeYam`:"Entity - CodeYam"},{name:"description",content:"View entity scenarios and screenshots"}];function md({currentParams:e,nextParams:t,currentUrl:r,nextUrl:a,formMethod:s,defaultShouldRevalidate:o}){return r.pathname===a.pathname&&r.search===a.search?o:!!(e.sha!==t.sha||s)}async function hd({params:e,request:t,context:r}){const{sha:a}=e;if(!a)throw new Response("Entity SHA is required",{status:400});const o=new URL(t.url).searchParams.get("from"),i=(e["*"]||"").split("/").filter(Boolean),d=i[0]||"scenarios",m=i[1]||null,u=i[2]||null,h=r.analysisQueue,p=h?h.getState():{paused:!1,jobs:[]},[f,g,y,v,w]=await Promise.all([Me(a),Kt(a,!1),_e(),Ke(),Lo(se()||process.cwd())]),x=g&&g.length>0?g[0]:null;let N={importedEntities:[],importingEntities:[]},C=null,b=[];return f&&(N=await Wr(f),C=await Vr(f),b=await Jr(f)),D({entity:f??void 0,analysis:x??void 0,projectSlug:y,from:o,relatedEntities:N,entityCode:C??void 0,history:b,tab:d,scenarioId:m,viewModeFromUrl:u,currentCommit:v,hasAnApiKey:w,queueState:p})}function pd(){const e=Te(),a=(Nr()["*"]||"").split("/").filter(Boolean),s=a[0]||"scenarios",o=a[1]||null,l=a[2]||null,i=e.entity,d=e.analysis,m=e.projectSlug;e.from;const u=e.relatedEntities,h=e.entityCode,p=e.history,f=e.currentCommit,g=e.hasAnApiKey,y=e.queueState,v=d?.scenarios||[],w=nt(),x=pe(null);W(()=>{x.current===null&&(x.current=window.history.length)},[]);const N=()=>{if(typeof window>"u")return;const J=window.history.state;if(J===null||J?.idx===void 0||J?.idx===0)w("/");else{const me=window.history.length,ue=x.current;if(ue!==null&&me>ue){const xe=me-ue+1;w(-xe)}else w(-1)}},C=!!y.currentlyExecuting,b=s,S=ee(()=>{if(b!=="scenarios")return null;if(o){const J=v.find(me=>me.id===o);if(J)return J}return v.length>0?v[0]:null},[b,o,v]),[_,E]=M(()=>l||(i?.entityType==="library"?"data":"screenshot"));W(()=>{l&&l!==_&&E(l)},[l]);const[R,$]=M(!1),[T,P]=M(""),[L,A]=M(!1),[I,Y]=M(Date.now()),[F,Z]=M(null),[O,U]=M(!1),[k,q]=M(!1),j=fe(),B=fe(),G=fe(),de=fe(),ie=rt(),H=f?.metadata?.currentRun,oe=!!H?.createdAt&&!H?.analysisCompletedAt,ke=y.jobs.some(J=>J.entityShas?.includes(i?.sha||"")||J.type==="analysis"&&J.commitSha===f?.sha&&J.entityShas&&J.entityShas.length===0),ye=H?.currentEntityShas?.includes(i?.sha||"")??!1,lt=ye;i?.metadata?.defaultWidth||d?.metadata?.defaultWidth,j.state==="submitting"||j.state,ee(()=>!!S?.metadata?.interactiveExamplePath,[S]);const{isCompleted:ct}=Ye(m,L);W(()=>{j.state==="idle"&&j.data&&(j.data.success?setTimeout(()=>{Y(Date.now()),ie.revalidate(),A(!1)},1500):j.data.error&&(A(!1),alert(`Recapture failed: ${j.data.error}`)))},[j.state,j.data,ie]),W(()=>{L&&ct&&setTimeout(()=>{Y(Date.now()),ie.revalidate(),A(!1)},1500)},[L,ct,ie]),W(()=>{if(B.state==="idle"&&B.data)if(B.data.success){Z(B.data),U(!0);const J=B.data.jobId;if(J){const me=async()=>{try{const xe=await fetch("/api/queue?queryType=job&jobId="+encodeURIComponent(J));if(!xe.ok){const De=await xe.text();console.error("[Debug Setup] Poll failed with status",xe.status,":",De);return}(await xe.json()).status==="completed"&&(clearInterval(ue),Z(De=>De?{...De,complete:!0,instructions:{title:"Debug Environment Ready â",sections:De.instructions?.sections?.map(X=>X.heading==="Status"?{heading:"Status",items:[{content:"Setup complete! Your debug environment is ready."},...X.items.slice(1)]}:X.heading==="What's Happening"?null:X.heading==="Next Steps (Once Complete)"?{...X,heading:"Next Steps"}:X).filter(Boolean)||[]}}:null))}catch(xe){console.error("[Debug Setup] Error polling queue:",xe)}},ue=setInterval(()=>{me().catch(()=>{})},2e3);return()=>{clearInterval(ue)}}else console.warn("[Debug Setup] No job ID returned from debug setup!")}else B.data.error&&(console.error("[Debug Setup] Error:",B.data.error),alert(`Debug setup failed: ${B.data.error}`))},[B.state,B.data]),W(()=>{G.state==="idle"&&G.data&&(G.data.success?setTimeout(()=>{Y(Date.now()),ie.revalidate(),A(!1)},1500):G.data.error&&(A(!1),alert(`Recapture failed: ${G.data.error}`)))},[G.state,G.data,ie]);const Ve=()=>{i&&de.submit({entitySha:i.sha,filePath:i.filePath||""},{method:"post",action:"/api/analyze"})};W(()=>{de.state==="idle"&&de.data&&(de.data.success?ie.revalidate():de.data.error&&alert(`Analysis failed: ${de.data.error}`))},[de.state,de.data,i?.sha,ie]),W(()=>{const J=setTimeout(()=>{ie.revalidate()},500);return()=>clearTimeout(J)},[]),W(()=>{if(oe||lt){const J=setInterval(()=>{ie.revalidate()},3e3);return()=>clearInterval(J)}else{const J=setInterval(()=>{ie.revalidate()},5e3),me=setTimeout(()=>{clearInterval(J)},3e4);return()=>{clearInterval(J),clearTimeout(me)}}},[oe,lt,ie]);const vt=(J,me)=>J==="scenarios"?`/entity/${i?.sha}/scenarios`:`/entity/${i?.sha}/${J}`,Xt=(J,me)=>`/entity/${i?.sha}/scenarios/${J}/${me}`,wt=J=>{E(J),S?.id&&w(Xt(S.id,J),{replace:!0})},Ct=i?Fn(i):!1,en=d!==null;return n(Jt,{children:c("div",{className:"h-screen bg-white flex flex-col overflow-hidden",children:[n("header",{className:"bg-white border-b border-gray-200 shrink-0 relative h-[54px]",children:c("div",{className:"flex items-center h-full px-6 gap-6",children:[c("div",{className:"flex items-center gap-3 min-w-0",children:[n("button",{onClick:N,className:"no-underline shrink-0 bg-transparent border-none cursor-pointer p-0 flex items-center",title:"Back",children:n("svg",{width:"17",height:"17",viewBox:"0 0 17 17",fill:"none",children:n("path",{d:"M13 8.5H4M4 8.5L8.5 4M4 8.5L8.5 13",stroke:"#005c75",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),n("h1",{className:"text-lg font-semibold text-black m-0 leading-[26px] shrink-0",children:i?.name}),n("span",{className:"text-xs text-[#626262] font-mono whitespace-nowrap overflow-hidden text-ellipsis min-w-0",title:i?.filePath,children:i?.filePath})]}),n("div",{className:"flex items-center gap-3 shrink-0",children:ye?c("div",{className:"px-2 py-1 bg-pink-100 rounded text-xs text-pink-700 font-semibold flex items-center gap-1.5",children:[n(Be,{size:14,className:"animate-spin"}),"Analyzing..."]}):ke?c("div",{className:"flex items-center gap-2 px-[15px] py-0 h-[26px] bg-[#f3e5f5] border border-[#ce93d8] rounded",children:[n("div",{className:"w-2 h-2 rounded-full bg-[#9c27b0]"}),n("span",{className:"text-xs font-semibold text-[#6a1b9a]",children:"Queued"})]}):en?Ct?c(te,{children:[c("div",{className:"flex items-center gap-2 px-[15px] py-0 h-[26px] bg-[#e3f2fd] border border-[#90caf9] rounded",children:[n("div",{className:"w-2 h-2 rounded-full bg-[#2196f3]"}),n("span",{className:"text-xs font-semibold text-[#1976d2]",children:"Out of date"})]}),n("button",{onClick:Ve,disabled:de.state!=="idle",className:"px-[15px] py-0 h-[26px] bg-[#005c75] text-white rounded text-xs font-semibold border-none cursor-pointer hover:bg-[#004a5e] transition-colors disabled:bg-gray-400 disabled:cursor-not-allowed",children:"Analyze"})]}):c("div",{className:"flex items-center gap-2 px-[15px] py-0 h-[26px] bg-[#e8f5e9] rounded",children:[n("div",{className:"w-2 h-2 rounded-full bg-[#4caf50]"}),n("span",{className:"text-xs font-semibold text-[#2e7d32]",children:"Up to date"})]}):c(te,{children:[c("div",{className:"flex items-center gap-2 px-[15px] py-0 h-[26px] bg-[#efefef] border border-[#e1e1e1] rounded",children:[n("div",{className:"w-2 h-2 rounded-full bg-[#626262]"}),n("span",{className:"text-xs font-semibold text-[#626262]",children:"Not analyzed"})]}),n("button",{onClick:Ve,disabled:de.state!=="idle",className:"px-[15px] py-0 h-[26px] bg-[#005c75] text-white rounded text-xs font-semibold border-none cursor-pointer hover:bg-[#004a5e] transition-colors disabled:bg-gray-400 disabled:cursor-not-allowed",children:"Analyze"})]})})]})}),n("div",{className:"bg-[#efefef] border-b border-[#e1e1e1] shrink-0",children:n("div",{className:"flex items-center gap-6 h-10 px-[15px] shrink-0",children:[{id:"scenarios",label:"Scenarios",count:v.length},{id:"related",label:"Related Entities",count:u.importedEntities.length+u.importingEntities.length},{id:"data",label:"Data Structure"},{id:"code",label:"Code"},{id:"history",label:"History"}].map(J=>c(Q,{to:vt(J.id),className:`flex items-center justify-center gap-3 shrink-0 text-sm rounded-md transition-colors no-underline ${b===J.id?"bg-[#343434] text-[#efefef] font-medium h-8 px-6":"text-[#3e3e3e] font-normal hover:bg-gray-100 py-1 px-[15px]"}`,children:[J.label,J.count!==void 0&&n("span",{className:`w-[25px] h-5 rounded-md text-xs font-normal flex items-center justify-center ${b===J.id?"bg-[#cbf3fa] text-[#005c75]":"bg-[#e1e1e1] text-[#3e3e3e]"}`,children:J.count})]},J.id))})}),c("div",{className:"flex grow items-stretch justify-center gap-0 min-h-0",children:[b==="scenarios"&&c(te,{children:[n(Wc,{scenarios:v,analysis:d,selectedScenario:S,entitySha:i?.sha||"",cacheBuster:I,activeTab:b,entityType:i?.entityType,entity:i,queueState:y,processIsRunning:C,viewMode:_,setViewMode:wt,onDebugSetup:()=>{!S?.id||!d?.id||B.submit({analysisId:d.id,scenarioId:S.id},{method:"post",action:"/api/debug-setup"})},debugFetcher:B}),n(pa,{selectedScenario:S,analysis:d,entity:i,viewMode:_,cacheBuster:I,hasScenarios:v.length>0,isAnalyzing:lt,projectSlug:m,hasAnApiKey:g})]}),b==="related"&&n(td,{relatedEntities:u}),b==="data"&&n(sd,{entity:i,analysis:d,scenarios:v,onAnalyze:Ve}),b==="code"&&n(dd,{entity:i,entityCode:h}),b==="history"&&n(Xc,{entity:i,history:p})]}),k&&m&&n("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-1000 p-5",onClick:()=>q(!1),children:c("div",{className:"bg-white rounded-xl max-w-[1200px] w-full max-h-[90vh] flex flex-col shadow-[0_20px_60px_rgba(0,0,0,0.3)]",onClick:J=>J.stopPropagation(),children:[c("div",{className:"px-6 py-6 border-b border-gray-200 flex justify-between items-center",children:[n("h2",{className:"m-0 text-xl font-semibold text-gray-900",children:"Analysis Logs"}),n("button",{className:"bg-transparent border-none text-[28px] text-gray-500 cursor-pointer p-0 w-8 h-8 flex items-center justify-center rounded transition-colors hover:bg-gray-100",onClick:()=>q(!1),children:"Ã"})]}),n("div",{className:"flex-1 overflow-hidden",children:n(at,{projectSlug:m,onClose:()=>q(!1)})})]})}),O&&F&&n("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-1000 p-5",onClick:()=>U(!1),children:c("div",{className:"bg-white rounded-xl max-w-[800px] w-full max-h-[90vh] flex flex-col shadow-[0_20px_60px_rgba(0,0,0,0.3)]",onClick:J=>J.stopPropagation(),children:[c("div",{className:"px-6 py-6 border-b border-gray-200 flex justify-between items-center",children:[n("div",{className:"flex items-center gap-3",children:n("h2",{className:"m-0 text-xl font-semibold text-gray-900",children:F.instructions?.title||"Debug Environment Ready"})}),n("button",{className:"bg-transparent border-none text-[28px] text-gray-500 cursor-pointer p-0 w-8 h-8 flex items-center justify-center rounded transition-colors hover:bg-gray-100",onClick:()=>U(!1),children:"Ã"})]}),n("div",{className:"px-6 py-6 overflow-y-auto flex-1",children:n("div",{className:"p-0",children:F.instructions?.sections?.map((J,me)=>c("div",{className:"mb-6 last:mb-0",children:[c("h3",{className:"text-base font-semibold text-gray-900 m-0 mb-3 pb-2 border-b-2 border-gray-200 flex items-center gap-2",children:[J.heading==="Status"&&!F.complete&&n("div",{className:"w-6 h-6 border-3 border-purple-600 border-t-transparent rounded-full animate-spin",style:{borderWidth:"3px"}}),J.heading]}),J.items.map((ue,xe)=>c("div",{className:"mb-3 pl-0 last:mb-0",children:[ue.label&&n("div",{className:"font-semibold text-gray-700 mb-1 text-sm",children:ue.label}),ue.isCode?c("div",{className:"relative mt-1",children:[n("code",{className:"block bg-gray-800 text-gray-50 px-3 py-2.5 pr-[90px] rounded-md text-[13px] font-mono overflow-x-auto",children:ue.content}),n(yn,{content:ue.content,label:"đ Copy",className:"absolute top-2 right-2 px-2.5 py-1 bg-purple-600/90 text-white border-none rounded text-[11px] font-semibold cursor-pointer transition-all backdrop-blur hover:bg-purple-700/95 hover:scale-105 active:scale-95 disabled:opacity-75 disabled:cursor-not-allowed disabled:scale-100"})]}):ue.isLink?c("div",{className:"flex items-center gap-2 mt-1",children:[n("a",{href:ue.content,target:"_blank",rel:"noopener noreferrer",className:"text-purple-600 hover:text-purple-800 underline text-sm font-medium",children:ue.content}),n(yn,{content:ue.content,label:"đ",className:"px-2 py-1 bg-gray-200 text-gray-700 border-none rounded text-[11px] font-semibold cursor-pointer transition-all hover:bg-gray-300 hover:scale-105 active:scale-95"})]}):n("div",{className:"text-gray-600 text-sm leading-relaxed",children:ue.content})]},xe))]},me))})}),n("div",{className:"px-6 py-6 border-t border-gray-200 flex justify-end gap-3",children:n("button",{className:"px-5 py-2.5 bg-gray-500 text-white border-none rounded-md text-sm font-semibold cursor-pointer transition-colors hover:bg-gray-600",onClick:()=>U(!1),children:"Close"})})]})})]})})}const fd=Object.freeze(Object.defineProperty({__proto__:null,default:pd,loader:hd,meta:ud,shouldRevalidate:md},Symbol.toStringTag,{value:"Module"}));async function gd(e){const{entityShas:t,filePaths:r,context:a,scenarioCount:s,queue:o}=e;console.log(`[analyzeEntities] Starting analysis for ${t.length} entities`);try{console.log("[analyzeEntities] Initializing environment..."),await ve();const l=se();if(!l)throw new Error("Project root not found");console.log(`[analyzeEntities] Project root: ${l}`);const i=le.join(l,".codeyam","config.json"),d=JSON.parse(await ge.readFile(i,"utf8")),{projectSlug:m,branchId:u}=d;if(!m||!u)throw new Error("Invalid project configuration - missing projectSlug or branchId");console.log(`[analyzeEntities] Project: ${m}, Branch: ${u}`);const h=`/tmp/codeyam/local-dev/${m}/codeyam/log.txt`;try{await ge.writeFile(h,"","utf8"),console.log("[analyzeEntities] Cleared log file")}catch{}const{project:p,branch:f}=await Ae(m);let g=r;if(!g||g.length===0){console.log("[analyzeEntities] Loading entities to determine file paths...");const w=await tt({shas:t});if(!w||w.length===0)throw new Error(`No entities found for SHAs: ${t.join(", ")}`);g=[...new Set(w.map(x=>x.filePath).filter(x=>!!x))],console.log(`[analyzeEntities] Found ${g.length} unique files`)}if(!g||g.length===0)throw new Error("No file paths available for analysis");console.log(`[analyzeEntities] Creating fake commit for ${g.length} files...`);const y=await $o(p,f,g);console.log(`[analyzeEntities] Created commit ${y.sha.substring(0,8)}`),console.log("[analyzeEntities] Initializing progress tracking..."),await Ze({commitSha:y.sha,runStatusUpdate:{queuedAt:new Date().toISOString(),currentEntityShas:t,entityCount:t.length,analysesCompleted:0,capturesCompleted:0,createdAt:new Date().toISOString()},updateCallback:(w,x)=>{if(!w)return;const N=w.currentRun;if(N&&N.id&&N.archivedAt)return;N&&(N.analysesCompleted&&N.analysesCompleted>0||N.capturesCompleted&&N.capturesCompleted>0)&&$l(w)}}),console.log("[analyzeEntities] Enqueueing analysis job...");const{jobId:v}=o.enqueue({type:"analysis",commitSha:y.sha,projectSlug:m,filePaths:g,entityShas:t,...a?{context:a}:{},...s?{scenarioCount:s}:{}});return console.log(`[analyzeEntities] Job queued with ID: ${v} for ${t.length} entities`),{jobId:v}}catch(l){throw console.error("[analyzeEntities] Failed:",l),l}}async function yd({request:e,context:t}){if(e.method!=="POST")return D({error:"Method not allowed"},{status:405});let r=t.analysisQueue;if(r||(r=await je()),!r)return D({error:"Queue not initialized"},{status:500});try{const a=await e.formData(),s=a.get("entitySha"),o=a.get("entityShas"),l=a.get("filePath"),i=a.get("context"),d=a.get("scenarioCount");let m;if(o)m=o.split(",").filter(Boolean);else if(s)m=[s];else return D({error:"Missing required field: entitySha or entityShas"},{status:400});if(m.length===0)return D({error:"No entities to analyze"},{status:400});console.log(`[API] Starting analysis for ${m.length} entity(ies)`);const{jobId:u}=await gd({entityShas:m,filePaths:l?[l]:void 0,context:i||void 0,scenarioCount:d?parseInt(d,10):void 0,queue:r});return console.log(`[API] Analysis queued with job ID: ${u}`),D({success:!0,message:`Analysis queued for ${m.length} entity(ies)`,entityCount:m.length,jobId:u})}catch(a){return console.error("[API] Error starting analysis:",a),D({error:"Failed to start analysis",details:a.message},{status:500})}}const xd=Object.freeze(Object.defineProperty({__proto__:null,action:yd},Symbol.toStringTag,{value:"Module"}));function bd({entity:e,variant:t="default"}){const r=Yn(e),{badge:a,hasOutdatedSimulations:s}=r;return t==="compact"?s?n("div",{className:"bg-yellow-50 px-2 py-1 rounded text-[10px] font-medium text-yellow-700",children:"Out of date"}):c("div",{className:"flex items-center gap-1.5 bg-green-50 px-2 py-1 rounded text-[10px] font-medium text-green-700",children:[n("div",{className:"w-2 h-2 rounded-full bg-green-500"}),"Up to date"]}):c("div",{className:`flex items-center gap-2 px-[15px] py-0 h-[26px] ${a.bgColor} rounded`,children:[n("div",{className:`w-2 h-2 rounded-full ${s?"bg-amber-500":"bg-green-500"}`}),n("span",{className:`text-xs font-semibold ${a.color}`,children:s?"Out of date":"Up to date"})]})}const vd=()=>[{title:"Simulations - CodeYam"},{name:"description",content:"A visual gallery of your recently captured component screenshots"}];async function wd({request:e}){try{const t=await bt();return D({entities:t||[]})}catch(t){return console.error("Failed to load simulations:",t),D({entities:[],error:"Failed to load simulations"})}}function Cd(){const t=Te().entities,[r,a]=M(""),[s,o]=M("visual"),[l,i]=M(null),d=ee(()=>{const b=[];return t.forEach(S=>{const _=S.analyses?.[0];if(_?.scenarios){const E=_.scenarios.filter(R=>R.metadata?.screenshotPaths?.[0]).map(R=>({scenarioName:R.name,scenarioDescription:R.description||"",screenshotPath:R.metadata?.screenshotPaths?.[0]||"",scenarioId:R.id}));E.length>0&&b.push({entity:S,screenshots:E,createdAt:_.createdAt||""})}}),b.sort((S,_)=>new Date(_.createdAt).getTime()-new Date(S.createdAt).getTime()),b},[t]),m=ee(()=>t.filter(b=>!b.analyses?.[0]?.scenarios?.some(E=>E.metadata?.screenshotPaths?.[0])),[t]),u=ee(()=>d.filter(({entity:b})=>{const S=!r||b.name.toLowerCase().includes(r.toLowerCase()),_=s==="all"||b.entityType===s;return S&&_}),[d,r,s]),h=ee(()=>m.filter(b=>{const S=!r||b.name.toLowerCase().includes(r.toLowerCase()),_=s==="all"||b.entityType===s;return S&&_}),[m,r,s]),p=ee(()=>{const b=[];return u.forEach(({entity:S,screenshots:_})=>{_.forEach(E=>{b.push({entitySha:S.sha,entityName:S.name,scenarioId:E.scenarioId||"",scenarioName:E.scenarioName,scenarioDescription:E.scenarioDescription,screenshotPath:E.screenshotPath})})}),b},[u]),f=V(b=>{a(b.target.value)},[]),g=V(b=>{o(b.target.value)},[]),y=V((b,S)=>{const _=p.findIndex(E=>E.entitySha===b&&E.scenarioId===S);_!==-1&&i(_)},[p]),v=V(()=>{i(null)},[]),w=V(()=>{i(b=>b===null||b===0?p.length-1:b-1)},[p.length]),x=V(()=>{i(b=>b===null?0:(b+1)%p.length)},[p.length]);W(()=>{if(l===null)return;const b=S=>{S.key==="Escape"?v():S.key==="ArrowLeft"?w():S.key==="ArrowRight"&&x()};return window.addEventListener("keydown",b),()=>window.removeEventListener("keydown",b)},[l,v,w,x]);const N=d.length>0,C=l!==null?p[l]:null;return c("div",{className:"bg-[#f9f9f9] min-h-screen overflow-y-auto",children:[c("div",{className:"px-36 py-12",children:[c("div",{className:"mb-8",children:[n("h1",{className:"text-3xl font-bold text-gray-900 m-0",children:"Simulations"}),n("p",{className:"text-sm text-gray-600 mt-2",children:"All recently captured simulations."})]}),!N&&c("div",{className:"rounded-lg px-5 py-6 mb-6 flex items-center gap-4",style:{backgroundColor:"#F0F5F8"},children:[n("div",{className:"w-9 h-9 rounded flex items-center justify-center shrink-0",style:{backgroundColor:"#005C75"},children:n(ze,{className:"w-5 h-5 text-white"})}),c("div",{children:[n("p",{className:"text-sm m-0 mb-1",style:{color:"#005C75"},children:"This page will display a visual gallery of your recently captured component screenshots."}),n("p",{className:"text-sm font-semibold m-0",style:{color:"#005C75"},children:"Start by analyzing your first component below."})]})]}),c("div",{className:"bg-white border-b border-gray-200 rounded-t-lg px-5 py-4 mb-6",children:[n("div",{className:"text-[10px] text-gray-500 mb-2 uppercase",children:"Filters"}),c("div",{className:"flex gap-3",children:[c("div",{className:"relative",children:[c("select",{className:"appearance-none bg-gray-50 border border-gray-200 rounded px-3 py-2 pr-8 text-sm cursor-pointer focus:outline-none focus:ring-0 focus:border-2 focus:border-[#005c75] hover:border-gray-300 transition-colors",value:s,onChange:g,children:[n("option",{value:"all",children:"All Types"}),n("option",{value:"visual",children:"Visual"}),n("option",{value:"library",children:"Library"})]}),n(mn,{className:"absolute right-2 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-500 pointer-events-none"})]}),c("div",{className:"flex-1 relative",children:[n(kr,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),n("input",{type:"text",placeholder:"Search component",className:"w-full bg-gray-50 border border-gray-200 rounded pl-9 pr-3 py-2 text-sm placeholder:text-gray-400 focus:outline-none focus:ring-0 focus:border-2 focus:border-[#005c75] transition-colors",value:r,onChange:f})]})]})]}),c("div",{className:"flex flex-col gap-3",children:[N&&(u.length===0?n("div",{className:"bg-white border border-gray-200 rounded-b-lg p-8 text-center text-gray-500",children:"No simulations match your filters."}):c(te,{children:[u.map(({entity:b,screenshots:S})=>n(Sd,{entity:b,screenshots:S,onScreenshotClick:y},b.sha)),n("div",{className:"bg-white border-x border-b border-gray-200 rounded-b-lg px-5 py-4 text-center",children:n(Q,{to:"/files?entityType=visual",className:"text-sm text-[#005c75] hover:text-[#004a5e] hover:underline",children:"Find more entities to simulate â"})})]})),!N&&(h.length===0?n("div",{className:"bg-white border border-gray-200 rounded-b-lg p-8 text-center text-gray-500",children:"No components found matching your filters."}):h.map(b=>n(Ed,{entity:b},b.sha)))]})]}),C&&n(Nd,{screenshot:C,currentIndex:l,totalCount:p.length,onClose:v,onPrevious:w,onNext:x})]})}function Nd({screenshot:e,currentIndex:t,totalCount:r,onClose:a,onPrevious:s,onNext:o}){const l=nt(),[i,d]=M(!1),m=()=>{l(`/entity/${e.entitySha}/scenarios/${e.scenarioId}?from=simulations`)};return n("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/80",onClick:a,children:c("div",{className:"relative flex flex-col w-[90vw] h-[90vh] max-w-[1400px] bg-white rounded-lg overflow-hidden",onClick:u=>u.stopPropagation(),children:[c("div",{className:"flex items-center justify-between px-6 py-4 border-b border-gray-200 bg-gray-50 shrink-0",children:[c("div",{className:"flex items-center gap-3",children:[c("span",{className:"text-sm text-gray-500",children:[t+1," of ",r]}),n("span",{className:"text-gray-300",children:"|"}),n("span",{className:"text-sm font-medium text-gray-700",children:e.entityName})]}),n("button",{onClick:a,className:"p-2 text-gray-500 hover:text-gray-700 hover:bg-gray-200 rounded-full transition-colors cursor-pointer",children:n(ja,{className:"w-5 h-5"})})]}),c("div",{className:"relative flex-1 flex items-center justify-center p-6 bg-gray-100 overflow-hidden",onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),children:[n("button",{onClick:s,className:`absolute left-4 z-10 p-3 bg-white/90 hover:bg-white rounded-full shadow-lg transition-all cursor-pointer ${i?"opacity-100":"opacity-0"}`,children:n(Da,{className:"w-6 h-6 text-gray-700"})}),n("div",{className:"flex items-center justify-center w-full h-full cursor-pointer",onClick:m,children:n(be,{screenshotPath:e.screenshotPath,alt:e.scenarioName,className:"max-w-full max-h-full object-contain rounded-lg shadow-lg"})}),n("button",{onClick:o,className:`absolute right-4 z-10 p-3 bg-white/90 hover:bg-white rounded-full shadow-lg transition-all cursor-pointer ${i?"opacity-100":"opacity-0"}`,children:n(Gn,{className:"w-6 h-6 text-gray-700"})})]}),c("div",{className:"px-6 py-4 border-t border-gray-200 bg-white cursor-pointer hover:bg-gray-50 transition-colors shrink-0",onClick:m,children:[c("div",{className:"flex items-start justify-between gap-4",children:[c("div",{className:"flex-1 min-w-0",children:[n("h3",{className:"text-lg font-semibold text-[#005c75] hover:text-[#004a5e] m-0 mb-1",children:e.scenarioName}),n("p",{className:"text-sm text-gray-600 m-0 line-clamp-2 min-h-10",children:e.scenarioDescription||" "})]}),c("div",{className:"shrink-0 flex items-center gap-1 text-sm text-[#005c75]",children:[n("span",{children:"View details"}),n(Gn,{className:"w-4 h-4"})]})]}),n("p",{className:"text-xs text-gray-400 mt-2 m-0",children:"Click to view this scenario in the entity page"})]})]})})}function Sd({entity:e,screenshots:t,onScreenshotClick:r}){const a=nt();e.entityType;const s=t.length||(e.analyses?.[0]?.scenarios?.length??0),o=l=>{a(`/entity/${e.sha}/scenarios/${l}?from=simulations`)};return n("div",{className:"bg-white border-x border-b border-gray-200 first:border-t last:rounded-b-lg hover:bg-gray-100 transition-colors",children:c("div",{className:"px-5 py-4",children:[c("div",{className:"flex items-center justify-between",children:[c(Q,{to:`/entity/${e.sha}`,className:"flex items-center gap-2 no-underline",children:[n(Oe,{type:e.entityType}),c("span",{className:"text-xs font-medium text-gray-800",children:[e.name," (",s,")"]})]}),n(bd,{entity:e,variant:"compact"})]}),n("div",{className:"flex gap-2.5 mt-3 overflow-x-auto pb-1",children:t.length>0?t.map(l=>n("button",{onClick:()=>o(l.scenarioId||""),className:"shrink-0 block cursor-pointer bg-transparent border-none p-0",children:n("div",{className:"w-36 h-24 rounded-md border border-gray-200 overflow-hidden bg-gray-100 flex items-center justify-center transition-all",style:{"--hover-border":"#005C75"},onMouseEnter:i=>{i.currentTarget.style.borderColor="#005C75",i.currentTarget.style.boxShadow="0 4px 12px rgba(0, 92, 117, 0.15)"},onMouseLeave:i=>{i.currentTarget.style.borderColor="#d1d5db",i.currentTarget.style.boxShadow="none"},children:n(be,{screenshotPath:l.screenshotPath,alt:l.scenarioName,className:"max-w-full max-h-full object-contain"})})},l.scenarioId)):n("div",{className:"text-xs text-gray-400 py-4",children:"No screenshots available"})})]})})}function Ed({entity:e}){const t=fe(),[r,a]=M(!1);e.entityType;const s=()=>{a(!0),t.submit({entitySha:e.sha,filePath:e.filePath||""},{method:"post",action:"/api/analyze"})};W(()=>{t.state==="idle"&&r&&a(!1)},[t.state,r]);const o=l=>{if(!l)return"";const i=new Date(l),d=new Date;return i.toDateString()===d.toDateString()?`Today, ${i.toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!0}).toLowerCase()}`:i.toLocaleDateString("en-US",{month:"short",day:"numeric"})};return n("div",{className:"bg-white border-x border-b border-gray-200 first:border-t last:rounded-b-lg hover:bg-gray-100 transition-colors cursor-pointer",onClick:s,children:c("div",{className:"px-5 py-4 flex items-center",children:[c("div",{className:"flex items-center gap-3 flex-1 min-w-0",children:[n(Oe,{type:e.entityType}),c("div",{className:"min-w-0",children:[c("div",{className:"flex items-center gap-3 mb-0.5",children:[n(Q,{to:`/entity/${e.sha}`,className:"text-sm font-medium text-gray-900 no-underline",children:e.name}),n("span",{className:"text-[10px] font-semibold px-1 py-0.5 rounded",style:{color:e.entityType==="visual"?"#7c3aed":e.entityType==="library"?"#0DBFE9":e.entityType==="type"?"#dc2626":e.entityType==="data"?"#2563eb":e.entityType==="index"?"#ea580c":e.entityType==="functionCall"?"#7c3aed":e.entityType==="class"?"#059669":e.entityType==="method"?"#0891b2":"#6b7280",backgroundColor:e.entityType==="visual"?"#f3e8ff":e.entityType==="library"?"#cffafe":e.entityType==="type"?"#fee2e2":e.entityType==="data"?"#dbeafe":e.entityType==="index"?"#ffedd5":e.entityType==="functionCall"?"#f3e8ff":e.entityType==="class"?"#d1fae5":e.entityType==="method"?"#cffafe":"#f3f4f6"},children:e.entityType?e.entityType.toUpperCase():"UNKNOWN"})]}),n("div",{className:"text-xs text-gray-400 truncate",children:e.filePath})]})]}),n("div",{className:"w-32 flex justify-center",children:n("span",{className:"text-[10px] text-gray-500 bg-gray-100 px-2 py-1 rounded",children:"Not analyzed"})}),n("div",{className:"w-32 text-center text-[10px] text-gray-500",children:o(e.createdAt)}),n("div",{className:"w-24 flex justify-end",children:n("button",{onClick:s,disabled:r||t.state!=="idle",className:"bg-[#e0e9ec] text-[#005c75] px-4 py-1.5 rounded text-xs font-medium hover:bg-[#d0dde1] transition-colors cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed",children:r?"Analyzing...":"Analyze"})})]})})}const Ad=Object.freeze(Object.defineProperty({__proto__:null,default:Cd,loader:wd,meta:vd},Symbol.toStringTag,{value:"Module"}));function _d({request:e,context:t}){const r=t.dbNotifier;if(!r)return console.error("[SSE] ERROR: dbNotifier not found in context!"),new Response("Server configuration error",{status:500});r.start().catch(()=>{});const a=new ReadableStream({start(s){const o=new TextEncoder;s.enqueue(o.encode(`data: ${JSON.stringify({type:"connected"})}
|
|
160
|
+
|
|
161
|
+
`)),Math.random().toString(36).substring(7);let l=!1;const i=()=>{if(!l){l=!0,r.off("change",d),clearInterval(m);try{s.close()}catch{}}},d=u=>{try{s.enqueue(o.encode(`data: ${JSON.stringify({type:"db-change",changeType:u.type,timestamp:u.timestamp})}
|
|
162
|
+
|
|
163
|
+
`))}catch{i()}};r.on("change",d);const m=setInterval(()=>{try{s.enqueue(o.encode(`data: ${JSON.stringify({type:"keepalive"})}
|
|
164
|
+
|
|
165
|
+
`))}catch{i()}},3e4);e.signal.addEventListener("abort",i)}});return new Response(a,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}const Pd=Object.freeze(Object.defineProperty({__proto__:null,loader:_d},Symbol.toStringTag,{value:"Module"}));function Ue(){const e=process.memoryUsage(),t=ps.getHeapStatistics();return{process:{rss:Math.round(e.rss/1024/1024),heapTotal:Math.round(e.heapTotal/1024/1024),heapUsed:Math.round(e.heapUsed/1024/1024),external:Math.round(e.external/1024/1024),arrayBuffers:Math.round(e.arrayBuffers/1024/1024)},heap:{totalHeapSize:Math.round(t.total_heap_size/1024/1024),totalHeapSizeExecutable:Math.round(t.total_heap_size_executable/1024/1024),totalPhysicalSize:Math.round(t.total_physical_size/1024/1024),totalAvailableSize:Math.round(t.total_available_size/1024/1024),usedHeapSize:Math.round(t.used_heap_size/1024/1024),heapSizeLimit:Math.round(t.heap_size_limit/1024/1024),mallocedMemory:Math.round(t.malloced_memory/1024/1024),peakMallocedMemory:Math.round(t.peak_malloced_memory/1024/1024)},system:{totalMemory:Math.round(hn.totalmem()/1024/1024),freeMemory:Math.round(hn.freemem()/1024/1024)}}}function Td(){const e=Ue();console.log(`
|
|
166
|
+
[Memory Profiler] Detailed Statistics:`),console.log(" Process Memory:"),console.log(` RSS: ${e.process.rss} MB (total memory used by process)`),console.log(` Heap Used: ${e.process.heapUsed} MB / ${e.process.heapTotal} MB`),console.log(` External: ${e.process.external} MB (C++ objects)`),console.log(` ArrayBuffers: ${e.process.arrayBuffers} MB`),console.log(" V8 Heap:"),console.log(` Used: ${e.heap.usedHeapSize} MB / ${e.heap.totalHeapSize} MB`),console.log(` Physical: ${e.heap.totalPhysicalSize} MB`),console.log(` Limit: ${e.heap.heapSizeLimit} MB`),console.log(` Malloced: ${e.heap.mallocedMemory} MB (peak: ${e.heap.peakMallocedMemory} MB)`),console.log(" System:"),console.log(` Total: ${e.system.totalMemory} MB`),console.log(` Free: ${e.system.freeMemory} MB`);const t=(e.heap.usedHeapSize/e.heap.heapSizeLimit*100).toFixed(1);return console.log(` Heap Usage: ${t}% of limit`),e}function kd(){if(global.gc){console.log("[Memory Profiler] Running garbage collection...");const e=Ue();global.gc();const t=Ue(),r=e.process.heapUsed-t.process.heapUsed;return console.log(`[Memory Profiler] GC freed ${r} MB`),console.log(`[Memory Profiler] Heap: ${t.process.heapUsed} MB (was ${e.process.heapUsed} MB)`),!0}else return console.log("[Memory Profiler] GC not available. Start Node with --expose-gc to enable."),!1}function Id(){const e=Ue(),t=e.heap.usedHeapSize/e.heap.heapSizeLimit*100,r={highHeapUsage:t>80,highExternalMemory:e.process.external>200,highArrayBuffers:e.process.arrayBuffers>100,nearHeapLimit:e.heap.totalAvailableSize<100},a=[];return r.highHeapUsage&&a.push(`High heap usage: ${t.toFixed(1)}% of limit`),r.highExternalMemory&&a.push(`High external memory: ${e.process.external} MB`),r.highArrayBuffers&&a.push(`High ArrayBuffer usage: ${e.process.arrayBuffers} MB`),r.nearHeapLimit&&a.push(`Near heap limit: only ${e.heap.totalAvailableSize} MB available`),{indicators:r,warnings:a,hasIssues:a.length>0}}function Md({request:e}){const r=new URL(e.url).searchParams.get("action");try{switch(r){case"snapshot":return Response.json({success:!1,error:"Heap snapshots are disabled because they block the server for several minutes. Use action=leaks instead."},{status:400});case"gc":{const a=kd(),s=Ue();return Response.json({success:a,message:a?"Garbage collection completed":"GC not available. Restart server with --expose-gc flag.",stats:s})}case"detailed":{const a=Td();return Response.json({success:!0,stats:a})}case"leaks":{const a=Id(),s=Ue();return Response.json({success:!0,leakCheck:a,stats:s})}default:{const a=Ue();return Response.json({success:!0,stats:a,actions:{gc:"/api/memory?action=gc - Force garbage collection (requires --expose-gc)",detailed:"/api/memory?action=detailed - Log detailed stats to console",leaks:"/api/memory?action=leaks - Check for memory leak indicators"}})}}}catch(a){return console.error("[Memory API] Error:",a),Response.json({success:!1,error:a.message},{status:500})}}const Rd=Object.freeze(Object.defineProperty({__proto__:null,loader:Md},Symbol.toStringTag,{value:"Module"}));async function $d({request:e,context:t}){let r=t.analysisQueue;if(r||(r=await je()),!r)return D({error:"Queue not initialized"},{status:500});const a=new URL(e.url),s=a.searchParams.get("queryType");if(!s)return D({error:"Missing queryType parameter for GET request"},{status:400});if(s==="job"){const o=a.searchParams.get("jobId");if(!o)return D({error:"Missing jobId parameter for job query"},{status:400});const l=r.getState();if(l.currentlyExecuting?.id===o)return D({jobId:o,status:"running",job:l.currentlyExecuting});const i=l.jobs.find(m=>m.id===o);if(i){const m=l.jobs.indexOf(i);return D({jobId:o,status:"queued",position:m,job:i})}const d=r.getJobResult(o);return d?D({jobId:o,status:d.status==="error"?"failed":"completed",error:d.error}):D({jobId:o,status:"completed"})}if(s==="full"){const o=r.getState(),l=await Promise.all(o.jobs.map(async d=>{const m=[];if(d.entityShas&&d.entityShas.length>0){const u=d.entityShas.map(p=>Me(p)),h=await Promise.all(u);m.push(...h.filter(p=>p!==null))}return{id:d.id,type:d.type,commitSha:d.commitSha,projectSlug:d.projectSlug,queuedAt:d.queuedAt,entities:m,filePaths:d.filePaths}}));let i;if(o.currentlyExecuting){const d=o.currentlyExecuting,m=[];if(d.entityShas&&d.entityShas.length>0){const u=d.entityShas.map(p=>Me(p)),h=await Promise.all(u);m.push(...h.filter(p=>p!==null))}i={id:d.id,type:d.type,commitSha:d.commitSha,projectSlug:d.projectSlug,queuedAt:d.queuedAt,entities:m,filePaths:d.filePaths}}return D({state:{...o,jobsWithEntities:l,currentlyExecutingWithEntities:i}})}return D({error:"Unknown queryType"},{status:400})}async function jd({request:e,context:t}){console.log("[Queue API] Received request"),console.log("[Queue API] Context keys:",Object.keys(t||{})),console.log("[Queue API] analysisQueue exists:",!!t?.analysisQueue);let r=t.analysisQueue;if(r||(r=await je(),console.log("[Queue API] Using global queue")),!r)return console.error("[Queue API] ERROR: Queue not initialized in context"),D({error:"Queue not initialized"},{status:500});const a=await e.json(),{action:s,...o}=a;if(console.log("[Queue API] Action:",s,"Params:",Object.keys(o)),s==="enqueue"){const{jobId:l,completion:i}=r.enqueue(o);return i.catch(d=>{console.error(`[Queue API] Job ${l} failed:`,d)}),D({jobId:l,status:"queued"})}return s==="resume"?(r.resume(),D({status:"resumed"})):s==="pause"?(r.pause(),D({status:"paused"})):D({error:"Unknown action"},{status:400})}const Dd=Object.freeze(Object.defineProperty({__proto__:null,action:jd,loader:$d},Symbol.toStringTag,{value:"Module"})),Ld=()=>[{title:"Empty State - CodeYam"},{name:"description",content:"Simulations empty state development view"}];function Od(){return fe(),n(Jt,{children:c("div",{className:"h-screen bg-[#f9f9f9] flex flex-col overflow-hidden",children:[n("header",{className:"bg-white border-b border-gray-200 shrink-0 relative h-[54px]",children:c("div",{className:"flex items-center h-full px-6 gap-6",children:[c("div",{className:"flex items-center gap-3 min-w-0",children:[n("svg",{width:"17",height:"17",viewBox:"0 0 17 17",fill:"none",className:"shrink-0",children:n("path",{d:"M13 8.5H4M4 8.5L8.5 4M4 8.5L8.5 13",stroke:"#005c75",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),n("h1",{className:"text-lg font-semibold text-black m-0 leading-[26px] shrink-0",children:"Dashboard"}),n("span",{className:"text-xs text-[#626262] font-mono whitespace-nowrap overflow-hidden text-ellipsis min-w-0",children:"codeyam-cli/src/webserver/app/routes/_index.tsx"})]}),c("div",{className:"flex items-center gap-3 shrink-0",children:[c("div",{className:"flex items-center gap-2 px-[15px] py-0 h-[26px] bg-[#efefef] border border-[#e1e1e1] rounded",children:[n("div",{className:"w-2 h-2 rounded-full bg-[#626262]"}),n("span",{className:"text-xs font-semibold text-[#626262]",children:"Not analyzed"})]}),n("button",{className:"px-[15px] py-0 h-[26px] bg-[#005c75] text-white rounded text-xs font-semibold border-none cursor-pointer hover:bg-[#004a5e] transition-colors",children:"Analyze"})]}),c("div",{className:"flex items-center gap-1 text-[10px] text-[#626262] ml-auto",children:[n("span",{className:"leading-[22px]",children:"Next Entity"}),n("svg",{width:"17",height:"17",viewBox:"0 0 17 17",fill:"none",className:"shrink-0",children:n("path",{d:"M4 8.5H13M13 8.5L8.5 4M13 8.5L8.5 13",stroke:"#005c75",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]})]})}),n("div",{className:"bg-[#efefef] border-b border-[#efefef] shrink-0",children:c("div",{className:"flex items-center gap-3 h-11 px-[15px]",children:[c("div",{className:"px-4 flex items-center justify-center gap-3 shrink-0 text-sm rounded bg-[#343434] text-[#efefef] font-semibold h-8",children:["Scenarios",n("span",{className:"px-2 py-0.5 rounded-[9px] text-xs font-semibold bg-[#cbf3fa] text-[#005c75] min-w-[25px] text-center",children:"0"})]}),c("div",{className:"px-4 flex items-center justify-center gap-3 shrink-0 text-sm rounded-[9px] text-[#3e3e3e] font-normal",children:["Related Entities",n("span",{className:"px-2 py-0.5 rounded-[9px] text-xs font-semibold bg-[#e1e1e1] text-[#3e3e3e] min-w-[25px] text-center",children:"5"})]}),n("div",{className:"px-4 shrink-0 text-sm text-[#3e3e3e] font-normal",children:"Code"}),n("div",{className:"px-4 shrink-0 text-sm text-[#3e3e3e] font-normal",children:"Data Structure"}),n("div",{className:"px-4 shrink-0 text-sm text-[#3e3e3e] font-normal",children:"History"})]})}),c("div",{className:"flex flex-1 gap-0 min-h-0",children:[n("div",{className:"w-[165px] bg-[#e1e1e1] border-r border-[#c7c7c7] flex items-center justify-center shrink-0",children:n("span",{className:"text-xs font-medium text-[#8e8e8e] leading-5",children:"No Scenarios"})}),n(pa,{selectedScenario:null,analysis:void 0,entity:{sha:"mock-sha",name:"Dashboard",filePath:"codeyam-cli/src/webserver/app/routes/_index.tsx",entityType:"visual"},viewMode:"screenshot",cacheBuster:Date.now(),hasScenarios:!1,isAnalyzing:!1,projectSlug:null,hasAnApiKey:!0})]})]})})}const Yd=Object.freeze(Object.defineProperty({__proto__:null,default:Od,meta:Ld},Symbol.toStringTag,{value:"Module"})),Fd=()=>[{title:"CodeYam - Settings"},{name:"description",content:"Configure project settings"}];async function zd({request:e}){try{const t=await Kr();if(!t)return D({config:null,secrets:null,versionInfo:null,error:"Project configuration not found"});const r=se()||process.cwd(),a=await Vt(r),s=Wl(t.projectSlug);return D({config:t,secrets:{GROQ_API_KEY:a.GROQ_API_KEY||"",ANTHROPIC_API_KEY:a.ANTHROPIC_API_KEY||"",OPENAI_API_KEY:a.OPENAI_API_KEY||""},versionInfo:s,error:null})}catch(t){return console.error("Failed to load config:",t),D({config:null,secrets:null,versionInfo:null,error:"Failed to load configuration"})}}async function Bd({request:e}){try{const t=await e.formData(),r=t.get("universalMocks"),a=t.get("groqApiKey"),s=t.get("anthropicApiKey"),o=t.get("openAiApiKey"),l=t.get("pathsToIgnore");let i;if(r)try{i=JSON.parse(r)}catch{return D({success:!1,error:"Invalid universalMocks JSON format",requiresRestart:!1},{status:400})}let d;if(l&&(d=l.split(",").map(h=>h.trim()).map(h=>h.startsWith('"')&&h.endsWith('"')||h.startsWith("'")&&h.endsWith("'")?h.slice(1,-1):h).filter(h=>h.length>0)),!await Qr({universalMocks:i,pathsToIgnore:d}))return D({success:!1,error:"Failed to update configuration",requiresRestart:!1},{status:500});let u=!1;if(a!==void 0||s!==void 0||o!==void 0){const h=se()||process.cwd(),p=await Vt(h);u=a!==void 0&&a!==(p.GROQ_API_KEY||"")||s!==void 0&&s!==(p.ANTHROPIC_API_KEY||"")||o!==void 0&&o!==(p.OPENAI_API_KEY||""),await Do(h,{...p,GROQ_API_KEY:a||void 0,ANTHROPIC_API_KEY:s||void 0,OPENAI_API_KEY:o||void 0},!0)}return D({success:!0,error:null,requiresRestart:u})}catch(t){return console.log("[Settings Action] Failed to save config:",t),D({success:!1,error:"Failed to save configuration",requiresRestart:!1},{status:500})}}function Ud(e){if(!e)return"";const t=[e.command];return e.args&&e.args.length>0&&t.push(...e.args),t.join(" ")}function xr({mock:e,onSave:t,onCancel:r}){const[a,s]=M(e.entityName),[o,l]=M(e.filePath),[i,d]=M(e.content);return c("div",{className:"space-y-3",children:[c("div",{children:[n("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Entity Name"}),n("input",{type:"text",value:a,onChange:u=>s(u.target.value),className:"w-full px-3 py-2 border border-gray-300 rounded text-sm focus:outline-none focus:border-blue-600 focus:ring-1 focus:ring-blue-600",placeholder:"e.g., determineDatabaseType"})]}),c("div",{children:[n("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"File Path"}),n("input",{type:"text",value:o,onChange:u=>l(u.target.value),className:"w-full px-3 py-2 border border-gray-300 rounded text-sm focus:outline-none focus:border-blue-600 focus:ring-1 focus:ring-blue-600",placeholder:"e.g., packages/supabase/src/lib/kysely/db.ts"})]}),c("div",{children:[n("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Content"}),n("textarea",{value:i,onChange:u=>d(u.target.value),rows:6,className:"w-full px-3 py-2 border border-gray-300 rounded text-sm font-mono focus:outline-none focus:border-blue-600 focus:ring-1 focus:ring-blue-600",placeholder:"e.g., function determineDatabaseType() { return 'postgresql' }"})]}),c("div",{className:"flex gap-2 justify-end",children:[n("button",{type:"button",onClick:r,className:"px-4 py-2 bg-gray-200 text-gray-800 border-none rounded text-sm cursor-pointer hover:bg-gray-300",children:"Cancel"}),n("button",{type:"button",onClick:()=>{if(!a.trim()||!o.trim()||!i.trim()){alert("All fields are required");return}t({entityName:a,filePath:o,content:i})},className:"px-4 py-2 bg-blue-600 text-white border-none rounded text-sm cursor-pointer hover:bg-blue-700",children:"Save"})]})]})}function qd(e){try{return new Date(e).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric",hour:"numeric",minute:"2-digit"})}catch{return e}}function Gd(){const{config:e,secrets:t,versionInfo:r,error:a}=Te(),s=Sa(),o=fe(),l=rt(),[i,d]=M(e?.universalMocks||[]),[m,u]=M((e?.pathsToIgnore||[]).join(", ")),[h,p]=M((e?.pathsToIgnore||[]).join(", ")),[f,g]=M(t?.GROQ_API_KEY||""),[y,v]=M(t?.ANTHROPIC_API_KEY||""),[w,x]=M(t?.OPENAI_API_KEY||""),[N,C]=M(!1),[b,S]=M(!1),[_,E]=M(!1),[R,$]=M(!1),[T,P]=M(!1),[L,A]=M(!1),[I,Y]=M(null),[F,Z]=M(!1);W(()=>{if(e){d(e.universalMocks||[]);const j=(e.pathsToIgnore||[]).join(", ");u(j),p(j)}t&&(g(t.GROQ_API_KEY||""),v(t.ANTHROPIC_API_KEY||""),x(t.OPENAI_API_KEY||""))},[e,t]),W(()=>{if(s?.success){$(!0);const j=setTimeout(()=>$(!1),3e3);return()=>clearTimeout(j)}},[s]),W(()=>{if(o.state==="idle"&&o.data&&!L){console.log("[Settings] Fetcher data:",o.data);const j=o.data;if(j.success){console.log("[Settings] Save successful, revalidating..."),$(!0),A(!0),(m!==h||j.requiresRestart)&&P(!0),l.revalidate();const B=setTimeout(()=>{$(!1),A(!1)},3e3);return()=>clearTimeout(B)}}},[o.state,o.data,L,l,m,h]);const O=j=>{j.preventDefault();const B=new FormData(j.currentTarget);B.set("universalMocks",JSON.stringify(i)),console.log("[Settings] Submitting form data:",{universalMocks:B.get("universalMocks"),openAiApiKey:B.get("openAiApiKey")?"***":"(empty)"}),o.submit(B,{method:"post"})},U=j=>{d([...i,j]),Z(!1)},k=(j,B)=>{const G=[...i];G[j]=B,d(G),Y(null)},q=j=>{d(i.filter((B,G)=>G!==j))};return a?c("div",{className:"max-w-6xl mx-auto p-8 font-sans",children:[n("header",{className:"mb-6 pb-4 border-b border-gray-200",children:n("div",{className:"flex justify-between items-center",children:n("h1",{className:"text-4xl font-bold text-gray-900",children:"Settings"})})}),n("div",{className:"bg-red-50 border border-red-200 rounded-lg p-4",children:n("p",{className:"text-red-700",children:a})})]}):n("div",{className:"bg-[#f9f9f9] min-h-screen",children:c("div",{className:"px-36 py-12 font-sans",children:[c("div",{className:"mb-8",children:[n("h1",{className:"text-3xl font-bold text-gray-900",children:"Settings"}),n("p",{className:"text-sm text-gray-500 mt-2",children:"Project Configuration"})]}),n("div",{className:"max-w-5xl my-8",children:c("form",{onSubmit:O,className:"space-y-6",children:[c("div",{children:[n("h2",{className:"text-xl mb-4 text-gray-800 font-semibold",children:"Project Metadata"}),c("div",{className:"mb-6",children:[n("label",{className:"block mb-2 font-medium text-gray-700",children:"Web Applications"}),e?.webapps&&e.webapps.length>0?n("div",{className:"space-y-3",children:e.webapps.map((j,B)=>n("div",{className:"p-4 bg-gray-50 border border-gray-200 rounded",children:c("div",{className:"grid grid-cols-2 gap-3 text-sm",children:[c("div",{children:[n("span",{className:"font-medium text-gray-700",children:"Path:"})," ",n("span",{className:"text-gray-900",children:j.path==="."?"Root":j.path})]}),c("div",{children:[n("span",{className:"font-medium text-gray-700",children:"Framework:"})," ",n("span",{className:"text-gray-900",children:j.framework})]}),j.appDirectory&&c("div",{children:[n("span",{className:"font-medium text-gray-700",children:"App Directory:"})," ",n("span",{className:"text-gray-900",children:j.appDirectory})]}),j.startCommand&&c("div",{className:"col-span-2",children:[n("span",{className:"font-medium text-gray-700",children:"Start Command:"})," ",c("span",{className:"text-gray-900 font-mono text-xs",children:[j.startCommand.command," ",j.startCommand.args?.join(" ")]})]})]})},B))}):n("p",{className:"text-sm text-gray-600 italic",children:"No web applications configured"}),n("p",{className:"mt-2 text-sm text-gray-600",children:"Web applications are detected during initialization. To modify, edit `.codeyam/config.json` or re-run `codeyam init`."})]}),c("div",{className:"mb-8",children:[n("h3",{className:"text-lg font-semibold text-gray-800 mb-4",children:"AI Provider Configuration"}),n("p",{className:"text-sm text-gray-600 mb-6",children:"Configure API keys for AI-powered analysis. Choose the provider that best fits your needs."}),c("div",{className:"space-y-6",children:[c("div",{className:"border border-gray-200 rounded-lg p-5 bg-gray-50",children:[n("div",{className:"flex items-start justify-between mb-3",children:c("div",{children:[n("h4",{className:"text-base font-semibold text-gray-900 mb-1",children:"Groq"}),n("p",{className:"text-sm text-gray-600 mb-3",children:"Lightning-fast inference with industry-leading speed. Groq's LPU architecture delivers exceptional performance for real-time AI applications with competitive pricing."}),c("div",{className:"flex gap-3 text-xs",children:[c("div",{className:"px-2 py-1 bg-green-100 text-green-800 rounded",children:[n("span",{className:"font-medium",children:"Cost:"})," $0.10/1M tokens"]}),c("div",{className:"px-2 py-1 bg-blue-100 text-blue-800 rounded",children:[n("span",{className:"font-medium",children:"Speed:"})," 850 tokens/s"]}),c("div",{className:"px-2 py-1 bg-purple-100 text-purple-800 rounded",children:[n("span",{className:"font-medium",children:"Reliability:"})," ","Less reliable, but capable of producing reasonable results"]})]})]})}),c("div",{className:"mt-4",children:[n("label",{htmlFor:"groqApiKey",className:"block text-sm font-medium text-gray-700 mb-2",children:"API Key"}),c("div",{className:"relative",children:[n("input",{type:N?"text":"password",id:"groqApiKey",name:"groqApiKey",value:f,onChange:j=>g(j.target.value),placeholder:"gsk_...",className:"w-full px-3 py-2 pr-24 border border-gray-300 rounded text-sm focus:outline-none focus:border-blue-600 focus:ring-1 focus:ring-blue-600"}),n("button",{type:"button",onClick:()=>C(!N),className:"absolute right-2 top-1/2 -translate-y-1/2 px-3 py-1 text-xs text-gray-600 hover:text-gray-800 focus:outline-none",children:N?"Hide":"Show"})]})]})]}),c("div",{className:"border border-gray-200 rounded-lg p-5 bg-gray-50",children:[n("div",{className:"flex items-start justify-between mb-3",children:c("div",{children:[n("h4",{className:"text-base font-semibold text-gray-900 mb-1",children:"Anthropic Claude"}),n("p",{className:"text-sm text-gray-600 mb-3",children:"Advanced reasoning and coding capabilities with superior context understanding. Claude excels at complex analysis tasks and provides highly accurate results with detailed explanations."}),c("div",{className:"flex gap-3 text-xs",children:[c("div",{className:"px-2 py-1 bg-green-100 text-green-800 rounded",children:[n("span",{className:"font-medium",children:"Cost:"})," $3.00/1M tokens"]}),c("div",{className:"px-2 py-1 bg-blue-100 text-blue-800 rounded",children:[n("span",{className:"font-medium",children:"Speed:"})," 120 tokens/s"]}),c("div",{className:"px-2 py-1 bg-purple-100 text-purple-800 rounded",children:[n("span",{className:"font-medium",children:"Reliability:"})," ","Consistent, high quality results"]})]})]})}),c("div",{className:"mt-4",children:[n("label",{htmlFor:"anthropicApiKey",className:"block text-sm font-medium text-gray-700 mb-2",children:"API Key"}),c("div",{className:"relative",children:[n("input",{type:b?"text":"password",id:"anthropicApiKey",name:"anthropicApiKey",value:y,onChange:j=>v(j.target.value),placeholder:"sk-ant-...",className:"w-full px-3 py-2 pr-24 border border-gray-300 rounded text-sm focus:outline-none focus:border-blue-600 focus:ring-1 focus:ring-blue-600"}),n("button",{type:"button",onClick:()=>S(!b),className:"absolute right-2 top-1/2 -translate-y-1/2 px-3 py-1 text-xs text-gray-600 hover:text-gray-800 focus:outline-none",children:b?"Hide":"Show"})]})]})]}),c("div",{className:"border border-gray-200 rounded-lg p-5 bg-gray-50",children:[n("div",{className:"flex items-start justify-between mb-3",children:c("div",{children:[n("h4",{className:"text-base font-semibold text-gray-900 mb-1",children:"OpenAI GPT"}),n("p",{className:"text-sm text-gray-600 mb-3",children:"Industry-standard AI with broad capabilities and extensive ecosystem. GPT models offer reliable performance across diverse tasks with good balance of speed and quality."}),c("div",{className:"flex gap-3 text-xs",children:[c("div",{className:"px-2 py-1 bg-green-100 text-green-800 rounded",children:[n("span",{className:"font-medium",children:"Cost:"})," $2.50/1M tokens"]}),c("div",{className:"px-2 py-1 bg-blue-100 text-blue-800 rounded",children:[n("span",{className:"font-medium",children:"Speed:"})," 150 tokens/s"]}),c("div",{className:"px-2 py-1 bg-purple-100 text-purple-800 rounded",children:[n("span",{className:"font-medium",children:"Reliability:"})," ","Consistent, high quality results"]})]})]})}),c("div",{className:"mt-4",children:[n("label",{htmlFor:"openAiApiKey",className:"block text-sm font-medium text-gray-700 mb-2",children:"API Key"}),c("div",{className:"relative",children:[n("input",{type:_?"text":"password",id:"openAiApiKey",name:"openAiApiKey",value:w,onChange:j=>x(j.target.value),placeholder:"sk-...",className:"w-full px-3 py-2 pr-24 border border-gray-300 rounded text-sm focus:outline-none focus:border-blue-600 focus:ring-1 focus:ring-blue-600"}),n("button",{type:"button",onClick:()=>E(!_),className:"absolute right-2 top-1/2 -translate-y-1/2 px-3 py-1 text-xs text-gray-600 hover:text-gray-800 focus:outline-none",children:_?"Hide":"Show"})]})]})]})]})]}),c("div",{className:"mb-6",children:[n("label",{htmlFor:"pathsToIgnore",className:"block mb-2 font-medium text-gray-700",children:"Paths To Ignore"}),n("input",{type:"text",id:"pathsToIgnore",name:"pathsToIgnore",value:m,onChange:j=>u(j.target.value),placeholder:"e.g., __tests__, \\.test\\.ts$, ^background (no quotes needed)",className:"w-full px-3 py-3 border border-gray-300 rounded text-base font-mono focus:outline-none focus:border-blue-600 focus:ring-2 focus:ring-blue-600/10"}),c("p",{className:"mt-2 text-sm text-gray-600",children:["Comma-separated list of regex patterns for paths to ignore during file watching. Examples:"," ",n("code",{className:"bg-gray-100 px-1 rounded",children:"__tests__"}),","," ",n("code",{className:"bg-gray-100 px-1 rounded",children:"\\.test\\.tsx?$"}),","," ",n("code",{className:"bg-gray-100 px-1 rounded",children:"^background"}),n("br",{}),n("span",{className:"text-xs text-gray-500 mt-1 inline-block",children:"Note: Files matching patterns in .gitignore are also automatically ignored"})]})]}),c("div",{className:"mb-6",children:[c("div",{className:"flex justify-between items-center mb-3",children:[n("label",{className:"block font-medium text-gray-700",children:"Universal Mocks"}),n("button",{type:"button",onClick:()=>Z(!0),className:"px-4 py-2 bg-green-600 text-white border-none rounded text-sm cursor-pointer hover:bg-green-700",children:"Add Mock"})]}),n("p",{className:"mb-3 text-sm text-gray-600",children:"Mock functions that will be applied across all entity simulations"}),i.length===0?n("div",{className:"p-4 bg-gray-50 rounded text-sm text-gray-500 text-center",children:"No universal mocks configured"}):n("div",{className:"space-y-3",children:i.map((j,B)=>n("div",{className:"p-4 bg-gray-50 rounded border border-gray-200",children:I===B?n(xr,{mock:j,onSave:G=>k(B,G),onCancel:()=>Y(null)}):n(te,{children:c("div",{className:"flex justify-between items-start mb-2",children:[c("div",{className:"flex-1",children:[n("div",{className:"font-medium text-gray-800 mb-1",children:j.entityName}),n("div",{className:"text-sm text-gray-600 mb-2",children:j.filePath}),n("pre",{className:"text-xs bg-white p-2 rounded border border-gray-200 overflow-x-auto",children:j.content})]}),c("div",{className:"flex gap-2 ml-3",children:[n("button",{type:"button",onClick:()=>Y(B),className:"px-3 py-1 bg-blue-600 text-white border-none rounded text-sm cursor-pointer hover:bg-blue-700",children:"Edit"}),n("button",{type:"button",onClick:()=>q(B),className:"px-3 py-1 bg-red-600 text-white border-none rounded text-sm cursor-pointer hover:bg-red-700",children:"Delete"})]})]})})},B))})]})]}),c("div",{className:"flex gap-4 items-center",children:[n("button",{type:"submit",disabled:o.state==="submitting",className:"px-8 py-3 bg-blue-600 text-white border-none rounded text-base font-medium cursor-pointer disabled:cursor-not-allowed disabled:opacity-60 hover:bg-blue-700 whitespace-nowrap",children:o.state==="submitting"?"Saving...":"Save Settings"}),o.state==="submitting"&&n("span",{className:"text-gray-600 text-sm font-medium",children:"Saving..."}),R&&n("span",{className:"text-emerald-600 text-sm font-medium whitespace-nowrap",children:"Settings saved successfully!"}),T&&c("div",{className:"text-amber-700 text-sm font-medium bg-amber-50 border border-amber-200 rounded px-3 py-2",children:[n("div",{children:"â ī¸ Settings changed. Please restart CodeYam for changes to take effect:"}),n("code",{className:"ml-2 bg-amber-100 px-2 py-1 rounded text-xs",children:"codeyam stop && codeyam"})]}),s?.error&&n("span",{className:"text-red-600 text-sm font-medium",children:s.error}),(()=>{if(o.data&&typeof o.data=="object"&&"error"in o.data){const j=o.data;return typeof j.error=="string"?n("span",{className:"text-red-600 text-sm font-medium",children:j.error}):null}return null})()]}),e&&c("div",{className:"mt-8 p-4 bg-gray-50 rounded text-sm",children:[n("h3",{className:"text-base mb-3 text-gray-800 font-semibold",children:"Current Configuration"}),c("dl",{className:"grid grid-cols-[150px_1fr] gap-2 m-0",children:[e.projectSlug&&c(te,{children:[n("dt",{className:"font-medium text-gray-600",children:"Project Slug:"}),n("dd",{className:"m-0 text-gray-800",children:e.projectSlug})]}),e.packageManager&&c(te,{children:[n("dt",{className:"font-medium text-gray-600",children:"Package Manager:"}),n("dd",{className:"m-0 text-gray-800",children:e.packageManager})]}),e.webapps&&e.webapps.length>0&&c(te,{children:[n("dt",{className:"font-medium text-gray-600",children:"Web Applications:"}),n("dd",{className:"m-0 text-gray-800",children:e.webapps.map((j,B)=>c("div",{className:"mb-2",children:[n("div",{className:"font-semibold",children:j.path==="."?"Root":j.path}),c("div",{className:"text-sm text-gray-600",children:["Framework: ",j.framework]}),j.startCommand&&c("div",{className:"text-sm text-gray-600 font-mono",children:["Command:"," ",Ud(j.startCommand)]})]},B))})]})]})]}),r&&c("div",{className:"mt-8 p-4 bg-gray-50 rounded text-sm",children:[n("h3",{className:"text-base mb-3 text-gray-800 font-semibold",children:"Version Information"}),c("dl",{className:"grid grid-cols-[180px_1fr] gap-2 m-0",children:[r.webserverVersion&&c(te,{children:[n("dt",{className:"font-medium text-gray-600",children:"Webserver:"}),n("dd",{className:"m-0 text-gray-800 font-mono",children:r.webserverVersion.version||"unknown"})]}),r.templateVersion&&c(te,{children:[n("dt",{className:"font-medium text-gray-600",children:"Analyzer Template:"}),c("dd",{className:"m-0 text-gray-800",children:[n("span",{className:"font-mono",children:r.templateVersion.version||r.templateVersion.gitCommit?.slice(0,7)||"unknown"}),r.templateVersion.buildTimestamp&&c("span",{className:"text-gray-500 ml-2",children:["(built"," ",qd(r.templateVersion.buildTimestamp),")"]})]})]}),r.cachedAnalyzerVersion&&c(te,{children:[n("dt",{className:"font-medium text-gray-600",children:"Cached Analyzer:"}),c("dd",{className:"m-0 text-gray-800",children:[n("span",{className:"font-mono",children:r.cachedAnalyzerVersion.version||r.cachedAnalyzerVersion.gitCommit?.slice(0,7)||"unknown"}),r.isCacheStale?n("span",{className:"ml-2 px-2 py-0.5 bg-amber-100 text-amber-800 rounded text-xs",children:"Stale - will update on next analysis"}):n("span",{className:"ml-2 px-2 py-0.5 bg-green-100 text-green-800 rounded text-xs",children:"Up to date"})]})]}),!r.cachedAnalyzerVersion&&e?.projectSlug&&c(te,{children:[n("dt",{className:"font-medium text-gray-600",children:"Cached Analyzer:"}),n("dd",{className:"m-0 text-gray-500 italic",children:"Not initialized - will be created on first analysis"})]})]})]})]})}),F&&n("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center p-4 z-50",children:c("div",{className:"bg-white rounded-lg max-w-2xl w-full p-6",children:[n("h2",{className:"text-2xl font-bold mb-4 text-gray-900",children:"Add Universal Mock"}),n(xr,{mock:{entityName:"",filePath:"",content:""},onSave:U,onCancel:()=>Z(!1)})]})})]})})}const Hd=Object.freeze(Object.defineProperty({__proto__:null,action:Bd,default:Gd,loader:zd,meta:Fd},Symbol.toStringTag,{value:"Module"}));async function Wd({params:e}){const t=e["*"];if(!t)return new Response("Static path is required",{status:400});const r=se();if(!r)return new Response("Project root not found",{status:500});const s=le.extname(t)!==""?t:`${t}.html`,o=le.join(r,".codeyam","captures","static",s);try{await ge.access(o);let l=await ge.readFile(o);const i=le.extname(o).toLowerCase();let d="application/octet-stream";if(i===".html"){d="text/html";let m=l.toString("utf-8");const u=m.match(/<script>(window\.__remixContext\s*=\s*\{[\s\S]*?\});?<\/script>/i);if(u)try{const p=u[1].match(/=\s*(\{[\s\S]*\})/);if(p){const f=JSON.parse(p[1]);f.isSpaMode=!0,f.future&&(f.future.v3_lazyRouteDiscovery=!1);const g=`<script>window.__remixContext = ${JSON.stringify(f)};<\/script>`;m=m.replace(u[0],g)}}catch(h){console.error("[Static] Failed to parse Remix context:",h)}l=Buffer.from(m,"utf-8")}else i===".js"||i===".mjs"?d="application/javascript":i===".css"?d="text/css":i===".json"?d="application/json":i===".png"?d="image/png":i===".jpg"||i===".jpeg"?d="image/jpeg":i===".svg"?d="image/svg+xml":i===".woff"?d="font/woff":i===".woff2"?d="font/woff2":i===".ttf"&&(d="font/ttf");return new Response(l,{status:200,headers:{"Content-Type":d,"Cache-Control":"public, max-age=3600","X-Frame-Options":"SAMEORIGIN"}})}catch{return new Response("Static file not found",{status:404})}}const Kd=Object.freeze(Object.defineProperty({__proto__:null,loader:Wd},Symbol.toStringTag,{value:"Module"}));function fa(e,t,r=10){const a=new Map,s=d=>d.entityType==="visual"||d.entityType==="library";for(const d of e)s(d)&&a.set(d.sha,{entity:d,depth:0});const o=new Map;for(const d of t){const m=d.metadata?.importedBy;if(m)for(const u of Object.keys(m))for(const h of Object.keys(m[u])){const{shas:p}=m[u][h];for(const f of p)o.has(d.sha)||o.set(d.sha,new Set),o.get(d.sha).add(f)}}const l=[],i=new Set;for(const d of e)l.push({sha:d.sha,depth:0}),i.add(d.sha);for(;l.length>0;){const{sha:d,depth:m}=l.shift();if(m>=r)continue;const u=o.get(d);if(u)for(const h of u){if(i.has(h))continue;i.add(h);const p=t.find(f=>f.sha===h);if(p){if(s(p)){const f=m+1,g=a.get(h);(!g||f<g.depth)&&a.set(h,{entity:p,depth:f})}l.push({sha:h,depth:m+1})}}}return Array.from(a.values()).sort((d,m)=>d.depth!==m.depth?d.depth-m.depth:d.entity.name.localeCompare(m.entity.name))}function qt(e){const t=new Map;for(const a of e)t.has(a.name)||t.set(a.name,[]),t.get(a.name).push(a);const r=[];for(const a of t.values())if(a.length===1)r.push(a[0]);else{const s=a.sort((o,l)=>{const i=o.metadata?.editedAt||o.createdAt||"";return(l.metadata?.editedAt||l.createdAt||"").localeCompare(i)});r.push(s[0])}return r}function ga(e,t){const r=new Map,a=new Set(e.map(s=>s.path));for(const s of e)s.status==="renamed"&&s.oldPath&&a.add(s.oldPath);for(const s of e){const o=t.filter(d=>d.filePath===s.path||s.status==="renamed"&&s.oldPath&&d.filePath===s.oldPath),l=o.filter(d=>a.has(d.filePath)&&d.metadata?.isUncommitted&&!d.metadata?.isSuperseded),i=qt(l);r.set(s.path,{status:s,entities:o,editedEntities:i})}return r}function Vd(e,t,r){const a=new Map;if(!r){for(const o of e)if(o.status==="deleted")a.set(o.path,{status:o,entities:[]});else{const l=t.filter(d=>d.filePath===o.path||o.status==="renamed"&&o.oldPath&&d.filePath===o.oldPath),i=qt(l);a.set(o.path,{status:o,entities:i})}return a}const s=new Map;for(const o of r.fileComparisons){const l=new Set;for(const i of o.newEntities)l.add(i.name);for(const i of o.modifiedEntities)l.add(i.name);for(const i of o.deletedEntities)l.add(i.name);l.size>0&&s.set(o.filePath,l)}for(const o of e){const l=s.get(o.path);if(o.status==="deleted")a.set(o.path,{status:o,entities:[]});else{const i=l?t.filter(m=>(m.filePath===o.path||o.status==="renamed"&&o.oldPath&&m.filePath===o.oldPath)&&l.has(m.name)):[],d=qt(i);a.set(o.path,{status:o,entities:d})}}return a}function Jd(e,t){const r=new Map,a=ya(e,t);for(const s of a){const l=fa([s],t).filter(({depth:i})=>i>0);r.set(s.sha,l)}return r}function Qd(e,t){const r=new Map;for(const a of e){const o=fa([a],t).filter(({depth:l})=>l>0);r.set(a.sha,o)}return r}function ya(e,t){const r=new Set(e.map(s=>s.path));for(const s of e)s.status==="renamed"&&s.oldPath&&r.add(s.oldPath);const a=t.filter(s=>r.has(s.filePath)&&s.metadata?.isUncommitted&&!s.metadata?.isSuperseded);return qt(a)}const Zd=()=>[{title:"Dashboard - CodeYam"},{name:"description",content:"CodeYam project dashboard"}];async function Xd({request:e,context:t}){try{const r=t.analysisQueue,a=r?r.getState():{paused:!1,jobs:[]},[s,o,l]=await Promise.all([bt(),_e(),Ke()]),i=oa(),d=s?ga(i,s):new Map,m=Array.from(d.entries()).sort((E,R)=>E[0].localeCompare(R[0])),u=s?.length||0,h=s?.filter(E=>E.entityType==="visual").length||0,p=s?.filter(E=>E.entityType==="library").length||0,f=s?ya(i,s):[],g=f.length,y=s?.filter(E=>(E.analyses??[]).filter(R=>R.scenarios&&R.scenarios.length>0).length>0).length||0,v=s?.reduce((E,R)=>{const $=R.analyses?.[0]?.scenarios?.length||0;return E+$},0)||0,w=s?.reduce((E,R)=>{const T=(R.analyses?.[0]?.scenarios||[]).filter(P=>P.metadata?.screenshotPaths?.[0]).length;return E+T},0)||0,x=[];s?.forEach(E=>{const R=E.analyses?.[0];R?.scenarios&&R.scenarios.forEach($=>{const T=$.metadata?.screenshotPaths?.[0];T&&x.push({entitySha:E.sha,entityName:E.name,scenarioId:$.id,scenarioName:$.name,screenshotPath:T,createdAt:R.createdAt||""})})}),x.sort((E,R)=>new Date(R.createdAt).getTime()-new Date(E.createdAt).getTime());const N=x.slice(0,16),C=s?.filter(E=>E.entityType==="visual").filter(E=>!E.analyses?.[0]?.scenarios?.some(T=>T.metadata?.screenshotPaths?.[0])).slice(0,8)||[],S=l?.metadata?.currentRun?.currentEntityShas?.length||0,_=a.jobs.length||0;return D({stats:{totalEntities:u,visualEntities:h,libraryEntities:p,uncommittedEntities:g,entitiesWithAnalyses:y,totalScenarios:v,capturedScreenshots:w,currentlyAnalyzing:S,filesOnQueue:_},uncommittedFiles:m,uncommittedEntitiesList:f,recentSimulations:N,visualEntitiesForSimulation:C,projectSlug:o,queueState:a,currentCommit:l})}catch(r){return console.error("Failed to load dashboard data:",r),D({stats:{totalEntities:0,visualEntities:0,libraryEntities:0,uncommittedEntities:0,entitiesWithAnalyses:0,totalScenarios:0,capturedScreenshots:0,currentlyAnalyzing:0,filesOnQueue:0},uncommittedFiles:[],uncommittedEntitiesList:[],recentSimulations:[],visualEntitiesForSimulation:[],projectSlug:null,queueState:{paused:!1,jobs:[]},currentCommit:null,error:"Failed to load dashboard data"})}}function eu(){const{stats:e,uncommittedFiles:t,uncommittedEntitiesList:r,recentSimulations:a,visualEntitiesForSimulation:s,projectSlug:o,queueState:l,currentCommit:i}=Te(),d=fe(),m=rt(),{showToast:u}=An(),[h,p]=M(new Set),[f,g]=M(null),[y,v]=M(!1),[w,x]=M(!1),{lastLine:N,isCompleted:C,resetLogs:b}=Ye(o,!!f),{simulatingEntity:S,scenarios:_,scenarioStatuses:E,allScenariosCaptured:R}=ee(()=>{const k={simulatingEntity:null,scenarios:[],scenarioStatuses:[],allScenariosCaptured:!1};if(!f)return k;const q=s?.find(H=>H.sha===f);if(!q)return k;const j=q.analyses?.[0],B=j?.scenarios||[],G=j?.status?.scenarios||[],de=G.filter(H=>H.screenshotFinishedAt).length,ie=B.length>0&&de===B.length;return{simulatingEntity:q,scenarios:B,scenarioStatuses:G,allScenariosCaptured:ie}},[f,s]);W(()=>{(C||R)&&g(null)},[C,R]);const $=i?.metadata?.currentRun,T=new Set($?.currentEntityShas||[]),P=new Set(l.jobs.flatMap(k=>k.entityShas||[])),L=new Set(l.currentlyExecuting?.entityShas||[]),A=r.filter(k=>k.entityType==="visual"||k.entityType==="library"),I=A.filter(k=>!T.has(k.sha)&&!P.has(k.sha)&&!L.has(k.sha)),Y=()=>{if(I.length===0){u("All entities are already queued or analyzing","info",3e3);return}console.log("Analyzing uncommitted entities not yet queued:",I.length),console.log("Entity SHAs:",I.map(k=>k.sha)),x(!0),u(`Starting analysis for ${I.length} entities...`,"info",3e3),d.submit({entityShas:I.map(k=>k.sha).join(",")},{method:"post",action:"/api/analyze"})};W(()=>{if(d.state==="idle"&&d.data){const k=d.data;k.success?(console.log("[Analyze All] Success:",k.message),u(`Analysis started for ${k.entityCount} entities in ${k.fileCount} files. Watch the logs for progress.`,"success",6e3),x(!1)):k.error&&(console.error("[Analyze All] Error:",k.error),u(`Error: ${k.error}`,"error",8e3),x(!1))}},[d.state,d.data,u]);const F=(k,q)=>{console.log("Simulating entity:",k);const j=s?.find(B=>B.sha===k);g(k),b(),u(`Starting analysis for ${j?.name||"entity"}...`,"info",3e3),d.submit({entitySha:k,filePath:q},{method:"post",action:"/api/analyze"})},Z=k=>{p(q=>{const j=new Set(q);return j.has(k)?j.delete(k):j.add(k),j})},O=ee(()=>{const k=new Map;return a.forEach(q=>{const j=q.entitySha;k.has(j)||k.set(j,[]),k.get(j).push(q)}),Array.from(k.entries()).map(([q,j])=>({entitySha:q,entityName:j[0].entityName,scenarios:j}))},[a]),U=[{label:"Total Entities",value:e.totalEntities,iconType:"folder",link:"/files",color:"#F59E0B"},{label:"Analyzed Entities",value:e.entitiesWithAnalyses,iconType:"check",link:"/simulations",color:"#10B981"},{label:"Visual Components",value:e.visualEntities,iconType:"image",link:"/files?entityType=visual",color:"#8B5CF6"},{label:"Library Functions",value:e.libraryEntities,iconType:"code-xml",link:"/files?entityType=library",color:"#0DBFE9"}];return n("div",{className:"bg-cygray-10 min-h-screen",children:c("div",{className:"py-6 px-12",children:[c("header",{className:"mb-8 flex justify-between items-center",children:[n("div",{children:n("h1",{className:"text-3xl font-bold text-gray-900 m-0 mb-2",children:"CodeYam"})}),m.state==="loading"&&n("div",{className:"text-blue-600 text-sm font-medium animate-pulse",children:"đ Updating..."})]}),n("div",{className:"flex items-center justify-between gap-3",children:U.map((k,q)=>n(Q,{to:k.link,className:"flex-1 bg-white rounded-xl border border-gray-200 overflow-hidden flex transition-all hover:shadow-lg hover:-translate-y-0.5 no-underline",style:{borderLeft:`4px solid ${k.color}`},children:c("div",{className:"px-6 py-4 flex flex-col gap-3 flex-1",children:[c("div",{className:"flex md:justify-between md:items-start md:flex-row flex-col",children:[n("div",{className:"text-xs text-gray-700 font-medium",children:k.label}),n("div",{className:"text-xs font-medium transition-colors flex items-center gap-1 hidden md:flex",style:{color:k.color},children:"View All â"})]}),c("div",{className:"flex flex-col gap-2",children:[c("div",{className:"flex items-center gap-3",children:[c("div",{className:"rounded-lg p-2 leading-none flex-shrink-0",style:{backgroundColor:`${k.color}15`},children:[k.iconType==="folder"&&n(La,{size:20,style:{color:k.color}}),k.iconType==="check"&&n(Rt,{size:20,style:{color:k.color}}),k.iconType==="image"&&n(ze,{size:20,style:{color:k.color}}),k.iconType==="gear"&&n($t,{size:20,style:{color:k.color}}),k.iconType==="code-xml"&&n(Tr,{size:20,style:{color:k.color}})]}),n("div",{className:"text-2xl font-bold text-gray-900 leading-none",children:k.value})]}),n("div",{className:"text-xs font-medium transition-colors flex items-center gap-1 md:hidden",style:{color:k.color},children:"View All â"})]})]})},q))}),c("div",{className:"mt-12 grid gap-8 items-start",style:{gridTemplateColumns:"repeat(auto-fit, minmax(500px, 1fr))"},children:[c("section",{id:"uncommitted",className:"bg-white border border-gray-200 rounded-xl p-6",children:[c("div",{className:"flex justify-between items-start mb-5",children:[c("div",{children:[n("h2",{className:"text-[22px] font-semibold text-gray-900 m-0 mb-1",children:"Uncommitted Changes"}),n("p",{className:"text-sm text-gray-500 m-0",children:t.length>0?`${t.length} file${t.length!==1?"s":""} with ${r.length} uncommitted entit${r.length!==1?"ies":"y"}`:"No uncommitted changes detected"})]}),A.length>0&&n("button",{onClick:Y,disabled:d.state!=="idle"||w||I.length===0,className:"px-5 py-2.5 text-white border-none rounded-lg text-sm font-semibold cursor-pointer transition-all hover:-translate-y-px disabled:bg-gray-400 disabled:cursor-not-allowed disabled:translate-y-0",style:{backgroundColor:"#005C75"},onMouseEnter:k=>k.currentTarget.style.backgroundColor="#004560",onMouseLeave:k=>k.currentTarget.style.backgroundColor="#005C75",children:d.state!=="idle"||w?"Starting analysis...":I.length===0?"All Queued":`Analyze All (${I.length})`})]}),t.length>0?n("div",{className:"flex flex-col gap-3",children:t.map(([k,q])=>{const j=h.has(k),B=q.editedEntities||[];return c("div",{className:"bg-white border border-gray-200 border-l-4 rounded-lg overflow-hidden",style:{borderLeftColor:"#306AFF"},children:[n("div",{className:"p-4 cursor-pointer select-none transition-colors hover:bg-gray-50",onClick:()=>Z(k),role:"button",tabIndex:0,children:c("div",{className:"flex items-center gap-3",children:[n("span",{className:"text-gray-500 text-xs w-4 shrink-0",children:j?"âŧ":"âļ"}),c("svg",{width:"16",height:"20",viewBox:"0 0 12 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"shrink-0",children:[c("g",{clipPath:"url(#clip0_784_10666)",children:[n("path",{d:"M0 2.55857C0 1.14551 1.14551 0 2.55857 0H8.73194L12 3.3616V13.4414C12 14.8545 10.8545 16 9.44143 16H2.55857C1.14551 16 0 14.8545 0 13.4414V2.55857Z",fill:"#DDDDFE"}),n("path",{d:"M8.72656 3.3307H11.9906L8.72656 0V3.3307Z",fill:"#306AFF"}),n("line",{x1:"1.8125",y1:"5.94825",x2:"10.0235",y2:"5.94825",stroke:"#306AFF",strokeWidth:"1.27929"}),n("line",{x1:"1.8125",y1:"8.82715",x2:"6.01207",y2:"8.82715",stroke:"#306AFF",strokeWidth:"1.27929"}),n("line",{x1:"1.8125",y1:"11.7061",x2:"10.0235",y2:"11.7061",stroke:"#306AFF",strokeWidth:"1.27929"})]}),n("defs",{children:n("clipPath",{id:"clip0_784_10666",children:n("rect",{width:"12",height:"16",fill:"white"})})})]}),c("div",{className:"flex-1 min-w-0",children:[n("span",{className:"font-normal text-gray-900 text-sm block truncate",children:k}),c("span",{className:"text-xs text-gray-500",children:[B.length," entit",B.length!==1?"ies":"y"]})]})]})}),j&&n("div",{className:"border-t border-gray-200 bg-gray-50 p-3 flex flex-col gap-2",children:B.length>0?B.map(G=>{const de=T.has(G.sha),ie=P.has(G.sha)||L.has(G.sha);return c(Q,{to:`/entity/${G.sha}`,className:"flex items-center gap-4 p-4 bg-white border border-gray-200 rounded-lg no-underline transition-all hover:shadow-md hover:-translate-y-0.5",style:{borderColor:"inherit"},onMouseEnter:H=>H.currentTarget.style.borderColor="#005C75",onMouseLeave:H=>H.currentTarget.style.borderColor="inherit",children:[c("div",{className:"shrink-0 rounded-lg p-1.5 flex items-center justify-center",style:{backgroundColor:G.entityType==="visual"?"#8B5CF615":G.entityType==="library"?"#6366F1":"#EC4899"},children:[G.entityType==="visual"&&n(ze,{size:16,style:{color:"#8B5CF6"}}),G.entityType==="library"&&n(Oa,{size:16,className:"text-white"}),G.entityType==="other"&&n(Ir,{size:16,className:"text-white"})]}),c("div",{className:"flex-1 min-w-0",children:[c("div",{className:"flex items-center gap-2 mb-0.5",children:[n("div",{className:"font-semibold text-gray-900 text-sm",children:G.name}),G.entityType==="visual"&&n("div",{className:"px-2 py-0.5 rounded-sm text-[10px] uppercase font-bold",style:{backgroundColor:"#8B5CF60D",color:"#8B5CF6"},children:"Visual"}),G.entityType==="library"&&n("div",{className:"px-2 py-0.5 rounded-sm text-[10px] uppercase font-bold",style:{backgroundColor:"#0DBFE90D",color:"#0DBFE9"},children:"Library"}),G.entityType==="other"&&n("div",{className:"px-2 py-0.5 rounded-sm text-[10px] uppercase font-bold",style:{backgroundColor:"#EC48990D",color:"#EC4899"},children:"Other"})]}),G.description&&n("div",{className:"text-sm text-gray-500 mt-1 overflow-hidden text-ellipsis whitespace-nowrap",children:G.description})]}),c("div",{className:"flex items-center gap-2 shrink-0",children:[de&&c("div",{className:"px-2 py-1 bg-pink-100 rounded text-xs text-pink-700 font-semibold flex items-center gap-1.5",children:[n(Be,{size:14,className:"animate-spin"}),"Analyzing..."]}),!de&&ie&&n("div",{className:"px-2 py-1 bg-purple-50 border border-purple-300 rounded text-xs text-purple-700 font-semibold",children:"âŗ Queued"}),!de&&!ie&&n("button",{onClick:H=>{H.preventDefault(),H.stopPropagation(),u(`Starting analysis for ${G.name}...`,"info",3e3),d.submit({entityShas:G.sha},{method:"post",action:"/api/analyze"})},disabled:d.state!=="idle",className:"px-3 py-1.5 text-white border-none rounded text-xs font-medium cursor-pointer transition-all disabled:bg-gray-400 disabled:cursor-not-allowed",style:{backgroundColor:"#005C75"},onMouseEnter:H=>H.currentTarget.style.backgroundColor="#004560",onMouseLeave:H=>H.currentTarget.style.backgroundColor="#005C75",children:"Analyze"})]})]},G.sha)}):n("div",{className:"text-sm text-gray-500 italic p-2",children:"No entity changes detected in this file"})})]},k)})}):c("div",{className:"py-12 px-6 text-center flex flex-col items-center bg-gray-50 rounded-lg min-h-[200px] justify-center",children:[c("svg",{width:"52",height:"68",viewBox:"0 0 26 34",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"mb-4 opacity-40",children:[c("g",{clipPath:"url(#clip0_784_10631)",children:[n("path",{d:"M0 2.55857C0 1.14551 1.14551 0 2.55857 0H18.9423L26.0318 7.14651V31.4562C26.0318 32.8693 24.8863 34.0148 23.4732 34.0148H2.55857C1.14551 34.0148 0 32.8693 0 31.4562V2.55857Z",fill:"#D9D9D9"}),n("path",{d:"M18.9453 7.08081H26.0261L18.9453 0V7.08081Z",fill:"#646464"}),n("line",{x1:"3.92188",y1:"13.3633",x2:"21.7341",y2:"13.3633",stroke:"#646464",strokeWidth:"1.27929"}),n("line",{x1:"3.92188",y1:"19.4863",x2:"13.0321",y2:"19.4863",stroke:"#646464",strokeWidth:"1.27929"}),n("line",{x1:"3.92188",y1:"25.6016",x2:"21.7341",y2:"25.6016",stroke:"#646464",strokeWidth:"1.27929"})]}),n("defs",{children:n("clipPath",{id:"clip0_784_10631",children:n("rect",{width:"26",height:"34",fill:"white"})})})]}),n("p",{className:"text-sm font-medium text-gray-400 m-0 mb-2",children:"No Uncommitted Changes."})]})]}),c("section",{className:"bg-white border border-gray-200 rounded-xl p-6",children:[n("div",{className:"flex justify-between items-start mb-5",children:c("div",{children:[n("h2",{className:"text-[22px] font-semibold text-gray-900 m-0 mb-1",children:"Recent Simulations"}),n("p",{className:"text-sm text-gray-500 m-0",children:a.length>0?`Latest ${a.length} captured screenshot${a.length!==1?"s":""}`:"No simulations captured yet"})]})}),a.length>0&&!f?c(te,{children:[n("div",{className:"space-y-6 mb-5",children:O.map(k=>c("div",{children:[c("div",{className:"mb-3 flex items-center gap-2",children:[n("div",{className:"shrink-0 rounded-lg p-1.5 flex items-center justify-center bg-purple-100",children:n(ze,{size:16,style:{color:"#8B5CF6"}})}),n(Q,{to:`/entity/${k.entitySha}`,className:"text-sm font-semibold text-gray-900 no-underline hover:text-gray-700 transition-colors",children:k.entityName})]}),n("div",{className:"grid grid-cols-4 gap-3",children:k.scenarios.map((q,j)=>n(Q,{to:q.scenarioId?`/entity/${q.entitySha}/scenarios/${q.scenarioId}`:`/entity/${q.entitySha}`,className:"aspect-4/3 border border-gray-200 rounded-lg overflow-hidden bg-gray-50 transition-all flex items-center justify-center hover:scale-105",onMouseEnter:B=>{B.currentTarget.style.borderColor="#005C75",B.currentTarget.style.boxShadow="0 4px 12px rgba(0, 92, 117, 0.2)"},onMouseLeave:B=>{B.currentTarget.style.borderColor="#E5E7EB",B.currentTarget.style.boxShadow="none"},title:`${q.scenarioName}`,children:n(be,{screenshotPath:q.screenshotPath,alt:q.scenarioName,className:"max-w-full max-h-full object-contain object-center"})},j))})]},k.entitySha))}),n(Q,{to:"/recent",className:"block text-center p-3 rounded-lg no-underline font-semibold text-sm transition-all",style:{color:"#005C75",backgroundColor:"#F6F9FC"},onMouseEnter:k=>k.currentTarget.style.backgroundColor="#EEF4F8",onMouseLeave:k=>k.currentTarget.style.backgroundColor="#F6F9FC",children:"View All Recent Simulations â"})]}):f?c("div",{className:"p-0 bg-white rounded-lg flex flex-col gap-0",children:[S&&n("div",{className:"p-4 rounded-t-lg",style:{backgroundColor:"#F0F5F8",borderBottom:"2px solid #005C75"},children:c("div",{className:"flex items-center gap-3",children:[n("span",{className:"text-[32px] leading-none",children:n(Oe,{type:"visual"})}),c("div",{className:"flex-1 min-w-0",children:[c("div",{className:"text-base font-bold mb-1",style:{color:"#005C75"},children:["Generating Simulations for ",S.name]}),n("div",{className:"text-[13px] text-gray-500 font-mono overflow-hidden text-ellipsis whitespace-nowrap",children:S.filePath})]})]})}),R?c("div",{className:"flex items-center gap-2 text-sm text-emerald-600 font-medium p-4 bg-emerald-50",children:[n("span",{className:"text-lg",children:"â
"}),c("span",{children:["Complete (",_.length," scenario",_.length!==1?"s":"",")"]})]}):N?c("div",{className:"flex items-center justify-between gap-1.5 text-sm font-medium p-4 bg-gray-50",style:{color:"#005C75"},children:[n(Be,{size:18,className:"animate-spin shrink-0"}),n("span",{className:"flex-1 overflow-hidden text-ellipsis whitespace-nowrap font-mono text-xs",title:N,children:N}),o&&n("button",{onClick:()=>v(!0),className:"px-2 py-1.5 bg-gray-500 text-white border-none rounded-md text-[13px] font-medium cursor-pointer transition-all whitespace-nowrap self-start hover:bg-gray-600 hover:-translate-y-px",title:"View analysis logs",children:"đ Logs"})]}):d.state!=="idle"?c("div",{className:"flex items-center justify-between gap-1.5 text-sm font-medium p-4 bg-gray-50",style:{color:"#005C75"},children:[n(Be,{size:18,className:"animate-spin shrink-0"}),n("span",{className:"flex-1 overflow-hidden text-ellipsis whitespace-nowrap",children:"Initializing analysis..."})]}):c("div",{className:"flex items-center justify-between gap-1.5 text-sm font-medium p-4 bg-gray-50",style:{color:"#005C75"},children:[n(Be,{size:18,className:"animate-spin shrink-0"}),n("span",{className:"flex-1 overflow-hidden text-ellipsis whitespace-nowrap",children:"Starting analysis..."})]}),_.length>0&&n("div",{className:"flex gap-2 flex-wrap p-4 bg-white border-t border-gray-200",children:_.slice(0,8).map((k,q)=>{const j=k.metadata?.screenshotPaths?.[0],B=E.find(ie=>ie.name===k.name),G=B?.screenshotStartedAt&&!B?.screenshotFinishedAt;return j?n(Q,{to:`/entity/${f}`,className:"w-20 h-15 border-2 border-gray-200 rounded overflow-hidden bg-gray-50 cursor-pointer transition-all flex items-center justify-center no-underline hover:border-blue-600 hover:scale-105 hover:shadow-md",children:n(be,{screenshotPath:j,alt:k.name,title:k.name,className:"max-w-full max-h-full object-contain object-center"})},q):n("div",{className:"w-20 h-15 border-2 border-dashed border-gray-300 rounded bg-gray-50 flex items-center justify-center text-2xl",title:`Capturing ${k.name}...`,children:n("span",{className:G?"animate-pulse":"text-gray-400",children:G?"â¯":"âšī¸"})},q)})})]}):c("div",{className:"flex flex-col items-center",children:[c("div",{className:"py-12 px-6 text-center bg-gray-50 rounded-lg w-full flex flex-col items-center justify-center min-h-[200px]",children:[n("div",{className:"mb-4 bg-[#efefef] rounded-lg p-3",children:n(ze,{size:28,style:{color:"#999999"},strokeWidth:1.5})}),n("p",{className:"text-gray-700 m-0 font-semibold",children:"Start by analyzing your first component below."})]}),(s?.length??0)>0?n(te,{children:n("div",{className:"flex flex-col gap-3 mt-6 w-full",children:(f&&S?[S]:s||[]).map(k=>n("div",{className:"flex flex-col gap-3",children:c("div",{className:"flex items-center gap-4 p-4 bg-white border border-gray-200 rounded-lg transition-colors",style:{borderLeft:"4px solid #8B5CF6"},onMouseEnter:q=>{q.currentTarget.style.backgroundColor="#F9FAFB"},onMouseLeave:q=>{q.currentTarget.style.backgroundColor="white"},children:[c(Q,{to:`/entity/${k.sha}`,className:"flex items-center gap-4 flex-1 min-w-0 no-underline",children:[n("div",{className:"shrink-0 rounded-lg p-1.5 flex items-center justify-center bg-purple-100",children:n(ze,{size:16,style:{color:"#8B5CF6"}})}),c("div",{className:"flex-1 min-w-0",children:[n("div",{className:"font-semibold text-gray-900 text-sm mb-1",children:k.name}),n("div",{className:"text-xs text-gray-500 font-mono overflow-hidden text-ellipsis whitespace-nowrap",children:k.filePath})]})]}),n("button",{onClick:()=>F(k.sha,k.filePath||""),disabled:d.state!=="idle"||f!==null,className:"px-4 py-2 text-white border-none rounded text-sm font-medium cursor-pointer transition-all whitespace-nowrap shrink-0 disabled:bg-gray-400 disabled:cursor-not-allowed disabled:translate-y-0",style:{backgroundColor:"#005C75"},onMouseEnter:q=>q.currentTarget.style.backgroundColor="#004560",onMouseLeave:q=>q.currentTarget.style.backgroundColor="#005C75",title:f?"Please wait for current analysis to complete":"Analyze this entity",children:"Analyze"})]})},k.sha))})}):n("p",{className:"text-base text-gray-600 m-0 mb-6 leading-relaxed mt-6",children:"Run analysis on your visual components to create simulations and capture screenshots"})]})]})]}),y&&o&&n(at,{projectSlug:o,onClose:()=>v(!1)})]})})}const tu=Object.freeze(Object.defineProperty({__proto__:null,default:eu,loader:Xd,meta:Zd},Symbol.toStringTag,{value:"Module"}));function nu({entity:e,currentRun:t,queueState:r}){const a=fe(),s=e.entityType==="visual"||e.entityType==="library",o=e.analyses?.[0],l=o?.status,i=o?.scenarios||[],d=o?.entitySha!==e.sha,m=l?.scenarios||[],u=m.filter(b=>b.screenshotFinishedAt).length,h=!d&&i.length>0&&u===i.length,f=i.length>0&&!h&&!d,g=r?.jobs.some(b=>b.entityShas?.includes(e.sha)||b.type==="analysis"&&b.entityShas&&b.entityShas.length===0)??!1,v=(t?.currentEntityShas?.includes(e.sha)??!1)||(r?.currentlyExecuting?.entityShas?.includes(e.sha)??!1)||f,w=V(()=>{a.submit({entitySha:e.sha,filePath:e.filePath||""},{method:"post",action:"/api/analyze"})},[e,a]),x=Fn(e),N=e.metadata?.isSuperseded===!0,C=v||g;return c("div",{className:`flex flex-col gap-1.5 p-3 rounded-lg transition-all ${e.metadata?.isUncommitted?"border-l-4 border-l-amber-500 bg-amber-50":"bg-white hover:bg-gray-100"}`,children:[c("div",{className:"flex justify-between items-center",children:[c("div",{className:"flex items-center gap-3 flex-1 overflow-hidden",children:[n(Oe,{type:e.entityType}),c("div",{className:"flex-1 min-w-0",children:[c("div",{className:"flex items-center gap-2 flex-wrap",children:[n(Q,{to:`/entity/${e.sha}`,className:"font-semibold text-sm text-gray-900 whitespace-nowrap",children:e.name}),n("div",{className:"px-2 py-0.5 rounded-sm text-[10px] uppercase font-medium",style:e.entityType==="visual"?{backgroundColor:"#7c3aed0D",color:"#7c3aed"}:e.entityType==="library"?{backgroundColor:"#0DBFE90D",color:"#0DBFE9"}:e.entityType==="type"?{backgroundColor:"#dc26260D",color:"#dc2626"}:e.entityType==="data"?{backgroundColor:"#2563eb0D",color:"#2563eb"}:e.entityType==="index"?{backgroundColor:"#ea580c0D",color:"#ea580c"}:e.entityType==="functionCall"?{backgroundColor:"#7c3aed0D",color:"#7c3aed"}:e.entityType==="class"?{backgroundColor:"#0596690D",color:"#059669"}:e.entityType==="method"?{backgroundColor:"#0891b20D",color:"#0891b2"}:{backgroundColor:"#6b72800D",color:"#6b7280"},children:e.entityType})]}),n("div",{className:"text-xs text-gray-500 mt-0.5 truncate",children:e.filePath}),e.description&&n("div",{className:"text-sm text-gray-600 mt-1 italic",children:e.description})]})]}),n("div",{className:"flex-1 shrink flex justify-end items-center gap-3",children:c("div",{className:"flex items-center gap-3",children:[v?c("div",{className:"px-2 py-1 bg-pink-100 rounded text-xs text-pink-700 font-semibold flex items-center gap-1.5",children:[n(Be,{size:14,className:"animate-spin"}),"Analyzing..."]}):e.analyses&&e.analyses.length>0?c("div",{className:"flex items-center gap-1.5 px-2 py-1 rounded-lg bg-green-50",children:[n("div",{className:"w-2 h-2 rounded-full bg-green-500"}),n("span",{className:"text-xs text-green-700",children:"Up to date"})]}):c("div",{className:"flex items-center gap-1.5 px-2 py-1 rounded-lg bg-gray-100",children:[n("div",{className:"w-2 h-2 rounded-full border border-gray-400"}),n("span",{className:"text-xs text-gray-700",children:"Not yet analyzed"})]}),s&&!v&&n("button",{onClick:w,disabled:C,className:`px-3 py-1.5 border-none rounded-md text-[13px] font-medium cursor-pointer transition-all whitespace-nowrap ${g?"bg-purple-50 border border-purple-300 text-purple-700":v?"bg-pink-50 border border-pink-300 cursor-not-allowed":"bg-white text-white hover:-translate-y-px"}`,style:!g&&!v?{backgroundColor:"#005C75"}:{},onMouseEnter:b=>{!g&&!v&&(b.currentTarget.style.backgroundColor="#004560")},onMouseLeave:b=>{!g&&!v&&(b.currentTarget.style.backgroundColor="#005C75")},title:v?"Analysis in progress":g?"Already queued for analysis":"Analyze this entity",children:g?c("span",{className:"flex items-center gap-1.5",children:[n(kt,{size:16,color:e.entityType==="visual"?"#7c3aed":"#14b8a6"}),n("span",{children:"Queued"})]}):v?c("span",{className:"flex items-center gap-1.5 text-pink-600",children:[n(Be,{size:16,className:"animate-spin",color:"#ec4899"}),n("span",{children:"Analyzing..."})]}):"Analyze"})]})})]}),i.length>0&&n("div",{className:"flex gap-2 flex-wrap px-0 mt-3",children:i.slice(0,5).map((b,S)=>{if(!b.id)return null;if(e.entityType==="library")return n(Ln,{scenario:b,entitySha:e.sha,size:"medium",isOutdated:N||x},S);const _=b.metadata?.screenshotPaths?.[0],E=Dn(b,l,!!v,e.sha,r),R=m.find($=>$.name===b.name);if(f&&R?.startedAt&&R?.screenshotStartedAt,E.isCaptured)return n(Q,{to:`/entity/${e.sha}/scenarios/${b.id}`,className:`relative w-20 h-15 border-2 rounded overflow-hidden bg-gray-50 cursor-pointer transition-all flex items-center justify-center hover:scale-105 hover:shadow-md ${N||x?"border-amber-500 hover:border-amber-600":"border-gray-200 hover:border-blue-600"}`,children:n(be,{screenshotPath:_,alt:b.name,title:b.name,className:"max-w-full max-h-full object-contain object-center"})},S);{const $=E.hasError?"text-red-500":"text-gray-400";return n(Q,{to:`/entity/${e.sha}/scenarios/${b.id}`,className:`w-20 h-15 border-2 border-dashed ${E.borderColor} rounded ${E.bgColor} flex items-center justify-center text-2xl`,title:E.title,children:n("span",{className:E.shouldSpin?"animate-pulse":$,children:E.icon})},S)}})})]})}function ru({entities:e,page:t,itemsPerPage:r=50,currentRun:a,filter:s,entityType:o,queueState:l}){const[i,d]=xn(),[m,u]=M(new Set),[h,p]=M(""),[f,g]=M(!1),[y,v]=M("all"),w=o||"all",x=(A,I=[])=>{if(I.some(U=>U.entityShas?.includes(A.sha)))return"analyzing";if(!A.analyses||A.analyses.length===0)return"not-analyzed";const F=A.analyses[0],Z=F.createdAt?new Date(F.createdAt).getTime():0,O=A.metadata?.editedAt?new Date(A.metadata.editedAt).getTime():0;return Z>=O?"up-to-date":"out-of-date"},N=ee(()=>{let A=e;return w!=="all"&&(A=A.filter(I=>I.entityType===w)),s==="analyzed"&&(A=A.filter(I=>I.analyses&&I.analyses.length>0)),A},[e,w,s]),C=ee(()=>{const A=new Map,I=new Map,Y=new Map;N.forEach(O=>{const U=`${O.filePath}::${O.name}`,k=I.get(U);if(!k)I.set(U,O),Y.set(U,[]);else{const q=k.metadata?.editedAt||k.createdAt||"",j=O.metadata?.editedAt||O.createdAt||"";let B=!1;if(j>q)B=!0;else if(j===q){const G=k.createdAt||"";B=(O.createdAt||"")>G}B?(Y.get(U).push(k),I.set(U,O)):Y.get(U).push(O)}}),I.forEach((O,U)=>{if(!(O.analyses&&O.analyses.length>0)&&O.metadata?.previousVersionWithAnalyses){const j=(Y.get(U)||[]).find(B=>B.sha===O.metadata?.previousVersionWithAnalyses);j&&j.analyses&&j.analyses.length>0&&(O.analyses=j.analyses)}}),Array.from(I.values()).sort((O,U)=>{const k=!O.metadata?.notExported&&!O.metadata?.namedExport,q=!U.metadata?.notExported&&!U.metadata?.namedExport;return k&&!q?-1:!k&&q?1:0}).forEach(O=>{const U=O.filePath??"No File Path";A.has(U)||A.set(U,{filePath:U,entities:[],totalCount:0,uncommittedCount:0,lastUpdated:null,previewScreenshots:[],previewScreenshotErrors:[],previewLibraryScenarios:[],state:"up-to-date",simulationCount:0});const k=A.get(U);k.entities.push(O),k.totalCount++,O.metadata?.isUncommitted&&k.uncommittedCount++;const q=O.analyses?.[0]?.scenarios?.length||0;k.simulationCount+=q;const j=O.metadata?.editedAt||O.updatedAt;j&&(!k.lastUpdated||new Date(j)>new Date(k.lastUpdated))&&(k.lastUpdated=j)});const F=l?.jobs||[];A.forEach(O=>{const U=O.entities.map(k=>x(k,F));U.includes("analyzing")?O.state="analyzing":U.includes("out-of-date")?O.state="out-of-date":U.includes("not-analyzed")?O.state="not-analyzed":O.state="up-to-date"}),A.forEach(O=>{for(const U of O.entities){if(O.previewScreenshots.length+O.previewLibraryScenarios.length>=3)break;const q=U.analyses?.[0]?.scenarios||[];if(U.entityType==="library"){const j=q.find(B=>B.metadata?.executionResult||B.metadata?.error);j&&O.previewLibraryScenarios.push({scenario:j,entitySha:U.sha})}else{const j=q.find(B=>B.metadata?.screenshotPaths?.[0]);if(j){const B=j.metadata?.screenshotPaths?.[0],G=!!j.metadata?.error;B&&!O.previewScreenshots.includes(B)&&(O.previewScreenshots.push(B),O.previewScreenshotErrors.push(G))}}}});const Z=Array.from(A.values());return Z.sort((O,U)=>{if(s==="analyzed"){const j=Math.max(...O.entities.filter(G=>G.analyses?.[0]?.createdAt).map(G=>new Date(G.analyses[0].createdAt).getTime()),0);return Math.max(...U.entities.filter(G=>G.analyses?.[0]?.createdAt).map(G=>new Date(G.analyses[0].createdAt).getTime()),0)-j}if(O.uncommittedCount>0&&U.uncommittedCount===0)return-1;if(O.uncommittedCount===0&&U.uncommittedCount>0)return 1;const k=O.lastUpdated?new Date(O.lastUpdated).getTime():0;return(U.lastUpdated?new Date(U.lastUpdated).getTime():0)-k}),Z},[N,s]),b=ee(()=>{let A=C;if(y!=="all"&&(A=A.filter(I=>I.state===y)),h.trim()){const I=h.toLowerCase();A=A.filter(Y=>Y.filePath.toLowerCase().includes(I))}return A},[C,h,y]),S=(t-1)*r,_=S+r,E=b.slice(S,_),R=Math.ceil(b.length/r),$=A=>{u(I=>{const Y=new Set(I);return Y.has(A)?Y.delete(A):Y.add(A),Y})},T=()=>{if(f)u(new Set),g(!1);else{const A=new Set(E.map(I=>I.filePath));u(A),g(!0)}},P=A=>{switch(A){case"analyzing":return{text:"Analyzing...",bgColor:"bg-pink-100",textColor:"text-pink-700",borderColor:"border-pink-300"};case"up-to-date":return{text:"Up to date",bgColor:"bg-green-100",textColor:"text-green-700",borderColor:"border-green-300"};case"out-of-date":return{text:"Out of date",bgColor:"bg-yellow-100",textColor:"text-yellow-700",borderColor:"border-yellow-300"};case"not-analyzed":return{text:"Not analyzed",bgColor:"bg-gray-100",textColor:"text-gray-600",borderColor:"border-gray-300"}}},L=A=>A?new Date(A).toLocaleString("en-US",{month:"numeric",day:"numeric",year:"2-digit",hour:"2-digit",minute:"2-digit",hour12:!0}):"Never";return c("div",{children:[c("div",{className:"bg-white border-b border-gray-200 rounded-t-lg px-5 py-4 mb-6",children:[n("div",{className:"text-[10px] text-gray-500 mb-2 uppercase",children:"Filters"}),c("div",{className:"flex gap-3",children:[c("div",{className:"relative",children:[c("select",{value:w,onChange:A=>{const I=A.target.value,Y=new URLSearchParams(i);I==="all"?Y.delete("entityType"):Y.set("entityType",I),Y.set("page","1"),d(Y)},className:"appearance-none bg-gray-50 border border-gray-200 rounded px-3 py-2 pr-8 text-sm cursor-pointer focus:outline-none focus:ring-0 focus:border-2 focus:border-[#005c75] hover:border-gray-300 transition-colors",children:[n("option",{value:"all",children:"All Types"}),n("option",{value:"visual",children:"Visual"}),n("option",{value:"library",children:"Library"})]}),n(mn,{className:"absolute right-2 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-500 pointer-events-none"})]}),c("div",{className:"relative",children:[c("select",{value:y,onChange:A=>v(A.target.value),className:"appearance-none bg-gray-50 border border-gray-200 rounded px-3 py-2 pr-8 text-sm cursor-pointer focus:outline-none focus:ring-0 focus:border-2 focus:border-[#005c75] hover:border-gray-300 transition-colors",children:[n("option",{value:"all",children:"All States"}),n("option",{value:"analyzing",children:"Analyzing..."}),n("option",{value:"up-to-date",children:"Up to date"}),n("option",{value:"out-of-date",children:"Out of date"}),n("option",{value:"not-analyzed",children:"Not analyzed"})]}),n(mn,{className:"absolute right-2 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-500 pointer-events-none"})]}),c("div",{className:"flex-1 relative",children:[n(kr,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),n("input",{type:"text",placeholder:"Search component",value:h,onChange:A=>p(A.target.value),className:"w-full bg-gray-50 border border-gray-200 rounded pl-9 pr-3 py-2 text-sm placeholder:text-gray-400 focus:outline-none focus:ring-0 focus:border-2 focus:border-[#005c75] transition-colors"})]}),n("button",{onClick:T,className:"px-3 py-2 border-none rounded text-sm font-medium cursor-pointer transition-colors whitespace-nowrap bg-[#005c75] text-white hover:bg-[#004a5e] disabled:bg-gray-400 disabled:cursor-not-allowed",children:f?"Collapse All":"Expand All"})]})]}),n("div",{className:"flex flex-col gap-3",children:E.map(A=>{const I=m.has(A.filePath),Y=A.uncommittedCount>0;return c("div",{className:"bg-white overflow-hidden",style:I?{border:"1px solid #e5e7eb",borderLeft:"4px solid #306AFF",borderRadius:"8px"}:{borderRadius:"8px"},children:[c("div",{className:"flex justify-between items-center p-3 cursor-pointer select-none transition-colors hover:bg-gray-200",style:{outlineColor:"#005C75"},onClick:()=>$(A.filePath),role:"button",tabIndex:0,onKeyDown:F=>{(F.key==="Enter"||F.key===" ")&&(F.preventDefault(),$(A.filePath))},children:[c("div",{className:"flex items-center gap-2 flex-1 min-w-0",children:[n("span",{className:"text-gray-500 text-xs w-4 inline-block shrink-0",children:I?"âŧ":"âļ"}),n("img",{src:"/icons/file-icon.svg",alt:"file",className:"w-4 h-5 shrink-0"}),n("span",{className:"font-normal text-gray-900 text-sm overflow-hidden text-ellipsis whitespace-nowrap",children:A.filePath}),Y&&c("span",{className:"text-[12px] text-amber-500 font-medium shrink-0 whitespace-nowrap",children:[A.uncommittedCount," uncommitted"]})]}),c("div",{className:"flex items-center gap-3 shrink-0",children:[(A.previewScreenshots.length>0||A.previewLibraryScenarios.length>0)&&c("div",{className:"flex gap-1.5 items-center h-[38px]",children:[A.previewScreenshots.map((F,Z)=>{const O=A.previewScreenshotErrors[Z];return c("div",{className:`relative w-[50px] h-[38px] border ${O?"border-red-400":"border-gray-200"} rounded overflow-hidden bg-gray-50 shrink-0 flex items-center justify-center`,children:[n(be,{screenshotPath:F,alt:`Preview ${Z+1}`,className:"max-w-full max-h-full object-contain object-center"}),O&&n("div",{className:"absolute top-0 right-0 w-4 h-4 bg-red-500 text-white flex items-center justify-center text-[10px] rounded-bl",title:"Error during capture",children:n(Ya,{size:12,color:"white"})})]},`screenshot-${Z}`)}),A.previewLibraryScenarios.map((F,Z)=>n(Ln,{scenario:F.scenario,entitySha:F.entitySha,size:"small",showBorder:!0},`library-${Z}`))]}),c("div",{className:"flex gap-4 items-center",children:[n("span",{className:"text-[13px] text-gray-500",children:A.simulationCount===0?"-":`${A.simulationCount} simulations`}),c("span",{className:"text-[13px] text-gray-500",children:[A.totalCount," ",A.totalCount===1?"entity":"entities"]}),(()=>{const F=P(A.state);return n("span",{className:`text-[12px] px-2 py-1 rounded ${F.bgColor} ${F.textColor}`,children:F.text})})(),n("span",{className:"text-[11px] text-gray-400",children:L(A.lastUpdated)})]})]})]}),I&&n("div",{className:"p-2 bg-gray-50 flex flex-col gap-2",children:A.entities.map(F=>n(nu,{entity:F,currentRun:a,queueState:l},F.sha))})]},A.filePath)})}),R>1&&c("div",{className:"flex justify-center items-center gap-4 mt-6 p-4",children:[t>1&&n("a",{href:`?${new URLSearchParams({...Object.fromEntries(i),page:String(t-1)}).toString()}`,className:"no-underline font-medium hover:underline",style:{color:"#005C75"},children:"â Previous"}),c("span",{children:["Page ",t," of ",R]}),t<R&&n("a",{href:`?${new URLSearchParams({...Object.fromEntries(i),page:String(t+1)}).toString()}`,className:"no-underline font-medium hover:underline",style:{color:"#005C75"},children:"Next â"})]})]})}const au=()=>[{title:"CodeYam - Files & Entities"},{name:"description",content:"Browse your codebase files and entities"}];async function su({request:e,context:t}){try{const r=new URL(e.url),a=parseInt(r.searchParams.get("page")||"1"),s=r.searchParams.get("filter")||null,o=r.searchParams.get("entityType"),l=t.analysisQueue,i=l?l.getState():{paused:!1,jobs:[]},[d,m]=await Promise.all([bt(),Ke()]);return D({entities:d,currentCommit:m,page:a,filter:s,entityType:o,queueState:i})}catch(r){return console.error("Failed to load entities:",r),D({entities:[],currentCommit:null,page:1,filter:null,entityType:null,queueState:{paused:!1,jobs:[]},error:"Failed to load entities"})}}function ou(){const{entities:e,currentCommit:t,page:r,filter:a,entityType:s,queueState:o}=Te(),l=rt(),i=ee(()=>{if(!e)return[];const u=new Set([]);for(const h of e)u.add(h.filePath??"No File Path");return Array.from(u)},[e]),d=ee(()=>e?e.sort((u,h)=>u.metadata?.isUncommitted&&!h.metadata?.isUncommitted?-1:!u.metadata?.isUncommitted&&h.metadata?.isUncommitted?1:new Date(h.metadata?.editedAt||0).getTime()-new Date(u.metadata?.editedAt||0).getTime()):[],[e]),m=ee(()=>{if(!e)return[];const u=new Set([]);for(const h of e)h.metadata?.isUncommitted&&u.add(h.filePath??"No File Path");return Array.from(u)},[e]);return e?n("div",{className:"bg-[#f9f9f9] min-h-screen",children:c("div",{className:"px-36 py-12 font-sans",children:[c("div",{className:"mb-8",children:[n("h1",{className:"text-3xl font-bold text-gray-900",children:"Files & Entities"}),c("div",{className:"flex gap-4 text-sm text-gray-500 mt-2",children:[l.state==="loading"&&n("span",{className:"text-blue-600 font-medium animate-pulse",children:"đ"}),c("span",{children:[i.length," files"]}),c("span",{children:[e.length," entities"]}),c("span",{className:"text-amber-500 font-medium",children:[m.length," uncommitted files"]})]})]}),n(ru,{entities:d,page:r,itemsPerPage:50,currentRun:t?.metadata?.currentRun,filter:a,entityType:s,queueState:o})]})}):n("div",{className:"bg-[#f9f9f9] min-h-screen",children:c("div",{className:"px-36 py-12 font-sans",children:[n("h1",{className:"text-3xl font-bold text-gray-900",children:"Error"}),n("p",{className:"text-base text-gray-500",children:"Unable to retrieve entities"})]})})}const iu=Object.freeze(Object.defineProperty({__proto__:null,default:ou,loader:su,meta:au},Symbol.toStringTag,{value:"Module"}));function lu(e,t,r){const[a,s]=M(()=>new Set(t)),[o,l]=M(()=>new Set(r)),i=pe([]),d=pe([]);return W(()=>{(t.length!==i.current.length||t.some((y,v)=>y!==i.current[v]))&&(i.current=t,s(y=>{const v=new Set(y);return t.forEach(w=>{y.has(w)||v.add(w)}),v}))},[t]),W(()=>{(r.length!==d.current.length||r.some((y,v)=>y!==d.current[v]))&&(d.current=r,l(y=>{const v=new Set(y);return r.forEach(w=>{y.has(w)||v.add(w)}),v}))},[r]),{expandedUncommitted:a,expandedBranch:o,setExpandedUncommitted:s,setExpandedBranch:l,toggleFile:(g,y,v)=>{v(w=>{const x=new Set(w);return x.has(g)?x.delete(g):x.add(g),x})},expandAllUncommitted:()=>{s(new Set(t))},collapseAllUncommitted:()=>{s(new Set)},expandAllBranch:()=>{l(new Set(r))},collapseAllBranch:()=>{l(new Set)}}}function cu(e,t,r){const[a,s]=M(null),[o,l]=M(null),i=fe();W(()=>{i.data?.oldContent!==void 0&&i.data?.newContent!==void 0&&l({oldContent:i.data.oldContent,newContent:i.data.newContent,fileName:i.data.fileName})},[i.data]);const d=h=>{s({type:"file",path:h}),l(null);const p=new FormData;p.append("actionType","getDiff"),p.append("filePath",h),p.append("diffType",r==="branch"?"branch":"uncommitted"),p.append("baseBranch",e),p.append("currentBranch",t||""),i.submit(p,{method:"post"})},m=(h,p)=>{s({type:"entity",path:h,entitySha:p}),l(null);const f=new FormData;f.append("actionType","getDiff"),f.append("filePath",h),f.append("diffType",r==="branch"?"branch":"uncommitted"),f.append("baseBranch",e),f.append("currentBranch",t||""),f.append("entitySha",p),i.submit(f,{method:"post"})},u=()=>{s(null),l(null)};return{diffView:a,diffContent:o,isLoading:i.state==="loading"||i.state==="submitting",handleShowFileDiff:d,handleShowEntityDiff:m,handleCloseDiff:u}}function du(e){const t=fe(),{showToast:r}=An();W(()=>{if(t.state==="idle"&&t.data){const l=t.data;l?.error&&r(`Error: ${l.error}`,"error",6e3)}},[t.state,t.data,r]);const a=l=>{console.log("Generate analysis clicked for entity:",l.sha,l.name);const i=new FormData;i.append("entitySha",l.sha),i.append("filePath",l.filePath||""),t.submit(i,{method:"post",action:"/api/analyze"})},s=l=>{const i=l.filter(u=>u.entityType==="visual"||u.entityType==="library");console.log("Generate analysis for all entities:",i.length);const d=i.map(u=>u.sha).join(","),m=new FormData;m.append("entityShas",d),t.submit(m,{method:"post",action:"/api/analyze"})},o=l=>e?.includes(l)??!1;return{isAnalyzing:t.state!=="idle",handleGenerateSimulation:a,handleGenerateAllSimulations:s,isEntityBeingAnalyzed:o}}function uu({diffView:e,diffContent:t,isLoading:r,entities:a,onClose:s}){const[o,l]=M(!1),[i,d]=M(!1);return W(()=>{d(!0)},[]),n("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center p-8 z-50",children:c("div",{className:"bg-white rounded-xl shadow-2xl max-w-6xl w-full max-h-[90vh] flex flex-col",children:[c("div",{className:"p-6 border-b border-[#e1e1e1] flex items-center justify-between",children:[c("div",{children:[n("h2",{className:"font-['IBM_Plex_Sans'] text-2xl font-semibold text-[#232323]",children:e.type==="file"?"File Diff":"Entity Diff"}),n("p",{className:"font-['IBM_Plex_Mono'] text-sm text-[#8e8e8e] mt-1",children:e.path}),e.type==="entity"&&e.entitySha&&c("p",{className:"font-['IBM_Plex_Mono'] text-sm text-[#8e8e8e]",children:["Entity:"," ",a.find(m=>m.sha===e.entitySha)?.name||e.entitySha]})]}),c("div",{className:"flex items-center gap-3",children:[n("button",{onClick:()=>l(!o),className:"px-3 py-1.5 bg-[#efefef] text-[#3e3e3e] rounded-lg font-['IBM_Plex_Sans'] text-sm font-semibold hover:bg-[#e1e1e1] transition-colors",title:o?"Show changes only":"Show full file",children:o?"Show Changes Only":"Show Full File"}),n("button",{onClick:s,className:"text-[#8e8e8e] hover:text-[#626262] transition-colors",children:n("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:n("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]})]}),n("div",{className:"flex-1 overflow-auto",children:r?n("div",{className:"p-6 text-center",children:n("div",{className:"text-[#8e8e8e]",children:"Loading diff..."})}):t?n("div",{className:"diff-viewer-wrapper",children:i&&n(fs,{oldValue:t.oldContent,newValue:t.newContent,splitView:!0,useDarkTheme:!1,showDiffOnly:!o,extraLinesSurroundingDiff:4,styles:{variables:{light:{diffViewerBackground:"#fff",diffViewerColor:"#212529",addedBackground:"#e6ffed",addedColor:"#24292e",removedBackground:"#ffeef0",removedColor:"#24292e",wordAddedBackground:"#acf2bd",wordRemovedBackground:"#fdb8c0",addedGutterBackground:"#cdffd8",removedGutterBackground:"#ffdce0",gutterBackground:"#f6f8fa",gutterBackgroundDark:"#f3f4f6",highlightBackground:"#fffbdd",highlightGutterBackground:"#fff5b1"}},contentText:{fontSize:"12px",lineHeight:"1.5"},line:{padding:"2px 10px",fontSize:"12px","&:hover":{background:"#f8f9fa"}},splitView:{display:"flex",width:"100%"},diffContainer:{width:"50%",overflowX:"auto"}}})}):n("div",{className:"p-6 text-center",children:n("div",{className:"text-[#8e8e8e]",children:"No diff available"})})}),n("div",{className:"p-6 border-t border-[#e1e1e1] flex justify-end gap-3",children:n("button",{onClick:s,className:"px-4 py-2 bg-[#efefef] text-[#3e3e3e] rounded-lg font-['IBM_Plex_Sans'] font-semibold hover:bg-[#e1e1e1] transition-colors",children:"Close"})})]})})}function mu({activeTab:e,onTabChange:t,uncommittedCount:r,branchCount:a}){return n("div",{className:"border-b border-gray-200 mb-6",children:c("nav",{className:"flex gap-8 items-center",children:[n("button",{onClick:()=>t("uncommitted"),className:`relative pb-4 px-2 text-sm font-medium transition-colors ${e==="uncommitted"?"text-[#005C75] border-b-2 border-[#005C75]":"text-gray-500 hover:text-gray-700"}`,children:c("span",{className:"flex items-center gap-2",children:["Uncommitted Changes",r>0&&n("span",{className:`inline-flex items-center justify-center px-2 py-0.5 text-xs font-semibold rounded-full ${e==="uncommitted"?"bg-[#e8f1f5] text-[#005C75]":"bg-gray-200 text-gray-700"}`,children:r})]})}),n("button",{onClick:()=>t("branch"),className:`relative pb-4 px-2 text-sm font-medium transition-colors ${e==="branch"?"text-[#005C75] border-b-2 border-[#005C75]":"text-gray-500 hover:text-gray-700"}`,children:c("span",{className:"flex items-center gap-2",children:["Branch Changes",a>0&&n("span",{className:`inline-flex items-center justify-center px-2 py-0.5 text-xs font-semibold rounded-full ${e==="branch"?"bg-[#e8f1f5] text-[#005C75]":"bg-gray-200 text-gray-700"}`,children:a})]})})]})})}function hu(e,t){const a=t.match(/text-(\w+)-\d+/)?.[1]||"gray",o={green:"#15803d",gray:"#374151",orange:"#b45309",blue:"#1e40af",amber:"#b45309",purple:"#6b21a8"}[a]||"#374151";switch(e){case"â":return n(Rt,{size:16,color:o});case"â":return n(za,{size:16,color:o});case"â ":return n(vn,{size:16,color:o});case"â":return n(Ir,{size:16,color:o});case"+":return n(Fa,{size:16,color:o});default:return e}}function pu({entity:e,variant:t="full"}){const r=Yn(e),{badge:a}=r,s=hu(a.icon,a.color);return t==="icon-only"?n("span",{className:`${a.color} text-sm font-bold`,title:a.label,children:s}):t==="compact"?n("span",{className:`inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[11px] font-normal border ${a.color} ${a.bgColor} ${a.borderColor}`,title:a.label,children:n("span",{children:a.label})}):n("span",{className:`inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md text-xs font-normal border ${a.color} ${a.bgColor} ${a.borderColor}`,children:n("span",{children:a.label})})}function fu({entity:e,filePath:t,impactedEntities:r,isBeingAnalyzed:a,isQueued:s,projectSlug:o,diffType:l,baseBranch:i,currentBranch:d,onGenerateSimulation:m,onShowLogs:u}){const h=e.analyses?.[0],p=h?.scenarios||[],f=h?.status?.scenarios||[];return c("div",{className:"flex flex-col gap-2 p-3 bg-white border border-[#e1e1e1] rounded-md transition-all hover:border-[#005c75] hover:shadow-sm",children:[c("div",{className:"flex items-center gap-2",children:[c(Q,{to:`/entity/${e.sha}`,className:"flex items-center gap-3 flex-1 min-w-0 no-underline",children:[n(Oe,{type:e.entityType}),c("div",{className:"flex-1 min-w-0",children:[c("div",{className:"font-['IBM_Plex_Sans'] font-medium text-sm text-[#343434] flex items-center gap-2",children:[n("span",{children:e.name}),e.entityType==="visual"&&n("div",{className:"px-2 py-0.5 rounded-sm text-[10px] uppercase font-bold",style:{backgroundColor:"#8B5CF60D",color:"#8B5CF6"},children:"Visual"}),e.entityType==="library"&&n("div",{className:"px-2 py-0.5 rounded-sm text-[10px] uppercase font-bold",style:{backgroundColor:"#0DBFE90D",color:"#0DBFE9"},children:"Library"}),e.entityType==="other"&&n("div",{className:"px-2 py-0.5 rounded-sm text-[10px] uppercase font-bold",style:{backgroundColor:"#EC48990D",color:"#EC4899"},children:"Other"}),n(pu,{entity:e,variant:"full"})]}),e.description&&n("div",{className:"font-['IBM_Plex_Sans'] text-xs text-[#8e8e8e] mt-0.5 overflow-hidden text-ellipsis whitespace-nowrap",children:e.description})]}),c("div",{className:"flex items-center gap-2",children:[a&&c("div",{className:"px-2 py-1 bg-pink-100 rounded text-xs text-pink-700 font-semibold flex items-center gap-1.5",children:[c("svg",{className:"animate-spin h-3.5 w-3.5",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[n("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),n("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),"Analyzing..."]}),!a&&s&&n("div",{className:"px-2 py-1 bg-purple-50 border border-purple-300 rounded text-xs text-purple-700 font-semibold",children:"âŗ Queued"})]})]}),(e.entityType==="visual"||e.entityType==="library")&&!a&&!s&&n("button",{onClick:g=>{g.stopPropagation(),m(e)},className:"px-3 py-1.5 bg-[#005c75] text-white rounded-md text-xs font-['IBM_Plex_Sans'] font-medium hover:bg-[#004a5e] transition-colors whitespace-nowrap",title:"Analyze this entity",children:"Analyze"}),a&&o&&n("button",{onClick:g=>{g.stopPropagation(),u(e.sha)},className:"px-3 py-1.5 bg-[#626262] text-white rounded-md text-xs font-['IBM_Plex_Sans'] font-semibold hover:bg-[#4a4a4a] transition-colors whitespace-nowrap",title:"View analysis logs",children:"đ Logs"})]}),(e.entityType==="visual"||e.entityType==="library")&&p.length>0&&n("div",{className:"flex gap-2.5 mt-3 overflow-x-auto pb-1",children:p.map((g,y)=>{const v=g.metadata?.screenshotPaths?.[0],w=f.find(C=>C.name===g.name),x=w?.screenshotStartedAt&&!w?.screenshotFinishedAt,N=!!v;return n(Q,{to:g.id?`/entity/${e.sha}/scenarios/${g.id}`:`/entity/${e.sha}`,className:"shrink-0 block no-underline",children:n("div",{className:"w-36 h-24 rounded-md border border-gray-200 overflow-hidden bg-gray-100 flex items-center justify-center transition-all",onMouseEnter:C=>{C.currentTarget.style.borderColor="#005C75",C.currentTarget.style.boxShadow="0 4px 12px rgba(0, 92, 117, 0.15)"},onMouseLeave:C=>{C.currentTarget.style.borderColor="#d1d5db",C.currentTarget.style.boxShadow="none"},children:N?n(be,{screenshotPath:v,alt:g.name,className:"max-w-full max-h-full object-contain"}):n("span",{className:`text-2xl ${x?"animate-pulse":"text-gray-400"}`,children:x?"â¯":"âšī¸"})})},y)})})]})}function gu({files:e,entityImpactMap:t,expandedFiles:r,isEntityBeingAnalyzed:a,isEntityQueued:s,projectSlug:o,baseBranch:l,currentBranch:i,onToggleFile:d,onShowFileDiff:m,onGenerateSimulation:u,onShowLogs:h}){return n("div",{children:e.length>0?n("div",{className:"flex flex-col gap-3",children:e.map(([p,{status:f,editedEntities:g}])=>{const y=r.has(p);return c("div",{className:"bg-white border border-gray-200 border-l-4 rounded-lg overflow-hidden",style:{borderLeftColor:"#306AFF"},children:[n("div",{className:"p-4 cursor-pointer select-none transition-colors hover:bg-gray-50",onClick:()=>d(p),role:"button",tabIndex:0,onKeyDown:v=>{(v.key==="Enter"||v.key===" ")&&(v.preventDefault(),d(p))},children:c("div",{className:"flex items-center gap-3",children:[n("span",{className:"text-gray-500 text-xs w-4 shrink-0",children:y?"âŧ":"âļ"}),c("svg",{width:"16",height:"20",viewBox:"0 0 12 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"shrink-0",children:[c("g",{clipPath:"url(#clip0_784_10666)",children:[n("path",{d:"M0 2.55857C0 1.14551 1.14551 0 2.55857 0H8.73194L12 3.3616V13.4414C12 14.8545 10.8545 16 9.44143 16H2.55857C1.14551 16 0 14.8545 0 13.4414V2.55857Z",fill:"#DDDDFE"}),n("path",{d:"M8.72656 3.3307H11.9906L8.72656 0V3.3307Z",fill:"#306AFF"}),n("line",{x1:"1.8125",y1:"5.94825",x2:"10.0235",y2:"5.94825",stroke:"#306AFF",strokeWidth:"1.27929"}),n("line",{x1:"1.8125",y1:"8.82715",x2:"6.01207",y2:"8.82715",stroke:"#306AFF",strokeWidth:"1.27929"}),n("line",{x1:"1.8125",y1:"11.7061",x2:"10.0235",y2:"11.7061",stroke:"#306AFF",strokeWidth:"1.27929"})]}),n("defs",{children:n("clipPath",{id:"clip0_784_10666",children:n("rect",{width:"12",height:"16",fill:"white"})})})]}),c("div",{className:"flex-1 min-w-0",children:[n("span",{className:"font-normal text-gray-900 text-sm block truncate",children:p}),c("span",{className:"text-xs text-gray-500",children:[g.length," entit",g.length!==1?"ies":"y"]})]})]})}),y&&g.length>0&&n("div",{className:"border-t border-gray-200 bg-gray-50 p-3 flex flex-col gap-2",children:g.map(v=>n(fu,{entity:v,filePath:p,impactedEntities:t.get(v.sha)||[],isBeingAnalyzed:a(v.sha),isQueued:s(v.sha),projectSlug:o,diffType:"uncommitted",baseBranch:l,currentBranch:i,onGenerateSimulation:u,onShowLogs:h},v.sha))})]},p)})}):c("div",{className:"py-12 px-6 text-center",children:[n("div",{className:"text-6xl mb-4 opacity-50",children:"â"}),n("p",{className:"font-['IBM_Plex_Sans'] text-lg font-semibold text-[#3e3e3e] mb-2",children:"No edited entities"}),c("p",{className:"font-['IBM_Plex_Sans'] text-sm text-[#8e8e8e]",children:["There are no uncommitted changes.",n("br",{}),n("br",{}),"If you edit a file in the project, it will show up here."]})]})})}function yu({status:e}){const r={modified:{label:"M",bgColor:"bg-[#f59e0c]"},added:{label:"A",bgColor:"bg-emerald-500"},deleted:{label:"D",bgColor:"bg-red-500",showWarning:!0},renamed:{label:"R",bgColor:"bg-indigo-500"},untracked:{label:"U",bgColor:"bg-purple-500"}}[e]||{label:"?",bgColor:"bg-gray-500"};return c("div",{className:"inline-flex items-center gap-1",children:[n("span",{className:`inline-flex items-center justify-center w-5 h-5 text-[11px] font-bold text-white rounded ${r.bgColor}`,title:e,children:r.label}),r.showWarning&&n("span",{className:"inline-flex items-center justify-center w-3 h-3 text-[10px] text-amber-600",title:"Warning: File will be deleted",children:"â "})]})}function xu({files:e,currentBranch:t,defaultBranch:r,baseBranch:a,allBranches:s,expandedFiles:o,isEntityBeingAnalyzed:l,isEntityQueued:i,isAnyAnalysisInProgress:d,isAnalyzing:m,lastLogLine:u,projectSlug:h,onToggleFile:p,onBranchChange:f,onGenerateSimulation:g,onShowLogs:y}){return e.length>0&&e.some(([v,{entities:w}])=>w.length>0),c("div",{children:[n("div",{className:"mb-5",children:t===r?c("p",{className:"text-sm text-gray-500",children:["Currently on the primary branch"," ",n("strong",{className:"text-gray-900 font-semibold",children:t})]}):c("p",{className:"text-sm text-gray-500",children:["Changes in"," ",n("strong",{className:"text-gray-900 font-semibold",children:t})," ","compared to"," ",n("select",{value:a,onChange:v=>f(v.target.value),className:"py-0.5 px-2 bg-white border border-gray-300 rounded-md text-sm font-semibold text-gray-900 cursor-pointer hover:border-indigo-500",children:s.filter(v=>v!==t).map(v=>n("option",{value:v,children:v},v))})]})}),t===r?c("div",{className:"py-12 px-6 text-center bg-blue-50 rounded-lg border border-blue-100",children:[n("div",{className:"text-6xl mb-4",children:"âšī¸"}),n("p",{className:"text-lg font-semibold text-gray-900 mb-3",children:"You're on the primary branch"}),c("p",{className:"text-sm text-gray-600 mb-2 max-w-md mx-auto",children:["When you switch to a feature branch, this section will show all the changes between your branch and"," ",n("strong",{className:"font-semibold",children:r}),"."]}),n("p",{className:"text-sm text-gray-600 max-w-md mx-auto",children:"This helps you understand what will be included in your pull request before you create it."})]}):e.length>0?n("div",{className:"flex flex-col gap-3",children:e.map(([v,{status:w,entities:x}])=>{const N=o.has(v);return c("div",{className:"bg-white border border-gray-200 border-l-4 rounded-lg overflow-hidden",style:{borderLeftColor:"#306AFF"},children:[n("div",{className:"p-4 cursor-pointer select-none transition-colors hover:bg-gray-50",onClick:()=>p(v),role:"button",tabIndex:0,onKeyDown:C=>{(C.key==="Enter"||C.key===" ")&&(C.preventDefault(),p(v))},children:c("div",{className:"flex items-center gap-3",children:[n("span",{className:"text-gray-500 text-xs w-4 shrink-0",children:N?"âŧ":"âļ"}),c("svg",{width:"16",height:"20",viewBox:"0 0 12 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"shrink-0",children:[c("g",{clipPath:"url(#clip0_784_10666)",children:[n("path",{d:"M0 2.55857C0 1.14551 1.14551 0 2.55857 0H8.73194L12 3.3616V13.4414C12 14.8545 10.8545 16 9.44143 16H2.55857C1.14551 16 0 14.8545 0 13.4414V2.55857Z",fill:"#DDDDFE"}),n("path",{d:"M8.72656 3.3307H11.9906L8.72656 0V3.3307Z",fill:"#306AFF"}),n("line",{x1:"1.8125",y1:"5.94825",x2:"10.0235",y2:"5.94825",stroke:"#306AFF",strokeWidth:"1.27929"}),n("line",{x1:"1.8125",y1:"8.82715",x2:"6.01207",y2:"8.82715",stroke:"#306AFF",strokeWidth:"1.27929"}),n("line",{x1:"1.8125",y1:"11.7061",x2:"10.0235",y2:"11.7061",stroke:"#306AFF",strokeWidth:"1.27929"})]}),n("defs",{children:n("clipPath",{id:"clip0_784_10666",children:n("rect",{width:"12",height:"16",fill:"white"})})})]}),c("div",{className:"flex-1 min-w-0",children:[c("div",{className:"flex items-center gap-2",children:[n("span",{className:"font-normal text-gray-900 text-sm block truncate",children:v}),n(yu,{status:w.status})]}),c("span",{className:"text-xs text-gray-500",children:[x.length," entit",x.length!==1?"ies":"y"]})]})]})}),N&&x.length>0&&n("div",{className:"border-t border-gray-200 bg-gray-50 p-2 flex flex-col gap-1.5",children:x.map(C=>{const b=l(C.sha),S=i(C.sha),_=b&&u,E=C.analyses?.[0],R=E?.scenarios||[],$=E?.status?.scenarios||[];return c("div",{className:"flex flex-col gap-2 p-3 bg-white border border-gray-200 rounded-md transition-all hover:border-blue-600 hover:shadow-sm",children:[c("div",{className:"flex items-center gap-2",children:[c(Q,{to:`/entity/${C.sha}`,className:"flex items-center gap-3 flex-1 min-w-0 no-underline",children:[n(Oe,{type:C.entityType}),c("div",{className:"flex-1 min-w-0",children:[c("div",{className:"font-['IBM_Plex_Sans'] font-medium text-sm text-[#343434] flex items-center gap-2",children:[n("span",{children:C.name}),C.entityType==="visual"&&n("div",{className:"px-2 py-0.5 rounded-sm text-[10px] uppercase font-bold",style:{backgroundColor:"#8B5CF60D",color:"#8B5CF6"},children:"Visual"}),C.entityType==="library"&&n("div",{className:"px-2 py-0.5 rounded-sm text-[10px] uppercase font-bold",style:{backgroundColor:"#0DBFE90D",color:"#0DBFE9"},children:"Library"}),C.entityType==="other"&&n("div",{className:"px-2 py-0.5 rounded-sm text-[10px] uppercase font-bold",style:{backgroundColor:"#EC48990D",color:"#EC4899"},children:"Other"})]}),C.description&&n("div",{className:"font-['IBM_Plex_Sans'] text-xs text-[#8e8e8e] mt-0.5 overflow-hidden text-ellipsis whitespace-nowrap",children:C.description})]}),c("div",{className:"flex items-center gap-2",children:[b&&c("div",{className:"px-2 py-1 bg-pink-100 rounded text-xs text-pink-700 font-semibold flex items-center gap-1.5",children:[c("svg",{className:"animate-spin h-3.5 w-3.5",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[n("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),n("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),"Analyzing..."]}),!b&&S&&n("div",{className:"px-2 py-1 bg-purple-50 border border-purple-300 rounded text-xs text-purple-700 font-semibold",children:"âŗ Queued"})]})]}),(C.entityType==="visual"||C.entityType==="library")&&n("button",{onClick:T=>{T.stopPropagation(),g(C)},disabled:m||d||S||b,className:"px-3 py-1.5 bg-[#005c75] text-white rounded-md text-xs font-['IBM_Plex_Sans'] font-medium hover:bg-[#004a5e] transition-colors whitespace-nowrap disabled:bg-gray-400 disabled:cursor-not-allowed",title:S?"Entity is queued for analysis":b?"Entity is being analyzed":d?"Please wait for current analysis to complete":"Analyze this entity",children:b?"Analyzing...":S?"Queued":d?"Waiting...":"Analyze"}),b&&h&&n("button",{onClick:T=>{T.stopPropagation(),y(C.sha)},className:"px-3 py-1.5 bg-[#626262] text-white rounded-md text-xs font-['IBM_Plex_Sans'] font-medium hover:bg-[#4a4a4a] transition-colors whitespace-nowrap",title:"View analysis logs",children:"đ Logs"})]}),_&&c("div",{className:"flex items-center gap-1.5 text-[13px] font-medium text-blue-600 px-2 py-1 bg-blue-50 rounded",children:[n("span",{className:"animate-spin",children:"âī¸"}),n("span",{className:"overflow-hidden text-ellipsis whitespace-nowrap text-xs max-w-full",title:u,children:u})]}),R.length>0&&n("div",{className:"flex gap-2 flex-wrap",children:R.slice(0,5).map((T,P)=>{const L=T.metadata?.screenshotPaths?.[0],A=$.find(Z=>Z.name===T.name),I=A?.screenshotStartedAt&&!A?.screenshotFinishedAt,Y=!!L,F=Fn(C)||C.metadata?.isSuperseded;return Y?n(Q,{to:`/entity/${C.sha}/scenarios/${T.id}`,className:`relative w-20 h-15 border-2 rounded overflow-hidden bg-gray-50 cursor-pointer transition-all flex items-center justify-center hover:scale-105 hover:shadow-md ${F?"border-amber-500 hover:border-amber-600":"border-gray-200 hover:border-blue-600"}`,children:n(be,{screenshotPath:L,alt:T.name,title:T.name,className:"max-w-full max-h-full object-contain object-center"})},P):n(Q,{to:`/entity/${C.sha}/scenarios/${T.id}`,className:"w-20 h-15 border-2 border-dashed border-gray-300 rounded bg-gray-50 flex items-center justify-center text-2xl",title:`Capturing ${T.name}...`,children:n("span",{className:I?"animate-spin":"text-gray-400",children:I?"âŗ":"âšī¸"})},P)})})]},C.sha)})})]},v)})}):c("div",{className:"py-12 px-6 text-center",children:[n("div",{className:"text-6xl mb-4 opacity-50",children:"â"}),n("p",{className:"text-lg font-semibold text-gray-700 mb-2",children:"No differences found"}),c("p",{className:"text-sm text-gray-500",children:["This branch is up to date with ",a]})]})]})}const bu=()=>[{title:"Git - CodeYam"},{name:"description",content:"Git status and impact analysis"}];async function vu({request:e}){const t=await e.formData();if(t.get("actionType")==="getDiff"){const a=t.get("filePath"),s=t.get("diffType"),o=t.get("baseBranch"),l=t.get("currentBranch"),i=t.get("entitySha");let d;return s==="branch"?d=It(a,o,l):d=fl(a),D({...d,entitySha:i})}return D({error:"Unknown action"},{status:400})}async function wu({request:e,context:t}){try{const a=new URL(e.url).searchParams.get("compare"),s=t.analysisQueue,o=s?s.getState():{paused:!1,jobs:[]},[l,i,d]=await Promise.all([bt(),Ke(),_e()]),m=oa(),u=dl(),h=ul(),p=ml(),f=a||h;let g=[];return u&&u!==f&&(g=ia(f,u)),D({entities:l||[],gitStatus:m,currentBranch:u,defaultBranch:h,allBranches:p,baseBranch:f,branchDiff:g,currentCommit:i,projectSlug:d,queueState:o})}catch(r){return console.error("Failed to load git data:",r),D({entities:[],gitStatus:[],currentBranch:null,defaultBranch:"main",allBranches:[],baseBranch:"main",branchDiff:[],currentCommit:null,projectSlug:null,queueState:{paused:!1,jobs:[]},error:"Failed to load git data"})}}function Cu(){const{entities:e,gitStatus:t,currentBranch:r,defaultBranch:a,allBranches:s,baseBranch:o,branchDiff:l,currentCommit:i,projectSlug:d,queueState:m}=Te(),[u,h]=xn(),[p,f]=M("uncommitted"),[g,y]=M(null),v=u.get("expanded")==="true",w=fe(),x=w.data;W(()=>{p==="branch"&&r&&o&&r!==o&&w.state==="idle"&&!x&&w.load(`/api/branch-entity-diff?base=${encodeURIComponent(o)}&compare=${encodeURIComponent(r)}`)},[p,r,o,w,x]);const N=ee(()=>{const X=ga(t,e);return Array.from(X.entries()).sort((Pe,Ne)=>Pe[0].localeCompare(Ne[0]))},[t,e]),C=ee(()=>{const X=Vd(l,e,x);return Array.from(X.entries()).sort((Pe,Ne)=>Pe[0].localeCompare(Ne[0]))},[l,e,x]),b=ee(()=>Jd(t,e),[t,e]);ee(()=>{const X=C.flatMap(([Pe,Ne])=>Ne.entities);return Qd(X,e)},[C,e]);const S=ee(()=>N.map(([X])=>X),[N]),_=ee(()=>C.map(([X])=>X),[C]),{expandedUncommitted:E,expandedBranch:R,setExpandedUncommitted:$,setExpandedBranch:T,toggleFile:P,expandAllUncommitted:L,collapseAllUncommitted:A,expandAllBranch:I,collapseAllBranch:Y}=lu(v,S,_),{diffView:F,diffContent:Z,isLoading:O,handleShowFileDiff:U,handleCloseDiff:k}=cu(o,r,p),q=i?.metadata?.currentRun,j=!!q?.createdAt&&!q?.analysisCompletedAt,{lastLine:B,isCompleted:G}=Ye(d,j),de=j&&!G,ie=new Set(q?.currentEntityShas||[]),H=new Set(m.jobs.flatMap(X=>X.entityShas||[])),oe=new Set(m.currentlyExecuting?.entityShas||[]),{isAnalyzing:ke,handleGenerateSimulation:ye,handleGenerateAllSimulations:lt,isEntityBeingAnalyzed:ct}=du(q?.currentEntityShas),Ve=X=>H.has(X)||oe.has(X),vt=X=>{X===a?u.delete("compare"):u.set("compare",X),h(u)},Xt=()=>{const Pe=(p==="uncommitted"?N.flatMap(([Ne,nn])=>nn.editedEntities):C.flatMap(([Ne,nn])=>nn.entities)).filter(Ne=>!ie.has(Ne.sha)&&!H.has(Ne.sha)&&!oe.has(Ne.sha));lt(Pe)},wt=N.length,Ct=C.length,en=p==="uncommitted"?wt:Ct,me=(p==="uncommitted"?N.flatMap(([X,Pe])=>Pe.editedEntities):C.flatMap(([X,Pe])=>Pe.entities)).filter(X=>X.entityType==="visual"||X.entityType==="library"),ue=me.length>0&&me.every(X=>ie.has(X.sha)),xe=me.length>0&&!ue&&me.every(X=>H.has(X.sha)||oe.has(X.sha)),tn=ke||ue||xe,De=ue?"Analyzing...":xe?"Queued...":ke?"Analyzing...":"Analyze All";return n("div",{className:"bg-[#f9f9f9] min-h-screen",children:c("div",{className:"px-36 py-12",children:[c("div",{className:"mb-8",children:[n("h1",{className:"text-3xl font-bold text-gray-900",children:"Git Changes"}),n("div",{className:"flex items-center gap-4 text-sm text-gray-600 mt-2",children:r&&c(te,{children:[n("span",{className:"text-xs",children:"Branch:"}),s.length>0?n("select",{value:r,onChange:X=>vt(X.target.value),className:"text-gray-900 font-medium px-2 py-1 border border-gray-300 rounded text-sm hover:border-gray-400 focus:outline-none focus:border-blue-500",style:{paddingRight:"26px",backgroundPosition:"right 6px center",backgroundRepeat:"no-repeat",backgroundSize:"16px",appearance:"none",backgroundImage:`url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e")`},children:s.map(X=>c("option",{value:X,children:[X," ",X===a?"(default)":""]},X))}):n("span",{className:"text-gray-900 font-medium",children:r})]})})]}),c("div",{className:"flex items-center justify-between mb-1",children:[n(mu,{activeTab:p,onTabChange:f,uncommittedCount:wt,branchCount:Ct}),en>0&&c("div",{className:"flex gap-2",children:[n("button",{onClick:p==="uncommitted"?L:I,className:"px-3 py-1.5 text-xs font-['IBM_Plex_Sans'] font-medium text-[#626262] hover:text-cyblack-100 hover:bg-gray-100 rounded transition-colors cursor-pointer",children:"Expand All"}),n("button",{onClick:p==="uncommitted"?A:Y,className:"px-3 py-1.5 text-xs font-['IBM_Plex_Sans'] font-medium text-[#626262] hover:text-cyblack-100 hover:bg-gray-100 rounded transition-colors cursor-pointer",children:"Collapse All"}),n("button",{onClick:Xt,disabled:tn,className:"px-4 py-1.5 bg-[#005c75] text-white rounded text-xs font-['IBM_Plex_Sans'] font-medium hover:bg-[#004a5e] transition-colors cursor-pointer disabled:bg-gray-400 disabled:cursor-not-allowed",title:tn?De:`Analyze all ${p} entities`,children:De})]})]}),c("div",{className:"overflow-hidden",children:[p==="uncommitted"&&n(gu,{files:N,entityImpactMap:b,expandedFiles:E,isEntityBeingAnalyzed:ct,isEntityQueued:Ve,projectSlug:d,baseBranch:o,currentBranch:r,onToggleFile:X=>P(X,E,$),onShowFileDiff:U,onGenerateSimulation:ye,onShowLogs:y}),p==="branch"&&r&&n(xu,{files:C,currentBranch:r,defaultBranch:a,baseBranch:o,allBranches:s,expandedFiles:R,isEntityBeingAnalyzed:ct,isEntityQueued:Ve,isAnyAnalysisInProgress:de,isAnalyzing:ke,lastLogLine:B,projectSlug:d,onToggleFile:X=>P(X,R,T),onBranchChange:vt,onGenerateSimulation:ye,onShowLogs:y})]}),F&&n(uu,{diffView:F,diffContent:Z,isLoading:O,entities:e,onClose:k}),g&&d&&n(at,{projectSlug:d,onClose:()=>y(null)})]})})}const Nu=Object.freeze(Object.defineProperty({__proto__:null,action:vu,default:Cu,loader:wu,meta:bu},Symbol.toStringTag,{value:"Module"})),dm={entry:{module:"/assets/entry.client-CdGoUs8A.js",imports:["/assets/components-Dj-Ggnl2.js"],css:[]},routes:{root:{id:"root",parentId:void 0,path:"",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasErrorBoundary:!1,module:"/assets/root-Cf8VBqIb.js",imports:["/assets/components-Dj-Ggnl2.js","/assets/file-text-B6Er7j5k.js","/assets/settings-COJUrwGu.js","/assets/useToast-BRShB17p.js","/assets/useLastLogLine-Lumm1t01.js","/assets/LogViewer-BKKG1s2B.js","/assets/clock-DKqtX8js.js"],css:[]},"routes/entity.$sha_.edit.$scenarioId":{id:"routes/entity.$sha_.edit.$scenarioId",parentId:"root",path:"entity/:sha/edit/:scenarioId",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasErrorBoundary:!1,module:"/assets/entity._sha_.edit._scenarioId-C9w-q7P3.js",imports:["/assets/components-Dj-Ggnl2.js","/assets/InteractivePreview-B0oiPem-.js","/assets/useLastLogLine-Lumm1t01.js"],css:["/assets/InteractivePreview-CMKNK2uU.css"]},"routes/entity.$sha_.create-scenario":{id:"routes/entity.$sha_.create-scenario",parentId:"root",path:"entity/:sha/create-scenario",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasErrorBoundary:!1,module:"/assets/entity._sha_.create-scenario-L7M9Vr5z.js",imports:["/assets/components-Dj-Ggnl2.js","/assets/InteractivePreview-B0oiPem-.js","/assets/useLastLogLine-Lumm1t01.js"],css:["/assets/InteractivePreview-CMKNK2uU.css"]},"routes/api.generate-scenario-data":{id:"routes/api.generate-scenario-data",parentId:"root",path:"api/generate-scenario-data",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasErrorBoundary:!1,module:"/assets/api.generate-scenario-data-l0sNRNKZ.js",imports:[],css:[]},"routes/api.llm-calls.$entitySha":{id:"routes/api.llm-calls.$entitySha",parentId:"root",path:"api/llm-calls/:entitySha",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasErrorBoundary:!1,module:"/assets/api.llm-calls._entitySha-l0sNRNKZ.js",imports:[],css:[]},"routes/api.branch-entity-diff":{id:"routes/api.branch-entity-diff",parentId:"root",path:"api/branch-entity-diff",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasErrorBoundary:!1,module:"/assets/api.branch-entity-diff-l0sNRNKZ.js",imports:[],css:[]},"routes/api.capture-screenshot":{id:"routes/api.capture-screenshot",parentId:"root",path:"api/capture-screenshot",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasErrorBoundary:!1,module:"/assets/api.capture-screenshot-l0sNRNKZ.js",imports:[],css:[]},"routes/api.recapture-scenario":{id:"routes/api.recapture-scenario",parentId:"root",path:"api/recapture-scenario",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasErrorBoundary:!1,module:"/assets/api.recapture-scenario-l0sNRNKZ.js",imports:[],css:[]},"routes/api.logs.$projectSlug":{id:"routes/api.logs.$projectSlug",parentId:"root",path:"api/logs/:projectSlug",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasErrorBoundary:!1,module:"/assets/api.logs._projectSlug-l0sNRNKZ.js",imports:[],css:[]},"routes/api.execute-function":{id:"routes/api.execute-function",parentId:"root",path:"api/execute-function",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasErrorBoundary:!1,module:"/assets/api.execute-function-l0sNRNKZ.js",imports:[],css:[]},"routes/api.interactive-mode":{id:"routes/api.interactive-mode",parentId:"root",path:"api/interactive-mode",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasErrorBoundary:!1,module:"/assets/api.interactive-mode-l0sNRNKZ.js",imports:[],css:[]},"routes/api.delete-scenario":{id:"routes/api.delete-scenario",parentId:"root",path:"api/delete-scenario",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasErrorBoundary:!1,module:"/assets/api.delete-scenario-l0sNRNKZ.js",imports:[],css:[]},"routes/api.process-status":{id:"routes/api.process-status",parentId:"root",path:"api/process-status",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasErrorBoundary:!1,module:"/assets/api.process-status-l0sNRNKZ.js",imports:[],css:[]},"routes/api.save-scenarios":{id:"routes/api.save-scenarios",parentId:"root",path:"api/save-scenarios",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasErrorBoundary:!1,module:"/assets/api.save-scenarios-l0sNRNKZ.js",imports:[],css:[]},"routes/api.kill-process":{id:"routes/api.kill-process",parentId:"root",path:"api/kill-process",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasErrorBoundary:!1,module:"/assets/api.kill-process-l0sNRNKZ.js",imports:[],css:[]},"routes/api.screenshot.$":{id:"routes/api.screenshot.$",parentId:"root",path:"api/screenshot/*",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasErrorBoundary:!1,module:"/assets/api.screenshot._-l0sNRNKZ.js",imports:[],css:[]},"routes/activity.($tab)":{id:"routes/activity.($tab)",parentId:"root",path:"activity/:tab?",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasErrorBoundary:!1,module:"/assets/activity.(_tab)-CsaMd9mb.js",imports:["/assets/components-Dj-Ggnl2.js","/assets/settings-COJUrwGu.js","/assets/file-text-B6Er7j5k.js","/assets/LogViewer-BKKG1s2B.js","/assets/useLastLogLine-Lumm1t01.js","/assets/ScenarioPreview-5DY-YIxu.js","/assets/chart-column-VXBS6qOn.js","/assets/circle-alert-n5GUC2AS.js","/assets/SafeScreenshot-DU_jxCPD.js","/assets/LibraryFunctionPreview-DqXXjAJ7.js"],css:[]},"routes/api.debug-setup":{id:"routes/api.debug-setup",parentId:"root",path:"api/debug-setup",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasErrorBoundary:!1,module:"/assets/api.debug-setup-l0sNRNKZ.js",imports:[],css:[]},"routes/api.recapture":{id:"routes/api.recapture",parentId:"root",path:"api/recapture",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasErrorBoundary:!1,module:"/assets/api.recapture-l0sNRNKZ.js",imports:[],css:[]},"routes/entity.$sha.$":{id:"routes/entity.$sha.$",parentId:"root",path:"entity/:sha/*",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasErrorBoundary:!1,module:"/assets/entity._sha._-BHiWkb_W.js",imports:["/assets/components-Dj-Ggnl2.js","/assets/useLastLogLine-Lumm1t01.js","/assets/InteractivePreview-B0oiPem-.js","/assets/entityVersioning-Bk_YB1jM.js","/assets/ScenarioPreview-5DY-YIxu.js","/assets/ScenarioViewer-DmjXUj6m.js","/assets/SafeScreenshot-DU_jxCPD.js","/assets/EntityTypeIcon-rqv54FUY.js","/assets/LogViewer-BKKG1s2B.js","/assets/loader-circle-v3c6DFp4.js","/assets/LibraryFunctionPreview-DqXXjAJ7.js","/assets/file-text-B6Er7j5k.js","/assets/circle-alert-n5GUC2AS.js","/assets/chart-column-VXBS6qOn.js"],css:["/assets/InteractivePreview-CMKNK2uU.css"]},"routes/api.analyze":{id:"routes/api.analyze",parentId:"root",path:"api/analyze",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasErrorBoundary:!1,module:"/assets/api.analyze-l0sNRNKZ.js",imports:[],css:[]},"routes/simulations":{id:"routes/simulations",parentId:"root",path:"simulations",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasErrorBoundary:!1,module:"/assets/simulations-CNaMJ-nR.js",imports:["/assets/components-Dj-Ggnl2.js","/assets/SafeScreenshot-DU_jxCPD.js","/assets/entityVersioning-Bk_YB1jM.js","/assets/EntityTypeIcon-rqv54FUY.js","/assets/search-DA14wXpu.js","/assets/file-text-B6Er7j5k.js","/assets/chart-column-VXBS6qOn.js"],css:[]},"routes/api.events":{id:"routes/api.events",parentId:"root",path:"api/events",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasErrorBoundary:!1,module:"/assets/api.events-l0sNRNKZ.js",imports:[],css:[]},"routes/api.memory":{id:"routes/api.memory",parentId:"root",path:"api/memory",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasErrorBoundary:!1,module:"/assets/api.memory-l0sNRNKZ.js",imports:[],css:[]},"routes/api.queue":{id:"routes/api.queue",parentId:"root",path:"api/queue",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasErrorBoundary:!1,module:"/assets/api.queue-l0sNRNKZ.js",imports:[],css:[]},"routes/dev.empty":{id:"routes/dev.empty",parentId:"root",path:"dev/empty",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasErrorBoundary:!1,module:"/assets/dev.empty-BbR3FwNc.js",imports:["/assets/components-Dj-Ggnl2.js","/assets/ScenarioViewer-DmjXUj6m.js","/assets/InteractivePreview-B0oiPem-.js","/assets/LogViewer-BKKG1s2B.js","/assets/SafeScreenshot-DU_jxCPD.js","/assets/useLastLogLine-Lumm1t01.js"],css:["/assets/InteractivePreview-CMKNK2uU.css"]},"routes/settings":{id:"routes/settings",parentId:"root",path:"settings",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasErrorBoundary:!1,module:"/assets/settings-NU_ZquhK.js",imports:["/assets/components-Dj-Ggnl2.js"],css:[]},"routes/static.$":{id:"routes/static.$",parentId:"root",path:"static/*",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasErrorBoundary:!1,module:"/assets/static._-l0sNRNKZ.js",imports:[],css:[]},"routes/_index":{id:"routes/_index",parentId:"root",path:void 0,index:!0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasErrorBoundary:!1,module:"/assets/_index-DvSrcxsk.js",imports:["/assets/components-Dj-Ggnl2.js","/assets/useLastLogLine-Lumm1t01.js","/assets/useToast-BRShB17p.js","/assets/LogViewer-BKKG1s2B.js","/assets/EntityTypeIcon-rqv54FUY.js","/assets/SafeScreenshot-DU_jxCPD.js","/assets/file-text-B6Er7j5k.js","/assets/settings-COJUrwGu.js","/assets/zap-BvukH0eN.js","/assets/loader-circle-v3c6DFp4.js","/assets/chart-column-VXBS6qOn.js"],css:[]},"routes/files":{id:"routes/files",parentId:"root",path:"files",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasErrorBoundary:!1,module:"/assets/files-KcDVw1FY.js",imports:["/assets/components-Dj-Ggnl2.js","/assets/EntityTypeIcon-rqv54FUY.js","/assets/entityVersioning-Bk_YB1jM.js","/assets/LibraryFunctionPreview-DqXXjAJ7.js","/assets/SafeScreenshot-DU_jxCPD.js","/assets/loader-circle-v3c6DFp4.js","/assets/clock-DKqtX8js.js","/assets/search-DA14wXpu.js","/assets/file-text-B6Er7j5k.js","/assets/chart-column-VXBS6qOn.js"],css:[]},"routes/git":{id:"routes/git",parentId:"root",path:"git",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasErrorBoundary:!1,module:"/assets/git-B9uZ8eSJ.js",imports:["/assets/components-Dj-Ggnl2.js","/assets/useLastLogLine-Lumm1t01.js","/assets/useToast-BRShB17p.js","/assets/LogViewer-BKKG1s2B.js","/assets/EntityTypeIcon-rqv54FUY.js","/assets/entityVersioning-Bk_YB1jM.js","/assets/file-text-B6Er7j5k.js","/assets/zap-BvukH0eN.js","/assets/circle-alert-n5GUC2AS.js","/assets/SafeScreenshot-DU_jxCPD.js","/assets/chart-column-VXBS6qOn.js"],css:[]}},url:"/assets/manifest-fca08d7e.js",version:"fca08d7e"},um="production",mm="build/client",hm="/",pm={v3_fetcherPersist:!1,v3_relativeSplatPath:!1,v3_throwAbortReason:!1,v3_routeConfig:!1,v3_singleFetch:!1,v3_lazyRouteDiscovery:!1,unstable_optimizeDeps:!1},fm=!1,gm="/",ym={module:vs},xm={root:{id:"root",parentId:void 0,path:"",index:void 0,caseSensitive:void 0,module:qo},"routes/entity.$sha_.edit.$scenarioId":{id:"routes/entity.$sha_.edit.$scenarioId",parentId:"root",path:"entity/:sha/edit/:scenarioId",index:void 0,caseSensitive:void 0,module:mi},"routes/entity.$sha_.create-scenario":{id:"routes/entity.$sha_.create-scenario",parentId:"root",path:"entity/:sha/create-scenario",index:void 0,caseSensitive:void 0,module:yi},"routes/api.generate-scenario-data":{id:"routes/api.generate-scenario-data",parentId:"root",path:"api/generate-scenario-data",index:void 0,caseSensitive:void 0,module:tl},"routes/api.llm-calls.$entitySha":{id:"routes/api.llm-calls.$entitySha",parentId:"root",path:"api/llm-calls/:entitySha",index:void 0,caseSensitive:void 0,module:al},"routes/api.branch-entity-diff":{id:"routes/api.branch-entity-diff",parentId:"root",path:"api/branch-entity-diff",index:void 0,caseSensitive:void 0,module:Nl},"routes/api.capture-screenshot":{id:"routes/api.capture-screenshot",parentId:"root",path:"api/capture-screenshot",index:void 0,caseSensitive:void 0,module:El},"routes/api.recapture-scenario":{id:"routes/api.recapture-scenario",parentId:"root",path:"api/recapture-scenario",index:void 0,caseSensitive:void 0,module:dc},"routes/api.logs.$projectSlug":{id:"routes/api.logs.$projectSlug",parentId:"root",path:"api/logs/:projectSlug",index:void 0,caseSensitive:void 0,module:hc},"routes/api.execute-function":{id:"routes/api.execute-function",parentId:"root",path:"api/execute-function",index:void 0,caseSensitive:void 0,module:gc},"routes/api.interactive-mode":{id:"routes/api.interactive-mode",parentId:"root",path:"api/interactive-mode",index:void 0,caseSensitive:void 0,module:bc},"routes/api.delete-scenario":{id:"routes/api.delete-scenario",parentId:"root",path:"api/delete-scenario",index:void 0,caseSensitive:void 0,module:wc},"routes/api.process-status":{id:"routes/api.process-status",parentId:"root",path:"api/process-status",index:void 0,caseSensitive:void 0,module:Ec},"routes/api.save-scenarios":{id:"routes/api.save-scenarios",parentId:"root",path:"api/save-scenarios",index:void 0,caseSensitive:void 0,module:_c},"routes/api.kill-process":{id:"routes/api.kill-process",parentId:"root",path:"api/kill-process",index:void 0,caseSensitive:void 0,module:Tc},"routes/api.screenshot.$":{id:"routes/api.screenshot.$",parentId:"root",path:"api/screenshot/*",index:void 0,caseSensitive:void 0,module:Ic},"routes/activity.($tab)":{id:"routes/activity.($tab)",parentId:"root",path:"activity/:tab?",index:void 0,caseSensitive:void 0,module:zc},"routes/api.debug-setup":{id:"routes/api.debug-setup",parentId:"root",path:"api/debug-setup",index:void 0,caseSensitive:void 0,module:qc},"routes/api.recapture":{id:"routes/api.recapture",parentId:"root",path:"api/recapture",index:void 0,caseSensitive:void 0,module:Hc},"routes/entity.$sha.$":{id:"routes/entity.$sha.$",parentId:"root",path:"entity/:sha/*",index:void 0,caseSensitive:void 0,module:fd},"routes/api.analyze":{id:"routes/api.analyze",parentId:"root",path:"api/analyze",index:void 0,caseSensitive:void 0,module:xd},"routes/simulations":{id:"routes/simulations",parentId:"root",path:"simulations",index:void 0,caseSensitive:void 0,module:Ad},"routes/api.events":{id:"routes/api.events",parentId:"root",path:"api/events",index:void 0,caseSensitive:void 0,module:Pd},"routes/api.memory":{id:"routes/api.memory",parentId:"root",path:"api/memory",index:void 0,caseSensitive:void 0,module:Rd},"routes/api.queue":{id:"routes/api.queue",parentId:"root",path:"api/queue",index:void 0,caseSensitive:void 0,module:Dd},"routes/dev.empty":{id:"routes/dev.empty",parentId:"root",path:"dev/empty",index:void 0,caseSensitive:void 0,module:Yd},"routes/settings":{id:"routes/settings",parentId:"root",path:"settings",index:void 0,caseSensitive:void 0,module:Hd},"routes/static.$":{id:"routes/static.$",parentId:"root",path:"static/*",index:void 0,caseSensitive:void 0,module:Kd},"routes/_index":{id:"routes/_index",parentId:"root",path:void 0,index:!0,caseSensitive:void 0,module:tu},"routes/files":{id:"routes/files",parentId:"root",path:"files",index:void 0,caseSensitive:void 0,module:iu},"routes/git":{id:"routes/git",parentId:"root",path:"git",index:void 0,caseSensitive:void 0,module:Nu}};export{No as A,wo as B,ce as C,Vs as D,Js as E,We as F,Ls as G,Dr as H,Fs as I,Lr as J,Us as K,Gs as L,um as M,mm as N,hm as O,js as P,pm as Q,fm as R,kn as S,gm as T,ym as U,xm as V,dm as W,ks as a,et as b,He as c,$e as d,gt as e,_n as f,Pn as g,jr as h,Ps as i,ro as j,ao as k,ht as l,Fe as m,Fr as n,ho as o,Ot as p,tt as q,zr as r,Br as s,xo as t,Ze as u,Ur as v,xt as w,bo as x,Vn as y,Eo as z};
|