Skip to content

Refactor structured output API to make it more flexible, support native structured output for OpenAI and Google. #1755

Refactor structured output API to make it more flexible, support native structured output for OpenAI and Google.

Refactor structured output API to make it more flexible, support native structured output for OpenAI and Google. #1755

Triggered via pull request August 10, 2025 18:12
Status Failure
Total duration 20m 14s
Artifacts 3

checks.yml

on: pull_request
Matrix: tests
Fit to window
Zoom out
Zoom in

Annotations

1 error, 419 warnings, and 2 notices
knit
Process completed with exit code 1.
Check Kotlin and Java source code coverage: rag/rag-base/src/commonMain/kotlin/ai/koog/rag/base/files/TextRange.kt#L35
Method `getLength$koog_agents_rag_rag_base_commonMain` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: rag/rag-base/src/commonMain/kotlin/ai/koog/rag/base/files/TextRange.kt#L204
Method `covering$koog_agents_rag_rag_base_commonMain` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: agents/agents-core/src/commonMain/kotlin/ai/koog/agents/core/agent/context/AIAgentContext.kt#L235
Method `getAgentContextDataAdditionalKey` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: rag/rag-base/src/commonMain/kotlin/ai/koog/rag/base/files/FileSystemProvider.kt#L10
Constructor `FileSystemProvider` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: rag/rag-base/src/commonMain/kotlin/ai/koog/rag/base/files/TextRange.kt#L26
Method `getEndInclusive$koog_agents_rag_rag_base_commonMain` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: koog-ktor/src/commonMain/kotlin/ai/koog/ktor/Koog.kt#L32
Method `getAgentConfig` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: koog-ktor/src/commonMain/kotlin/ai/koog/ktor/Agents.kt#L104
Method `singleRunAgent` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: koog-ktor/src/commonMain/kotlin/ai/koog/ktor/Agents.kt#L84
Method `aiAgent` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: rag/rag-base/src/commonMain/kotlin/ai/koog/rag/base/DocumentStorageWithPayload.kt#L102
Method `allDocumentsWithPayload` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: agents/agents-core/src/commonMain/kotlin/ai/koog/agents/core/feature/remote/jsonConfig.kt#L50
Constructor `FeatureMessagesSerializerCollector` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: koog-spring-boot-starter/src/main/kotlin/ai/koog/spring/KoogProperties.kt#L119
Constructor `ProviderKoogProperties` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: rag/rag-base/src/commonMain/kotlin/ai/koog/rag/base/files/TextRange.kt#L109
Method `intersects$koog_agents_rag_rag_base_commonMain` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: rag/rag-base/src/commonMain/kotlin/ai/koog/rag/base/files/TextRange.kt#L86
Method `contains$koog_agents_rag_rag_base_commonMain` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: rag/rag-base/src/commonMain/kotlin/ai/koog/rag/base/files/TextRange.kt#L45
Method `isEmpty$koog_agents_rag_rag_base_commonMain` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: koog-spring-boot-starter/src/main/kotlin/ai/koog/spring/KoogProperties.kt#L119
Class `ProviderKoogProperties` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: koog-ktor/src/commonMain/kotlin/ai/koog/ktor/Agents.kt#L94
Method `singleRunAgent` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: koog-spring-boot-starter/src/main/kotlin/ai/koog/spring/KoogProperties.kt#L132
Class `OllamaKoogProperties` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: rag/rag-base/src/commonMain/kotlin/ai/koog/rag/base/files/TextRange.kt#L77
Method `substring$koog_agents_rag_rag_base_commonMain` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: koog-spring-boot-starter/src/main/kotlin/ai/koog/spring/KoogProperties.kt#L93
Method `getOpenAIClientProperties` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: koog-ktor/src/commonMain/kotlin/ai/koog/ktor/Koog.kt#L37
Method `agentConfig$koog_agents_koog_ktor_commonMain` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: agents/agents-core/src/commonMain/kotlin/ai/koog/agents/core/feature/remote/jsonConfig.kt#L68
Method `polymorphicDefaultSerializer` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: rag/rag-base/src/commonMain/kotlin/ai/koog/rag/base/files/TextRange.kt#L16
Constructor `TextRange` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: rag/rag-base/src/jvmMain/kotlin/ai/koog/rag/base/files/JVMFileSystemProvider.kt#L47
Constructor `JVMFileSystemProvider` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: koog-spring-boot-starter/src/main/kotlin/ai/koog/spring/KoogProperties.kt#L104
Method `getOpenRouterClientProperties` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: rag/vector-storage/src/commonMain/kotlin/ai/koog/rag/vector/InMemoryVectorStorage.kt#L87
Class `InMemoryTextDocumentEmbeddingStorage` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: rag/rag-base/src/commonMain/kotlin/ai/koog/rag/base/files/TextRange.kt#L123
Method `intersect$koog_agents_rag_rag_base_commonMain` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: rag/rag-base/src/commonMain/kotlin/ai/koog/rag/base/files/DocumentUtils.kt#L87
Method `getCurrentLineEndExclusive` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: rag/rag-base/src/commonMain/kotlin/ai/koog/rag/base/files/TextRange.kt#L97
Method `contains$koog_agents_rag_rag_base_commonMain` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: rag/rag-base/src/commonMain/kotlin/ai/koog/rag/base/RankedDocumentStorage.kt#L56
Method `mostRelevantDocuments` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: agents/agents-tools/src/commonMain/kotlin/ai/koog/agents/core/tools/Tool.kt#L163
Method `encodeResultToString` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: rag/rag-base/src/commonMain/kotlin/ai/koog/rag/base/files/TextRange.kt#L151
Method `subtract$koog_agents_rag_rag_base_commonMain` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: koog-ktor/src/jvmMain/kotlin/ai/koog/ktor/KoogKtorServerPluginJvm.kt#L19
Constructor `McpToolsConfig` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: rag/rag-base/src/commonMain/kotlin/ai/koog/rag/base/files/DocumentUtils.kt#L142
Method `getCurrentLineEndExclusiveWithLineBreaks` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: koog-spring-boot-starter/src/main/kotlin/ai/koog/spring/KoogAutoConfig.kt#L40
Method `anthropicExecutor` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: koog-ktor/src/commonMain/kotlin/ai/koog/ktor/Koog.kt#L31
Method `getPromptExecutor` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: koog-ktor/src/jvmMain/kotlin/ai/koog/ktor/KoogKtorServerPluginJvm.kt#L19
Class `McpToolsConfig` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: agents/agents-test/src/commonMain/kotlin/ai/koog/agents/testing/tools/MockLLMBuilder.kt#L274
Method `addModerationResponseExactPattern` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: agents/agents-core/src/commonMain/kotlin/ai/koog/agents/core/feature/remote/jsonConfig.kt#L50
Class `FeatureMessagesSerializerCollector` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: koog-spring-boot-starter/src/main/kotlin/ai/koog/spring/KoogProperties.kt#L77
Method `getOllamaClientProperties` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: rag/rag-base/src/commonMain/kotlin/ai/koog/rag/base/files/TextRange.kt#L16
Method `getEndExclusive` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: koog-spring-boot-starter/src/main/kotlin/ai/koog/spring/KoogProperties.kt#L132
Constructor `OllamaKoogProperties` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: rag/rag-base/src/commonMain/kotlin/ai/koog/rag/base/files/TextRange.kt#L55
Method `isNotEmpty$koog_agents_rag_rag_base_commonMain` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: koog-spring-boot-starter/src/main/kotlin/ai/koog/spring/KoogProperties.kt#L50
Method `getAnthropicClientProperties` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: rag/rag-base/src/commonMain/kotlin/ai/koog/rag/base/files/DocumentUtils.kt#L163
Method `getCurrentLineEndExclusiveWithoutLineBreaks` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: agents/agents-ext/src/commonMain/kotlin/ai/koog/agents/ext/llm/choice/AIAgentNodesWithChoiceExt.kt#L16
Method `nodeLLMSendResultsMultipleChoices` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: koog-ktor/src/commonMain/kotlin/ai/koog/ktor/Agents.kt#L59
Method `aiAgent` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: koog-ktor/src/commonMain/kotlin/ai/koog/ktor/Koog.kt#L33
Method `getAgentFeatures` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: koog-spring-boot-starter/src/main/kotlin/ai/koog/spring/KoogAutoConfig.kt#L29
Constructor `KoogAutoConfiguration` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: koog-ktor/src/commonMain/kotlin/ai/koog/ktor/Koog.kt#L29
Constructor `Koog` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: rag/rag-base/src/commonMain/kotlin/ai/koog/rag/base/files/TextRange.kt#L67
Method `shift$koog_agents_rag_rag_base_commonMain` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: koog-ktor/src/commonMain/kotlin/ai/koog/ktor/Agents.kt#L31
Method `aiAgent` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: rag/rag-base/src/jvmMain/kotlin/ai/koog/rag/base/files/JVMFileSystemProvider.kt#L47
Class `JVMFileSystemProvider` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: koog-ktor/src/commonMain/kotlin/ai/koog/ktor/Koog.kt#L29
Class `Koog` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: agents/agents-core/src/commonMain/kotlin/ai/koog/agents/core/feature/remote/jsonConfig.kt#L75
Method `polymorphicDefaultDeserializer` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: rag/rag-base/src/commonMain/kotlin/ai/koog/rag/base/files/DocumentUtils.kt#L62
Method `getCurrentLineBeginning` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: koog-spring-boot-starter/src/main/kotlin/ai/koog/spring/KoogAutoConfig.kt#L117
Method `openRouterExecutor` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: koog-spring-boot-starter/src/main/kotlin/ai/koog/spring/KoogProperties.kt#L19
Constructor `KoogProperties` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: koog-spring-boot-starter/src/main/kotlin/ai/koog/spring/KoogAutoConfig.kt#L29
Class `KoogAutoConfiguration` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: agents/agents-test/src/commonMain/kotlin/ai/koog/agents/testing/tools/MockLLMBuilder.kt#L142
Method `setDefaultModerationResponse` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: koog-ktor/src/commonMain/kotlin/ai/koog/ktor/Agents.kt#L69
Method `aiAgent` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: rag/rag-base/src/commonMain/kotlin/ai/koog/rag/base/files/TextRange.kt#L195
Method `invoke$koog_agents_rag_rag_base_commonMain` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: koog-spring-boot-starter/src/main/kotlin/ai/koog/spring/KoogProperties.kt#L63
Method `getGoogleClientProperties` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: koog-ktor/src/commonMain/kotlin/ai/koog/ktor/KoogAgentsConfig.kt#L413
Method `agentConfig` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: rag/vector-storage/src/commonMain/kotlin/ai/koog/rag/vector/InMemoryVectorStorage.kt#L87
Constructor `InMemoryTextDocumentEmbeddingStorage` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: agents/agents-test/src/commonMain/kotlin/ai/koog/agents/testing/tools/MockLLMBuilder.kt#L311
Method `addModerationResponsePartialPattern` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: agents/agents-core/src/commonMain/kotlin/ai/koog/agents/core/dsl/extension/AIAgentNodes.kt#L387
Method `nodeExecuteMultipleToolsAndSendResults` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: koog-ktor/src/commonMain/kotlin/ai/koog/ktor/Koog.kt#L30
Method `getApplication` coverage is below the threshold 50%
Check Kotlin and Java source code coverage: rag/rag-base/src/commonMain/kotlin/ai/koog/rag/base/files/TextRange.kt#L137
Method `covers$koog_agents_rag_rag_base_commonMain` coverage is below the threshold 50%
Vulnerable imported dependency: koog-agents.buildSrc.main#L0
Dependency maven:com.fasterxml.jackson.core:jackson-core:2.12.7 is vulnerable , safe version 2.15.0 Module: koog-agents.buildSrc.main Tree: ``` com.fasterxml.jackson.core:jackson-core:2.12.7 ``` * [WS-2022-0468](https://www.mend.io/vulnerability-database/WS-2022-0468?utm_source=JetBrains) 7.5 Insufficient Information Results powered by [Mend.io](https://www.mend.io/jetbrains-lp/?utm_source=JetBrains)
Vulnerable imported dependency: koog-agents.buildSrc.main#L0
Dependency maven:com.fasterxml.woodstox:woodstox-core:6.2.4 is vulnerable , safe version 6.4.0 Module: koog-agents.buildSrc.main Tree: ``` com.fasterxml.woodstox:woodstox-core:6.2.4 ``` * [CVE-2022-40152](https://www.mend.io/vulnerability-database/CVE-2022-40152?utm_source=JetBrains) 6.5 Out-of-bounds Write Results powered by [Mend.io](https://www.mend.io/jetbrains-lp/?utm_source=JetBrains)
Vulnerable imported dependency: koog-agents.integration-tests.jvmTest#L0
Dependency maven:org.apache.commons:commons-compress:1.24.0 is vulnerable , safe version 1.26.0 Module: koog-agents.integration-tests.jvmTest Tree: ``` org.apache.commons:commons-compress:1.24.0 -org.testcontainers:testcontainers:1.19.7 ``` * [CVE-2024-25710](https://www.mend.io/vulnerability-database/CVE-2024-25710?utm_source=JetBrains) 8.1 Loop with Unreachable Exit Condition ('Infinite Loop') * [CVE-2024-26308](https://www.mend.io/vulnerability-database/CVE-2024-26308?utm_source=JetBrains) 5.5 Allocation of Resources Without Limits or Throttling Results powered by [Mend.io](https://www.mend.io/jetbrains-lp/?utm_source=JetBrains)
Vulnerable imported dependency: koog-agents.integration-tests.jvmMain#L0
Dependency maven:org.apache.commons:commons-compress:1.24.0 is vulnerable , safe version 1.26.0 Module: koog-agents.integration-tests.jvmMain Tree: ``` org.apache.commons:commons-compress:1.24.0 -org.testcontainers:testcontainers:1.19.7 ``` * [CVE-2024-25710](https://www.mend.io/vulnerability-database/CVE-2024-25710?utm_source=JetBrains) 8.1 Loop with Unreachable Exit Condition ('Infinite Loop') * [CVE-2024-26308](https://www.mend.io/vulnerability-database/CVE-2024-26308?utm_source=JetBrains) 5.5 Allocation of Resources Without Limits or Throttling Results powered by [Mend.io](https://www.mend.io/jetbrains-lp/?utm_source=JetBrains)
qodana
Failed to push quick fixes – The process '/usr/bin/git' failed with exit code 128
tests (windows-latest)
The windows-latest label will migrate from Windows Server 2022 to Windows Server 2025 beginning September 2, 2025. For more information see https://github.com/actions/runner-images/issues/12677

Artifacts

Produced during runtime
Name Size Digest
gradle-coverage-data.zip
115 KB
sha256:dff5308842d98168ad771d6e2be0c8c832412de10764e6c64bc0d69e207dd6d5
reports-ubuntu-latest
1.35 MB
sha256:e34f34a3a9f2a358ddf759270588d2fe0d05250e18c715b4a3fa3ecf1edd15f9
reports-windows-latest
622 KB
sha256:3f858f9558fdaa08e2357eac44bfa017ea397a5af4109c922fa7a367f7b8853c