[ { "language": ".kt", "conventions": [ { "label": "agents", "method_count": 5, "algorithm": "CRX", "grammar": "root ::= \"slot\"? (\"defaultCapabilityId\" | \"summarize\")? \"ToolInvocationRequest\"? \"ToolingRequest\"? \"ToolInvocationResult\"? (\"String\" | \"answer\" | \"any\" | \"assertEquals\" | \"capture\" | \"captured\" | \"every\" | \"generateText\" | \"invoke\" | \"invokeTools\" | \"promptRunner\" | \"toolProfile\" | \"verify\")?+ \"prompt\"? \"contains\"?+", "mdl_score": 166096541809116106667162618272, "imports": [ "import eu.corentic.springrag.agent.capability.AgentCapabilityHandler", "import eu.corentic.springrag.agent.capability.AgentCapabilityInvocationGateway", "import com.embabel.agent.api.common.ActionContext", "import com.embabel.agent.api.common.PromptRunner", "import eu.corentic.springrag.agent.tooling.embabel.DEFAULT_TOOL_PROFILE", "import eu.corentic.springrag.agent.tooling.embabel.ToolInvocationAction", "import eu.corentic.springrag.agent.tooling.embabel.ToolInvocationRequest", "import eu.corentic.springrag.agent.tooling.embabel.ToolInvocationResult", "import io.mockk.every", "import io.mockk.mockk", "import io.mockk.slot", "import io.mockk.verify", "import kotlin.test.assertEquals", "import org.junit.jupiter.api.Test" ], "arg_patterns": {} }, { "label": "agents/capability/ports/src/main/kotlin/eu/corentic/springrag/agent/capability", "method_count": 5, "algorithm": "CRX", "grammar": "root ::= \"listCapabilities\"? \"AgentExecutionContext\"? \"DescribedAgentCapability\"? \"firstOrNull\"?+ \"TransportExposedAgentCapability\"? \"id\"? \"return AgentCapabilityDescriptor(\n id = id,\n capabilityType = capabilityType,\n displayName = describedCapability?.displayName ?: id,\n description = describedCapability?.description,\n exposedOverHttp = exposedCapability?.exposedOverHttp ?: false,\n exposedOverMcp = exposedCapability?.exposedOverMcp ?: false\n )\"? \"AgentCapabilityDescriptor\"? \"displayName\"? \"description\"? \"exposedOverHttp\"? \"exposedOverMcp\"?", "mdl_score": 2051, "imports": [], "arg_patterns": {} }, { "label": "agents/capability/support/src/main/kotlin/eu/corentic/springrag/agent/capability/support", "method_count": 5, "imports": [ "import eu.corentic.springrag.agent.capability.AgentCapabilityDirectory", "import eu.corentic.springrag.agent.capability.AgentCapabilityRegistry", "import kotlinx.coroutines.CoroutineDispatcher", "import kotlinx.coroutines.asCoroutineDispatcher", "import org.springframework.context.annotation.Bean", "import org.springframework.context.annotation.Configuration", "import java.util.concurrent.Executors", "import eu.corentic.springrag.agent.capability.AgentCapabilityDescriptor", "import eu.corentic.springrag.agent.capability.AgentCapabilityHandler", "import eu.corentic.springrag.agent.capability.AgentCapabilityInvocationAuthorizer", "import eu.corentic.springrag.agent.capability.AgentCapabilityInvocationGateway", "import eu.corentic.springrag.agent.capability.AgentCapabilityResolver" ], "arg_patterns": {} }, { "label": "agents/capability/support/src/test/kotlin/eu/corentic/springrag/agent/capability/support", "method_count": 6, "algorithm": "CRX", "grammar": "root ::= \"runTest\"? \"TestRequest\"? (\"AgentCapabilityDescriptor\" | \"DefaultAgentCapabilityDirectory\" | \"IllegalStateException\" | \"assertEquals\" | \"assertFailsWith\" | \"authorize\" | \"capabilityDescriptors\" | \"coEvery\" | \"coVerify\" | \"defaultCapabilityId\" | \"every\" | \"id\" | \"invoke\" | \"listOf\" | \"message\" | \"resolve\" | \"verify\")+ (\"any\" | \"listCapabilities\")?+", "mdl_score": 1000000000000000000000000000000, "imports": [ "import eu.corentic.springrag.agent.capability.AgentCapabilityDescriptor", "import eu.corentic.springrag.agent.capability.AgentCapabilityRegistry", "import io.mockk.every", "import io.mockk.mockk", "import org.junit.jupiter.api.Assertions.assertEquals", "import org.junit.jupiter.api.Test", "import eu.corentic.springrag.agent.capability.AgentCapabilityHandler", "import eu.corentic.springrag.agent.capability.AgentCapabilityInvocationAuthorizer", "import eu.corentic.springrag.agent.capability.AgentCapabilityResolver", "import io.mockk.coEvery", "import io.mockk.coVerify", "import io.mockk.verify", "import kotlinx.coroutines.test.runTest", "import kotlin.test.Test", "import kotlin.test.assertEquals", "import kotlin.test.assertFailsWith" ], "arg_patterns": {} }, { "label": "agents/examples/simple-rag/src/main/kotlin/eu/corentic/springrag/example/rag/simple", "method_count": 9, "imports": [ "import eu.corentic.springrag.model.VectorChunk", "import org.slf4j.LoggerFactory", "import org.springframework.ai.chat.client.ChatClient", "import tools.jackson.databind.ObjectMapper", "import eu.corentic.springrag.agent.rag.RagAgent", "import eu.corentic.springrag.agent.rag.RagRequest", "import eu.corentic.springrag.agent.capability.AgentExecutionContext", "import eu.corentic.springrag.agent.rag.support.RagDocumentSupport", "import eu.corentic.springrag.model.ChatResponse", "import eu.corentic.springrag.service.port.ChatGraphLookupPort", "import eu.corentic.springrag.service.port.RetrievalPort", "import kotlinx.coroutines.CoroutineDispatcher", "import kotlinx.coroutines.withContext", "import io.github.oshai.kotlinlogging.KotlinLogging" ], "arg_patterns": {} }, { "label": "agents/examples/simple-rag/src/test/kotlin/eu/corentic/springrag/example/rag/simple", "method_count": 14, "imports": [ "import eu.corentic.springrag.model.VectorChunk", "import io.mockk.every", "import io.mockk.mockk", "import io.mockk.slot", "import kotlinx.coroutines.test.runTest", "import org.junit.jupiter.api.Assertions.assertEquals", "import org.junit.jupiter.api.Test", "import org.springframework.ai.chat.client.ChatClient", "import org.springframework.ai.chat.client.ChatClient.CallResponseSpec", "import org.springframework.ai.chat.client.ChatClient.ChatClientRequestSpec", "import eu.corentic.springrag.agent.rag.RagAgent", "import eu.corentic.springrag.agent.rag.RagRequest", "import eu.corentic.springrag.common.ids.asKnowledgeBaseId", "import eu.corentic.springrag.service.port.ChatGraphLookupPort", "import eu.corentic.springrag.service.port.RetrievalPort", "import io.mockk.coEvery", "import io.mockk.coVerify", "import io.mockk.verify", "import kotlinx.coroutines.test.StandardTestDispatcher", "import org.junit.jupiter.api.Assertions.assertTrue", "import io.mockk.clearAllMocks", "import org.junit.jupiter.api.AfterEach", "import org.junit.jupiter.api.Assertions.assertFalse", "import tools.jackson.databind.json.JsonMapper", "import tools.jackson.module.kotlin.KotlinModule" ], "arg_patterns": {} }, { "label": "agents/rag/embabel/src/main/kotlin/eu/corentic/springrag/agent/rag/embabel", "method_count": 58, "algorithm": "CRX", "grammar": "root ::= \"shouldRetrieve\"? \"buildObservationContext\"? (\"ASK\" | \"ChatResponse\" | \"EmbabelJudgeDecision\" | \"Exception\" | \"JudgeOutcome\" | \"ResponseDraft\" | \"RetrievedEvidence\" | \"String\" | \"WORKFLOW_ORIGIN_CAPABILITY_KEY\" | \"WORKFLOW_TRANSPORT_KEY\" | \"advisors\" | \"agent\" | \"agents\" | \"allowAsk\" | \"allowRetrieve\" | \"applyRetrieveCost\" | \"askCost\" | \"asksSoFar\" | \"budgetRemaining\" | \"build\" | \"builder\" | \"call\" | \"canAffordRetrieve\" | \"catch\" | \"chatOptions\" | \"confidence\" | \"consumeBudget\" | \"contains\" | \"content\" | \"conversationId\" | \"copy\" | \"debug\" | \"decision\" | \"decisionState\" | \"docs\" | \"draftAnswer\" | \"else\" | \"emptyList\" | \"enoughEvidence\" | \"entity\" | \"equals\" | \"error\" | \"evidence\" | \"expandContext\" | \"find\" | \"get\" | \"if\" | \"ifBlank\" | \"info\" | \"invoke\" | \"isEmpty\" | \"isNotBlank\" | \"isNotEmpty\" | \"isNullOrBlank\" | \"java\" | \"joinToString\" | \"knowledgeBaseId\" | \"length\" | \"let\" | \"lowercase\" | \"maxRetrievalRounds\" | \"memoryContext\" | \"message\" | \"name\" | \"nextAction\" | \"of\" | \"options\" | \"orEmpty\" | \"originCapabilityId\" | \"param\" | \"prompt\" | \"promptClient\" | \"refinedQuery\" | \"removePrefix\" | \"removeSuffix\" | \"request\" | \"resultOfType\" | \"retrievalRounds\" | \"retrieve\" | \"retrieveCost\" | \"return false\" | \"return null\" | \"return this\" | \"return true\" | \"run\" | \"runWithCircuitBreaker\" | \"simpleName\" | \"size\" | \"system\" | \"take\" | \"takeIf\" | \"text\" | \"transport\" | \"trim\" | \"trimIndent\" | \"try\" | \"user\" | \"warn\" | \"withConversationId\" | \"withObservationContext\" | \"withWorkflowStep\")?+ \"map\"?+ \"hasDefaultKb\"? \"coerceIn\"?+", "mdl_score": 1000000000000000000000000000000, "imports": [ "import com.fasterxml.jackson.databind.ObjectMapper", "import org.springframework.context.annotation.Bean", "import org.springframework.context.annotation.Configuration", "import com.embabel.agent.api.invocation.AgentInvocation", "import com.embabel.agent.core.AgentPlatform", "import com.embabel.agent.core.resultOfType", "import com.embabel.agent.core.Identities", "import com.embabel.agent.core.ProcessOptions", "import com.embabel.agent.core.support.InMemoryBlackboard", "import eu.corentic.springrag.agent.capability.AgentExecutionContext", "import eu.corentic.springrag.agent.capability.DescribedAgentCapability", "import eu.corentic.springrag.agent.capability.TransportExposedAgentCapability", "import eu.corentic.springrag.agent.rag.RagAgent", "import eu.corentic.springrag.agent.rag.RagInvocation", "import eu.corentic.springrag.agent.rag.RagRequest", "import eu.corentic.springrag.model.ChatResponse", "import kotlinx.coroutines.CoroutineDispatcher", "import kotlinx.coroutines.withContext", "import org.springframework.beans.factory.annotation.Value", "import org.springframework.stereotype.Component", "import org.springframework.stereotype.Service", "import kotlin.math.max", "import eu.corentic.springrag.agent.rag.support.RagDocumentSupport", "import eu.corentic.springrag.model.Source", "import eu.corentic.springrag.model.VectorChunk", "import eu.corentic.springrag.service.port.ChatGraphLookupPort", "import eu.corentic.springrag.service.port.RetrievalPort", "import io.github.oshai.kotlinlogging.KotlinLogging", "import org.springframework.ai.chat.memory.ChatMemory", "import com.embabel.agent.api.annotation.AchievesGoal", "import com.embabel.agent.api.annotation.Action", "import com.embabel.agent.api.annotation.Agent", "import com.embabel.agent.api.annotation.Condition", "import com.embabel.agent.api.common.ActionContext", "import com.embabel.agent.domain.io.UserInput", "import eu.corentic.springrag.agent.summarizer.SummarizeRequest", "import eu.corentic.springrag.common.ids.KnowledgeBaseId", "import eu.corentic.springrag.service.knowledgebase.KnowledgeBaseQueryPort", "import io.micrometer.common.KeyValue", "import io.micrometer.common.KeyValues", "import org.springframework.ai.chat.client.observation.ChatClientObservationContext", "import org.springframework.ai.chat.client.observation.DefaultChatClientObservationConvention", "import io.micrometer.observation.ObservationRegistry", "import java.util.function.Supplier", "import org.springframework.ai.chat.client.ChatClient", "import org.springframework.ai.chat.model.ChatModel", "import org.springframework.ai.chat.client.advisor.PromptChatMemoryAdvisor", "import org.springframework.ai.chat.prompt.ChatOptions", "import org.springframework.cloud.client.circuitbreaker.CircuitBreakerFactory" ], "arg_patterns": {} }, { "label": "agents/rag/embabel/src/main/kotlin/eu/corentic/springrag/agent/rag/embabel/librechat", "method_count": 13, "imports": [ "import com.embabel.agent.api.annotation.AchievesGoal", "import com.embabel.agent.api.annotation.Action", "import com.embabel.agent.api.annotation.Agent", "import com.embabel.agent.api.annotation.Condition", "import com.embabel.agent.api.common.ActionContext", "import eu.corentic.springrag.agent.rag.RagRequest", "import eu.corentic.springrag.agent.rag.embabel.ConversationMemoryContext", "import eu.corentic.springrag.agent.rag.embabel.EmbabelJudgeDecision", "import eu.corentic.springrag.agent.rag.embabel.EmbabelRagDecisionPolicy", "import eu.corentic.springrag.agent.rag.embabel.EmbabelWorkflowObservationContext", "import eu.corentic.springrag.agent.rag.embabel.EmbabelWorkflowObservationConvention", "import eu.corentic.springrag.agent.rag.embabel.EmbabelWorkflowPromptService", "import eu.corentic.springrag.agent.rag.embabel.JudgeOutcome", "import eu.corentic.springrag.agent.rag.embabel.RagDecisionState", "import eu.corentic.springrag.agent.rag.embabel.RetrievedEvidence", "import eu.corentic.springrag.agent.rag.librechat.LibreChatRetrievalRequest", "import eu.corentic.springrag.agent.rag.librechat.LibreChatRetrievalResult", "import eu.corentic.springrag.agent.rag.support.RagDocumentSupport", "import eu.corentic.springrag.model.VectorChunk", "import eu.corentic.springrag.common.ids.JobId", "import eu.corentic.springrag.common.ids.KnowledgeBaseId", "import eu.corentic.springrag.service.port.ChatGraphLookupPort", "import eu.corentic.springrag.service.port.RetrievalPort", "import eu.corentic.springrag.service.port.VectorDocumentPort", "import io.github.oshai.kotlinlogging.KotlinLogging", "import org.springframework.stereotype.Service", "import com.embabel.agent.core.AgentPlatform", "import com.embabel.agent.core.Identities", "import com.embabel.agent.core.ProcessOptions", "import com.embabel.agent.core.resultOfType", "import com.embabel.agent.core.support.InMemoryBlackboard", "import eu.corentic.springrag.agent.rag.librechat.LibreChatRetrievalInvoker", "import org.springframework.beans.factory.annotation.Value", "import org.springframework.stereotype.Component" ], "arg_patterns": {} }, { "label": "agents/rag/embabel/src/test/kotlin/eu/corentic/springrag/agent/rag/embabel", "method_count": 36, "algorithm": "CRX", "grammar": "root ::= \"unmockkAll\"? \"removeFirst\"?+ \"messageWindowMemory\"? (\"mockkObject\" | \"runTest\")? \"return ChatResponse(listOf(Generation(AssistantMessage(content))))\"? \"add\"?+ (\"ASSISTANT\" | \"Agent\" | \"AgentProcess\" | \"AssistantMessage\" | \"ChatGraphLookupPort\" | \"ChatResponse\" | \"Companion\" | \"ConversationMemoryContext\" | \"DEFAULT_CONVERSATION_ID\" | \"DefaultEmbabelRagResponseInvoker\" | \"DirectAnswerDecision\" | \"EmbabelJudgeDecision\" | \"EmbabelLibreChatRetrievalAgent\" | \"EmbabelPlatformRagAgent\" | \"EmbabelRagDecisionPolicy\" | \"EmbabelRagWorkflowAgentProperties\" | \"EmbabelWorkflowObservationContext\" | \"EmbabelWorkflowObservationConvention\" | \"EmbabelWorkflowPromptService\" | \"Generation\" | \"InMemoryChatMemoryRepository\" | \"JudgeOutcome\" | \"LibreChatRetrievalRequest\" | \"NOOP\" | \"NoOpCircuitBreakerFactory\" | \"PageTextElement\" | \"ProcessOptions\" | \"Prompt\" | \"RagDecisionState\" | \"RagInvocation\" | \"RagRequest\" | \"RecordingChatModel\" | \"RetrievalPort\" | \"RetrievalQueryDraft\" | \"RetrievedEvidence\" | \"SpringAiEmbabelWorkflowPromptService\" | \"USER\" | \"UserMessage\" | \"VectorChunk\" | \"VectorDocumentPort\" | \"WORKFLOW_ORIGIN_CAPABILITY_KEY\" | \"WORKFLOW_STEP_KEY\" | \"WORKFLOW_TRANSPORT_KEY\" | \"advisors\" | \"agents\" | \"answer\" | \"any\" | \"anyMatch\" | \"applyRetrieveCost\" | \"asKnowledgeBaseId\" | \"assertEquals\" | \"assertNull\" | \"assertTrue\" | \"availableKnowledgeBases\" | \"blackboard\" | \"build\" | \"builder\" | \"capture\" | \"captured\" | \"chatMemoryRepository\" | \"checkKnowledgeBase\" | \"contains\" | \"context\" | \"contextId\" | \"conversationId\" | \"copy\" | \"createAgentProcessFrom\" | \"decision\" | \"decisionState\" | \"docs\" | \"draftAnswer\" | \"draftClarification\" | \"emptyList\" | \"enoughEvidence\" | \"every\" | \"executionContext\" | \"findExpandedTableMarkdown\" | \"findTextOnSamePage\" | \"first\" | \"get\" | \"getLowCardinalityKeyValues\" | \"hasDefaultKb\" | \"http\" | \"invoke\" | \"isEmpty\" | \"java\" | \"judgeDecision\" | \"judgeEvidence\" | \"key\" | \"knowledgeBaseId\" | \"last\" | \"listKnowledgeBases\" | \"listOf\" | \"mapOf\" | \"maxMessages\" | \"message\" | \"messageType\" | \"mockk\" | \"name\" | \"nextAction\" | \"normalize\" | \"of\" | \"options\" | \"orEmpty\" | \"outcome\" | \"prompt\" | \"prompts\" | \"query\" | \"request\" | \"requireNotNull\" | \"resultOfType\" | \"retrievalRounds\" | \"retrieveInitialEvidence\" | \"retrieveMoreEvidence\" | \"run\" | \"searchByJobIds\" | \"searchSimilar\" | \"single\" | \"size\" | \"slot\" | \"stream\" | \"systemMessage\" | \"text\" | \"userMessage\" | \"value\" | \"verify\")?+", "mdl_score": 1000000000000000000000000000000, "imports": [ "import com.embabel.agent.api.invocation.AgentInvocation", "import com.embabel.agent.core.Agent", "import com.embabel.agent.core.AgentPlatform", "import com.embabel.agent.core.AgentProcess", "import com.embabel.agent.core.ProcessOptions", "import eu.corentic.springrag.agent.capability.AgentExecutionContext", "import eu.corentic.springrag.agent.rag.RagInvocation", "import eu.corentic.springrag.agent.rag.RagRequest", "import eu.corentic.springrag.common.ids.asKnowledgeBaseId", "import eu.corentic.springrag.model.ChatResponse", "import io.mockk.every", "import io.mockk.mockk", "import io.mockk.mockkObject", "import io.mockk.slot", "import io.mockk.unmockkAll", "import io.mockk.verify", "import org.junit.jupiter.api.AfterEach", "import org.junit.jupiter.api.Assertions.assertEquals", "import org.junit.jupiter.api.Assertions.assertNull", "import org.junit.jupiter.api.Test", "import kotlinx.coroutines.test.StandardTestDispatcher", "import kotlinx.coroutines.test.runTest", "import eu.corentic.springrag.model.PageTextElement", "import eu.corentic.springrag.model.VectorChunk", "import eu.corentic.springrag.service.port.ChatGraphLookupPort", "import eu.corentic.springrag.service.port.RetrievalPort", "import org.junit.jupiter.api.Assertions.assertTrue", "import org.springframework.ai.chat.memory.ChatMemory", "import eu.corentic.springrag.common.ids.KnowledgeBaseId", "import eu.corentic.springrag.service.knowledgebase.KnowledgeBaseListItem", "import eu.corentic.springrag.service.knowledgebase.KnowledgeBaseQueryPort", "import org.springframework.ai.chat.client.ChatClientRequest", "import org.springframework.ai.chat.client.observation.ChatClientObservationContext", "import org.springframework.ai.chat.prompt.Prompt", "import eu.corentic.springrag.testsupport.NoOpCircuitBreakerFactory", "import io.micrometer.observation.ObservationRegistry", "import org.springframework.ai.chat.memory.InMemoryChatMemoryRepository", "import org.springframework.ai.chat.memory.MessageWindowChatMemory", "import org.springframework.ai.chat.messages.AssistantMessage", "import org.springframework.ai.chat.messages.MessageType", "import org.springframework.ai.chat.messages.UserMessage", "import org.springframework.ai.chat.model.ChatModel", "import org.springframework.ai.chat.model.ChatResponse", "import org.springframework.ai.chat.model.Generation", "import eu.corentic.springrag.agent.rag.embabel.EmbabelJudgeDecision", "import eu.corentic.springrag.agent.rag.embabel.EmbabelRagDecisionPolicy", "import eu.corentic.springrag.agent.rag.embabel.EmbabelRagWorkflowAgentProperties", "import eu.corentic.springrag.agent.rag.embabel.EmbabelWorkflowPromptService", "import eu.corentic.springrag.common.ids.JobId", "import eu.corentic.springrag.agent.rag.librechat.LibreChatRetrievalRequest", "import eu.corentic.springrag.service.port.VectorDocumentPort" ], "arg_patterns": {} }, { "label": "agents/rag/embabel/src/test/kotlin/eu/corentic/springrag/testsupport", "method_count": 3, "imports": [ "import java.util.function.Function", "import java.util.function.Supplier", "import org.springframework.cloud.client.circuitbreaker.CircuitBreaker", "import org.springframework.cloud.client.circuitbreaker.CircuitBreakerFactory", "import org.springframework.cloud.client.circuitbreaker.ConfigBuilder" ], "arg_patterns": {} }, { "label": "agents/rag/ports/src/main/kotlin/eu/corentic/springrag/agent/rag", "method_count": 4, "imports": [ "import eu.corentic.springrag.agent.capability.AgentCapability", "import eu.corentic.springrag.agent.capability.AgentCapabilityHandler", "import eu.corentic.springrag.agent.capability.AgentExecutionContext", "import eu.corentic.springrag.common.ids.KnowledgeBaseId", "import eu.corentic.springrag.model.ChatResponse", "import eu.corentic.springrag.agent.capability.AgentCapabilityInvocationGateway" ], "arg_patterns": {} }, { "label": "agents/rag/ports/src/test/kotlin/eu/corentic/springrag/agent/rag", "method_count": 3, "imports": [ "import eu.corentic.springrag.agent.capability.AgentExecutionContext", "import eu.corentic.springrag.common.ids.asKnowledgeBaseId", "import eu.corentic.springrag.model.ChatResponse", "import kotlinx.coroutines.test.runTest", "import org.junit.jupiter.api.Assertions.assertEquals", "import org.junit.jupiter.api.Test" ], "arg_patterns": {} }, { "label": "agents/rag/ports/src/test/kotlin/eu/corentic/springrag/model", "method_count": 3, "imports": [ "import org.junit.jupiter.api.Assertions.assertTrue", "import org.junit.jupiter.api.Test" ], "arg_patterns": {} }, { "label": "agents/rag/support/src/main/kotlin/eu/corentic/springrag/agent/rag/support", "method_count": 13, "imports": [ "import eu.corentic.springrag.agent.capability.AgentCapabilityDescriptor", "import eu.corentic.springrag.agent.capability.toDescriptor", "import eu.corentic.springrag.agent.rag.RagAgent", "import eu.corentic.springrag.agent.rag.RagAgentRegistry", "import org.springframework.stereotype.Component", "import eu.corentic.springrag.common.ids.KnowledgeBaseId", "import eu.corentic.springrag.model.Source", "import eu.corentic.springrag.model.VectorChunk", "import eu.corentic.springrag.service.port.ChatGraphLookupPort", "import eu.corentic.springrag.service.port.RetrievalPort", "import io.github.oshai.kotlinlogging.KotlinLogging" ], "arg_patterns": {} }, { "label": "agents/rag/support/src/test/kotlin/eu/corentic/springrag/agent/rag/support", "method_count": 11, "imports": [ "import eu.corentic.springrag.agent.capability.AgentExecutionContext", "import eu.corentic.springrag.agent.rag.RagAgent", "import eu.corentic.springrag.agent.rag.RagAgentInvocationAuthorizer", "import eu.corentic.springrag.agent.rag.RagInvocation", "import eu.corentic.springrag.agent.rag.RagAgentRegistry", "import eu.corentic.springrag.agent.rag.RagRequest", "import eu.corentic.springrag.common.ids.asKnowledgeBaseId", "import eu.corentic.springrag.model.ChatResponse", "import io.mockk.coEvery", "import io.mockk.coVerify", "import io.mockk.every", "import io.mockk.mockk", "import io.mockk.verify", "import kotlinx.coroutines.test.runTest", "import org.junit.jupiter.api.Assertions.assertEquals", "import org.junit.jupiter.api.Test", "import eu.corentic.springrag.agent.capability.AgentCapabilityDescriptor", "import eu.corentic.springrag.agent.capability.DescribedAgentCapability", "import eu.corentic.springrag.agent.capability.TransportExposedAgentCapability", "import org.junit.jupiter.api.Assertions.assertThrows", "import org.junit.jupiter.api.Assertions.assertDoesNotThrow", "import eu.corentic.springrag.model.PageTextElement", "import eu.corentic.springrag.model.SourceImage", "import eu.corentic.springrag.model.VectorChunk", "import eu.corentic.springrag.service.port.ChatGraphLookupPort", "import eu.corentic.springrag.service.port.RetrievalPort", "import kotlin.test.Test", "import kotlin.test.assertEquals", "import kotlin.test.assertTrue" ], "arg_patterns": {} }, { "label": "agents/summarizer/embabel/src/main/kotlin/eu/corentic/springrag/agent/summarizer/embabel", "method_count": 13, "imports": [ "import eu.corentic.springrag.agent.capability.AgentCapabilityDescriptor", "import eu.corentic.springrag.agent.capability.toDescriptor", "import eu.corentic.springrag.agent.summarizer.SummarizerAgent", "import eu.corentic.springrag.agent.summarizer.SummarizerAgentRegistry", "import org.springframework.stereotype.Component", "import com.embabel.agent.api.invocation.AgentInvocation", "import com.embabel.agent.core.AgentPlatform", "import com.embabel.agent.core.Identities", "import com.embabel.agent.core.ProcessOptions", "import eu.corentic.springrag.agent.capability.DescribedAgentCapability", "import eu.corentic.springrag.agent.capability.TransportExposedAgentCapability", "import eu.corentic.springrag.agent.summarizer.SummarizeRequest", "import eu.corentic.springrag.agent.summarizer.SummaryResponse", "import kotlinx.coroutines.CoroutineDispatcher", "import kotlinx.coroutines.Dispatchers", "import kotlinx.coroutines.withContext", "import org.springframework.stereotype.Service", "import com.embabel.agent.api.annotation.AchievesGoal", "import com.embabel.agent.api.annotation.Action", "import com.embabel.agent.api.annotation.Agent", "import com.embabel.agent.api.common.ActionContext", "import com.embabel.agent.domain.io.UserInput", "import com.embabel.common.ai.model.LlmOptions", "import eu.corentic.springrag.agent.tooling.embabel.DEFAULT_TOOL_PROFILE", "import eu.corentic.springrag.agent.tooling.embabel.ToolInvocationAction", "import eu.corentic.springrag.agent.tooling.embabel.ToolInvocationRequest", "import org.springframework.beans.factory.annotation.Value", "import eu.corentic.springrag.agent.summarizer.SummarizerInvocationAuthorizer", "import io.github.oshai.kotlinlogging.KotlinLogging" ], "arg_patterns": {} }, { "label": "agents/summarizer/embabel/src/test/kotlin/eu/corentic/springrag/agent/summarizer/embabel", "method_count": 14, "imports": [ "import com.embabel.agent.api.invocation.AgentInvocation", "import com.embabel.agent.core.AgentPlatform", "import com.embabel.agent.core.ProcessOptions", "import eu.corentic.springrag.agent.capability.AgentExecutionContext", "import eu.corentic.springrag.agent.summarizer.SummarizeRequest", "import eu.corentic.springrag.agent.summarizer.SummaryResponse", "import io.mockk.every", "import io.mockk.mockk", "import io.mockk.mockkObject", "import io.mockk.slot", "import io.mockk.unmockkAll", "import io.mockk.verify", "import org.junit.jupiter.api.AfterEach", "import org.junit.jupiter.api.Assertions.assertEquals", "import org.junit.jupiter.api.Assertions.assertNull", "import org.junit.jupiter.api.Test", "import eu.corentic.springrag.agent.capability.AgentCapabilityDescriptor", "import eu.corentic.springrag.agent.summarizer.SummarizerAgent", "import org.junit.jupiter.api.Assertions.assertThrows", "import eu.corentic.springrag.agent.summarizer.SummarizerInvocationAuthorizer", "import io.mockk.coEvery", "import io.mockk.coVerify", "import kotlinx.coroutines.test.runTest", "import kotlinx.coroutines.test.StandardTestDispatcher", "import com.embabel.agent.api.common.ActionContext", "import com.embabel.agent.api.common.Ai", "import com.embabel.agent.api.common.PromptRunner", "import com.embabel.common.ai.model.LlmOptions", "import org.junit.jupiter.api.Assertions.assertDoesNotThrow" ], "arg_patterns": {} }, { "label": "agents/tooling/agent/src/main/kotlin/eu/corentic/springrag/agent/tooling/agent", "method_count": 4, "imports": [ "import com.embabel.agent.api.annotation.AchievesGoal", "import com.embabel.agent.api.annotation.Action", "import com.embabel.agent.api.annotation.Agent", "import com.embabel.agent.api.common.ActionContext", "import com.embabel.agent.domain.io.UserInput", "import com.embabel.common.ai.model.LlmOptions", "import eu.corentic.springrag.agent.tooling.embabel.ToolInvocationAction", "import eu.corentic.springrag.agent.tooling.embabel.ToolInvocationRequest", "import eu.corentic.springrag.agent.tooling.embabel.ToolInvocationResult", "import org.springframework.stereotype.Service" ], "arg_patterns": {} }, { "label": "agents/tooling/embabel/src/main/kotlin/eu/corentic/springrag/agent/tooling/embabel", "method_count": 12, "imports": [ "import com.fasterxml.jackson.databind.ObjectMapper", "import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean", "import org.springframework.context.annotation.Bean", "import org.springframework.context.annotation.Configuration", "import com.embabel.agent.api.tool.ToolObject", "import com.embabel.agent.api.annotation.Action", "import com.embabel.agent.api.common.ActionContext", "import com.embabel.agent.api.common.ContextualPromptElement", "import com.embabel.common.ai.model.LlmOptions", "import com.embabel.common.ai.prompt.PromptContributor", "import com.embabel.agent.prompt.element.FocusedToolCallControl", "import com.embabel.agent.prompt.element.ToolCallControl", "import eu.corentic.springrag.agent.tooling.embabel.recording.ToolCallRecord", "import eu.corentic.springrag.agent.tooling.embabel.recording.ToolInvocationRecorder", "import org.springframework.stereotype.Service", "import org.springframework.boot.context.properties.ConfigurationProperties", "import org.springaicommunity.agent.tools.FileSystemTools", "import org.springaicommunity.agent.tools.GrepTool", "import org.springaicommunity.agent.tools.GlobTool", "import org.springaicommunity.agent.tools.ShellTools", "import org.springaicommunity.agent.tools.SmartWebFetchTool", "import org.springframework.ai.chat.client.ChatClient", "import org.springframework.boot.context.properties.EnableConfigurationProperties" ], "arg_patterns": {} }, { "label": "agents/tooling/embabel/src/main/kotlin/eu/corentic/springrag/agent/tooling/embabel/recording", "method_count": 11, "imports": [ "import com.embabel.agent.api.event.AgentProcessEvent", "import com.embabel.agent.api.event.AgenticEventListener", "import com.embabel.agent.api.event.ToolCallResponseEvent", "import com.fasterxml.jackson.core.JsonProcessingException", "import com.fasterxml.jackson.databind.ObjectMapper", "import org.slf4j.LoggerFactory", "import java.util.concurrent.ConcurrentHashMap", "import com.embabel.agent.api.common.PlatformServices", "import com.embabel.agent.api.event.MulticastAgenticEventListener", "import org.springframework.beans.factory.config.BeanPostProcessor", "import org.springframework.boot.context.properties.EnableConfigurationProperties", "import org.springframework.context.annotation.Bean", "import org.springframework.context.annotation.Configuration" ], "arg_patterns": {} }, { "label": "agents/tooling/embabel/src/test/kotlin/eu/corentic/springrag/agent/tooling/embabel", "method_count": 6, "imports": [ "import com.embabel.agent.api.tool.ToolObject", "import kotlin.test.assertFalse", "import kotlin.test.assertTrue", "import kotlin.test.assertEquals", "import org.junit.jupiter.api.Test", "import com.embabel.agent.api.common.ActionContext", "import com.embabel.agent.api.common.PromptRunner", "import com.embabel.agent.core.Blackboard", "import com.embabel.agent.core.ProcessContext", "import io.mockk.Runs", "import io.mockk.every", "import io.mockk.just", "import io.mockk.mockk", "import io.mockk.slot", "import io.mockk.verify" ], "arg_patterns": {} }, { "label": "agents/wikipedia/adapters/src/main/kotlin/eu/corentic/springrag/agent/wikipedia", "method_count": 4, "imports": [ "import eu.corentic.springrag.agent.capability.AgentCapabilityDescriptor", "import eu.corentic.springrag.agent.capability.toDescriptor", "import org.springframework.stereotype.Component", "import io.github.oshai.kotlinlogging.KotlinLogging" ], "arg_patterns": {} }, { "label": "agents/wikipedia/adapters/src/test/kotlin/eu/corentic/springrag/agent/wikipedia", "method_count": 8, "imports": [ "import eu.corentic.springrag.agent.capability.AgentCapabilityDescriptor", "import eu.corentic.springrag.agent.capability.DescribedAgentCapability", "import eu.corentic.springrag.agent.capability.TransportExposedAgentCapability", "import io.mockk.every", "import io.mockk.mockk", "import org.junit.jupiter.api.Assertions.assertEquals", "import org.junit.jupiter.api.Assertions.assertThrows", "import org.junit.jupiter.api.Test", "import io.mockk.coEvery", "import io.mockk.coVerify", "import io.mockk.verify", "import kotlinx.coroutines.test.runTest", "import org.junit.jupiter.api.Assertions.assertDoesNotThrow" ], "arg_patterns": {} }, { "label": "agents/wikipedia/static/src/main/kotlin/eu/corentic/springrag/agent/wikipedia", "method_count": 3, "imports": [ "import eu.corentic.springrag.agent.capability.DescribedAgentCapability", "import eu.corentic.springrag.agent.capability.TransportExposedAgentCapability", "import org.springframework.stereotype.Component" ], "arg_patterns": {} }, { "label": "agents/wikipedia/static/src/test/kotlin/eu/corentic/springrag/agent/wikipedia", "method_count": 3, "imports": [ "import kotlinx.coroutines.test.runTest", "import org.junit.jupiter.api.Assertions.assertEquals", "import org.junit.jupiter.api.Assertions.assertFalse", "import org.junit.jupiter.api.Assertions.assertTrue", "import org.junit.jupiter.api.Test" ], "arg_patterns": {} }, { "label": "app/src", "method_count": 6, "imports": [ "import io.cucumber.spring.CucumberContextConfiguration", "import org.springframework.boot.test.context.SpringBootTest", "import org.springframework.boot.test.context.TestConfiguration", "import org.springframework.context.annotation.Bean", "import org.springframework.context.annotation.Import", "import org.springframework.test.context.ActiveProfiles", "import org.springframework.test.web.reactive.server.WebTestClient", "import io.github.oshai.kotlinlogging.KotlinLogging", "import org.springframework.boot.ApplicationArguments", "import org.springframework.boot.ApplicationRunner", "import org.springframework.core.env.ConfigurableEnvironment", "import org.springframework.core.env.Environment", "import org.springframework.core.env.EnumerablePropertySource", "import org.springframework.stereotype.Component", "import eu.corentic.springrag.config.BaseSystemTest", "import eu.corentic.springrag.testcontainers.SharedContainers", "import kotlin.test.assertNotNull", "import org.junit.jupiter.api.Assertions.assertTrue", "import org.junit.jupiter.api.Test", "import org.springframework.boot.webtestclient.autoconfigure.AutoConfigureWebTestClient", "import kotlin.test.assertEquals", "import org.springframework.beans.factory.config.YamlPropertiesFactoryBean", "import org.springframework.core.io.ClassPathResource" ], "arg_patterns": {} }, { "label": "app/src/e2eTest/kotlin/eu/corentic/springrag/e2e/cucumber/steps", "method_count": 17, "algorithm": "CRX", "grammar": "root ::= \"requireNotNull\"?+ (\"File\" | \"absoluteFile\" | \"listOf\")?+ \"createKnowledgeBase\"? \"@\"? \"randomUUID\"?+ (\"pollJobToCompletion\" | \"reset\")?+ \"for\"? \"currentTimeMillis\"?+ \"Suppress\"?+ \"toString\"?+ \"if\"? \"substring\"?+ \"exists\"?+ \"registerUser\"? \"return f\"? \"login\"? (\"APPLICATION_JSON\" | \"Any\" | \"MULTIPART_FORM_DATA\" | \"Map\" | \"MultipartBodyBuilder\" | \"String\" | \"assertNotNull\" | \"atMost\" | \"await\" | \"blockFirst\" | \"body\" | \"bodyValue\" | \"build\" | \"contentType\" | \"currentJobId\" | \"else\" | \"error\" | \"exchange\" | \"expectBody\" | \"expectStatus\" | \"findTestFile\" | \"fromMultipartData\" | \"get\" | \"header\" | \"isAccepted\" | \"isCreated\" | \"isOk\" | \"java\" | \"knowledgeBaseId\" | \"mapOf\" | \"name\" | \"ofMinutes\" | \"ofSeconds\" | \"part\" | \"pollInterval\" | \"post\" | \"readBytes\" | \"responseBody\" | \"return body ?: error(\\\"Create KB response body was null\\\")\" | \"return response?.get(\\\"answer\\\") as? String ?: \\\"\\\"\" | \"return response?.get(\\\"token\\\") as? String\n ?: error(\\\"Login response missing token\\\")\" | \"return@until false\" | \"returnResult\" | \"secondKnowledgeBaseId\" | \"status\" | \"until\" | \"uri\" | \"value\" | \"when\")?+ \"authToken\"? \"assertEquals\"? \"lastChatResponse\"? \"chat\"?", "mdl_score": 1000000000000000000000000000000, "imports": [ "import eu.corentic.springrag.e2e.cucumber.config.ScenarioContext", "import io.cucumber.java.en.Given", "import org.springframework.beans.factory.annotation.Autowired", "import org.springframework.http.MediaType", "import org.springframework.test.web.reactive.server.WebTestClient", "import java.util.UUID", "import io.cucumber.java.en.Then", "import io.cucumber.java.en.When", "import io.cucumber.java.Before", "import org.junit.jupiter.api.Assertions.assertNotNull", "import org.awaitility.Awaitility.await", "import org.junit.jupiter.api.Assertions.assertEquals", "import org.springframework.http.client.MultipartBodyBuilder", "import org.springframework.web.reactive.function.BodyInserters", "import java.io.File", "import java.time.Duration" ], "arg_patterns": {} }, { "label": "app/src/integrationTest/kotlin/eu/corentic/springrag/config", "method_count": 15, "algorithm": "CRX", "grammar": "root ::= (\"ChatModel\" | \"Driver\" | \"QdrantClient\" | \"Session\" | \"String\" | \"also\" | \"any\" | \"close\" | \"every\" | \"mockk\" | \"run\" | \"session\")?+ \"return JobRepositoryTestUtils(jobRepository)\"? \"defaultOptions\"? \"JobRepositoryTestUtils\"? \"builder\"?+ \"build\"?+", "mdl_score": 1000000000000000000000000000000, "imports": [ "import org.springframework.batch.core.repository.JobRepository", "import org.springframework.batch.test.JobRepositoryTestUtils", "import org.springframework.boot.test.context.TestConfiguration", "import org.springframework.context.annotation.Bean", "import ai.docling.serve.api.DoclingServeApi", "import eu.corentic.springrag.agent.rag.embabel.EmbabelRagResponseInvoker", "import eu.corentic.springrag.agent.summarizer.embabel.EmbabelSummarizerResponseInvoker", "import com.embabel.agent.core.AgentPlatform", "import io.mockk.mockk", "import io.qdrant.client.QdrantClient", "import org.neo4j.driver.Driver", "import org.neo4j.driver.Session", "import org.springframework.ai.chat.model.ChatModel", "import org.springframework.ai.chat.prompt.ChatOptions", "import org.springframework.ai.embedding.EmbeddingModel", "import org.springframework.ai.vectorstore.VectorStore", "import org.springframework.context.annotation.Primary", "import org.springframework.security.authentication.ReactiveAuthenticationManager", "import org.springframework.batch.core.launch.JobOperator" ], "arg_patterns": {} }, { "label": "app/src/integrationTest/kotlin/eu/corentic/springrag/controller", "method_count": 5, "imports": [ "import eu.corentic.springrag.config.IntegrationTestConfig", "import eu.corentic.springrag.security.model.Role", "import eu.corentic.springrag.security.model.User", "import eu.corentic.springrag.security.service.JwtService", "import org.junit.jupiter.api.Test", "import org.junit.jupiter.api.BeforeEach", "import org.springframework.beans.factory.annotation.Autowired", "import org.springframework.boot.test.context.SpringBootTest", "import org.springframework.boot.webtestclient.autoconfigure.AutoConfigureWebTestClient", "import org.springframework.context.annotation.Import", "import org.springframework.http.HttpHeaders", "import org.springframework.test.context.ActiveProfiles", "import org.springframework.test.web.reactive.server.WebTestClient", "import com.ninjasquad.springmockk.MockkBean", "import eu.corentic.springrag.common.Outcome", "import eu.corentic.springrag.service.job.JobService", "import eu.corentic.springrag.service.knowledgebase.KnowledgeBaseService", "import io.mockk.every", "import java.io.ByteArrayInputStream", "import org.springframework.core.io.InputStreamResource", "import org.springframework.http.HttpStatus", "import org.springframework.http.MediaType", "import org.springframework.http.client.MultipartBodyBuilder", "import org.springframework.security.core.authority.SimpleGrantedAuthority", "import org.springframework.web.reactive.function.BodyInserters", "import org.springframework.boot.test.web.server.LocalServerPort" ], "arg_patterns": {} }, { "label": "app/src/integrationTest/kotlin/eu/corentic/springrag/service", "method_count": 3, "imports": [ "import com.ninjasquad.springmockk.MockkBean", "import eu.corentic.springrag.config.IntegrationTestConfig", "import eu.corentic.springrag.model.event.DocumentDeletionRequested", "import eu.corentic.springrag.model.event.KnowledgeBaseDeletionRequested", "import eu.corentic.springrag.service.knowledgebase.KnowledgeBaseApplicationService", "import eu.corentic.springrag.service.port.KnowledgeBaseDocumentPort", "import eu.corentic.springrag.service.port.KnowledgeBasePort", "import io.mockk.every", "import java.util.UUID", "import org.junit.jupiter.api.BeforeEach", "import org.junit.jupiter.api.Test", "import org.springframework.beans.factory.annotation.Autowired", "import org.springframework.boot.test.context.SpringBootTest", "import org.springframework.context.annotation.Import", "import org.springframework.test.context.ActiveProfiles", "import org.springframework.test.context.event.ApplicationEvents", "import org.springframework.test.context.event.RecordApplicationEvents" ], "arg_patterns": {} }, { "label": "app/src/systemTest/kotlin/eu/corentic/springrag/config", "method_count": 14, "imports": [ "import eu.corentic.springrag.testcontainers.OllamaModelSupport", "import eu.corentic.springrag.testcontainers.QdrantTestSupport", "import eu.corentic.springrag.testcontainers.QdrantTestSupport.recreateTestCollection", "import eu.corentic.springrag.testcontainers.SharedContainers", "import eu.corentic.springrag.testcontainers.SharedContainers.ContainerType", "import io.qdrant.client.QdrantClient", "import java.time.Duration", "import java.time.Instant", "import java.util.UUID", "import org.junit.jupiter.api.Assumptions", "import org.junit.jupiter.api.BeforeAll", "import org.junit.jupiter.api.BeforeEach", "import org.neo4j.driver.Driver", "import org.springframework.beans.factory.annotation.Autowired", "import org.springframework.boot.test.context.SpringBootTest", "import org.springframework.boot.webtestclient.autoconfigure.AutoConfigureWebTestClient", "import org.springframework.jdbc.core.JdbcTemplate", "import org.springframework.security.crypto.password.PasswordEncoder", "import org.springframework.test.context.ActiveProfiles", "import org.springframework.test.context.DynamicPropertyRegistry", "import org.springframework.test.context.DynamicPropertySource", "import org.springframework.test.context.TestPropertySource", "import org.springframework.test.web.reactive.server.WebTestClient", "import org.testcontainers.junit.jupiter.Testcontainers", "import java.sql.Timestamp", "import org.springframework.batch.core.repository.JobRepository", "import org.springframework.batch.test.JobRepositoryTestUtils", "import org.springframework.boot.test.context.TestConfiguration", "import org.springframework.context.annotation.Bean", "import org.mockito.Mockito", "import org.springframework.context.annotation.Primary" ], "arg_patterns": {} }, { "label": "app/src/systemTest/kotlin/eu/corentic/springrag/system", "method_count": 46, "algorithm": "CRX", "grammar": "root ::= \"queryForObject\"?+ \"session\"?+ \"MultipartBodyBuilder\"? (\"createKnowledgeBase\" | \"newClient\" | \"runBlocking\")?+ \"Long\"?+ \"use\"?+ \"part\"?+ \"run\"?+ \"readBytes\"?+ \"parameters\"?+ \"header\"?+ (\"COMPLETED\" | \"CallToolRequest\" | \"ClassPathResource\" | \"FAILED\" | \"IllegalStateException\" | \"JobStatus\" | \"List\" | \"MULTIPART_FORM_DATA\" | \"Map\" | \"McpSchema\" | \"PARTIAL_SUCCESS\" | \"String\" | \"TextContent\" | \"VectorChunk\" | \"absolutePath\" | \"add\" | \"adminClient\" | \"any\" | \"asJobId\" | \"assertEquals\" | \"assertNotEquals\" | \"assertNotNull\" | \"assertTrue\" | \"atMost\" | \"await\" | \"blockFirst\" | \"body\" | \"bodyValue\" | \"build\" | \"callTool\" | \"contains\" | \"content\" | \"contentType\" | \"copyTestDocument\" | \"count\" | \"countKnowledgeBaseNodes\" | \"countNodesByJobId\" | \"delete\" | \"documents\" | \"else\" | \"error\" | \"exchange\" | \"exists\" | \"expectBody\" | \"expectStatus\" | \"fail\" | \"fetchByJobId\" | \"file\" | \"filename\" | \"filter\" | \"first\" | \"fromMultipartData\" | \"get\" | \"getJobStatus\" | \"if\" | \"isAccepted\" | \"isCreated\" | \"isEmpty\" | \"isNoContent\" | \"isNotEmpty\" | \"isOk\" | \"java\" | \"length\" | \"listOf\" | \"map\" | \"mapNotNull\" | \"mapOf\" | \"metadata\" | \"mutate\" | \"name\" | \"ofMinutes\" | \"ofSeconds\" | \"path\" | \"pollInterval\" | \"post\" | \"queryParam\" | \"responseBody\" | \"responseTimeout\" | \"result\" | \"return response?.get(\\\"id\\\") as? String\n ?: error(\\\"Create knowledge base response missing id: $response\\\")\" | \"return response?.get(\\\"jobId\\\") as? String\n ?: error(\\\"Upload response missing jobId: $response\\\")\" | \"return terminalStatus ?: error(\\\"Job $jobId did not reach a terminal state in time\\\")\" | \"returnResult\" | \"searchSimilar\" | \"single\" | \"size\" | \"startJob\" | \"status\" | \"structuredContent\" | \"take\" | \"text\" | \"throw\" | \"try\" | \"until\" | \"uploadAsync\" | \"uploadAsyncMulti\" | \"uploadAsyncToKb\" | \"uri\" | \"value\" | \"waitForCompletedJob\" | \"waitForIndexedChunks\" | \"waitForTerminalStatus\" | \"waitUntil\" | \"when\")+ \"toPath\"?+ \"finally\"? \"asLong\"?+ \"resolve\"?+ \"closeGracefully\"?+ \"copy\"?+ \"REPLACE_EXISTING\"? \"return target.toFile()\"? \"toFile\"?+", "mdl_score": 1000000000000000000000000000000, "imports": [ "import eu.corentic.springrag.config.BaseSystemTest", "import eu.corentic.springrag.controller.SessionChatRequest", "import eu.corentic.springrag.model.ChatResponse", "import java.time.Duration", "import org.junit.jupiter.api.Assertions.assertEquals", "import org.junit.jupiter.api.Assertions.assertNotNull", "import org.junit.jupiter.api.Assertions.assertTrue", "import org.junit.jupiter.api.Test", "import org.springframework.test.web.reactive.server.returnResult", "import eu.corentic.springrag.config.StorageProperties", "import eu.corentic.springrag.repository.VectorRepository", "import eu.corentic.springrag.repository.graph.DocumentJobNodeRepository", "import eu.corentic.springrag.service.job.JobStatus", "import eu.corentic.springrag.service.job.JobStatusType", "import eu.corentic.springrag.service.port.ObjectStoragePort", "import eu.corentic.springrag.common.ids.asJobId", "import eu.corentic.springrag.common.ids.asLogicalDocumentId", "import eu.corentic.springrag.common.ids.asStorageUri", "import java.io.File", "import java.nio.file.Files", "import java.nio.file.Path", "import java.nio.file.StandardCopyOption", "import kotlin.io.path.createDirectory", "import org.awaitility.Awaitility.await", "import org.junit.jupiter.api.Assertions.assertNotEquals", "import org.junit.jupiter.api.io.TempDir", "import org.springframework.beans.factory.annotation.Autowired", "import org.springframework.core.io.ClassPathResource", "import org.springframework.http.MediaType", "import org.springframework.http.client.MultipartBodyBuilder", "import org.springframework.web.reactive.function.BodyInserters", "import io.modelcontextprotocol.client.McpClient", "import io.modelcontextprotocol.client.McpSyncClient", "import io.modelcontextprotocol.client.transport.WebClientStreamableHttpTransport", "import io.modelcontextprotocol.spec.McpSchema", "import org.springframework.boot.test.web.server.LocalServerPort", "import org.springframework.test.web.reactive.server.WebTestClient", "import org.springframework.web.reactive.function.client.WebClient", "import eu.corentic.springrag.common.ids.asKnowledgeBaseId", "import kotlin.test.assertEquals", "import kotlin.test.assertNotEquals", "import kotlin.test.assertTrue", "import org.neo4j.driver.Values", "import eu.corentic.springrag.service.job.JobService", "import kotlinx.coroutines.runBlocking", "import org.junit.jupiter.api.assertThrows", "import java.util.*", "import eu.corentic.springrag.model.VectorChunk", "import eu.corentic.springrag.testcontainers.QdrantTestSupport", "import java.util.stream.Stream", "import org.awaitility.core.ConditionTimeoutException", "import org.junit.jupiter.api.Assertions.*", "import org.junit.jupiter.params.ParameterizedTest", "import org.junit.jupiter.params.provider.Arguments", "import org.junit.jupiter.params.provider.MethodSource" ], "arg_patterns": {} }, { "label": "app/src/test/kotlin/eu/corentic/springrag/architecture", "method_count": 87, "algorithm": "CRX", "grammar": "root ::= \"scopeFromProject\"?+ (\"filesIn\" | \"productionClasses\")? \"classes\"?+ (\"Assertions\" | \"any\" | \"api\" | \"assertTrue\" | \"containingFile\" | \"contains\" | \"endsWith\" | \"exists\" | \"fileName\" | \"filter\" | \"filterNot\" | \"flatMap\" | \"forEach\" | \"functions\" | \"hasAnnotation\" | \"hasAnnotationWithName\" | \"hasImport\" | \"if\" | \"joinToString\" | \"junit\" | \"jupiter\" | \"listOf\" | \"name\" | \"parameters\" | \"path\" | \"productionFiles\" | \"readString\" | \"resideInPackage\" | \"resolve\" | \"startsWith\" | \"text\" | \"toString\")+", "mdl_score": 1000000000000000000000000000000, "imports": [ "import java.nio.file.Files", "import java.nio.file.Path", "import kotlin.io.path.exists", "import org.junit.jupiter.api.Assertions.assertTrue", "import org.junit.jupiter.api.Test", "import org.junit.jupiter.api.fail", "import com.lemonappdev.konsist.api.Konsist", "import com.lemonappdev.konsist.api.ext.list.withAnnotationOf", "import com.lemonappdev.konsist.api.verify.assertTrue", "import org.springframework.stereotype.Service", "import java.io.IOException", "import java.nio.file.FileVisitResult", "import java.nio.file.Paths", "import java.nio.file.SimpleFileVisitor", "import java.nio.file.attribute.BasicFileAttributes" ], "arg_patterns": {} }, { "label": "app/src/test/kotlin/eu/corentic/springrag/config", "method_count": 3, "imports": [ "import kotlin.test.assertEquals", "import kotlin.test.assertFalse", "import kotlin.test.assertTrue", "import org.junit.jupiter.api.Test", "import org.springframework.beans.factory.config.YamlPropertiesFactoryBean", "import org.springframework.core.io.ClassPathResource" ], "arg_patterns": {} }, { "label": "buildSrc/src/main/kotlin", "method_count": 8, "imports": [ "import org.gradle.api.Project", "import org.gradle.api.artifacts.VersionCatalogsExtension", "import org.gradle.api.file.SourceDirectorySet", "import org.gradle.api.plugins.JavaPluginExtension", "import org.gradle.api.tasks.SourceSet", "import org.gradle.api.tasks.SourceSetContainer", "import org.gradle.api.tasks.TaskProvider", "import org.gradle.api.tasks.testing.Test", "import org.gradle.jvm.toolchain.JavaLanguageVersion", "import org.gradle.kotlin.dsl.get", "import org.gradle.kotlin.dsl.getByType", "import org.gradle.kotlin.dsl.named", "import org.gradle.kotlin.dsl.register", "import org.gradle.kotlin.dsl.withType" ], "arg_patterns": {} }, { "label": "buildSrc/src/test/kotlin", "method_count": 5, "imports": [ "import java.net.URI", "import kotlin.test.assertEquals", "import kotlin.test.assertFalse", "import kotlin.test.assertNotNull", "import kotlin.test.assertTrue", "import org.gradle.api.artifacts.repositories.MavenArtifactRepository", "import org.gradle.api.tasks.SourceSetContainer", "import org.gradle.testfixtures.ProjectBuilder", "import org.junit.jupiter.api.Test" ], "arg_patterns": {} }, { "label": "entrypoints/agent-mcp-server/src/main/kotlin/eu/corentic/springrag/mcp", "method_count": 3, "imports": [ "import eu.corentic.springrag.agent.capability.AgentCapabilityDescriptor", "import eu.corentic.springrag.agent.capability.AgentCapabilityDirectory", "import eu.corentic.springrag.agent.capability.isExposedOverMcp", "import io.modelcontextprotocol.spec.McpSchema.CallToolResult", "import kotlinx.coroutines.reactor.mono", "import org.springaicommunity.mcp.annotation.McpTool", "import org.springframework.stereotype.Component", "import reactor.core.publisher.Mono", "import eu.corentic.springrag.agent.capability.AgentExecutionContext", "import eu.corentic.springrag.agent.rag.RagAgentInvocationGateway", "import eu.corentic.springrag.agent.rag.RagInvocation", "import eu.corentic.springrag.agent.rag.RagRequest", "import eu.corentic.springrag.common.ids.KnowledgeBaseId", "import eu.corentic.springrag.model.toMarkdownSummary", "import org.springaicommunity.mcp.annotation.McpToolParam", "import eu.corentic.springrag.agent.wikipedia.WikipediaLookupInvocationGateway", "import eu.corentic.springrag.agent.wikipedia.WikipediaLookupRequest" ], "arg_patterns": {} }, { "label": "entrypoints/agent-mcp-server/src/test/kotlin/eu/corentic/springrag/mcp", "method_count": 3, "imports": [ "import eu.corentic.springrag.agent.capability.AgentCapabilityDescriptor", "import eu.corentic.springrag.agent.capability.AgentCapabilityDirectory", "import io.mockk.every", "import io.mockk.mockk", "import io.modelcontextprotocol.spec.McpSchema.TextContent", "import org.junit.jupiter.api.Assertions.assertEquals", "import org.junit.jupiter.api.Assertions.assertTrue", "import org.junit.jupiter.api.Test", "import eu.corentic.springrag.agent.rag.RagAgentInvocationGateway", "import eu.corentic.springrag.model.ChatResponse", "import eu.corentic.springrag.model.Source", "import io.mockk.coEvery", "import eu.corentic.springrag.agent.wikipedia.WikipediaLookupInvocationGateway", "import eu.corentic.springrag.agent.wikipedia.WikipediaLookupResponse" ], "arg_patterns": {} }, { "label": "entrypoints/web/src/main/kotlin/eu/corentic/springrag/config", "method_count": 3, "imports": [ "import org.springframework.beans.factory.annotation.Value", "import org.springframework.context.annotation.Configuration", "import org.springframework.web.reactive.config.CorsRegistry", "import org.springframework.web.reactive.config.WebFluxConfigurer", "import org.slf4j.MDC", "import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty", "import org.springframework.web.server.ServerWebExchange", "import org.springframework.web.server.WebFilter", "import org.springframework.web.server.WebFilterChain", "import reactor.core.publisher.Mono", "import io.github.oshai.kotlinlogging.KotlinLogging", "import org.springframework.core.Ordered", "import org.springframework.core.annotation.Order", "import org.springframework.stereotype.Component" ], "arg_patterns": {} }, { "label": "entrypoints/web/src/main/kotlin/eu/corentic/springrag/controller", "method_count": 58, "algorithm": "CRX", "grammar": "root ::= \"getJobStatus\"?+ \"bindingResult\"? \"return ResponseEntity.noContent().build()\"? (\"mutableListOf\" | \"return ResponseEntity.ok(response)\")?+ \"return if (status != null) {\n ResponseEntity.ok(status)\n } else {\n ResponseEntity.notFound().build()\n }\"? \"fieldErrors\"? \"noContent\"?+ \"joinToString\"?+ \"field\"? \"defaultMessage\"? (\"BAD_REQUEST\" | \"CONFLICT\" | \"CREATED\" | \"DataBuffer\" | \"ErrorResponse\" | \"InvalidUploadRequestException\" | \"KnowledgeBaseNotFoundException\" | \"NOT_FOUND\" | \"PAYLOAD_TOO_LARGE\" | \"RuntimeException\" | \"TimeoutCancellationException\" | \"accepted\" | \"add\" | \"agentId\" | \"batchUploadRoot\" | \"body\" | \"buffer\" | \"catch\" | \"cleanupManagedUpload\" | \"content\" | \"conversationId\" | \"core\" | \"else\" | \"error\" | \"errorCode\" | \"filename\" | \"handle\" | \"headers\" | \"if\" | \"io\" | \"knowledgeBaseExists\" | \"knowledgeBaseId\" | \"map\" | \"mapOf\" | \"maxFileError\" | \"maxUploadBytes\" | \"message\" | \"name\" | \"next\" | \"of\" | \"ok\" | \"password\" | \"randomUUID\" | \"readableByteCount\" | \"registerBatch\" | \"release\" | \"return ResponseEntity.status(HttpStatus.BAD_REQUEST)\n .body(ErrorResponse(\\\"VALIDATION_ERROR\\\", \\\"Validation failed\\\", errors))\" | \"size\" | \"springframework\" | \"startBulkJob\" | \"startJob\" | \"status\" | \"throw\" | \"throw KnowledgeBaseNotFoundException(knowledgeBaseId)\" | \"throw e\" | \"toString\" | \"try\" | \"username\" | \"value\" | \"warn\" | \"withTimeout\")?+ \"ChatResponse\"? \"notFound\"?+ \"let\"?+ \"emptyList\"?+ \"build\"?+ \"write\"?+ \"then\"?+ \"awaitSingleOrNull\"?+", "mdl_score": 1000000000000000000000000000000, "imports": [ "import eu.corentic.springrag.common.ids.BatchId", "import eu.corentic.springrag.config.StorageProperties", "import eu.corentic.springrag.service.job.BatchOwnershipService", "import eu.corentic.springrag.service.job.JobService", "import eu.corentic.springrag.service.job.JobStatus", "import eu.corentic.springrag.service.knowledgebase.KnowledgeBaseApplicationService", "import eu.corentic.springrag.service.knowledgebase.KnowledgeBaseNotFoundException", "import jakarta.validation.constraints.NotBlank", "import jakarta.validation.constraints.Pattern", "import org.springframework.http.ResponseEntity", "import org.springframework.security.access.prepost.PreAuthorize", "import org.springframework.security.core.Authentication", "import org.springframework.validation.annotation.Validated", "import org.springframework.web.bind.annotation.*", "import eu.corentic.springrag.agent.capability.AgentCapabilityDescriptor", "import eu.corentic.springrag.model.ChatResponse", "import eu.corentic.springrag.service.chat.ChatService", "import jakarta.validation.Valid", "import org.springframework.web.bind.annotation.GetMapping", "import org.springframework.web.bind.annotation.PostMapping", "import org.springframework.web.bind.annotation.RequestBody", "import org.springframework.web.bind.annotation.RequestMapping", "import org.springframework.web.bind.annotation.RestController", "import kotlinx.coroutines.TimeoutCancellationException", "import kotlinx.coroutines.withTimeout", "import io.github.oshai.kotlinlogging.KotlinLogging", "import org.springframework.beans.factory.annotation.Value", "import java.util.UUID", "import eu.corentic.springrag.controller.dto.ErrorResponse", "import eu.corentic.springrag.security.service.PasswordPolicyViolationException", "import eu.corentic.springrag.security.service.UserAlreadyExistsException", "import eu.corentic.springrag.service.knowledgebase.KnowledgeBaseAlreadyExistsException", "import eu.corentic.springrag.service.knowledgebase.DocumentNotFoundInKnowledgeBaseException", "import eu.corentic.springrag.service.knowledgebase.InvalidKnowledgeBaseNameException", "import eu.corentic.springrag.service.knowledgebase.KnowledgeBaseSizeLimitExceededException", "import eu.corentic.springrag.service.job.JobAlreadyCompleteException", "import eu.corentic.springrag.service.job.JobAlreadyRunningException", "import eu.corentic.springrag.service.job.JobExecutionNotFoundException", "import eu.corentic.springrag.service.job.BatchOwnershipException", "import eu.corentic.springrag.service.job.BatchNotFoundException", "import eu.corentic.springrag.service.job.BatchOwnerRequiredException", "import eu.corentic.springrag.service.job.JobInputValidationException", "import jakarta.validation.ConstraintViolationException", "import org.springframework.http.HttpStatus", "import org.springframework.http.converter.HttpMessageNotReadableException", "import org.springframework.core.io.buffer.DataBufferLimitException", "import org.springframework.web.bind.MethodArgumentNotValidException", "import org.springframework.web.bind.annotation.ExceptionHandler", "import org.springframework.web.bind.annotation.RestControllerAdvice", "import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException", "import org.springframework.web.server.ServerWebInputException", "import org.springframework.web.server.MissingRequestValueException", "import org.springframework.web.bind.support.WebExchangeBindException", "import eu.corentic.springrag.service.knowledgebase.*", "import io.swagger.v3.oas.annotations.Operation", "import io.swagger.v3.oas.annotations.tags.Tag", "import io.swagger.v3.oas.annotations.Parameter", "import java.security.Principal", "import kotlinx.coroutines.reactor.awaitSingle", "import org.springframework.http.codec.multipart.FilePart", "import eu.corentic.springrag.common.ids.Filename", "import eu.corentic.springrag.common.ids.StorageUri", "import eu.corentic.springrag.service.job.StagedUploadCleanupService", "import eu.corentic.springrag.service.port.ObjectStoragePort", "import kotlinx.coroutines.reactor.awaitSingleOrNull", "import java.nio.file.Files", "import java.nio.file.Path", "import org.springframework.core.io.buffer.DataBufferUtils", "import org.springframework.stereotype.Component", "import eu.corentic.springrag.security.service.JwtService", "import eu.corentic.springrag.security.service.UserService", "import org.springframework.security.crypto.password.PasswordEncoder" ], "arg_patterns": {} }, { "label": "entrypoints/web/src/main/kotlin/eu/corentic/springrag/controller/librechat", "method_count": 29, "imports": [ "import com.fasterxml.jackson.annotation.JsonProperty", "import eu.corentic.springrag.common.ids.JobId", "import eu.corentic.springrag.common.ids.Filename", "import eu.corentic.springrag.common.ids.asStorageUri", "import eu.corentic.springrag.model.GraphTableElement", "import eu.corentic.springrag.model.GraphTextElement", "import eu.corentic.springrag.service.document.DocumentIdentity", "import eu.corentic.springrag.service.port.DocumentIdPort", "import eu.corentic.springrag.service.port.DocumentImagePort", "import eu.corentic.springrag.service.port.DocumentParserPort", "import eu.corentic.springrag.service.port.DocumentParsingRequest", "import eu.corentic.springrag.service.port.ObjectStoragePort", "import eu.corentic.springrag.service.port.VectorDocumentDeletionPort", "import eu.corentic.springrag.service.port.VectorDocumentPort", "import eu.corentic.springrag.agent.rag.librechat.LibreChatRetrievalInvoker", "import eu.corentic.springrag.agent.rag.librechat.LibreChatRetrievalRequest", "import eu.corentic.springrag.service.job.JobService", "import eu.corentic.springrag.service.job.JobStatusType", "import eu.corentic.springrag.service.port.AgentKnowledgeBasePort", "import jakarta.validation.Valid", "import jakarta.validation.constraints.NotBlank", "import jakarta.validation.constraints.NotEmpty", "import kotlinx.coroutines.CoroutineDispatcher", "import kotlinx.coroutines.withContext", "import kotlinx.coroutines.reactor.awaitSingleOrNull", "import org.springframework.http.MediaType", "import org.springframework.http.ResponseEntity", "import org.springframework.http.codec.multipart.FilePart", "import org.springframework.web.bind.annotation.*", "import org.springframework.core.io.buffer.DataBufferUtils", "import kotlin.math.max", "import kotlin.math.min", "import eu.corentic.springrag.common.ids.BatchId", "import eu.corentic.springrag.common.ids.StorageUri", "import eu.corentic.springrag.config.StorageProperties", "import eu.corentic.springrag.controller.InvalidUploadRequestException", "import eu.corentic.springrag.service.job.StagedUploadCleanupService", "import java.nio.file.Files", "import java.nio.file.Path", "import java.util.UUID", "import kotlin.time.Duration.Companion.seconds", "import kotlinx.coroutines.delay", "import org.springframework.stereotype.Component" ], "arg_patterns": {} }, { "label": "entrypoints/web/src/main/kotlin/eu/corentic/springrag/controller/web", "method_count": 6, "imports": [ "import eu.corentic.springrag.controller.UploadWorkflow", "import eu.corentic.springrag.controller.InvalidUploadRequestException", "import eu.corentic.springrag.service.knowledgebase.KnowledgeBaseNotFoundException", "import java.security.Principal", "import kotlinx.coroutines.reactor.awaitSingle", "import org.springframework.http.MediaType", "import org.springframework.http.ResponseEntity", "import org.springframework.http.codec.multipart.FilePart", "import org.springframework.stereotype.Controller", "import org.springframework.web.bind.annotation.PostMapping", "import org.springframework.web.bind.annotation.RequestParam", "import org.springframework.web.bind.annotation.RequestPart", "import org.springframework.web.bind.annotation.ResponseBody", "import reactor.core.publisher.Flux", "import org.springframework.web.bind.annotation.GetMapping" ], "arg_patterns": {} }, { "label": "entrypoints/web/src/test/kotlin/eu/corentic/springrag/config", "method_count": 4, "algorithm": "CRX", "grammar": "root ::= \"bindToWebHandler\"?+ \"from\"?+ \"webTestClient\"? \"WebHandler\"? \"post\"?+ (\"OK\" | \"response\" | \"setStatusCode\")?+ \"setComplete\"?+ \"webFilter\"?+ \"build\"?+ (\"AtomicReference\" | \"String\")?+ \"WebFilterChain\"? (\"assertEquals\" | \"assertNull\" | \"block\" | \"empty\" | \"filter\" | \"get\" | \"set\")?+ \"uri\"?+ \"exchange\"?+ \"expectStatus\"?+ \"isOk\"?", "mdl_score": 46190360194811584616646012, "imports": [ "import java.util.concurrent.atomic.AtomicReference", "import org.junit.jupiter.api.Assertions.assertEquals", "import org.junit.jupiter.api.Assertions.assertNull", "import org.junit.jupiter.api.Test", "import org.slf4j.MDC", "import org.springframework.mock.http.server.reactive.MockServerHttpRequest", "import org.springframework.mock.web.server.MockServerWebExchange", "import org.springframework.web.server.WebFilterChain", "import reactor.core.publisher.Mono", "import org.springframework.http.HttpStatus", "import org.springframework.test.web.reactive.server.WebTestClient", "import org.springframework.web.server.WebHandler" ], "arg_patterns": {} }, { "label": "entrypoints/web/src/test/kotlin/eu/corentic/springrag/controller", "method_count": 83, "algorithm": "CRX", "grammar": "root ::= \"runTest\"? (\"BAD_REQUEST\" | \"COMPLETED\" | \"ChatRequest\" | \"ChatResponse\" | \"GlobalExceptionHandler\" | \"JobStatus\" | \"MULTIPART_FORM_DATA\" | \"MultipartBodyBuilder\" | \"NOT_FOUND\" | \"SessionChatRequest\" | \"StorageProperties\" | \"String\" | \"any\" | \"assertEquals\" | \"bindToController\" | \"body\" | \"bodyValue\" | \"build\" | \"chatWithSources\" | \"chatWithSourcesAndMemory\" | \"coEvery\" | \"contentType\" | \"controllerAdvice\" | \"emptyList\" | \"every\" | \"exchange\" | \"expectBody\" | \"expectStatus\" | \"fromMultipartData\" | \"get\" | \"getJobStatus\" | \"header\" | \"isAccepted\" | \"isBadRequest\" | \"isEqualTo\" | \"isNotFound\" | \"isOk\" | \"jsonPath\" | \"knowledgeBaseExists\" | \"listOf\" | \"minusMinutes\" | \"mockk\" | \"now\" | \"part\" | \"post\" | \"runBlocking\" | \"startBulkJob\" | \"statusCode\" | \"toByteArray\" | \"toString\" | \"uri\" | \"value\" | \"verify\")+ \"error\"?", "mdl_score": 1000000000000000000000000000000, "imports": [ "import eu.corentic.springrag.common.ids.BatchId", "import eu.corentic.springrag.config.StorageProperties", "import eu.corentic.springrag.service.job.BatchOwnershipService", "import eu.corentic.springrag.service.job.JobService", "import eu.corentic.springrag.service.job.BatchOwnershipException", "import eu.corentic.springrag.service.job.JobStatus", "import eu.corentic.springrag.service.job.JobStatusType", "import eu.corentic.springrag.service.knowledgebase.KnowledgeBaseApplicationService", "import eu.corentic.springrag.service.knowledgebase.KnowledgeBaseResponse", "import io.mockk.every", "import io.mockk.mockk", "import io.mockk.verify", "import java.nio.file.Path", "import java.time.Duration", "import java.time.LocalDateTime", "import org.junit.jupiter.api.BeforeEach", "import org.junit.jupiter.api.Test", "import org.junit.jupiter.api.io.TempDir", "import org.springframework.test.web.reactive.server.WebTestClient", "import eu.corentic.springrag.service.job.BatchNotFoundException", "import eu.corentic.springrag.agent.capability.AgentCapabilityDescriptor", "import eu.corentic.springrag.model.ChatResponse", "import eu.corentic.springrag.model.Source", "import eu.corentic.springrag.service.chat.ChatService", "import io.mockk.coEvery", "import io.mockk.coVerify", "import kotlinx.coroutines.test.runTest", "import org.springframework.http.codec.json.JacksonJsonDecoder", "import org.springframework.http.codec.json.JacksonJsonEncoder", "import tools.jackson.databind.json.JsonMapper", "import tools.jackson.module.kotlin.KotlinModule", "import org.junit.jupiter.api.Assertions.assertEquals", "import org.junit.jupiter.api.Assertions.assertNotNull", "import eu.corentic.springrag.security.service.PasswordPolicyViolationException", "import eu.corentic.springrag.security.service.UserAlreadyExistsException", "import eu.corentic.springrag.service.knowledgebase.DocumentNotFoundInKnowledgeBaseException", "import eu.corentic.springrag.service.knowledgebase.KnowledgeBaseAlreadyExistsException", "import eu.corentic.springrag.service.knowledgebase.KnowledgeBaseSizeLimitExceededException", "import eu.corentic.springrag.service.knowledgebase.InvalidKnowledgeBaseNameException", "import eu.corentic.springrag.service.knowledgebase.KnowledgeBaseNotFoundException", "import eu.corentic.springrag.service.job.JobAlreadyCompleteException", "import eu.corentic.springrag.service.job.BatchOwnerRequiredException", "import eu.corentic.springrag.service.job.JobAlreadyRunningException", "import eu.corentic.springrag.service.job.JobExecutionNotFoundException", "import eu.corentic.springrag.service.job.JobInputValidationException", "import java.io.ByteArrayInputStream", "import kotlin.test.assertEquals", "import org.springframework.core.io.buffer.DataBufferLimitException", "import org.springframework.core.MethodParameter", "import org.springframework.http.HttpHeaders", "import org.springframework.http.HttpInputMessage", "import org.springframework.http.HttpStatus", "import org.springframework.http.converter.HttpMessageNotReadableException", "import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException", "import eu.corentic.springrag.service.knowledgebase.CreateKnowledgeBaseRequest", "import eu.corentic.springrag.service.knowledgebase.KnowledgeBaseListItem", "import eu.corentic.springrag.service.knowledgebase.KnowledgeBaseStatistics", "import io.mockk.just", "import io.mockk.runs", "import java.time.Instant", "import kotlinx.coroutines.runBlocking", "import org.springframework.http.MediaType", "import eu.corentic.springrag.service.job.StagedUploadCleanupService", "import eu.corentic.springrag.service.port.ObjectStoragePort", "import io.mockk.slot", "import java.io.File", "import org.springframework.http.client.MultipartBodyBuilder", "import org.springframework.web.reactive.function.BodyInserters" ], "arg_patterns": {} }, { "label": "entrypoints/web/src/test/kotlin/eu/corentic/springrag/controller/auth", "method_count": 5, "imports": [ "import eu.corentic.springrag.security.model.Role", "import eu.corentic.springrag.security.model.User", "import eu.corentic.springrag.security.service.JwtService", "import eu.corentic.springrag.security.service.UserAlreadyExistsException", "import eu.corentic.springrag.security.service.UserService", "import io.mockk.MockKAnnotations", "import io.mockk.every", "import io.mockk.impl.annotations.MockK", "import kotlinx.coroutines.runBlocking", "import org.junit.jupiter.api.Assertions.assertEquals", "import org.junit.jupiter.api.Assertions.assertTrue", "import org.junit.jupiter.api.BeforeEach", "import org.junit.jupiter.api.Test", "import org.junit.jupiter.api.assertThrows", "import org.springframework.http.HttpStatus", "import org.springframework.security.crypto.password.PasswordEncoder" ], "arg_patterns": {} }, { "label": "entrypoints/web/src/test/kotlin/eu/corentic/springrag/controller/librechat", "method_count": 46, "algorithm": "CRX", "grammar": "root ::= \"runTest\"? \"coEvery\"? \"mockk\"? \"mockFilePart\"? \"FilePart\"? (\"APPLICATION_JSON\" | \"APPLICATION_PDF\" | \"COMPLETED\" | \"DocumentImageInfo\" | \"EmbedOutcome\" | \"FAILED\" | \"GraphDocument\" | \"InvalidUploadRequestException\" | \"JobStatus\" | \"LibreChatRagIngestionService\" | \"LibreChatRetrievalRequest\" | \"LibreChatRetrievalResult\" | \"MULTIPART_FORM_DATA\" | \"MultipartBodyBuilder\" | \"ParsedDocument\" | \"RuntimeException\" | \"String\" | \"VectorChunk\" | \"any\" | \"asStorageUri\" | \"assertEquals\" | \"assertFailsWith\" | \"assertNotNull\" | \"batchUploadFile\" | \"batchUploadRoot\" | \"body\" | \"bodyValue\" | \"build\" | \"capture\" | \"captured\" | \"coVerify\" | \"contentType\" | \"emptyList\" | \"emptyMap\" | \"every\" | \"exchange\" | \"expectBody\" | \"expectStatus\" | \"fetchByJobId\" | \"fileId\" | \"fileIds\" | \"filename\" | \"findPageRendering\" | \"fromMultipartData\" | \"get\" | \"getJobStatus\" | \"getOrCreateAgentKnowledgeBase\" | \"header\" | \"ingestLocalFile\" | \"ingestMultipart\" | \"invoke\" | \"isEqualTo\" | \"isObjectStorageRoot\" | \"isOk\" | \"java\" | \"jsonPath\" | \"knowledgeBaseId\" | \"listOf\" | \"loadImage\" | \"mapOf\" | \"of\" | \"parse\" | \"part\" | \"post\" | \"slot\" | \"startJobWithId\" | \"toByteArray\" | \"uri\" | \"value\" | \"verify\")+ (\"assertContains\" | \"message\")?+ (\"assertTrue\" | \"doesNotExist\" | \"isNotFound\")?+", "mdl_score": 1000000000000000000000000000000, "imports": [ "import eu.corentic.springrag.agent.rag.librechat.LibreChatRetrievalInvoker", "import eu.corentic.springrag.agent.rag.librechat.LibreChatRetrievalRequest", "import eu.corentic.springrag.agent.rag.librechat.LibreChatRetrievalResult", "import eu.corentic.springrag.common.ids.JobId", "import eu.corentic.springrag.common.ids.asStorageUri", "import eu.corentic.springrag.controller.GlobalExceptionHandler", "import eu.corentic.springrag.model.GraphDocument", "import eu.corentic.springrag.model.GraphTableElement", "import eu.corentic.springrag.model.GraphTextElement", "import eu.corentic.springrag.model.ParsedDocument", "import eu.corentic.springrag.model.VectorChunk", "import eu.corentic.springrag.service.job.JobService", "import eu.corentic.springrag.service.job.JobStatus", "import eu.corentic.springrag.service.job.JobStatusType", "import eu.corentic.springrag.service.port.AgentKnowledgeBasePort", "import eu.corentic.springrag.service.port.DocumentIdPort", "import eu.corentic.springrag.service.port.DocumentImageInfo", "import eu.corentic.springrag.service.port.DocumentImagePort", "import eu.corentic.springrag.service.port.DocumentParserPort", "import eu.corentic.springrag.service.port.ObjectStoragePort", "import eu.corentic.springrag.service.port.VectorDocumentDeletionPort", "import eu.corentic.springrag.service.port.VectorDocumentPort", "import kotlinx.coroutines.CoroutineDispatcher", "import kotlinx.coroutines.test.UnconfinedTestDispatcher", "import io.mockk.coEvery", "import io.mockk.coVerify", "import io.mockk.every", "import io.mockk.mockk", "import io.mockk.slot", "import io.mockk.verify", "import org.junit.jupiter.api.BeforeEach", "import org.junit.jupiter.api.Test", "import org.springframework.http.HttpMethod", "import org.springframework.http.MediaType", "import org.springframework.http.client.MultipartBodyBuilder", "import org.springframework.test.web.reactive.server.WebTestClient", "import org.springframework.web.reactive.function.BodyInserters", "import kotlin.test.assertEquals", "import kotlin.test.assertNotNull", "import kotlin.test.assertTrue", "import eu.corentic.springrag.common.ids.StorageUri", "import eu.corentic.springrag.config.StorageProperties", "import eu.corentic.springrag.controller.InvalidUploadRequestException", "import eu.corentic.springrag.service.job.StagedUploadCleanupService", "import kotlinx.coroutines.test.runTest", "import org.springframework.core.io.buffer.DefaultDataBufferFactory", "import org.springframework.http.HttpHeaders", "import org.springframework.http.codec.multipart.FilePart", "import reactor.core.publisher.Flux", "import kotlin.test.assertContains", "import kotlin.test.assertFailsWith" ], "arg_patterns": {} }, { "label": "entrypoints/web/src/test/kotlin/eu/corentic/springrag/controller/web", "method_count": 10, "imports": [ "import eu.corentic.springrag.config.StorageProperties", "import eu.corentic.springrag.controller.UploadWorkflow", "import eu.corentic.springrag.service.job.BatchOwnershipService", "import eu.corentic.springrag.service.job.JobService", "import eu.corentic.springrag.service.job.StagedUploadCleanupService", "import eu.corentic.springrag.service.knowledgebase.KnowledgeBaseApplicationService", "import eu.corentic.springrag.service.port.ObjectStoragePort", "import eu.corentic.springrag.service.knowledgebase.KnowledgeBaseResponse", "import io.mockk.every", "import io.mockk.mockk", "import io.mockk.verify", "import java.nio.file.Files", "import java.nio.file.Path", "import java.time.Duration", "import java.time.Instant", "import kotlinx.coroutines.runBlocking", "import org.junit.jupiter.api.Assertions.assertEquals", "import org.junit.jupiter.api.Assertions.assertFalse", "import org.junit.jupiter.api.Assertions.assertTrue", "import org.junit.jupiter.api.Test", "import org.junit.jupiter.api.io.TempDir", "import org.springframework.http.HttpHeaders", "import org.springframework.http.HttpStatus", "import org.springframework.http.codec.multipart.FilePart", "import reactor.core.publisher.Flux", "import reactor.core.publisher.Mono" ], "arg_patterns": {} }, { "label": "infrastructure/adapters", "method_count": 3, "imports": [ "import org.springframework.ai.chat.memory.ChatMemory", "import org.springframework.ai.chat.memory.ChatMemoryRepository", "import org.springframework.ai.chat.memory.MessageWindowChatMemory", "import org.springframework.beans.factory.annotation.Value", "import org.springframework.context.annotation.Bean", "import org.springframework.context.annotation.Configuration", "import org.neo4j.driver.Driver", "import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty", "import org.springframework.context.annotation.Primary", "import org.springframework.data.neo4j.core.transaction.Neo4jTransactionManager", "import org.springframework.transaction.PlatformTransactionManager", "import io.github.oshai.kotlinlogging.KotlinLogging", "import org.springframework.boot.CommandLineRunner" ], "arg_patterns": {} }, { "label": "infrastructure/adapters/ai-provider/src/main/kotlin/eu/corentic/springrag/config", "method_count": 4, "imports": [ "import io.netty.channel.ChannelOption", "import io.netty.handler.timeout.ReadTimeoutHandler", "import io.netty.handler.timeout.WriteTimeoutHandler", "import java.util.concurrent.TimeUnit", "import org.springframework.context.annotation.Bean", "import org.springframework.context.annotation.Configuration", "import org.springframework.http.client.ClientHttpRequestFactory", "import org.springframework.http.client.ReactorClientHttpRequestFactory", "import reactor.netty.http.client.HttpClient", "import com.fasterxml.jackson.databind.ObjectMapper", "import io.github.oshai.kotlinlogging.KotlinLogging", "import org.springframework.ai.bedrock.cohere.BedrockCohereEmbeddingModel", "import org.springframework.ai.bedrock.cohere.BedrockCohereEmbeddingOptions", "import org.springframework.ai.bedrock.cohere.api.CohereEmbeddingBedrockApi", "import org.springframework.ai.bedrock.cohere.api.CohereEmbeddingBedrockApi.CohereEmbeddingRequest", "import org.springframework.ai.bedrock.cohere.api.CohereEmbeddingBedrockApi.CohereEmbeddingResponse", "import org.springframework.ai.embedding.EmbeddingModel", "import org.springframework.beans.factory.annotation.Qualifier", "import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty", "import org.springframework.context.annotation.Primary", "import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider", "import software.amazon.awssdk.regions.providers.AwsRegionProvider", "import java.time.Duration", "import org.springframework.ai.ollama.api.OllamaApi", "import org.springframework.context.annotation.Profile", "import org.springframework.web.client.RestClient" ], "arg_patterns": {} }, { "label": "infrastructure/adapters/ai-provider/src/main/kotlin/eu/corentic/springrag/health", "method_count": 3, "imports": [ "import org.springframework.ai.ollama.api.OllamaApi", "import org.springframework.beans.factory.annotation.Value", "import org.springframework.boot.health.contributor.Health", "import org.springframework.boot.health.contributor.ReactiveHealthIndicator", "import org.springframework.cloud.client.circuitbreaker.CircuitBreakerFactory", "import org.springframework.context.annotation.Profile", "import org.springframework.stereotype.Component", "import java.util.function.Supplier", "import reactor.core.publisher.Mono", "import reactor.core.scheduler.Schedulers" ], "arg_patterns": {} }, { "label": "infrastructure/adapters/ai-provider/src/test/kotlin/eu/corentic/springrag/config", "method_count": 6, "algorithm": "CRX", "grammar": "root ::= \"assertThrows\"? \"IllegalArgumentException\"? \"java\"? \"OllamaClientProperties\"? \"EmbabelAiHttpClientProperties\"? \"Timeout\"?+ (\"assertEquals\" | \"baseUrl\" | \"ofSeconds\" | \"readTimeout\" | \"writeTimeout\")+ \"timeout\"? \"connectTimeout\"? \"read\"?", "mdl_score": 1313088395, "imports": [ "import java.time.Duration", "import kotlin.test.assertEquals", "import org.junit.jupiter.api.Assertions.assertThrows", "import org.junit.jupiter.api.Test" ], "arg_patterns": {} }, { "label": "infrastructure/adapters/ai-provider/src/test/kotlin/eu/corentic/springrag/health", "method_count": 4, "algorithm": "CRX", "grammar": "root ::= \"`when`\" \"listModels\"+ \"thenReturn\"?+ \"thenThrow\"?+ \"ListModelResponse\"?+ \"RuntimeException\"? \"listOf\"?+ (\"Model\" | \"now\")?+ \"requireNotNull\"+ \"OllamaHealthIndicator\" \"NoOpCircuitBreakerFactory\" \"health\"+ \"block\"+ \"assertEquals\" \"status\" \"code\"", "mdl_score": 11495462, "imports": [ "import java.time.Instant", "import eu.corentic.springrag.testsupport.NoOpCircuitBreakerFactory", "import org.junit.jupiter.api.Assertions.assertEquals", "import org.junit.jupiter.api.Test", "import org.mockito.Mockito.mock", "import org.mockito.Mockito.`when`", "import org.springframework.ai.ollama.api.OllamaApi" ], "arg_patterns": {} }, { "label": "infrastructure/adapters/ai-provider/src/test/kotlin/eu/corentic/springrag/service/embedding", "method_count": 5, "imports": [ "import com.fasterxml.jackson.databind.ObjectMapper", "import org.junit.jupiter.api.Assertions.assertEquals", "import org.junit.jupiter.api.Assertions.assertNotNull", "import org.junit.jupiter.api.Test", "import org.springframework.ai.bedrock.cohere.BedrockCohereEmbeddingModel", "import org.springframework.ai.bedrock.cohere.BedrockCohereEmbeddingOptions", "import org.springframework.ai.bedrock.cohere.api.CohereEmbeddingBedrockApi", "import org.springframework.ai.bedrock.cohere.api.CohereEmbeddingBedrockApi.CohereEmbeddingRequest", "import org.springframework.ai.bedrock.cohere.api.CohereEmbeddingBedrockApi.CohereEmbeddingResponse", "import org.springframework.ai.embedding.EmbeddingRequest", "import software.amazon.awssdk.auth.credentials.AnonymousCredentialsProvider", "import software.amazon.awssdk.regions.Region", "import java.time.Duration" ], "arg_patterns": {} }, { "label": "infrastructure/adapters/ai-provider/src/test/kotlin/eu/corentic/springrag/testsupport", "method_count": 3, "imports": [ "import java.util.function.Function", "import java.util.function.Supplier", "import org.springframework.cloud.client.circuitbreaker.CircuitBreaker", "import org.springframework.cloud.client.circuitbreaker.CircuitBreakerFactory", "import org.springframework.cloud.client.circuitbreaker.ConfigBuilder" ], "arg_patterns": {} }, { "label": "infrastructure/adapters/chat-memory/src/test/kotlin/eu/corentic/springrag/config", "method_count": 6, "imports": [ "import org.junit.jupiter.api.Assertions.assertEquals", "import org.junit.jupiter.api.Test", "import org.springframework.ai.chat.memory.InMemoryChatMemoryRepository", "import org.springframework.ai.chat.messages.Message", "import org.springframework.ai.chat.messages.MessageType" ], "arg_patterns": {} }, { "label": "infrastructure/adapters/doc-parser/src", "method_count": 6, "imports": [ "import ai.docling.serve.api.DoclingServeApi", "import org.springframework.boot.health.contributor.Health", "import org.springframework.boot.health.contributor.ReactiveHealthIndicator", "import org.springframework.stereotype.Component", "import reactor.core.publisher.Mono", "import reactor.core.scheduler.Schedulers", "import eu.corentic.springrag.service.docling.DoclingGraphDocumentMapper", "import eu.corentic.springrag.service.docling.DoclingService", "import eu.corentic.springrag.service.port.DocumentParserPort", "import eu.corentic.springrag.service.port.DocumentParsingRequest", "import eu.corentic.springrag.model.ParsedDocument", "import eu.corentic.springrag.config.BaseSystemTest", "import eu.corentic.springrag.config.DoclingConfig", "import java.io.File", "import org.junit.jupiter.api.Assertions.assertTrue", "import org.junit.jupiter.api.Test", "import org.springframework.beans.factory.annotation.Autowired", "import org.springframework.core.io.ClassPathResource", "import org.springframework.test.context.TestPropertySource", "import ai.docling.core.DoclingDocument", "import eu.corentic.springrag.model.GraphDocument", "import eu.corentic.springrag.common.ids.asDocumentId", "import eu.corentic.springrag.common.ids.asFilename", "import eu.corentic.springrag.common.ids.asJobId", "import eu.corentic.springrag.common.ids.asLogicalDocumentId", "import io.mockk.every", "import io.mockk.mockk", "import org.junit.jupiter.api.Assertions.assertEquals", "import org.junit.jupiter.api.Assertions.assertNull" ], "arg_patterns": {} }, { "label": "infrastructure/adapters/doc-parser/src/main/kotlin/eu/corentic/springrag/config", "method_count": 3, "imports": [ "import ai.docling.serve.api.DoclingServeApi", "import ai.docling.serve.client.DoclingServeJackson3Client", "import org.springframework.context.annotation.Bean", "import org.springframework.context.annotation.Configuration", "import java.lang.reflect.Method", "import java.net.URI", "import java.time.Duration", "import jakarta.validation.constraints.Min", "import jakarta.validation.constraints.NotBlank", "import jakarta.annotation.PostConstruct", "import org.slf4j.LoggerFactory", "import org.springframework.boot.context.properties.ConfigurationProperties", "import org.springframework.validation.annotation.Validated" ], "arg_patterns": {} }, { "label": "infrastructure/adapters/doc-parser/src/main/kotlin/eu/corentic/springrag/service/docling", "method_count": 21, "imports": [ "import com.google.auth.oauth2.GoogleCredentials", "import com.google.auth.oauth2.IdTokenCredentials", "import com.google.auth.oauth2.IdTokenProvider", "import ai.docling.core.DoclingDocument", "import eu.corentic.springrag.common.ids.JobId", "import eu.corentic.springrag.model.GraphDocument", "import eu.corentic.springrag.model.GraphImagePayload", "import eu.corentic.springrag.model.GraphPage", "import eu.corentic.springrag.model.GraphPictureElement", "import eu.corentic.springrag.model.GraphTableElement", "import eu.corentic.springrag.model.GraphTextElement", "import io.github.oshai.kotlinlogging.KotlinLogging", "import org.springframework.stereotype.Component", "import java.util.Base64", "import ai.docling.serve.api.DoclingServeApi", "import ai.docling.serve.api.convert.request.options.ConvertDocumentOptions", "import ai.docling.serve.api.convert.request.options.ImageRefMode", "import ai.docling.serve.api.convert.request.options.OcrEngine", "import ai.docling.serve.api.convert.request.options.PdfBackend", "import ai.docling.serve.api.convert.request.options.ProcessingPipeline", "import ai.docling.serve.api.convert.request.options.OutputFormat", "import ai.docling.serve.api.convert.request.source.FileSource", "import ai.docling.serve.api.convert.request.target.InBodyTarget", "import ai.docling.serve.api.convert.request.target.S3Target", "import eu.corentic.springrag.config.DoclingConfig", "import java.util.function.Supplier", "import java.time.Duration", "import jakarta.annotation.PostConstruct", "import org.springframework.cloud.client.circuitbreaker.CircuitBreakerFactory", "import org.springframework.stereotype.Service" ], "arg_patterns": {} }, { "label": "infrastructure/adapters/doc-parser/src/systemTest/kotlin/eu/corentic/springrag/config", "method_count": 6, "imports": [ "import eu.corentic.springrag.testcontainers.OllamaModelSupport", "import eu.corentic.springrag.testcontainers.SharedContainers", "import eu.corentic.springrag.testcontainers.SharedContainers.ContainerType", "import org.junit.jupiter.api.Assumptions", "import org.junit.jupiter.api.BeforeAll", "import org.springframework.boot.test.context.SpringBootTest", "import org.springframework.test.context.ActiveProfiles", "import org.springframework.test.context.DynamicPropertyRegistry", "import org.springframework.test.context.DynamicPropertySource", "import org.testcontainers.junit.jupiter.Testcontainers", "import ai.docling.serve.api.DoclingServeApi", "import ai.docling.serve.client.DoclingServeClientBuilderFactory", "import java.lang.reflect.InvocationTargetException", "import org.springframework.context.annotation.Bean", "import org.springframework.context.annotation.Configuration" ], "arg_patterns": {} }, { "label": "infrastructure/adapters/doc-parser/src/test/kotlin/eu/corentic/springrag/config", "method_count": 12, "algorithm": "CRX", "grammar": "root ::= \"doclingServeApi\"?+ \"PipelineOptions\"? \"trimIndent\"?+ \"DoclingConfig\"? \"assertNotNull\"?+ (\"assertNull\" | \"concurrency\" | \"layoutBatchSize\" | \"ocrBatchSize\" | \"tableBatchSize\")?+ \"lines\"?+ \"baseUrl\"? \"toString\"?+ \"documentTimeout\"? (\"indexOfFirst\" | \"startsWith\" | \"trimStart\")?+ (\"imageExportMode\" | \"includeImages\" | \"options\" | \"useS3Target\")?+ (\"assertThat\" | \"contains\" | \"doesNotContain\" | \"isGreaterThan\")?+ \"s3Target\"? \"bucket\"? \"assertThatThrownBy\"? \"validateCriticalSettings\"?+ \"isInstanceOf\"?+ \"IllegalStateException\"? \"java\"? \"hasMessageContaining\"?+", "mdl_score": 12886498214400, "imports": [ "import kotlin.test.assertNotNull", "import org.junit.jupiter.api.Test", "import org.assertj.core.api.Assertions.assertThat", "import org.assertj.core.api.Assertions.assertThatThrownBy", "import org.junit.jupiter.api.Assertions.assertNull" ], "arg_patterns": {} }, { "label": "infrastructure/adapters/doc-parser/src/test/kotlin/eu/corentic/springrag/health", "method_count": 3, "imports": [ "import ai.docling.serve.api.DoclingServeApi", "import ai.docling.serve.api.health.HealthCheckResponse", "import kotlin.test.assertEquals", "import org.junit.jupiter.api.Test", "import org.mockito.Mockito.mock", "import org.mockito.Mockito.`when`" ], "arg_patterns": {} }, { "label": "infrastructure/adapters/doc-parser/src/test/kotlin/eu/corentic/springrag/service/docling", "method_count": 10, "imports": [ "import ai.docling.core.DoclingDocument", "import eu.corentic.springrag.common.ids.asJobId", "import java.util.Base64", "import org.junit.jupiter.api.Assertions.assertArrayEquals", "import org.junit.jupiter.api.Assertions.assertEquals", "import org.junit.jupiter.api.Assertions.assertNotNull", "import org.junit.jupiter.api.Assertions.assertTrue", "import org.junit.jupiter.api.Test", "import ai.docling.serve.api.DoclingServeApi", "import ai.docling.serve.api.convert.request.ConvertDocumentRequest", "import ai.docling.serve.api.convert.request.options.ImageRefMode", "import ai.docling.serve.api.convert.request.options.OcrEngine", "import ai.docling.serve.api.convert.request.options.OutputFormat", "import ai.docling.serve.api.convert.request.options.PdfBackend", "import ai.docling.serve.api.convert.request.options.ProcessingPipeline", "import ai.docling.serve.api.convert.response.InBodyConvertDocumentResponse", "import ai.docling.serve.api.convert.response.DocumentResponse", "import eu.corentic.springrag.config.DoclingConfig", "import eu.corentic.springrag.config.PipelineOptions", "import eu.corentic.springrag.testsupport.NoOpCircuitBreakerFactory", "import io.mockk.clearAllMocks", "import tools.jackson.databind.ObjectMapper", "import ai.docling.serve.api.convert.request.target.S3Target", "import ai.docling.serve.api.convert.request.target.InBodyTarget", "import io.mockk.every", "import io.mockk.mockk", "import io.mockk.slot", "import io.mockk.verify", "import java.util.concurrent.CompletableFuture", "import kotlin.test.assertEquals", "import kotlin.test.assertNotNull", "import kotlin.test.assertTrue", "import org.junit.jupiter.api.AfterEach", "import org.junit.jupiter.api.BeforeEach", "import org.junit.jupiter.api.assertThrows" ], "arg_patterns": {} }, { "label": "infrastructure/adapters/doc-parser/src/test/kotlin/eu/corentic/springrag/testsupport", "method_count": 3, "imports": [ "import java.util.function.Function", "import java.util.function.Supplier", "import org.springframework.cloud.client.circuitbreaker.CircuitBreaker", "import org.springframework.cloud.client.circuitbreaker.CircuitBreakerFactory", "import org.springframework.cloud.client.circuitbreaker.ConfigBuilder" ], "arg_patterns": {} }, { "label": "infrastructure/adapters/search/src/main/kotlin/eu/corentic/springrag/health", "method_count": 7, "imports": [ "import org.neo4j.driver.Driver", "import java.time.Duration", "import org.springframework.boot.health.contributor.Health", "import org.springframework.boot.health.contributor.ReactiveHealthIndicator", "import org.springframework.stereotype.Component", "import reactor.core.publisher.Mono", "import com.google.common.util.concurrent.FutureCallback", "import com.google.common.util.concurrent.Futures", "import com.google.common.util.concurrent.ListenableFuture", "import com.google.common.util.concurrent.MoreExecutors", "import io.qdrant.client.QdrantClient", "import java.util.concurrent.ExecutionException", "import java.util.concurrent.TimeoutException", "import org.springframework.beans.factory.annotation.Value", "import org.springframework.context.annotation.Profile" ], "arg_patterns": {} }, { "label": "infrastructure/adapters/search/src/main/kotlin/eu/corentic/springrag/model/graph", "method_count": 9, "imports": [ "import java.time.Instant", "import org.springframework.data.annotation.Version", "import org.springframework.data.neo4j.core.schema.Id", "import org.springframework.data.neo4j.core.schema.Node", "import org.springframework.data.neo4j.core.schema.Relationship", "import org.springframework.data.neo4j.core.schema.Property" ], "arg_patterns": {} }, { "label": "infrastructure/adapters/search/src/main/kotlin/eu/corentic/springrag/repository", "method_count": 24, "algorithm": "CRX", "grammar": "root ::= \"run\"?+ \"VectorChunk\"? \"replace\"?+ \"Document\"? \"mutableListOf\"?+ \"debug\"?+ \"Supplier\"? \"toMap\"?+ \"orEmpty\"?+ \"String\"?+ \"action\"? \"toMutableMap\"?+ (\"add\" | \"build\" | \"builder\" | \"deleteByFilter\" | \"distinct\" | \"emptyList\" | \"escapeFilterValue\" | \"filterEquals\" | \"filterExpression\" | \"if\" | \"isEmpty\" | \"isNotEmpty\" | \"isNullOrEmpty\" | \"joinToString\" | \"query\" | \"return\" | \"return emptyList()\" | \"return runWithCircuitBreaker { vectorStore.similaritySearch(request).map { it.toVectorChunk() } }\" | \"runWithCircuitBreaker\" | \"size\" | \"topK\" | \"value\")?+ \"IllegalStateException\"? \"apply\"?+ \"delete\"?+ \"similaritySearch\"?+ \"warn\"?+ \"putIfAbsent\"? \"map\"?+ \"message\"? (\"toSpringDocument\" | \"toVectorChunk\")?+ \"throw cause\"? \"throw\"?", "mdl_score": 1000000000000000000000000000000, "imports": [ "import eu.corentic.springrag.model.VectorChunk", "import org.springframework.ai.document.Document", "import eu.corentic.springrag.common.ids.DocumentId", "import eu.corentic.springrag.common.ids.JobId", "import eu.corentic.springrag.common.ids.KnowledgeBaseId", "import eu.corentic.springrag.common.ids.LogicalDocumentId", "import java.util.function.Supplier", "import org.springframework.ai.vectorstore.SearchRequest", "import org.springframework.ai.vectorstore.VectorStore", "import org.springframework.cloud.client.circuitbreaker.CircuitBreakerFactory", "import io.github.oshai.kotlinlogging.KotlinLogging", "import org.springframework.stereotype.Repository" ], "arg_patterns": {} }, { "label": "infrastructure/adapters/search/src/main/kotlin/eu/corentic/springrag/service/agent", "method_count": 3, "imports": [ "import eu.corentic.springrag.model.graph.AgentNode", "import eu.corentic.springrag.model.graph.KnowledgeBaseNode", "import eu.corentic.springrag.repository.graph.AgentRepository", "import eu.corentic.springrag.repository.graph.KnowledgeBaseRepository", "import eu.corentic.springrag.service.port.AgentKnowledgeBasePort", "import org.springframework.stereotype.Service", "import org.springframework.transaction.annotation.Transactional", "import java.time.Instant" ], "arg_patterns": {} }, { "label": "infrastructure/adapters/search/src/main/kotlin/eu/corentic/springrag/service/cleanup", "method_count": 4, "algorithm": "CRX", "grammar": "root ::= \"info\"+ (\"deleteByJobId\" | \"deleteByKnowledgeBaseId\" | \"jobId\" | \"knowledgeBaseId\" | \"value\")+", "mdl_score": 1015620, "imports": [ "import eu.corentic.springrag.model.event.DocumentDeletionRequested", "import eu.corentic.springrag.service.graph.GraphIngestionOrchestrator", "import io.github.oshai.kotlinlogging.KotlinLogging", "import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty", "import org.springframework.modulith.events.ApplicationModuleListener", "import org.springframework.stereotype.Component", "import eu.corentic.springrag.model.event.KnowledgeBaseDeletionRequested", "import eu.corentic.springrag.repository.VectorRepository" ], "arg_patterns": {} }, { "label": "infrastructure/adapters/search/src/main/kotlin/eu/corentic/springrag/service/graph", "method_count": 12, "imports": [ "import eu.corentic.springrag.common.ids.DocumentId", "import eu.corentic.springrag.common.ids.Filename", "import eu.corentic.springrag.common.ids.JobId", "import eu.corentic.springrag.common.ids.KnowledgeBaseId", "import eu.corentic.springrag.common.ids.LogicalDocumentId", "import eu.corentic.springrag.common.ids.StorageUri", "import eu.corentic.springrag.model.DocumentGraphJob", "import eu.corentic.springrag.model.GraphDocument", "import eu.corentic.springrag.model.GraphImagePayload", "import eu.corentic.springrag.model.GraphPictureElement", "import eu.corentic.springrag.model.GraphTableElement", "import eu.corentic.springrag.model.GraphTextElement", "import eu.corentic.springrag.model.graph.DocumentJobNode", "import eu.corentic.springrag.model.graph.ImageData", "import eu.corentic.springrag.model.graph.PageNode", "import eu.corentic.springrag.model.graph.PictureElement", "import eu.corentic.springrag.model.graph.TableElement", "import eu.corentic.springrag.model.graph.TextElement", "import eu.corentic.springrag.service.port.DocumentGraphJobPort", "import eu.corentic.springrag.service.port.GraphIndexPort", "import eu.corentic.springrag.service.port.KnowledgeBasePort", "import eu.corentic.springrag.service.port.ObjectStoragePort", "import java.util.function.Supplier", "import io.github.oshai.kotlinlogging.KotlinLogging", "import org.springframework.cloud.client.circuitbreaker.CircuitBreakerFactory", "import org.springframework.stereotype.Component", "import org.springframework.transaction.annotation.Propagation", "import org.springframework.transaction.annotation.Transactional", "import java.time.Instant", "import java.util.concurrent.CompletableFuture", "import java.util.concurrent.Executors" ], "arg_patterns": {} }, { "label": "infrastructure/adapters/search/src/main/kotlin/eu/corentic/springrag/service/port/adapter", "method_count": 45, "algorithm": "CRX", "grammar": "root ::= \"save\"?+ (\"Regex\" | \"emptyList\" | \"if\" | \"isNullOrBlank\" | \"replace\" | \"return emptyList()\")?+ \"deleteByJobId\"?+ \"toNode\"?+ \"findById\"?+ \"of\"?+ \"value\"?+ \"map\"?+ \"orElse\"?+ \"toDomain\"?+ \"text\"? \"let\"?+ \"storageUri\"? (\"imageType\" | \"pageNo\")?+", "mdl_score": 41773224, "imports": [ "import eu.corentic.springrag.common.ids.StorageUri", "import eu.corentic.springrag.model.PageTextElement", "import eu.corentic.springrag.model.SourceImage", "import eu.corentic.springrag.repository.graph.ImageDataRepository", "import eu.corentic.springrag.repository.graph.TextElementRepository", "import eu.corentic.springrag.repository.graph.TableElementRepository", "import eu.corentic.springrag.service.port.ChatGraphLookupPort", "import eu.corentic.springrag.service.port.ObjectStoragePort", "import java.util.Base64", "import org.springframework.stereotype.Component", "import eu.corentic.springrag.common.ids.DocumentId", "import eu.corentic.springrag.common.ids.Filename", "import eu.corentic.springrag.common.ids.JobId", "import eu.corentic.springrag.common.ids.KnowledgeBaseId", "import eu.corentic.springrag.common.ids.LogicalDocumentId", "import eu.corentic.springrag.model.DocumentGraphJob", "import eu.corentic.springrag.model.graph.DocumentJobNode", "import eu.corentic.springrag.repository.graph.DocumentJobNodeRepository", "import eu.corentic.springrag.service.port.DocumentGraphJobPort", "import java.time.Instant", "import eu.corentic.springrag.service.port.DocumentIdPort", "import eu.corentic.springrag.service.port.DocumentImageInfo", "import eu.corentic.springrag.service.port.DocumentImagePort", "import eu.corentic.springrag.repository.graph.GraphMaintenanceRepository", "import eu.corentic.springrag.service.graph.GraphDeletePort", "import eu.corentic.springrag.service.graph.GraphStorePort", "import eu.corentic.springrag.service.port.KnowledgeBaseDocumentPort", "import eu.corentic.springrag.model.KnowledgeBase", "import eu.corentic.springrag.model.KnowledgeBaseStats", "import eu.corentic.springrag.model.graph.KnowledgeBaseNode", "import eu.corentic.springrag.repository.graph.KnowledgeBaseRepository", "import eu.corentic.springrag.service.port.KnowledgeBasePort", "import eu.corentic.springrag.model.VectorChunk", "import eu.corentic.springrag.repository.VectorRepository", "import eu.corentic.springrag.service.port.ChunkIndexPort", "import io.github.oshai.kotlinlogging.KotlinLogging", "import eu.corentic.springrag.service.port.VectorDocumentDeletionPort", "import eu.corentic.springrag.service.port.VectorDocumentPort", "import eu.corentic.springrag.service.port.RetrievalPort" ], "arg_patterns": {} }, { "label": "infrastructure/adapters/search/src/main/kotlin/eu/corentic/springrag/service/storage", "method_count": 40, "algorithm": "CRX", "grammar": "root ::= \"when\"? \"buildImageKey\"? \"loadObject\"? \"replace\"?+ (\"listObjects\" | \"return parseStorageUri(storageUri)\n ?: S3Location(bucket = properties.bucket, key = storageUri.trimStart('/'))\")? \"return storeObject(key, bytes, contentTypeFor(format))\"? \"ifBlank\"?+ \"storeObject\"? \"lowercase\"?+ \"contentTypeFor\"? \"return StorageUri.of(\\\"images/${jobId.value}/$sanitizedId.$extension\\\")\"? (\"BlobListOption\" | \"GcsLocation\" | \"NoSuchBucketException\" | \"ObjectIdentifier\" | \"S3Exception\" | \"S3Location\" | \"amazon\" | \"awssdk\" | \"bucket\" | \"build\" | \"builder\" | \"catch\" | \"chunked\" | \"contentType\" | \"contents\" | \"create\" | \"credentialsProvider\" | \"delete\" | \"deleteObject\" | \"deleteObjects\" | \"else\" | \"fromBytes\" | \"get\" | \"getObject\" | \"headObject\" | \"if\" | \"isBlank\" | \"isEmpty\" | \"iterateAll\" | \"key\" | \"list\" | \"listObjectsV2\" | \"map\" | \"mapNotNull\" | \"model\" | \"name\" | \"objects\" | \"of\" | \"parseS3Location\" | \"parseStorageUri\" | \"prefix\" | \"putObject\" | \"readAllBytes\" | \"region\" | \"resolveLocation\" | \"return 0\" | \"return StorageUri.of(\\\"s3://${location.bucket}/${location.key}\\\")\" | \"return false\" | \"return null\" | \"return parseS3Location(storageUri, properties.bucket)\n ?: run {\n if (storageUri.startsWith(\\\"s3://\\\")) {\n logger.warn { \\\"Invalid storage URI: $storageUri\\\" }\n }\n null\n }\" | \"return response.contents().map { obj -> StorageUri.of(\\\"s3://${location.bucket}/${obj.key()}\\\") }\" | \"return try {\n s3Client.deleteObject(\n DeleteObjectRequest.builder()\n .bucket(location.bucket)\n .key(location.key)\n .build()\n )\n true\n } catch (ex: S3Exception) {\n if (ex.statusCode() == 404) false else throw ex\n }\" | \"return try {\n s3Client.getObject({ builder ->\n builder.bucket(location.bucket).key(location.key)\n }).readAllBytes()\n } catch (ex: NoSuchBucketException) {\n logger.warn { \\\"S3 bucket missing for object retrieval: ${location.bucket}\\\" }\n null\n } catch (ex: S3Exception) {\n logger.warn(ex) { \\\"Failed to load object from S3: ${storageUri.value}\\\" }\n null\n }\" | \"return try {\n s3Client.headObject(\n HeadObjectRequest.builder()\n .bucket(location.bucket)\n .key(location.key)\n .build()\n )\n true\n } catch (_: NoSuchBucketException) {\n false\n } catch (ex: S3Exception) {\n if (ex.statusCode() == 404) false else throw ex\n }\" | \"run\" | \"s3\" | \"services\" | \"startsWith\" | \"statusCode\" | \"sumOf\" | \"toList\" | \"trimEnd\" | \"trimStart\" | \"try\" | \"value\" | \"warn\")?+ \"throw ex\"? \"size\"? \"throw\"?", "mdl_score": 1000000000000000000000000000000, "imports": [ "import eu.corentic.springrag.common.ids.JobId", "import eu.corentic.springrag.common.ids.StorageUri", "import eu.corentic.springrag.config.ObjectStorageProperties", "import eu.corentic.springrag.service.port.ObjectStoragePort", "import io.github.oshai.kotlinlogging.KotlinLogging", "import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty", "import org.springframework.stereotype.Component", "import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider", "import software.amazon.awssdk.regions.Region", "import software.amazon.awssdk.services.s3.S3Client", "import software.amazon.awssdk.services.s3.model.Delete", "import software.amazon.awssdk.services.s3.model.DeleteObjectRequest", "import software.amazon.awssdk.services.s3.model.DeleteObjectsRequest", "import software.amazon.awssdk.services.s3.model.HeadObjectRequest", "import software.amazon.awssdk.services.s3.model.ListObjectsV2Request", "import software.amazon.awssdk.services.s3.model.NoSuchBucketException", "import software.amazon.awssdk.services.s3.model.PutObjectRequest", "import software.amazon.awssdk.services.s3.model.S3Exception", "import software.amazon.awssdk.core.sync.RequestBody", "import com.google.cloud.storage.BlobId", "import com.google.cloud.storage.BlobInfo", "import com.google.cloud.storage.Storage", "import com.google.cloud.storage.StorageOptions", "import java.net.URI", "import software.amazon.awssdk.auth.credentials.AwsBasicCredentials", "import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider", "import software.amazon.awssdk.services.s3.S3Configuration", "import software.amazon.awssdk.services.s3.model.CreateBucketRequest", "import software.amazon.awssdk.services.s3.model.HeadBucketRequest" ], "arg_patterns": {} }, { "label": "infrastructure/adapters/search/src/systemTest/kotlin/eu/corentic/springrag/config", "method_count": 4, "imports": [ "import eu.corentic.springrag.testcontainers.OllamaModelSupport", "import eu.corentic.springrag.testcontainers.QdrantTestSupport", "import eu.corentic.springrag.testcontainers.QdrantTestSupport.recreateTestCollection", "import eu.corentic.springrag.testcontainers.SharedContainers", "import eu.corentic.springrag.testcontainers.SharedContainers.ContainerType", "import io.qdrant.client.QdrantClient", "import org.junit.jupiter.api.Assumptions", "import org.junit.jupiter.api.BeforeAll", "import org.junit.jupiter.api.BeforeEach", "import org.springframework.beans.factory.annotation.Autowired", "import org.springframework.boot.test.context.SpringBootTest", "import org.springframework.test.context.ActiveProfiles", "import org.springframework.test.context.DynamicPropertyRegistry", "import org.springframework.test.context.DynamicPropertySource", "import org.springframework.test.context.TestPropertySource", "import org.testcontainers.junit.jupiter.Testcontainers" ], "arg_patterns": {} }, { "label": "infrastructure/adapters/search/src/systemTest/kotlin/eu/corentic/springrag/repository/graph", "method_count": 23, "imports": [ "import eu.corentic.springrag.config.BaseSystemTest", "import eu.corentic.springrag.model.graph.DocumentJobNode", "import eu.corentic.springrag.model.graph.ImageData", "import eu.corentic.springrag.model.graph.KnowledgeBaseNode", "import eu.corentic.springrag.model.graph.PageNode", "import eu.corentic.springrag.model.graph.TextElement", "import java.time.Instant", "import org.junit.jupiter.api.Assertions.*", "import org.junit.jupiter.api.Test", "import org.springframework.beans.factory.annotation.Autowired", "import org.springframework.test.annotation.DirtiesContext", "import org.springframework.test.annotation.DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD", "import kotlinx.coroutines.runBlocking", "import org.junit.jupiter.api.AfterEach", "import org.junit.jupiter.api.BeforeEach", "import eu.corentic.springrag.model.graph.TableElement", "import org.junit.jupiter.api.Assertions.assertEquals", "import org.springframework.context.annotation.Import" ], "arg_patterns": {} }, { "label": "infrastructure/adapters/search/src/systemTest/kotlin/eu/corentic/springrag/system", "method_count": 6, "imports": [ "import eu.corentic.springrag.common.ids.asJobId", "import eu.corentic.springrag.config.BaseSystemTest", "import eu.corentic.springrag.model.VectorChunk", "import eu.corentic.springrag.repository.VectorRepository", "import kotlinx.coroutines.runBlocking", "import org.junit.jupiter.api.Assertions.assertEquals", "import org.junit.jupiter.api.Assertions.assertTrue", "import org.junit.jupiter.api.BeforeEach", "import org.junit.jupiter.api.Test", "import org.springframework.beans.factory.annotation.Autowired", "import org.springframework.test.annotation.DirtiesContext", "import org.springframework.test.annotation.DirtiesContext.ClassMode.BEFORE_CLASS" ], "arg_patterns": {} }, { "label": "infrastructure/adapters/search/src/test/kotlin/eu/corentic/springrag/config", "method_count": 3, "imports": [ "import io.mockk.mockk", "import org.junit.jupiter.api.Assertions.assertEquals", "import org.junit.jupiter.api.Assertions.assertTrue", "import org.junit.jupiter.api.Test", "import org.neo4j.driver.Driver", "import org.springframework.data.neo4j.core.transaction.Neo4jTransactionManager", "import org.junit.jupiter.api.Assertions.assertThrows", "import org.mockito.ArgumentMatchers.anyString", "import org.mockito.ArgumentMatchers.contains", "import org.mockito.Mockito.mock", "import org.mockito.Mockito.times", "import org.mockito.Mockito.atLeastOnce", "import org.mockito.Mockito.verify", "import org.mockito.Mockito.`when`", "import org.neo4j.driver.Result", "import org.neo4j.driver.Session" ], "arg_patterns": {} }, { "label": "infrastructure/adapters/search/src/test/kotlin/eu/corentic/springrag/health", "method_count": 6, "algorithm": "CRX", "grammar": "root ::= (\"HealthCheckReply\" | \"`when`\" | \"collectionExistsAsync\" | \"getDefaultInstance\" | \"healthCheckAsync\" | \"immediateFuture\" | \"thenReturn\" | \"verifyConnectivityAsync\")+ \"failedFuture\"?+ \"immediateFailedFuture\"?+ \"completedFuture\"?+ \"IllegalStateException\"? (\"InterruptedException\" | \"TimeoutException\")? (\"Neo4jDriverHealthIndicator\" | \"QdrantVectorStoreHealthIndicator\" | \"assertEquals\" | \"assertTrue\" | \"block\" | \"code\" | \"currentThread\" | \"health\" | \"interrupted\" | \"isInterrupted\" | \"requireNotNull\" | \"status\")+", "mdl_score": 543453942907716848523777120, "imports": [ "import java.util.concurrent.CompletableFuture", "import org.junit.jupiter.api.Assertions.assertEquals", "import org.junit.jupiter.api.Test", "import org.mockito.Mockito.mock", "import org.neo4j.driver.Driver", "import org.mockito.Mockito.`when`", "import com.google.common.util.concurrent.Futures", "import io.qdrant.client.QdrantClient", "import io.qdrant.client.grpc.QdrantOuterClass", "import java.util.concurrent.TimeoutException", "import kotlin.test.assertEquals", "import kotlin.test.assertTrue" ], "arg_patterns": {} }, { "label": "infrastructure/adapters/search/src/test/kotlin/eu/corentic/springrag/model/graph", "method_count": 7, "algorithm": "CRX", "grammar": "root ::= (\"ImageData\" | \"PageNode\")?+ (\"PictureElement\" | \"SectionHeaderElement\")? \"copy\"?+ \"assertEquals\"?+ \"assertNotEquals\"? (\"hashCode\" | \"label\")?+", "mdl_score": 6936, "imports": [ "import kotlin.test.assertEquals", "import kotlin.test.assertNotEquals", "import org.junit.jupiter.api.Test", "import org.junit.jupiter.api.Assertions.assertEquals", "import org.junit.jupiter.api.Assertions.assertNotEquals" ], "arg_patterns": {} }, { "label": "infrastructure/adapters/search/src/test/kotlin/eu/corentic/springrag/repository", "method_count": 19, "imports": [ "import eu.corentic.springrag.common.ids.asDocumentId", "import eu.corentic.springrag.common.ids.asJobId", "import eu.corentic.springrag.common.ids.asKnowledgeBaseId", "import eu.corentic.springrag.common.ids.asLogicalDocumentId", "import eu.corentic.springrag.model.VectorChunk", "import eu.corentic.springrag.testsupport.NoOpCircuitBreakerFactory", "import io.mockk.every", "import io.mockk.just", "import io.mockk.mockk", "import io.mockk.runs", "import io.mockk.verify", "import org.junit.jupiter.api.BeforeEach", "import org.junit.jupiter.api.Test", "import org.springframework.ai.document.Document", "import org.springframework.ai.vectorstore.SearchRequest", "import org.springframework.ai.vectorstore.VectorStore", "import kotlin.test.assertEquals", "import kotlin.test.assertTrue" ], "arg_patterns": {} }, { "label": "infrastructure/adapters/search/src/test/kotlin/eu/corentic/springrag/service/cleanup", "method_count": 4, "imports": [ "import eu.corentic.springrag.model.event.DocumentDeletionRequested", "import eu.corentic.springrag.service.graph.GraphIngestionOrchestrator", "import eu.corentic.springrag.common.ids.asJobId", "import eu.corentic.springrag.common.ids.asKnowledgeBaseId", "import io.mockk.every", "import io.mockk.just", "import io.mockk.mockk", "import io.mockk.runs", "import io.mockk.verify", "import org.junit.jupiter.api.Test", "import eu.corentic.springrag.model.event.KnowledgeBaseDeletionRequested", "import eu.corentic.springrag.repository.VectorRepository" ], "arg_patterns": {} }, { "label": "infrastructure/adapters/search/src/test/kotlin/eu/corentic/springrag/service/graph", "method_count": 30, "algorithm": "CRX", "grammar": "root ::= \"GraphDocument\"? \"assertThrows\"? \"IllegalArgumentException\"? \"java\"? (\"DocumentGraphJob\" | \"DocumentJobNode\" | \"GraphImagePayload\" | \"GraphPage\" | \"GraphPictureElement\" | \"GraphTableElement\" | \"GraphTextElement\" | \"Instant\" | \"String\" | \"activateDocument\" | \"activateDocumentGraph\" | \"adjustCounters\" | \"adjustSizeInBytes\" | \"any\" | \"arg\" | \"asDocumentId\" | \"asFilename\" | \"asJobId\" | \"asKnowledgeBaseId\" | \"asLogicalDocumentId\" | \"asStorageUri\" | \"assertDoesNotThrow\" | \"byteArrayOf\" | \"capture\" | \"corentic\" | \"countActiveDocumentsByLogicalDocumentId\" | \"countActiveElementsByLogicalDocumentId\" | \"createBelongsToRelationship\" | \"deactivateByLogicalDocumentId\" | \"deactivateByLogicalDocumentIdExcept\" | \"deleteByJobId\" | \"deleteObject\" | \"deleteObjects\" | \"emptyGraphDocument\" | \"emptyList\" | \"eu\" | \"every\" | \"existsById\" | \"findByJobId\" | \"findByKnowledgeBaseId\" | \"findByLogicalDocumentId\" | \"findOrCreateInactive\" | \"forEach\" | \"graph\" | \"isActive\" | \"listOf\" | \"minusSeconds\" | \"model\" | \"now\" | \"parse\" | \"repeat\" | \"saveDocumentGraph\" | \"slot\" | \"springrag\" | \"stageDocumentGraph\" | \"storeDocumentGraph\" | \"storeImage\" | \"stubDocumentGraphJob\" | \"sumActiveFileSizeBytesByLogicalDocumentId\" | \"time\" | \"value\" | \"verify\" | \"verifyOrder\")?+ \"GraphIngestionOrchestrator\"? \"captured\"? \"NoOpCircuitBreakerFactory\"? (\"assertEquals\" | \"assertNotNull\" | \"assertNull\" | \"doclingId\" | \"first\" | \"height\" | \"imageData\" | \"imageType\" | \"page\" | \"pageNo\" | \"pages\" | \"pictureElements\" | \"rendering\" | \"size\" | \"storageUri\" | \"textElements\" | \"width\")?+ \"text\"?", "mdl_score": 1000000000000000000000000000000, "imports": [ "import eu.corentic.springrag.model.DocumentGraphJob", "import eu.corentic.springrag.model.GraphDocument", "import eu.corentic.springrag.model.GraphImagePayload", "import eu.corentic.springrag.model.GraphPage", "import eu.corentic.springrag.model.GraphPictureElement", "import eu.corentic.springrag.model.GraphTableElement", "import eu.corentic.springrag.model.GraphTextElement", "import eu.corentic.springrag.service.port.DocumentGraphJobPort", "import eu.corentic.springrag.service.port.KnowledgeBasePort", "import eu.corentic.springrag.service.port.ObjectStoragePort", "import eu.corentic.springrag.testsupport.NoOpCircuitBreakerFactory", "import eu.corentic.springrag.common.ids.asDocumentId", "import eu.corentic.springrag.common.ids.asFilename", "import eu.corentic.springrag.common.ids.asJobId", "import eu.corentic.springrag.common.ids.asKnowledgeBaseId", "import eu.corentic.springrag.common.ids.asLogicalDocumentId", "import eu.corentic.springrag.common.ids.asStorageUri", "import io.mockk.*", "import io.mockk.impl.annotations.MockK", "import io.mockk.junit5.MockKExtension", "import org.junit.jupiter.api.Assertions.*", "import org.junit.jupiter.api.BeforeEach", "import org.junit.jupiter.api.Test", "import org.junit.jupiter.api.extension.ExtendWith" ], "arg_patterns": {} }, { "label": "infrastructure/adapters/search/src/test/kotlin/eu/corentic/springrag/service/port/adapter", "method_count": 28, "imports": [ "import eu.corentic.springrag.model.graph.ImageData", "import eu.corentic.springrag.model.graph.TableElement", "import eu.corentic.springrag.model.graph.TextElement", "import eu.corentic.springrag.repository.graph.ImageDataRepository", "import eu.corentic.springrag.repository.graph.TableElementRepository", "import eu.corentic.springrag.repository.graph.TextElementRepository", "import eu.corentic.springrag.service.port.ObjectStoragePort", "import eu.corentic.springrag.common.ids.asStorageUri", "import io.mockk.every", "import io.mockk.mockk", "import io.mockk.verify", "import java.util.Optional", "import org.junit.jupiter.api.Assertions.assertEquals", "import org.junit.jupiter.api.Assertions.assertNull", "import org.junit.jupiter.api.Test", "import eu.corentic.springrag.model.DocumentGraphJob", "import eu.corentic.springrag.model.graph.DocumentJobNode", "import eu.corentic.springrag.model.graph.KnowledgeBaseNode", "import eu.corentic.springrag.repository.graph.DocumentJobNodeRepository", "import eu.corentic.springrag.common.ids.asDocumentId", "import eu.corentic.springrag.common.ids.asFilename", "import eu.corentic.springrag.common.ids.asJobId", "import eu.corentic.springrag.common.ids.asKnowledgeBaseId", "import eu.corentic.springrag.common.ids.asLogicalDocumentId", "import java.time.Instant", "import org.junit.jupiter.api.Assertions.assertTrue", "import eu.corentic.springrag.repository.graph.GraphMaintenanceRepository", "import io.mockk.just", "import io.mockk.runs", "import eu.corentic.springrag.model.KnowledgeBase", "import eu.corentic.springrag.repository.graph.KnowledgeBaseRepository", "import eu.corentic.springrag.model.VectorChunk", "import eu.corentic.springrag.repository.VectorRepository" ], "arg_patterns": {} }, { "label": "infrastructure/adapters/search/src/test/kotlin/eu/corentic/springrag/service/storage", "method_count": 3, "algorithm": "CRX", "grammar": "root ::= \"assertNull\"? \"parseS3Location\" \"error\"?+ (\"assertEquals\" | \"bucket\")?+ \"key\"?", "mdl_score": 272, "imports": [ "import kotlin.test.Test", "import kotlin.test.assertEquals", "import kotlin.test.assertNull" ], "arg_patterns": {} }, { "label": "infrastructure/adapters/search/src/test/kotlin/eu/corentic/springrag/testsupport", "method_count": 3, "imports": [ "import java.util.function.Function", "import java.util.function.Supplier", "import org.springframework.cloud.client.circuitbreaker.CircuitBreaker", "import org.springframework.cloud.client.circuitbreaker.CircuitBreakerFactory", "import org.springframework.cloud.client.circuitbreaker.ConfigBuilder" ], "arg_patterns": {} }, { "label": "modules/chat/src/integrationTest/kotlin/eu/corentic/springrag/service/chat", "method_count": 4, "imports": [ "import eu.corentic.springrag.agent.capability.AgentCapabilityDirectory", "import eu.corentic.springrag.agent.rag.RagAgentInvocationGateway", "import org.springframework.boot.SpringBootConfiguration", "import org.springframework.boot.autoconfigure.EnableAutoConfiguration", "import org.springframework.context.annotation.Bean", "import eu.corentic.springrag.agent.capability.AgentExecutionContext", "import eu.corentic.springrag.agent.rag.RagInvocation", "import eu.corentic.springrag.agent.rag.RagRequest", "import eu.corentic.springrag.common.ids.KnowledgeBaseId", "import eu.corentic.springrag.model.ChatResponse", "import io.mockk.every", "import io.mockk.coEvery", "import io.mockk.coVerify", "import io.mockk.mockk", "import kotlinx.coroutines.runBlocking", "import org.junit.jupiter.api.Assertions.assertEquals", "import org.junit.jupiter.api.Test", "import org.springframework.beans.factory.annotation.Autowired", "import org.springframework.boot.test.context.SpringBootTest", "import org.springframework.boot.test.context.TestConfiguration", "import org.springframework.test.context.ActiveProfiles" ], "arg_patterns": {} }, { "label": "modules/chat/src/main/kotlin/eu/corentic/springrag/service/chat", "method_count": 6, "algorithm": "CRX", "grammar": "root ::= \"let\"?+ \"info\"?+ \"KnowledgeBaseId\"? \"defaultAgentId\"?+ (\"RagInvocation\" | \"RagRequest\" | \"invoke\" | \"return ragAgentInvocationGateway.invoke(\n RagInvocation(\n request = request,\n executionContext = AgentExecutionContext.http()\n )\n )\" | \"return ragAgentInvocationGateway.invoke(\n RagInvocation(\n request = request,\n executionContext = AgentExecutionContext.http(contextId = conversationId)\n )\n )\")?+ \"listCapabilities\"?+ \"http\"?+ \"map\"?+ \"filter\"?+ \"id\"? \"AgentCapabilityDescriptor\"?", "mdl_score": 1345, "imports": [ "import eu.corentic.springrag.agent.capability.AgentCapabilityDescriptor", "import eu.corentic.springrag.agent.capability.AgentCapabilityDirectory", "import eu.corentic.springrag.agent.capability.AgentExecutionContext", "import eu.corentic.springrag.agent.capability.isExposedOverHttp", "import eu.corentic.springrag.agent.rag.RagAgentInvocationGateway", "import eu.corentic.springrag.agent.rag.RagInvocation", "import eu.corentic.springrag.agent.rag.RagRequest", "import eu.corentic.springrag.common.ids.KnowledgeBaseId", "import eu.corentic.springrag.model.ChatResponse", "import jakarta.annotation.PostConstruct", "import io.github.oshai.kotlinlogging.KotlinLogging", "import org.springframework.stereotype.Service" ], "arg_patterns": {} }, { "label": "modules/chat/src/systemTest/kotlin/eu/corentic/springrag/config", "method_count": 15, "imports": [ "import eu.corentic.springrag.testcontainers.OllamaModelSupport", "import eu.corentic.springrag.testcontainers.QdrantTestSupport", "import eu.corentic.springrag.testcontainers.QdrantTestSupport.recreateTestCollection", "import eu.corentic.springrag.testcontainers.SharedContainers", "import eu.corentic.springrag.testcontainers.SharedContainers.ContainerType", "import io.qdrant.client.QdrantClient", "import java.time.Duration", "import java.time.Instant", "import java.util.UUID", "import org.junit.jupiter.api.Assumptions", "import org.junit.jupiter.api.BeforeAll", "import org.junit.jupiter.api.BeforeEach", "import org.neo4j.driver.Driver", "import org.springframework.beans.factory.annotation.Autowired", "import org.springframework.boot.test.context.SpringBootTest", "import org.springframework.boot.webtestclient.autoconfigure.AutoConfigureWebTestClient", "import org.springframework.jdbc.core.JdbcTemplate", "import org.springframework.security.crypto.password.PasswordEncoder", "import org.springframework.test.context.ActiveProfiles", "import org.springframework.test.context.DynamicPropertyRegistry", "import org.springframework.test.context.DynamicPropertySource", "import org.springframework.test.context.TestPropertySource", "import org.springframework.test.web.reactive.server.WebTestClient", "import org.testcontainers.junit.jupiter.Testcontainers", "import java.sql.Timestamp", "import org.springframework.ai.chat.memory.ChatMemory", "import org.springframework.ai.chat.memory.ChatMemoryRepository", "import org.springframework.ai.chat.memory.MessageWindowChatMemory", "import org.springframework.context.annotation.Bean", "import org.springframework.context.annotation.Configuration", "import org.springframework.boot.SpringBootConfiguration", "import org.springframework.boot.autoconfigure.EnableAutoConfiguration", "import org.springframework.boot.context.properties.ConfigurationPropertiesScan", "import org.springframework.context.annotation.ComponentScan", "import org.springframework.data.neo4j.repository.config.EnableNeo4jRepositories", "import org.springframework.data.jdbc.repository.config.EnableJdbcRepositories", "import org.springframework.jdbc.datasource.DataSourceTransactionManager", "import org.springframework.transaction.PlatformTransactionManager", "import javax.sql.DataSource", "import ai.docling.serve.api.DoclingServeApi", "import ai.docling.serve.client.DoclingServeClientBuilderFactory", "import java.lang.reflect.InvocationTargetException" ], "arg_patterns": {} }, { "label": "modules/chat/src/systemTest/kotlin/eu/corentic/springrag/system", "method_count": 4, "imports": [ "import eu.corentic.springrag.config.BaseSystemTest", "import eu.corentic.springrag.controller.SessionChatRequest", "import eu.corentic.springrag.model.ChatResponse", "import eu.corentic.springrag.model.VectorChunk", "import eu.corentic.springrag.repository.VectorRepository", "import java.time.Duration", "import kotlinx.coroutines.runBlocking", "import org.awaitility.Awaitility.await", "import org.junit.jupiter.api.Assertions.assertEquals", "import org.junit.jupiter.api.Assertions.assertNotNull", "import org.junit.jupiter.api.Assertions.assertTrue", "import org.junit.jupiter.api.Test", "import org.springframework.ai.chat.memory.ChatMemory", "import org.springframework.beans.factory.annotation.Autowired", "import org.springframework.boot.webtestclient.autoconfigure.AutoConfigureWebTestClient", "import org.springframework.test.web.reactive.server.WebTestClient", "import org.springframework.test.web.reactive.server.returnResult" ], "arg_patterns": {} }, { "label": "modules/chat/src/test/kotlin/eu/corentic/springrag/service/chat", "method_count": 8, "imports": [ "import eu.corentic.springrag.agent.capability.AgentCapabilityDirectory", "import eu.corentic.springrag.agent.capability.AgentExecutionContext", "import eu.corentic.springrag.agent.rag.RagAgentInvocationGateway", "import eu.corentic.springrag.agent.rag.RagInvocation", "import eu.corentic.springrag.agent.rag.RagRequest", "import eu.corentic.springrag.common.ids.asKnowledgeBaseId", "import eu.corentic.springrag.model.ChatResponse", "import io.mockk.coEvery", "import io.mockk.coVerify", "import io.mockk.every", "import io.mockk.mockk", "import kotlinx.coroutines.test.StandardTestDispatcher", "import kotlinx.coroutines.test.runTest", "import org.junit.jupiter.api.Assertions.assertEquals", "import org.junit.jupiter.api.Test", "import eu.corentic.springrag.agent.capability.AgentCapabilityDescriptor", "import org.junit.jupiter.api.BeforeEach" ], "arg_patterns": {} }, { "label": "modules/common/src/main/kotlin/eu/corentic/springrag/common", "method_count": 7, "imports": [], "arg_patterns": {} }, { "label": "modules/common/src/main/kotlin/eu/corentic/springrag/common/ids", "method_count": 18, "algorithm": "CRX", "grammar": "root ::= (\"removeSuffix\" | \"trim\")?+ \"requireNonBlankNoWhitespace\"? \"of\"?+ (\"DocumentId\" | \"JobId\" | \"KnowledgeBaseId\" | \"LogicalDocumentId\")? \"trimStart\"?+ \"requireSafeId\"? \"return StorageUri(\\\"$base/$relative\\\")\"? \"StorageUri\"? \"requireNonBlank\"? (\"contains\" | \"isNotEmpty\" | \"require\")?+ \"return BatchId(normalized)\"? \"matches\"?+ \"any\"?+ \"return Filename(normalized)\"? \"BatchId\"? \"isWhitespace\"?+ \"Filename\"? \"return normalized\"?", "mdl_score": 3509058, "imports": [], "arg_patterns": {} }, { "label": "modules/common/src/test/kotlin/eu/corentic/springrag/common/ids", "method_count": 8, "algorithm": "CRX", "grammar": "root ::= (\"IllegalArgumentException\" | \"asBatchId\" | \"asDocumentId\" | \"asFilename\" | \"asJobId\" | \"asKnowledgeBaseId\" | \"asLogicalDocumentId\" | \"asStorageUri\" | \"assertEquals\" | \"assertFailsWith\" | \"of\" | \"value\")+", "mdl_score": 1000000000000000000000000000000, "imports": [ "import kotlin.test.Test", "import kotlin.test.assertEquals", "import kotlin.test.assertFailsWith" ], "arg_patterns": {} }, { "label": "modules/ingestion/src/integrationTest/kotlin/eu/corentic/springrag/service/job", "method_count": 34, "imports": [ "import com.ninjasquad.springmockk.MockkBean", "import eu.corentic.springrag.batch.DocumentIngestionJobConfig", "import eu.corentic.springrag.batch.model.DocumentInput", "import eu.corentic.springrag.batch.model.ProcessedDocument", "import eu.corentic.springrag.batch.processor.DocumentProcessingItemProcessor", "import eu.corentic.springrag.common.ids.Filename", "import eu.corentic.springrag.common.ids.JobId", "import eu.corentic.springrag.service.port.DocumentParserPort", "import eu.corentic.springrag.service.port.ChunkIndexPort", "import eu.corentic.springrag.service.port.GraphIndexPort", "import io.mockk.clearMocks", "import io.mockk.every", "import java.io.File", "import java.time.Duration", "import org.awaitility.Awaitility.await", "import org.junit.jupiter.api.Assertions", "import org.junit.jupiter.api.Assertions.assertEquals", "import org.junit.jupiter.api.Assertions.assertTrue", "import org.junit.jupiter.api.AfterEach", "import org.junit.jupiter.api.BeforeEach", "import org.junit.jupiter.api.Test", "import io.github.oshai.kotlinlogging.KotlinLogging", "import org.springframework.beans.factory.annotation.Autowired", "import org.springframework.boot.test.context.SpringBootTest", "import org.springframework.test.context.ActiveProfiles", "import eu.corentic.springrag.batch.model.ProcessingError", "import org.junit.jupiter.api.Assertions.assertNotNull", "import org.springframework.jdbc.core.JdbcTemplate", "import eu.corentic.springrag.common.ids.DocumentId", "import eu.corentic.springrag.common.ids.KnowledgeBaseId", "import eu.corentic.springrag.common.ids.LogicalDocumentId", "import eu.corentic.springrag.batch.listener.BatchJobListener", "import eu.corentic.springrag.batch.listener.SimpleDocumentTrackingListener", "import eu.corentic.springrag.batch.partition.DocumentPartitioner", "import eu.corentic.springrag.batch.reader.FileBasedDocumentItemReader", "import eu.corentic.springrag.batch.writer.GraphStoreItemWriter", "import java.nio.file.Files", "import java.util.concurrent.CountDownLatch", "import java.util.concurrent.TimeUnit", "import java.util.concurrent.atomic.AtomicLong", "import org.springframework.batch.core.job.Job", "import org.springframework.batch.core.job.JobExecution", "import org.springframework.batch.core.job.JobInstance", "import org.springframework.batch.core.job.parameters.JobParameters", "import org.springframework.batch.core.launch.JobOperator", "import org.junit.jupiter.api.Assertions.assertNull", "import eu.corentic.springrag.common.ids.StorageUri", "import eu.corentic.springrag.service.port.ObjectStoragePort", "import java.util.concurrent.ConcurrentHashMap", "import org.springframework.context.annotation.Bean", "import org.springframework.context.annotation.Configuration", "import org.springframework.context.annotation.Profile" ], "arg_patterns": {} }, { "label": "modules/ingestion/src/main/kotlin/eu/corentic/springrag/batch", "method_count": 16, "imports": [ "import eu.corentic.springrag.batch.listener.BatchJobListener", "import eu.corentic.springrag.batch.listener.DocumentActivationWriteListener", "import eu.corentic.springrag.batch.listener.DocumentIngestionStageWriteListener", "import eu.corentic.springrag.batch.listener.SimpleDocumentTrackingListener", "import eu.corentic.springrag.batch.model.DocumentInput", "import eu.corentic.springrag.batch.model.ProcessedDocument", "import eu.corentic.springrag.batch.partition.DocumentPartitioner", "import eu.corentic.springrag.batch.processor.DocumentProcessingItemProcessor", "import eu.corentic.springrag.batch.reader.FileBasedDocumentItemReader", "import eu.corentic.springrag.batch.writer.DocumentActivationWriter", "import eu.corentic.springrag.batch.writer.DocumentIngestionStageWriter", "import eu.corentic.springrag.service.job.IngestionDocumentState", "import eu.corentic.springrag.service.job.IngestionDocumentStateRepository", "import eu.corentic.springrag.config.BatchProperties", "import eu.corentic.springrag.service.port.ObjectStoragePort", "import javax.sql.DataSource", "import io.github.oshai.kotlinlogging.KotlinLogging", "import org.springframework.batch.core.configuration.annotation.StepScope", "import org.springframework.batch.core.job.Job", "import org.springframework.batch.core.job.builder.JobBuilder", "import org.springframework.batch.core.repository.JobRepository", "import org.springframework.batch.core.partition.PartitionHandler", "import org.springframework.batch.core.partition.support.TaskExecutorPartitionHandler", "import org.springframework.batch.core.step.Step", "import org.springframework.batch.core.step.builder.StepBuilder", "import org.springframework.batch.core.step.skip.SkipPolicy", "import org.springframework.batch.core.listener.SkipListener", "import org.springframework.batch.infrastructure.item.database.JdbcCursorItemReader", "import org.springframework.batch.infrastructure.item.database.builder.JdbcCursorItemReaderBuilder", "import org.springframework.beans.factory.annotation.Qualifier", "import org.springframework.beans.factory.annotation.Value", "import org.springframework.context.annotation.Bean", "import org.springframework.context.annotation.Configuration", "import org.springframework.core.task.TaskExecutor", "import org.springframework.core.retry.RetryPolicy", "import org.springframework.dao.TransientDataAccessException", "import org.springframework.transaction.PlatformTransactionManager", "import org.springframework.util.backoff.FixedBackOff", "import java.io.IOException", "import eu.corentic.springrag.service.chunk.DocumentChunkService", "import eu.corentic.springrag.service.port.DocumentParserPort", "import eu.corentic.springrag.service.port.DocumentParsingRequest", "import org.springframework.batch.infrastructure.item.ItemProcessor", "import org.springframework.stereotype.Component" ], "arg_patterns": {} }, { "label": "modules/ingestion/src/main/kotlin/eu/corentic/springrag/batch/listener", "method_count": 16, "imports": [ "import io.github.oshai.kotlinlogging.KotlinLogging", "import org.springframework.batch.core.BatchStatus", "import org.springframework.batch.core.job.JobExecution", "import org.springframework.batch.core.listener.JobExecutionListener", "import org.springframework.stereotype.Component", "import eu.corentic.springrag.service.job.StagedUploadCleanupService", "import eu.corentic.springrag.service.job.DocumentTrackingRepository", "import eu.corentic.springrag.service.job.IngestionDocumentState", "import eu.corentic.springrag.service.job.IngestionDocumentStateRepository", "import org.springframework.batch.core.listener.ItemWriteListener", "import org.springframework.batch.core.listener.SkipListener", "import org.springframework.batch.infrastructure.item.Chunk", "import eu.corentic.springrag.batch.model.ProcessedDocument", "import eu.corentic.springrag.batch.model.ProcessingError", "import eu.corentic.springrag.common.ids.Filename", "import eu.corentic.springrag.batch.model.DocumentInput", "import org.springframework.batch.core.listener.ItemProcessListener" ], "arg_patterns": {} }, { "label": "modules/ingestion/src/main/kotlin/eu/corentic/springrag/batch/model", "method_count": 4, "imports": [ "import eu.corentic.springrag.common.ids.DocumentId", "import eu.corentic.springrag.common.ids.Filename", "import eu.corentic.springrag.common.ids.JobId", "import eu.corentic.springrag.common.ids.KnowledgeBaseId", "import eu.corentic.springrag.common.ids.LogicalDocumentId", "import eu.corentic.springrag.common.ids.StorageUri", "import eu.corentic.springrag.model.GraphDocument", "import eu.corentic.springrag.model.VectorChunk", "import java.time.Instant" ], "arg_patterns": {} }, { "label": "modules/ingestion/src/main/kotlin/eu/corentic/springrag/batch/partition", "method_count": 4, "imports": [ "import eu.corentic.springrag.common.ids.Filename", "import eu.corentic.springrag.common.ids.JobId", "import eu.corentic.springrag.common.ids.StorageUri", "import eu.corentic.springrag.config.StorageProperties", "import eu.corentic.springrag.service.job.DocumentTrackingRepository", "import eu.corentic.springrag.service.port.ObjectStoragePort", "import io.github.oshai.kotlinlogging.KotlinLogging", "import java.nio.file.FileSystems", "import java.nio.file.Files", "import java.nio.file.Path", "import kotlin.streams.toList", "import org.springframework.batch.core.configuration.annotation.StepScope", "import org.springframework.batch.core.partition.Partitioner", "import org.springframework.batch.infrastructure.item.ExecutionContext", "import org.springframework.beans.factory.annotation.Value", "import org.springframework.stereotype.Component" ], "arg_patterns": {} }, { "label": "modules/ingestion/src/main/kotlin/eu/corentic/springrag/batch/reader", "method_count": 4, "imports": [ "import eu.corentic.springrag.batch.model.DocumentInput", "import eu.corentic.springrag.common.ids.Filename", "import eu.corentic.springrag.common.ids.JobId", "import eu.corentic.springrag.common.ids.KnowledgeBaseId", "import eu.corentic.springrag.common.ids.StorageUri", "import eu.corentic.springrag.config.StorageProperties", "import eu.corentic.springrag.service.document.DocumentIdentity", "import eu.corentic.springrag.service.port.ObjectStoragePort", "import io.github.oshai.kotlinlogging.KotlinLogging", "import org.springframework.batch.infrastructure.item.ExecutionContext", "import org.springframework.batch.infrastructure.item.ItemStreamReader", "import org.springframework.beans.factory.annotation.Value", "import org.springframework.core.io.ResourceLoader", "import java.util.concurrent.ConcurrentLinkedQueue" ], "arg_patterns": {} }, { "label": "modules/ingestion/src/main/kotlin/eu/corentic/springrag/batch/writer", "method_count": 3, "imports": [ "import eu.corentic.springrag.service.job.DocumentActivationService", "import eu.corentic.springrag.service.job.IngestionDocumentState", "import org.springframework.batch.infrastructure.item.Chunk", "import org.springframework.batch.infrastructure.item.ItemWriter", "import org.springframework.stereotype.Component", "import eu.corentic.springrag.batch.model.ProcessedDocument", "import eu.corentic.springrag.service.chunk.EmbeddingInputGuard", "import eu.corentic.springrag.service.job.IngestionDocumentStateRepository", "import eu.corentic.springrag.service.port.ChunkIndexPort", "import eu.corentic.springrag.service.port.GraphIndexPort", "import io.github.oshai.kotlinlogging.KotlinLogging" ], "arg_patterns": {} }, { "label": "modules/ingestion/src/main/kotlin/eu/corentic/springrag/config", "method_count": 26, "imports": [ "import javax.sql.DataSource", "import org.springframework.batch.core.configuration.support.JdbcDefaultBatchConfiguration", "import org.springframework.context.annotation.Bean", "import org.springframework.context.annotation.Configuration", "import org.springframework.core.task.TaskDecorator", "import org.springframework.core.task.TaskExecutor", "import org.springframework.core.task.VirtualThreadTaskExecutor", "import org.springframework.core.task.support.TaskExecutorAdapter", "import org.springframework.jdbc.datasource.DataSourceTransactionManager", "import org.springframework.transaction.PlatformTransactionManager", "import org.springframework.transaction.annotation.Isolation", "import eu.corentic.springrag.common.ids.BatchId", "import eu.corentic.springrag.common.ids.Filename", "import eu.corentic.springrag.common.ids.StorageUri", "import jakarta.annotation.PostConstruct", "import jakarta.validation.constraints.NotBlank", "import java.net.URI", "import java.nio.file.Path", "import java.time.Duration", "import org.slf4j.LoggerFactory", "import org.springframework.boot.context.properties.ConfigurationProperties", "import org.springframework.validation.annotation.Validated" ], "arg_patterns": {} }, { "label": "modules/ingestion/src/main/kotlin/eu/corentic/springrag/service/chunk", "method_count": 18, "imports": [ "import eu.corentic.springrag.config.HybridChunkingConfig", "import eu.corentic.springrag.common.ids.DocumentId", "import eu.corentic.springrag.common.ids.Filename", "import eu.corentic.springrag.common.ids.JobId", "import eu.corentic.springrag.common.ids.KnowledgeBaseId", "import eu.corentic.springrag.common.ids.LogicalDocumentId", "import eu.corentic.springrag.model.GraphDocument", "import eu.corentic.springrag.model.GraphTableElement", "import eu.corentic.springrag.model.GraphTextElement", "import eu.corentic.springrag.model.ParsedDocument", "import eu.corentic.springrag.model.VectorChunk", "import org.springframework.stereotype.Service", "import org.springframework.stereotype.Component", "import eu.corentic.springrag.config.EmbabelModelProperties", "import kotlin.math.min", "import com.knuddels.jtokkit.Encodings", "import com.knuddels.jtokkit.api.Encoding", "import com.knuddels.jtokkit.api.EncodingType" ], "arg_patterns": {} }, { "label": "modules/ingestion/src/main/kotlin/eu/corentic/springrag/service/document", "method_count": 3, "imports": [ "import eu.corentic.springrag.common.ids.DocumentId", "import eu.corentic.springrag.common.ids.Filename", "import eu.corentic.springrag.common.ids.JobId", "import eu.corentic.springrag.common.ids.KnowledgeBaseId", "import eu.corentic.springrag.common.ids.LogicalDocumentId", "import java.security.MessageDigest" ], "arg_patterns": {} }, { "label": "modules/ingestion/src/main/kotlin/eu/corentic/springrag/service/job", "method_count": 62, "imports": [ "import java.sql.Timestamp", "import java.time.Instant", "import org.springframework.jdbc.core.JdbcTemplate", "import org.springframework.stereotype.Component", "from ingestion_batch_ownership", "import eu.corentic.springrag.common.DomainException", "import io.github.oshai.kotlinlogging.KotlinLogging", "import org.springframework.stereotype.Service", "import eu.corentic.springrag.model.event.DocumentActivationFailed", "import eu.corentic.springrag.service.port.ChunkIndexPort", "import org.springframework.modulith.events.ApplicationModuleListener", "import eu.corentic.springrag.service.port.GraphIndexPort", "import org.springframework.context.ApplicationEventPublisher", "import eu.corentic.springrag.model.event.DocumentDeletionRequested", "import eu.corentic.springrag.batch.model.ErrorSeverity", "import eu.corentic.springrag.batch.model.ProcessingError", "import eu.corentic.springrag.common.ids.Filename", "import eu.corentic.springrag.common.ids.JobId", "import java.sql.ResultSet", "import org.springframework.transaction.annotation.Transactional", "from ingestion_document_tracking", "import eu.corentic.springrag.common.ids.DocumentId", "import eu.corentic.springrag.common.ids.KnowledgeBaseId", "import eu.corentic.springrag.common.ids.LogicalDocumentId", "import org.springframework.jdbc.core.RowMapper", "from ingestion_document_state", "import org.springframework.batch.core.job.JobExecution", "import org.springframework.batch.core.job.JobInstance", "import org.springframework.batch.core.repository.JobRepository", "import eu.corentic.springrag.common.ids.StorageUri", "import eu.corentic.springrag.config.StorageProperties", "import eu.corentic.springrag.service.port.ObjectStoragePort", "import org.springframework.core.io.ResourceLoader", "import org.springframework.batch.core.job.Job", "import org.springframework.batch.core.job.parameters.JobParameters", "import org.springframework.batch.core.launch.JobOperator", "import java.util.UUID", "import org.springframework.batch.core.job.parameters.JobParametersBuilder", "import java.io.File", "import java.util.*", "import org.springframework.batch.core.launch.JobExecutionAlreadyRunningException", "import org.springframework.batch.core.launch.JobInstanceAlreadyCompleteException", "import eu.corentic.springrag.batch.DocumentIngestionJobConfig", "import org.springframework.batch.core.launch.NoSuchJobException", "import eu.corentic.springrag.batch.model.ErrorSummary", "import org.springframework.batch.core.BatchStatus", "import eu.corentic.springrag.model.event.KnowledgeBaseDeletionRequested", "import java.net.URI", "import java.nio.file.Path", "import org.springframework.scheduling.annotation.Scheduled", "import org.springframework.util.FileSystemUtils" ], "arg_patterns": {} }, { "label": "modules/ingestion/src/test/kotlin/eu/corentic/springrag/batch", "method_count": 17, "imports": [ "import eu.corentic.springrag.config.BatchProperties", "import eu.corentic.springrag.service.job.IngestionDocumentStateRepository", "import io.mockk.mockk", "import kotlin.test.assertEquals", "import org.junit.jupiter.api.Test", "import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder", "import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType", "import java.io.IOException", "import kotlin.test.assertFalse", "import kotlin.test.assertTrue", "import org.springframework.core.retry.RetryPolicy", "import org.springframework.dao.TransientDataAccessResourceException", "import org.springframework.util.backoff.FixedBackOff", "import org.springframework.batch.core.step.skip.SkipPolicy", "import kotlin.test.assertNotNull", "import org.springframework.batch.core.listener.ItemProcessListener", "import org.springframework.batch.core.listener.JobExecutionListener" ], "arg_patterns": {} }, { "label": "modules/ingestion/src/test/kotlin/eu/corentic/springrag/batch/listener", "method_count": 34, "imports": [ "import eu.corentic.springrag.config.StorageProperties", "import java.io.IOException", "import java.nio.file.Files", "import java.nio.file.Path", "import java.time.Duration", "import org.junit.jupiter.api.Assertions.assertTrue", "import org.junit.jupiter.api.BeforeEach", "import org.junit.jupiter.api.Test", "import org.junit.jupiter.api.io.TempDir", "import org.springframework.batch.core.BatchStatus", "import org.springframework.batch.core.job.JobExecution", "import org.springframework.batch.core.job.JobInstance", "import org.springframework.batch.core.job.parameters.JobParameters", "import org.springframework.batch.core.job.parameters.JobParametersBuilder", "import org.springframework.batch.test.MetaDataInstanceFactory", "import eu.corentic.springrag.service.job.StagedUploadCleanupService", "import eu.corentic.springrag.service.port.ObjectStoragePort", "import io.mockk.mockk", "import eu.corentic.springrag.service.job.DocumentTrackingRepository", "import eu.corentic.springrag.service.job.IngestionDocumentState", "import eu.corentic.springrag.service.job.IngestionDocumentStateRepository", "import eu.corentic.springrag.common.ids.asDocumentId", "import eu.corentic.springrag.common.ids.asFilename", "import eu.corentic.springrag.common.ids.asJobId", "import eu.corentic.springrag.common.ids.asLogicalDocumentId", "import io.mockk.every", "import io.mockk.just", "import io.mockk.runs", "import io.mockk.verify", "import org.springframework.batch.infrastructure.item.Chunk", "import eu.corentic.springrag.batch.model.DocumentInput", "import eu.corentic.springrag.batch.model.ProcessedDocument", "import eu.corentic.springrag.batch.model.ProcessingError", "import java.io.EOFException", "import java.net.SocketTimeoutException", "import javax.net.ssl.SSLException", "import kotlin.test.assertEquals", "import eu.corentic.springrag.model.VectorChunk", "import io.mockk.slot" ], "arg_patterns": {} }, { "label": "modules/ingestion/src/test/kotlin/eu/corentic/springrag/batch/model", "method_count": 8, "imports": [ "import eu.corentic.springrag.common.ids.asDocumentId", "import eu.corentic.springrag.common.ids.asFilename", "import eu.corentic.springrag.common.ids.asJobId", "import eu.corentic.springrag.common.ids.asKnowledgeBaseId", "import eu.corentic.springrag.common.ids.asLogicalDocumentId", "import eu.corentic.springrag.common.ids.asStorageUri", "import kotlin.test.assertEquals", "import kotlin.test.assertNotEquals", "import org.junit.jupiter.api.Test", "import org.junit.jupiter.api.Assertions.assertEquals", "import org.junit.jupiter.api.Assertions.assertTrue" ], "arg_patterns": {} }, { "label": "modules/ingestion/src/test/kotlin/eu/corentic/springrag/batch/partition", "method_count": 7, "imports": [ "import eu.corentic.springrag.service.job.DocumentTrackingRepository", "import eu.corentic.springrag.service.port.ObjectStoragePort", "import eu.corentic.springrag.common.ids.asFilename", "import eu.corentic.springrag.common.ids.asJobId", "import eu.corentic.springrag.common.ids.asStorageUri", "import io.mockk.every", "import io.mockk.just", "import io.mockk.mockk", "import io.mockk.runs", "import io.mockk.verify", "import java.nio.file.Files", "import java.nio.file.Path", "import kotlin.test.assertEquals", "import kotlin.test.assertTrue", "import org.junit.jupiter.api.Test", "import org.junit.jupiter.api.io.TempDir" ], "arg_patterns": {} }, { "label": "modules/ingestion/src/test/kotlin/eu/corentic/springrag/batch/processor", "method_count": 5, "imports": [ "import eu.corentic.springrag.batch.model.DocumentInput", "import eu.corentic.springrag.model.GraphDocument", "import eu.corentic.springrag.model.ParsedDocument", "import eu.corentic.springrag.model.VectorChunk", "import eu.corentic.springrag.service.chunk.DocumentChunkService", "import eu.corentic.springrag.service.port.DocumentParserPort", "import eu.corentic.springrag.service.port.DocumentParsingRequest", "import eu.corentic.springrag.common.ids.asDocumentId", "import eu.corentic.springrag.common.ids.asFilename", "import eu.corentic.springrag.common.ids.asJobId", "import eu.corentic.springrag.common.ids.asKnowledgeBaseId", "import eu.corentic.springrag.common.ids.asLogicalDocumentId", "import io.mockk.clearAllMocks", "import io.mockk.every", "import io.mockk.mockk", "import io.mockk.verify", "import java.util.UUID", "import kotlin.test.assertEquals", "import kotlin.test.assertNotNull", "import org.junit.jupiter.api.BeforeEach", "import org.junit.jupiter.api.Test", "import org.junit.jupiter.api.assertThrows" ], "arg_patterns": {} }, { "label": "modules/ingestion/src/test/kotlin/eu/corentic/springrag/batch/reader", "method_count": 12, "imports": [ "import eu.corentic.springrag.service.document.DocumentIdentity", "import java.io.File", "import eu.corentic.springrag.common.ids.asDocumentId", "import eu.corentic.springrag.common.ids.asFilename", "import eu.corentic.springrag.common.ids.asJobId", "import eu.corentic.springrag.common.ids.asKnowledgeBaseId", "import eu.corentic.springrag.common.ids.asLogicalDocumentId", "import eu.corentic.springrag.common.ids.asStorageUri", "import eu.corentic.springrag.service.port.ObjectStoragePort", "import io.mockk.mockk", "import org.junit.jupiter.api.Assertions.*", "import org.junit.jupiter.api.Test", "import org.junit.jupiter.api.io.TempDir" ], "arg_patterns": {} }, { "label": "modules/ingestion/src/test/kotlin/eu/corentic/springrag/batch/writer", "method_count": 14, "imports": [ "import eu.corentic.springrag.service.job.DocumentActivationService", "import eu.corentic.springrag.service.job.IngestionDocumentState", "import eu.corentic.springrag.common.ids.asDocumentId", "import eu.corentic.springrag.common.ids.asFilename", "import eu.corentic.springrag.common.ids.asJobId", "import eu.corentic.springrag.common.ids.asLogicalDocumentId", "import io.mockk.every", "import io.mockk.just", "import io.mockk.mockk", "import io.mockk.runs", "import org.junit.jupiter.api.Test", "import org.springframework.batch.infrastructure.item.Chunk", "import kotlin.test.assertFailsWith", "import eu.corentic.springrag.batch.model.DocumentInput", "import eu.corentic.springrag.batch.model.ProcessedDocument", "import eu.corentic.springrag.common.ids.asStorageUri", "import eu.corentic.springrag.model.GraphDocument", "import eu.corentic.springrag.model.VectorChunk", "import eu.corentic.springrag.service.chunk.EmbeddingInputGuard", "import eu.corentic.springrag.service.chunk.EmbeddingInputTooLargeException", "import eu.corentic.springrag.service.job.IngestionDocumentStateRepository", "import eu.corentic.springrag.service.port.ChunkIndexPort", "import eu.corentic.springrag.service.port.GraphIndexPort", "import io.mockk.verify", "import io.mockk.*", "import io.mockk.impl.annotations.MockK", "import io.mockk.junit5.MockKExtension", "import kotlinx.coroutines.test.runTest", "import org.junit.jupiter.api.AfterEach", "import org.junit.jupiter.api.Assertions.*", "import org.junit.jupiter.api.BeforeEach", "import org.junit.jupiter.api.extension.ExtendWith" ], "arg_patterns": {} }, { "label": "modules/ingestion/src/test/kotlin/eu/corentic/springrag/service/chunk", "method_count": 8, "imports": [ "import eu.corentic.springrag.config.HybridChunkingConfig", "import eu.corentic.springrag.config.EmbabelModelProperties", "import eu.corentic.springrag.common.ids.asDocumentId", "import eu.corentic.springrag.common.ids.asFilename", "import eu.corentic.springrag.common.ids.asJobId", "import eu.corentic.springrag.common.ids.asKnowledgeBaseId", "import eu.corentic.springrag.common.ids.asLogicalDocumentId", "import eu.corentic.springrag.model.GraphDocument", "import eu.corentic.springrag.model.GraphTableElement", "import eu.corentic.springrag.model.GraphTextElement", "import eu.corentic.springrag.model.ParsedDocument", "import kotlin.test.assertEquals", "import kotlin.test.assertNotNull", "import kotlin.test.assertTrue", "import org.junit.jupiter.api.Test" ], "arg_patterns": {} }, { "label": "modules/ingestion/src/test/kotlin/eu/corentic/springrag/service/job", "method_count": 49, "imports": [ "import io.mockk.every", "import io.mockk.mockk", "import io.mockk.verify", "import kotlin.test.assertEquals", "import kotlin.test.assertFailsWith", "import org.junit.jupiter.api.Test", "import eu.corentic.springrag.model.event.DocumentActivationFailed", "import eu.corentic.springrag.service.port.ChunkIndexPort", "import eu.corentic.springrag.common.ids.asDocumentId", "import eu.corentic.springrag.common.ids.asKnowledgeBaseId", "import eu.corentic.springrag.common.ids.asLogicalDocumentId", "import io.mockk.just", "import io.mockk.runs", "import eu.corentic.springrag.service.port.GraphIndexPort", "import eu.corentic.springrag.common.ids.asFilename", "import eu.corentic.springrag.common.ids.asJobId", "import org.springframework.context.ApplicationEventPublisher", "import eu.corentic.springrag.model.event.DocumentDeletionRequested", "import java.time.LocalDateTime", "import kotlin.test.assertNull", "import org.springframework.batch.core.job.JobExecution", "import org.springframework.batch.core.job.JobInstance", "import org.springframework.batch.core.job.parameters.JobParametersBuilder", "import org.springframework.batch.core.repository.JobRepository", "import java.io.File", "import eu.corentic.springrag.common.ids.asStorageUri", "import eu.corentic.springrag.service.port.ObjectStoragePort", "import org.junit.jupiter.api.Assertions.assertThrows", "import org.springframework.core.io.DefaultResourceLoader", "import org.junit.jupiter.api.Assertions.assertNull", "import org.junit.jupiter.api.Assertions.assertEquals", "import org.junit.jupiter.api.Assertions.assertSame", "import org.junit.jupiter.api.assertThrows", "import org.slf4j.MDC", "import org.springframework.batch.core.job.Job", "import org.springframework.batch.core.launch.JobOperator", "import kotlin.test.assertNotNull", "import io.mockk.slot", "import org.junit.jupiter.api.Assertions.assertNotEquals", "import org.junit.jupiter.api.Assertions.assertTrue", "import org.springframework.batch.core.BatchStatus", "import org.springframework.batch.core.launch.JobExecutionAlreadyRunningException", "import org.springframework.batch.core.launch.JobInstanceAlreadyCompleteException", "import org.springframework.batch.core.job.parameters.JobParameters", "import org.springframework.batch.test.MetaDataInstanceFactory", "import kotlin.test.assertTrue", "import eu.corentic.springrag.model.event.KnowledgeBaseDeletionRequested", "import eu.corentic.springrag.config.StorageProperties", "import java.nio.file.Files", "import java.nio.file.Path", "import java.time.Duration", "import java.time.Instant", "import org.junit.jupiter.api.Assertions.assertFalse", "import org.junit.jupiter.api.io.TempDir" ], "arg_patterns": {} }, { "label": "modules/knowledgebase/ports/src/main/kotlin/eu/corentic/springrag/model", "method_count": 5, "imports": [ "import eu.corentic.springrag.common.ids.KnowledgeBaseId", "import java.time.Instant" ], "arg_patterns": {} }, { "label": "modules/knowledgebase/src/main/kotlin/eu/corentic/springrag/service/knowledgebase", "method_count": 11, "imports": [ "import eu.corentic.springrag.common.ids.KnowledgeBaseId", "import eu.corentic.springrag.model.KnowledgeBase", "import eu.corentic.springrag.service.port.KnowledgeBasePort", "import io.github.oshai.kotlinlogging.KotlinLogging", "import org.springframework.beans.factory.annotation.Value", "import org.springframework.boot.CommandLineRunner", "import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty", "import org.springframework.context.annotation.Bean", "import org.springframework.context.annotation.Configuration", "import java.time.Instant", "import eu.corentic.springrag.common.ids.JobId", "import eu.corentic.springrag.model.event.DocumentDeletionRequested", "import eu.corentic.springrag.model.event.KnowledgeBaseDeletionRequested", "import eu.corentic.springrag.service.port.KnowledgeBaseDocumentPort", "import org.springframework.context.ApplicationEventPublisher", "import org.springframework.stereotype.Service", "import org.springframework.transaction.annotation.Transactional", "import java.util.*" ], "arg_patterns": {} }, { "label": "modules/knowledgebase/src/test/kotlin/eu/corentic/springrag/service/knowledgebase", "method_count": 16, "imports": [ "import org.junit.jupiter.api.Assertions.assertEquals", "import org.junit.jupiter.api.Test", "import jakarta.validation.Validation", "import kotlin.test.assertFalse", "import kotlin.test.assertTrue", "import eu.corentic.springrag.model.event.DocumentDeletionRequested", "import eu.corentic.springrag.model.event.KnowledgeBaseDeletionRequested", "import eu.corentic.springrag.service.port.KnowledgeBasePort", "import eu.corentic.springrag.service.port.KnowledgeBaseDocumentPort", "import eu.corentic.springrag.common.ids.asJobId", "import eu.corentic.springrag.common.ids.asKnowledgeBaseId", "import io.mockk.every", "import io.mockk.just", "import io.mockk.mockk", "import io.mockk.runs", "import io.mockk.slot", "import io.mockk.verify", "import java.time.Instant", "import kotlin.test.assertEquals", "import kotlin.test.assertNotNull", "import org.junit.jupiter.api.Assertions.assertThrows", "import org.springframework.context.ApplicationEventPublisher" ], "arg_patterns": {} }, { "label": "modules/security/src/main/kotlin/eu/corentic/springrag/security/config", "method_count": 5, "imports": [ "import eu.corentic.springrag.common.Outcome", "import eu.corentic.springrag.security.service.JwtService", "import org.springframework.http.HttpHeaders", "import org.springframework.security.authentication.UsernamePasswordAuthenticationToken", "import org.springframework.security.core.context.ReactiveSecurityContextHolder", "import org.springframework.stereotype.Component", "import org.springframework.web.server.ServerWebExchange", "import org.springframework.web.server.WebFilter", "import org.springframework.web.server.WebFilterChain", "import reactor.core.publisher.Mono", "import org.springframework.context.annotation.Bean", "import org.springframework.context.annotation.Configuration", "import org.springframework.security.config.annotation.method.configuration.EnableReactiveMethodSecurity", "import org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity", "import org.springframework.security.config.web.server.SecurityWebFiltersOrder", "import org.springframework.security.config.web.server.ServerHttpSecurity", "import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder", "import org.springframework.security.crypto.password.PasswordEncoder", "import org.springframework.security.web.server.SecurityWebFilterChain", "import org.springframework.security.authentication.ReactiveAuthenticationManager", "import org.springframework.security.core.userdetails.ReactiveUserDetailsService", "import org.springframework.security.authentication.UserDetailsRepositoryReactiveAuthenticationManager", "import org.springframework.security.web.server.csrf.CookieServerCsrfTokenRepository", "import org.springframework.security.web.server.csrf.CsrfWebFilter", "import org.springframework.security.web.server.util.matcher.AndServerWebExchangeMatcher", "import org.springframework.security.web.server.util.matcher.NegatedServerWebExchangeMatcher", "import org.springframework.security.web.server.util.matcher.ServerWebExchangeMatchers", "import org.springframework.core.env.Environment", "import org.springframework.core.env.Profiles", "import eu.corentic.springrag.security.model.Role", "import eu.corentic.springrag.security.service.UserService", "import io.github.oshai.kotlinlogging.KotlinLogging", "import org.springframework.boot.CommandLineRunner", "import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty" ], "arg_patterns": {} }, { "label": "modules/security/src/main/kotlin/eu/corentic/springrag/security/service", "method_count": 10, "imports": [ "import eu.corentic.springrag.security.repository.UserRepository", "import org.springframework.security.core.userdetails.ReactiveUserDetailsService", "import org.springframework.security.core.userdetails.User", "import org.springframework.security.core.userdetails.UserDetails", "import org.springframework.stereotype.Service", "import reactor.core.publisher.Mono", "import reactor.core.scheduler.Schedulers", "import eu.corentic.springrag.common.DomainException", "import eu.corentic.springrag.common.Outcome", "import eu.corentic.springrag.security.model.User", "import io.jsonwebtoken.ExpiredJwtException", "import io.jsonwebtoken.Jwts", "import io.jsonwebtoken.MalformedJwtException", "import io.jsonwebtoken.UnsupportedJwtException", "import io.jsonwebtoken.security.Keys", "import io.jsonwebtoken.security.SecurityException", "import java.nio.charset.StandardCharsets", "import java.util.*", "import javax.crypto.SecretKey", "import eu.corentic.springrag.security.config.JwtProperties", "import org.springframework.security.core.GrantedAuthority", "import org.springframework.security.core.authority.SimpleGrantedAuthority", "import java.util.UUID", "import org.springframework.data.relational.core.mapping.event.BeforeConvertCallback", "import org.springframework.stereotype.Component", "import eu.corentic.springrag.security.model.Role", "import io.github.oshai.kotlinlogging.KotlinLogging", "import org.springframework.security.crypto.password.PasswordEncoder", "import org.springframework.transaction.annotation.Transactional" ], "arg_patterns": {} }, { "label": "modules/security/src/test/kotlin/eu/corentic/springrag/security/config", "method_count": 6, "imports": [ "import eu.corentic.springrag.common.Outcome", "import eu.corentic.springrag.security.service.JwtService", "import eu.corentic.springrag.security.service.JwtValidationError", "import io.mockk.every", "import io.mockk.mockk", "import java.util.concurrent.atomic.AtomicReference", "import org.junit.jupiter.api.Assertions.assertEquals", "import org.junit.jupiter.api.Assertions.assertNull", "import org.junit.jupiter.api.Test", "import org.springframework.http.HttpHeaders", "import org.springframework.mock.http.server.reactive.MockServerHttpRequest", "import org.springframework.mock.web.server.MockServerWebExchange", "import org.springframework.security.core.Authentication", "import org.springframework.security.core.authority.SimpleGrantedAuthority", "import org.springframework.security.core.context.ReactiveSecurityContextHolder", "import org.springframework.web.server.WebFilterChain", "import org.junit.jupiter.api.Assertions.assertNotNull", "import org.junit.jupiter.api.Assertions.assertTrue", "import org.springframework.mock.env.MockEnvironment", "import org.springframework.security.authentication.ReactiveAuthenticationManager", "import org.springframework.security.config.web.server.ServerHttpSecurity", "import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder", "import reactor.core.publisher.Mono", "import eu.corentic.springrag.security.model.Role", "import eu.corentic.springrag.security.service.UserService", "import io.mockk.just", "import io.mockk.runs", "import io.mockk.verify" ], "arg_patterns": {} }, { "label": "modules/security/src/test/kotlin/eu/corentic/springrag/security/service", "method_count": 15, "algorithm": "CRX", "grammar": "root ::= (\"encode\" | \"every\" | \"existsByUsername\")?+ \"init\"?+ \"JwtService\"? \"UserService\"? \"JwtProperties\"? \"generateToken\"?+ \"hmacShaKeyFor\"?+ \"assertFalse\"? \"toByteArray\"?+ \"UTF_8\"? \"builder\"?+ \"subject\"?+ \"issuedAt\"?+ (\"Date\" | \"expiration\")?+ \"currentTimeMillis\"?+ \"signWith\"?+ \"compact\"?+ (\"Err\" | \"Outcome\" | \"PasswordPolicyViolationException\" | \"ROLE_USER\" | \"String\" | \"UserAlreadyExistsException\" | \"any\" | \"assertEquals\" | \"assertThrows\" | \"assertTrue\" | \"authorities\" | \"authority\" | \"emptyList\" | \"error\" | \"extractAuthorities\" | \"extractUsername\" | \"firstArg\" | \"getOrThrow\" | \"java\" | \"listOf\" | \"map\" | \"match\" | \"parseToken\" | \"password\" | \"registerUser\" | \"role\" | \"save\" | \"username\" | \"validateToken\" | \"verify\")?+ \"JwtValidationError\"? \"errorCode\"? (\"Expired\" | \"InvalidSignature\" | \"Malformed\")?", "mdl_score": 1000000000000000000000000000000, "imports": [ "import eu.corentic.springrag.common.Outcome", "import eu.corentic.springrag.security.model.Role", "import eu.corentic.springrag.security.model.User", "import eu.corentic.springrag.security.config.JwtProperties", "import io.jsonwebtoken.Jwts", "import io.jsonwebtoken.security.Keys", "import java.nio.charset.StandardCharsets", "import java.util.UUID", "import java.util.Date", "import org.junit.jupiter.api.Assertions.assertEquals", "import org.junit.jupiter.api.Assertions.assertFalse", "import org.junit.jupiter.api.Assertions.assertTrue", "import org.junit.jupiter.api.Test", "import eu.corentic.springrag.security.repository.UserRepository", "import io.mockk.MockKAnnotations", "import io.mockk.every", "import io.mockk.impl.annotations.MockK", "import io.mockk.verify", "import org.junit.jupiter.api.Assertions.assertThrows", "import org.junit.jupiter.api.BeforeEach", "import org.springframework.security.crypto.password.PasswordEncoder" ], "arg_patterns": {} }, { "label": "platform/test-support/src/main/kotlin/eu/corentic/springrag/testcontainers", "method_count": 13, "imports": [ "import com.github.dockerjava.api.model.DeviceRequest", "import org.testcontainers.DockerClientFactory", "import org.testcontainers.containers.GenericContainer", "import io.github.oshai.kotlinlogging.KotlinLogging", "import io.qdrant.client.QdrantClient", "import io.qdrant.client.grpc.Collections.Distance", "import io.qdrant.client.grpc.Collections.VectorParams", "import java.util.concurrent.ExecutionException", "import eu.corentic.springrag.testcontainers.GpuSupport.withGpuIfAvailable", "import java.io.File", "import java.time.Duration", "import org.testcontainers.containers.BindMode", "import org.testcontainers.containers.Neo4jContainer", "import org.testcontainers.containers.PostgreSQLContainer", "import org.testcontainers.containers.wait.strategy.Wait", "import org.testcontainers.junit.jupiter.Container" ], "arg_patterns": {} }, { "label": "platform/test-support/src/test/kotlin/eu/corentic/springrag/testcontainers", "method_count": 5, "imports": [ "import org.junit.jupiter.api.Test", "import org.mockito.Mockito.mock", "import org.mockito.Mockito.times", "import org.mockito.Mockito.verify", "import org.testcontainers.containers.Container", "import org.testcontainers.containers.GenericContainer", "import com.google.common.util.concurrent.Futures", "import com.google.common.util.concurrent.ListenableFuture", "import io.qdrant.client.QdrantClient", "import io.qdrant.client.grpc.Collections", "import org.junit.jupiter.api.assertThrows", "import org.mockito.ArgumentMatchers.any", "import org.mockito.Mockito.`when`", "import kotlin.test.assertEquals", "import kotlin.test.assertTrue" ], "arg_patterns": {} }, { "label": "(other)", "method_count": 6, "imports": [], "arg_patterns": {} } ], "total_methods": 1609 }, { "language": ".js", "conventions": [ { "label": "compose/patches", "method_count": 17, "imports": [], "arg_patterns": { "require": { "occurrences": 24, "arg_count": { "min": 1, "max": 1, "common": 1 }, "patterns": [ { "count": 24, "args": 1, "types": [ "lit" ] } ] }, "Map": { "occurrences": 3, "arg_count": { "min": 0, "max": 0, "common": 0 }, "patterns": [ { "count": 3, "args": 0, "types": [] } ] }, "clearTimeout": { "occurrences": 2, "arg_count": { "min": 1, "max": 1, "common": 1 }, "patterns": [ { "count": 2, "args": 1, "types": [ "other" ] } ] }, "setTimeout": { "occurrences": 4, "arg_count": { "min": 2, "max": 2, "common": 2 }, "patterns": [ { "count": 4, "args": 2, "types": [ "other", "other" ] } ] }, "EmbeddingPollerImpl": { "occurrences": 2, "arg_count": { "min": 0, "max": 0, "common": 0 }, "patterns": [ { "count": 2, "args": 0, "types": [] } ] }, "new": { "occurrences": 3, "arg_count": { "min": 0, "max": 1, "common": 0 }, "patterns": [ { "count": 2, "args": 0, "types": [] }, { "count": 1, "args": 1, "types": [ "var" ] } ] }, "generateShortLivedToken": { "occurrences": 2, "arg_count": { "min": 1, "max": 1, "common": 1 }, "patterns": [ { "count": 2, "args": 1, "types": [ "var" ] } ] }, "Set": { "occurrences": 3, "arg_count": { "min": 1, "max": 1, "common": 1 }, "patterns": [ { "count": 3, "args": 1, "types": [ "var" ] } ] }, "tool": { "occurrences": 2, "arg_count": { "min": 2, "max": 2, "common": 2 }, "patterns": [ { "count": 2, "args": 2, "types": [ "other", "other" ] } ] }, "getFiles": { "occurrences": 2, "arg_count": { "min": 3, "max": 3, "common": 3 }, "patterns": [ { "count": 2, "args": 3, "types": [ "other", "lit", "other" ] } ] }, "filterFilesByAgentAccess": { "occurrences": 2, "arg_count": { "min": 1, "max": 1, "common": 1 }, "patterns": [ { "count": 2, "args": 1, "types": [ "other" ] } ] } } }, { "label": "testing/steps", "method_count": 68, "algorithm": "CRX", "grammar": "root ::= (\"Promise\" | \"TEST_FILE\" | \"all\" | \"await\" | \"btn\" | \"chip\" | \"click\" | \"document\" | \"evaluate\" | \"expect\" | \"fc\" | \"fetch\" | \"fill\" | \"filter\" | \"first\" | \"form\" | \"generateSuffix\" | \"getByRole\" | \"goto\" | \"idPara\" | \"if\" | \"includes\" | \"isClosed\" | \"last\" | \"locator\" | \"modelBtn\" | \"querySelector\" | \"setFiles\" | \"suffix\" | \"textContent\" | \"waitFor\" | \"waitForEvent\" | \"waitForTimeout\" | \"waitForURL\")+ \"url\"? (\"toBe\" | \"toBeTruthy\" | \"toBeVisible\")? \"toContain\"?", "mdl_score": 1000000000000000000000000000000, "imports": [ "import { Given, When, Then } from '@cucumber/cucumber';", "import { expect } from '@playwright/test';", "import { BeforeAll, AfterAll, Before, After, setDefaultTimeout } from '@cucumber/cucumber';" ], "arg_patterns": { "Then": { "occurrences": 40, "arg_count": { "min": 2, "max": 2, "common": 2 }, "patterns": [ { "count": 40, "args": 2, "types": [ "lit", "other" ] } ] }, "expect": { "occurrences": 40, "arg_count": { "min": 1, "max": 1, "common": 1 }, "patterns": [ { "count": 16, "args": 1, "types": [ "var" ] }, { "count": 14, "args": 1, "types": [ "other" ] }, { "count": 10, "args": 1, "types": [ "call" ] } ] }, "Given": { "occurrences": 24, "arg_count": { "min": 2, "max": 2, "common": 2 }, "patterns": [ { "count": 24, "args": 2, "types": [ "lit", "other" ] } ] }, "When": { "occurrences": 54, "arg_count": { "min": 2, "max": 2, "common": 2 }, "patterns": [ { "count": 54, "args": 2, "types": [ "lit", "other" ] } ] }, "createAgent": { "occurrences": 4, "arg_count": { "min": 2, "max": 2, "common": 2 }, "patterns": [ { "count": 4, "args": 2, "types": [ "lit", "lit" ] } ] }, "setDefaultTimeout": { "occurrences": 2, "arg_count": { "min": 1, "max": 1, "common": 1 }, "patterns": [ { "count": 2, "args": 1, "types": [ "lit" ] } ] }, "Before": { "occurrences": 2, "arg_count": { "min": 1, "max": 1, "common": 1 }, "patterns": [ { "count": 2, "args": 1, "types": [ "other" ] } ] }, "After": { "occurrences": 2, "arg_count": { "min": 1, "max": 1, "common": 1 }, "patterns": [ { "count": 2, "args": 1, "types": [ "other" ] } ] }, "fetch": { "occurrences": 6, "arg_count": { "min": 1, "max": 1, "common": 1 }, "patterns": [ { "count": 6, "args": 1, "types": [ "lit" ] } ] } } }, { "label": "testing/support", "method_count": 3, "imports": [ "import { chromium } from '@playwright/test';", "import { setWorldConstructor } from '@cucumber/cucumber';" ], "arg_patterns": { "setWorldConstructor": { "occurrences": 2, "arg_count": { "min": 1, "max": 1, "common": 1 }, "patterns": [ { "count": 2, "args": 1, "types": [ "var" ] } ] } } }, { "label": "(other)", "method_count": 1, "imports": [], "arg_patterns": {} } ], "total_methods": 89 }, { "language": ".java", "conventions": [], "total_methods": 0 }, { "language": ".go", "conventions": [ { "label": "tools/setup-ui", "method_count": 44, "imports": [ "import (" ], "arg_patterns": { "len": { "occurrences": 42, "arg_count": { "min": 1, "max": 1, "common": 1 }, "patterns": [ { "count": 30, "args": 1, "types": [ "other" ] }, { "count": 12, "args": 1, "types": [ "var" ] } ] }, "append": { "occurrences": 51, "arg_count": { "min": 2, "max": 2, "common": 2 }, "patterns": [ { "count": 24, "args": 2, "types": [ "var", "call" ] }, { "count": 9, "args": 2, "types": [ "var", "var" ] }, { "count": 6, "args": 2, "types": [ "other", "other" ] }, { "count": 6, "args": 2, "types": [ "var", "other" ] }, { "count": 3, "args": 2, "types": [ "other", "var" ] } ] }, "writeExport": { "occurrences": 8, "arg_count": { "min": 3, "max": 3, "common": 3 }, "patterns": [ { "count": 4, "args": 3, "types": [ "var", "other", "call" ] }, { "count": 2, "args": 3, "types": [ "var", "var", "other" ] }, { "count": 2, "args": 3, "types": [ "var", "other", "other" ] } ] }, "shellEscape": { "occurrences": 2, "arg_count": { "min": 1, "max": 1, "common": 1 }, "patterns": [ { "count": 2, "args": 1, "types": [ "var" ] } ] }, "sectionTitle": { "occurrences": 10, "arg_count": { "min": 1, "max": 1, "common": 1 }, "patterns": [ { "count": 10, "args": 1, "types": [ "other" ] } ] }, "isSensitiveKey": { "occurrences": 2, "arg_count": { "min": 1, "max": 1, "common": 1 }, "patterns": [ { "count": 2, "args": 1, "types": [ "var" ] } ] }, "newConfig": { "occurrences": 2, "arg_count": { "min": 0, "max": 0, "common": 0 }, "patterns": [ { "count": 2, "args": 0, "types": [] } ] }, "muted": { "occurrences": 8, "arg_count": { "min": 1, "max": 1, "common": 1 }, "patterns": [ { "count": 4, "args": 1, "types": [ "other" ] }, { "count": 2, "args": 1, "types": [ "expr" ] }, { "count": 2, "args": 1, "types": [ "var" ] } ] }, "float64": { "occurrences": 4, "arg_count": { "min": 1, "max": 1, "common": 1 }, "patterns": [ { "count": 2, "args": 1, "types": [ "expr" ] }, { "count": 2, "args": 1, "types": [ "call" ] } ] }, "sortedKeys": { "occurrences": 4, "arg_count": { "min": 1, "max": 1, "common": 1 }, "patterns": [ { "count": 4, "args": 1, "types": [ "other" ] } ] }, "make": { "occurrences": 9, "arg_count": { "min": 3, "max": 3, "common": 3 }, "patterns": [ { "count": 9, "args": 3, "types": [ "other", "other", "call" ] } ] }, "initialModel": { "occurrences": 2, "arg_count": { "min": 0, "max": 0, "common": 0 }, "patterns": [ { "count": 2, "args": 0, "types": [] } ] }, "buildSteps": { "occurrences": 2, "arg_count": { "min": 0, "max": 0, "common": 0 }, "patterns": [ { "count": 2, "args": 0, "types": [] } ] }, "runStart": { "occurrences": 2, "arg_count": { "min": 0, "max": 0, "common": 0 }, "patterns": [ { "count": 2, "args": 0, "types": [] } ] }, "errorStyle": { "occurrences": 2, "arg_count": { "min": 1, "max": 1, "common": 1 }, "patterns": [ { "count": 2, "args": 1, "types": [ "other" ] } ] }, "summarizeConfig": { "occurrences": 2, "arg_count": { "min": 1, "max": 1, "common": 1 }, "patterns": [ { "count": 2, "args": 1, "types": [ "expr" ] } ] }, "accent": { "occurrences": 2, "arg_count": { "min": 1, "max": 1, "common": 1 }, "patterns": [ { "count": 2, "args": 1, "types": [ "other" ] } ] }, "banner": { "occurrences": 2, "arg_count": { "min": 0, "max": 0, "common": 0 }, "patterns": [ { "count": 2, "args": 0, "types": [] } ] }, "repoRoot": { "occurrences": 2, "arg_count": { "min": 0, "max": 0, "common": 0 }, "patterns": [ { "count": 2, "args": 0, "types": [] } ] }, "string": { "occurrences": 4, "arg_count": { "min": 1, "max": 1, "common": 1 }, "patterns": [ { "count": 4, "args": 1, "types": [ "other" ] } ] }, "writeEnvFile": { "occurrences": 2, "arg_count": { "min": 1, "max": 1, "common": 1 }, "patterns": [ { "count": 2, "args": 1, "types": [ "other" ] } ] }, "removeString": { "occurrences": 2, "arg_count": { "min": 2, "max": 2, "common": 2 }, "patterns": [ { "count": 2, "args": 2, "types": [ "other", "other" ] } ] } } } ], "total_methods": 44 } ]