Skip to content

Ensure that com.embabel.agent.api is not used by com.embabel.agent.spi (batch 2)#1411

Merged
johnsonr merged 3 commits intoembabel:mainfrom
poutsma:1024-2
Feb 13, 2026
Merged

Ensure that com.embabel.agent.api is not used by com.embabel.agent.spi (batch 2)#1411
johnsonr merged 3 commits intoembabel:mainfrom
poutsma:1024-2

Conversation

@poutsma
Copy link
Contributor

@poutsma poutsma commented Feb 13, 2026

This PR improves the ArchUnit tests to exclude internal and spring types, and fixes several cyclic dependencies.

See #1024.

With these changes and those in #1410 in place, we are down to just 10 cyclic API-SPI dependencies, most of them related to AgentMetadataReader:

Constructor <com.embabel.agent.api.annotation.support.AgentMetadataReader.<init>(com.embabel.agent.api.annotation.support.ActionMethodManager, com.embabel.agent.api.annotation.support.MethodDefinedOperationNameGenerator, com.embabel.agent.spi.validation.AgentStructureAgentValidator, com.embabel.agent.spi.validation.PathToCompletionAgentValidator, boolean)> calls constructor <com.embabel.agent.spi.validation.DefaultAgentValidationManager.<init>(java.util.List)> in (AgentMetadataReader.kt:124)
Constructor <com.embabel.agent.api.annotation.support.AgentMetadataReader.<init>(com.embabel.agent.api.annotation.support.ActionMethodManager, com.embabel.agent.api.annotation.support.MethodDefinedOperationNameGenerator, com.embabel.agent.spi.validation.AgentStructureAgentValidator, com.embabel.agent.spi.validation.PathToCompletionAgentValidator, boolean)> has parameter of type <com.embabel.agent.spi.validation.AgentStructureAgentValidator> in (AgentMetadataReader.kt:0)
Constructor <com.embabel.agent.api.annotation.support.AgentMetadataReader.<init>(com.embabel.agent.api.annotation.support.ActionMethodManager, com.embabel.agent.api.annotation.support.MethodDefinedOperationNameGenerator, com.embabel.agent.spi.validation.AgentStructureAgentValidator, com.embabel.agent.spi.validation.PathToCompletionAgentValidator, boolean)> has parameter of type <com.embabel.agent.spi.validation.PathToCompletionAgentValidator> in (AgentMetadataReader.kt:0)
Constructor <com.embabel.agent.api.annotation.support.AgentMetadataReader.<init>(com.embabel.agent.api.annotation.support.ActionMethodManager, com.embabel.agent.api.annotation.support.MethodDefinedOperationNameGenerator, com.embabel.agent.spi.validation.AgentStructureAgentValidator, com.embabel.agent.spi.validation.PathToCompletionAgentValidator, boolean, int, kotlin.jvm.internal.DefaultConstructorMarker)> calls constructor <com.embabel.agent.spi.validation.GoapPathToCompletionValidator.<init>()> in (AgentMetadataReader.kt:116)
Constructor <com.embabel.agent.api.annotation.support.AgentMetadataReader.<init>(com.embabel.agent.api.annotation.support.ActionMethodManager, com.embabel.agent.api.annotation.support.MethodDefinedOperationNameGenerator, com.embabel.agent.spi.validation.AgentStructureAgentValidator, com.embabel.agent.spi.validation.PathToCompletionAgentValidator, boolean, int, kotlin.jvm.internal.DefaultConstructorMarker)> calls method <com.embabel.agent.spi.validation.AgentStructureAgentValidator$Companion.getPERMIT_ALL()> in (AgentMetadataReader.kt:115)
Constructor <com.embabel.agent.api.annotation.support.AgentMetadataReader.<init>(com.embabel.agent.api.annotation.support.ActionMethodManager, com.embabel.agent.api.annotation.support.MethodDefinedOperationNameGenerator, com.embabel.agent.spi.validation.AgentStructureAgentValidator, com.embabel.agent.spi.validation.PathToCompletionAgentValidator, boolean, int, kotlin.jvm.internal.DefaultConstructorMarker)> gets field <com.embabel.agent.spi.validation.AgentStructureAgentValidator.Companion> in (AgentMetadataReader.kt:115)
Constructor <com.embabel.agent.api.annotation.support.AgentMetadataReader.<init>(com.embabel.agent.api.annotation.support.ActionMethodManager, com.embabel.agent.api.annotation.support.MethodDefinedOperationNameGenerator, com.embabel.agent.spi.validation.AgentStructureAgentValidator, com.embabel.agent.spi.validation.PathToCompletionAgentValidator, boolean, int, kotlin.jvm.internal.DefaultConstructorMarker)> has parameter of type <com.embabel.agent.spi.validation.AgentStructureAgentValidator> in (AgentMetadataReader.kt:0)
Constructor <com.embabel.agent.api.annotation.support.AgentMetadataReader.<init>(com.embabel.agent.api.annotation.support.ActionMethodManager, com.embabel.agent.api.annotation.support.MethodDefinedOperationNameGenerator, com.embabel.agent.spi.validation.AgentStructureAgentValidator, com.embabel.agent.spi.validation.PathToCompletionAgentValidator, boolean, int, kotlin.jvm.internal.DefaultConstructorMarker)> has parameter of type <com.embabel.agent.spi.validation.PathToCompletionAgentValidator> in (AgentMetadataReader.kt:0)
Method <com.embabel.agent.api.common.PlatformServices.getOperationScheduler()> has return type <com.embabel.agent.spi.OperationScheduler> in (PlatformServices.kt:0)
Method <com.embabel.agent.api.validation.AgentValidationManager.validateWithDetails(com.embabel.agent.core.AgentScope)> has return type <com.embabel.agent.spi.validation.DetailedValidationResult> in (AgentValidationManager.kt:0)

- exclude non-public types
- exclude spring configuration
- exclude internal types
- exclude spring types

See embabelgh-1024
Signed-off-by: Arjen Poutsma <poutsma@mac.com>
See embabelgh-1024

Signed-off-by: Arjen Poutsma <poutsma@mac.com>
See embabelgh-1024

Signed-off-by: Arjen Poutsma <poutsma@mac.com>
@johnsonr johnsonr merged commit 05d84a5 into embabel:main Feb 13, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants