Files
2026-07-13 12:58:18 +08:00

97 lines
3.5 KiB
XML

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.5.4</version>
<relativePath/>
</parent>
<groupId>com.copilotkit.showcase</groupId>
<artifactId>spring-ai-agent</artifactId>
<version>0.1.0</version>
<packaging>jar</packaging>
<properties>
<java.version>17</java.version>
<spring-ai.version>1.0.1</spring-ai.version>
<ag-ui.version>0.0.1</ag-ui.version>
<ag-ui.spring-ai.version>1.0.1</ag-ui.spring-ai.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-bom</artifactId>
<version>${spring-ai.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- Spring Boot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Spring AI (OpenAI) -->
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-model-openai</artifactId>
</dependency>
<!-- AG-UI Java SDK (installed from source in Dockerfile) -->
<dependency>
<groupId>com.ag-ui.community</groupId>
<artifactId>spring-ai</artifactId>
<version>${ag-ui.spring-ai.version}</version>
</dependency>
<dependency>
<groupId>com.ag-ui.community</groupId>
<artifactId>java-server</artifactId>
<version>${ag-ui.version}</version>
</dependency>
<dependency>
<groupId>com.ag-ui.community</groupId>
<artifactId>spring</artifactId>
<version>${ag-ui.version}</version>
</dependency>
<!-- Caffeine: bounded, time-expiring cache backing BoundedToolCallingManager's
per-ChatOptions iteration counter. Prevents the map from growing unbounded
on the happy-path (conversation turn completes naturally without hitting the
cap) since Spring-AI's outer loop never signals "turn finished" back to the
ToolCallingManager. expireAfterAccess(5m) bounds worst-case residency. -->
<dependency>
<groupId>com.github.ben-manes.caffeine</groupId>
<artifactId>caffeine</artifactId>
</dependency>
<!-- Test scope: JUnit 5 + Mockito via Spring Boot starter. Kept test-only
so the production JAR stays lean. -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>agent</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>