<?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>com.top-logic</groupId>
    <artifactId>tl-parent-core</artifactId>
    <version>8.0.0-alpha8</version>
    <relativePath />
  </parent>
  <artifactId>tl-ai-parent</artifactId>
  <licenses>
    <license>
      <name>LicenseRef-BOS-TopLogic-1.0</name>
      <url>https://github.com/top-logic/.github/blob/main/LICENSES/LicenseRef-BOS-TopLogic-1.0.md</url>
    </license>
  </licenses>
  <version>2.0.4</version>
  <packaging>pom</packaging>
  <scm>
    <connection>scm:git:https://github.com/top-logic/tl-ai.git</connection>
    <developerConnection>scm:git:http://tl.bos.local:3000/TopLogic/tl-ai.git</developerConnection>
    <url>https://github.com/top-logic/tl-ai</url>
    <tag>TL_2.0.4</tag>
  </scm>
  <modules>
    <module>tl-ai-mcp-server</module>
    <module>tl-chat</module>
    <module>tl-chat-classic</module>
    <module>tl-ai-demo</module>
    <module>tl-ai-vector-index</module>
    <module>tl-ai-tool-api</module>
    <module>tl-ai-core</module>
    <module>tl-ai-eval</module>
  </modules>
  <properties>
    <project.build.sourceEncoding>utf-8</project.build.sourceEncoding>
  </properties>
  <dependencies />
  <build>
    <plugins>
      <!--
        Which test classes a build runs.

        tl-parent-core configures surefire with the single include "test/TestAll.java". That names
        the engine's generic suite, which additionally collects everything below
        src/test/java/test - so a test in the "test" package root runs by itself. This repository
        keeps most of its tests in packages that mirror the production code instead - a test for
        com.top_logic.tl.ai.core.agent sits in com.top_logic.tl.ai.core.agent, not in
        test.com.top_logic.tl.ai.core.agent - and those were invisible to the build until #369.

        The second include picks them up by their location. It has to be a %regex[] pattern: a
        path pattern like com/**/Test*.java is implicitly prefixed with "**/" by surefire, which
        would match the engine's own test classes inside the tl-basic test jar named in
        dependenciesToScan, and would match this repository's own test/com/... classes a second
        time. A %regex[] include is anchored at the start of the path, so it matches exactly the
        two package roots this repository owns and nothing else.

        Whether every test file is in fact reachable this way is asserted by
        TestSuiteReachability, so a test class in a package nobody scans fails the build instead
        of silently not running.
      -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <includes>
            <include>test/TestAll.java</include>
            <include>%regex[com/top_logic/(ai|tl/ai)/(.*/)?(Test[A-Z0-9][^/$]*|[^/$]*Test)\.class]</include>
          </includes>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
