diagrid-spring-ai-starter
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>io.diagrid</groupId>
<artifactId>diagrid-spring-ai-starter</artifactId>
<version>0.2.0</version>
</dependency><?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>io.diagrid</groupId>
<artifactId>diagrid-spring-ai-parent</artifactId>
<version>0.2.0</version>
</parent>
<artifactId>diagrid-spring-ai-starter</artifactId>
<name>diagrid-spring-ai-starter</name>
<description>Spring Boot starter: make Spring AI ChatClient calls durable via Dapr Workflows</description>
<dependencies>
<dependency>
<groupId>io.diagrid</groupId>
<artifactId>diagrid-spring-ai-core</artifactId>
<version>${project.version}</version>
</dependency>
<!-- ChatClient + advisor API (CallAdvisor, ChatClientRequest/Response) -->
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-client-chat</artifactId>
</dependency>
<!-- Auto-configuration plumbing -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
<!-- Dapr state store client (DaprClient.saveState/getState) for the agent registry. Declared
directly because the registry code imports io.dapr.client.* (it is otherwise only present
transitively via core -> dapr-sdk-workflows). -->
<dependency>
<groupId>io.dapr</groupId>
<artifactId>dapr-sdk</artifactId>
</dependency>
<!-- Dapr's observed workflow client: ObservationDaprWorkflowClient wraps the workflow client with
Micrometer observation + trace-context propagation to the sidecar, so the workflow's spans join
the caller's trace. Pulls only dapr-sdk(-workflows) + micrometer-observation + opentelemetry-api
(all already present) — NOT a tracing bridge, so it stays no-op without one. -->
<dependency>
<groupId>io.dapr.spring</groupId>
<artifactId>dapr-spring-boot-observation</artifactId>
<version>${dapr.version}</version>
</dependency>
<!-- Tracing SPI implementation. OPTIONAL: only apps with a tracing bridge get it transitively;
otherwise the durable path uses DurableTracing.NOOP. Compiled against the API only.
(micrometer-observation is already present transitively via spring-ai-client-chat.) -->
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-tracing</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
<!-- Observability test kits: TestObservationRegistry (assert the caller observation) and
SimpleTracer (assert cross-thread span parenting). -->
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-observation-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-tracing-test</artifactId>
<scope>test</scope>
</dependency>
<!-- Registry unit tests (AgentRegistrarTest, AgentRecordFactoryTest) mock the Dapr client. -->
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>