diff --git a/argi-document-model/pom.xml b/argi-document-model/pom.xml new file mode 100644 index 000000000..ac9a30413 --- /dev/null +++ b/argi-document-model/pom.xml @@ -0,0 +1,58 @@ + + + + 4.0.0 + + io.github.agentic-ai-java + argi-extensions + ${revision} + ../pom.xml + + argi-document-model + jar + ARGI Document Model + Provider-neutral document parsing contracts for ARGI Extensions + + + + org.springframework.ai + spring-ai-commons + + + org.springframework.ai + spring-ai-model + + + tools.jackson.core + jackson-databind + + + org.jspecify + jspecify + + + org.junit.jupiter + junit-jupiter + test + + + org.assertj + assertj-core + test + + + diff --git a/argi-extensions-model/src/main/java/io/github/agentic/ai/document/DocumentParser.java b/argi-document-model/src/main/java/io/github/agentic/ai/document/DocumentParser.java similarity index 100% rename from argi-extensions-model/src/main/java/io/github/agentic/ai/document/DocumentParser.java rename to argi-document-model/src/main/java/io/github/agentic/ai/document/DocumentParser.java diff --git a/argi-extensions-model/src/main/java/io/github/agentic/ai/document/DocumentParserProvider.java b/argi-document-model/src/main/java/io/github/agentic/ai/document/DocumentParserProvider.java similarity index 100% rename from argi-extensions-model/src/main/java/io/github/agentic/ai/document/DocumentParserProvider.java rename to argi-document-model/src/main/java/io/github/agentic/ai/document/DocumentParserProvider.java diff --git a/argi-extensions-model/src/main/java/io/github/agentic/ai/document/JsonDocumentParser.java b/argi-document-model/src/main/java/io/github/agentic/ai/document/JsonDocumentParser.java similarity index 100% rename from argi-extensions-model/src/main/java/io/github/agentic/ai/document/JsonDocumentParser.java rename to argi-document-model/src/main/java/io/github/agentic/ai/document/JsonDocumentParser.java diff --git a/argi-extensions-model/src/main/java/io/github/agentic/ai/document/TextDocumentParser.java b/argi-document-model/src/main/java/io/github/agentic/ai/document/TextDocumentParser.java similarity index 100% rename from argi-extensions-model/src/main/java/io/github/agentic/ai/document/TextDocumentParser.java rename to argi-document-model/src/main/java/io/github/agentic/ai/document/TextDocumentParser.java diff --git a/argi-extensions-model/src/test/java/io/github/agentic/ai/document/DocumentParserProviderTests.java b/argi-document-model/src/test/java/io/github/agentic/ai/document/DocumentParserProviderTests.java similarity index 100% rename from argi-extensions-model/src/test/java/io/github/agentic/ai/document/DocumentParserProviderTests.java rename to argi-document-model/src/test/java/io/github/agentic/ai/document/DocumentParserProviderTests.java diff --git a/argi-extensions-model/src/test/java/io/github/agentic/ai/document/JsonDocumentParserTests.java b/argi-document-model/src/test/java/io/github/agentic/ai/document/JsonDocumentParserTests.java similarity index 100% rename from argi-extensions-model/src/test/java/io/github/agentic/ai/document/JsonDocumentParserTests.java rename to argi-document-model/src/test/java/io/github/agentic/ai/document/JsonDocumentParserTests.java diff --git a/argi-extensions-model/src/test/java/io/github/agentic/ai/document/TextDocumentParserTests.java b/argi-document-model/src/test/java/io/github/agentic/ai/document/TextDocumentParserTests.java similarity index 100% rename from argi-extensions-model/src/test/java/io/github/agentic/ai/document/TextDocumentParserTests.java rename to argi-document-model/src/test/java/io/github/agentic/ai/document/TextDocumentParserTests.java diff --git a/argi-extensions-bom/pom.xml b/argi-extensions-bom/pom.xml index d66fddd9d..d4de742a1 100644 --- a/argi-extensions-bom/pom.xml +++ b/argi-extensions-bom/pom.xml @@ -94,11 +94,21 @@ argi-code-executor-docker ${project.version} + + io.github.agentic-ai-java + argi-document-model + ${project.version} + io.github.agentic-ai-java argi-extensions-model ${project.version} + + io.github.agentic-ai-java + argi-rerank-model + ${project.version} + io.github.agentic-ai-java argi-graph-node-network diff --git a/argi-extensions-model/pom.xml b/argi-extensions-model/pom.xml index ca9100750..038d667fa 100644 --- a/argi-extensions-model/pom.xml +++ b/argi-extensions-model/pom.xml @@ -28,35 +28,18 @@ jar ARGI Extensions Model - Provider-neutral model and document contracts for ARGI Extensions + Compatibility aggregator for ARGI document and rerank model contracts - org.springframework.ai - spring-ai-commons + io.github.agentic-ai-java + argi-document-model + ${project.version} - org.springframework.ai - spring-ai-model - - - tools.jackson.core - jackson-databind - - - org.jspecify - jspecify - - - - org.junit.jupiter - junit-jupiter - test - - - org.assertj - assertj-core - test + io.github.agentic-ai-java + argi-rerank-model + ${project.version} diff --git a/argi-rerank-model/pom.xml b/argi-rerank-model/pom.xml new file mode 100644 index 000000000..cf3424a1e --- /dev/null +++ b/argi-rerank-model/pom.xml @@ -0,0 +1,54 @@ + + + + 4.0.0 + + io.github.agentic-ai-java + argi-extensions + ${revision} + ../pom.xml + + argi-rerank-model + jar + ARGI Rerank Model + Provider-neutral rerank contracts for ARGI Extensions + + + + org.springframework.ai + spring-ai-commons + + + org.springframework.ai + spring-ai-model + + + org.jspecify + jspecify + + + org.junit.jupiter + junit-jupiter + test + + + org.assertj + assertj-core + test + + + diff --git a/argi-extensions-model/src/main/java/io/github/agentic/ai/document/DocumentWithScore.java b/argi-rerank-model/src/main/java/io/github/agentic/ai/document/DocumentWithScore.java similarity index 100% rename from argi-extensions-model/src/main/java/io/github/agentic/ai/document/DocumentWithScore.java rename to argi-rerank-model/src/main/java/io/github/agentic/ai/document/DocumentWithScore.java diff --git a/argi-extensions-model/src/main/java/io/github/agentic/ai/model/RerankModel.java b/argi-rerank-model/src/main/java/io/github/agentic/ai/model/RerankModel.java similarity index 100% rename from argi-extensions-model/src/main/java/io/github/agentic/ai/model/RerankModel.java rename to argi-rerank-model/src/main/java/io/github/agentic/ai/model/RerankModel.java diff --git a/argi-extensions-model/src/main/java/io/github/agentic/ai/model/RerankOptions.java b/argi-rerank-model/src/main/java/io/github/agentic/ai/model/RerankOptions.java similarity index 100% rename from argi-extensions-model/src/main/java/io/github/agentic/ai/model/RerankOptions.java rename to argi-rerank-model/src/main/java/io/github/agentic/ai/model/RerankOptions.java diff --git a/argi-extensions-model/src/main/java/io/github/agentic/ai/model/RerankRequest.java b/argi-rerank-model/src/main/java/io/github/agentic/ai/model/RerankRequest.java similarity index 100% rename from argi-extensions-model/src/main/java/io/github/agentic/ai/model/RerankRequest.java rename to argi-rerank-model/src/main/java/io/github/agentic/ai/model/RerankRequest.java diff --git a/argi-extensions-model/src/main/java/io/github/agentic/ai/model/RerankResponse.java b/argi-rerank-model/src/main/java/io/github/agentic/ai/model/RerankResponse.java similarity index 100% rename from argi-extensions-model/src/main/java/io/github/agentic/ai/model/RerankResponse.java rename to argi-rerank-model/src/main/java/io/github/agentic/ai/model/RerankResponse.java diff --git a/argi-extensions-model/src/main/java/io/github/agentic/ai/model/RerankResponseMetadata.java b/argi-rerank-model/src/main/java/io/github/agentic/ai/model/RerankResponseMetadata.java similarity index 100% rename from argi-extensions-model/src/main/java/io/github/agentic/ai/model/RerankResponseMetadata.java rename to argi-rerank-model/src/main/java/io/github/agentic/ai/model/RerankResponseMetadata.java diff --git a/argi-extensions-model/src/main/java/io/github/agentic/ai/model/RerankResultMetadata.java b/argi-rerank-model/src/main/java/io/github/agentic/ai/model/RerankResultMetadata.java similarity index 100% rename from argi-extensions-model/src/main/java/io/github/agentic/ai/model/RerankResultMetadata.java rename to argi-rerank-model/src/main/java/io/github/agentic/ai/model/RerankResultMetadata.java diff --git a/argi-extensions-model/src/test/java/io/github/agentic/ai/model/RerankTypesTests.java b/argi-rerank-model/src/test/java/io/github/agentic/ai/model/RerankTypesTests.java similarity index 100% rename from argi-extensions-model/src/test/java/io/github/agentic/ai/model/RerankTypesTests.java rename to argi-rerank-model/src/test/java/io/github/agentic/ai/model/RerankTypesTests.java diff --git a/docs/architecture/clear-room-extensions.md b/docs/architecture/clear-room-extensions.md new file mode 100644 index 000000000..eac236205 --- /dev/null +++ b/docs/architecture/clear-room-extensions.md @@ -0,0 +1,89 @@ +# Extensions Clear-Room Decisions + +This document records the implementation decisions for Extensions clear-room +issues #31-#35. The goal is independent responsibility boundaries, not +mechanical renaming or removal of valid third-party product terminology. + +## MCP registration (#31) + +The MCP module contains a registry integration service and a registrar that +publishes a server definition. The previous `register` package and +`NacosMcpRegister` names described the action but not the component boundary. + +- Registry integration types use `io.github.agentic.ai.mcp.registry`. +- Runtime executors are `NacosMcpRegistrar` and + `NacosStatelessMcpRegistrar`. +- Configuration is `NacosMcpRegistryProperties`. +- The existing `argi.mcp.nacos.register.*` keys remain unchanged because they + are deployment configuration, not Java responsibility names. +- The missing `enabled` property is now bound explicitly and drives the + existing conditional auto-configuration. + +The old Java package and class names are replaced in the next breaking +Extensions release. Nacos service names and protocol payloads are unchanged. + +## Tool observation (#32) + +Tool observation context, convention, and documentation are generic ARGI +observation contracts. The ARMS starter remains the vendor adapter and keeps +the `argi.arms.*` configuration namespace. + +- Generic types use `ToolCallingObservationContext`, + `ToolCallingObservationConvention`, and + `ToolCallingObservationDocumentation`. +- `gen_ai.framework` emits `argi` as the canonical framework value. +- Existing span and attribute names remain unchanged to avoid accidental + dashboard and alert cardinality changes. +- A custom tool convention, ChatClient convention, or ChatModel convention can + replace the default auto-configured bean. + +Consumers that query the old framework value must map `agentic ai` to `argi`. +ARMS exporter-specific mapping remains outside the generic observation module. + +## Prompt configuration (#33) + +`NacosPromptTmplProperties` and `PromptTmplNacosConfigCondition` were renamed +to `NacosPromptTemplateProperties` and `PromptTemplateNacosConfigCondition`. +The property prefix `argi.nacos.prompt.template.*`, enablement default, bean +conditions, and Nacos update behavior are unchanged. + +## Chat memory adapters (#34) + +Storage adapters use `io.github.agentic.ai.memory.` while Spring Boot +assembly remains under `io.github.agentic.ai.model.chat.memory..autoconfigure`. +Only Elasticsearch diverged from the implementation convention, so it now +uses `io.github.agentic.ai.memory.elasticsearch`. + +No TTL, index, tenant, cache-key, serialized message, or storage protocol +behavior changes. The existing `argi.chat.memory.repository.elasticsearch.*` +configuration keys remain unchanged. + +## Document and rerank contracts (#35) + +The previous `argi-extensions-model` artifact combined document parsing and +rerank contracts. The responsibilities are now independently consumable: + +| Responsibility | Artifact | Java packages | +| --- | --- | --- | +| Document parsing | `argi-document-model` | `io.github.agentic.ai.document` | +| Rerank contracts | `argi-rerank-model` | `io.github.agentic.ai.model` and the existing `DocumentWithScore` FQCN | + +`argi-extensions-model` remains a compatibility aggregator that depends on +both artifacts. This preserves existing Maven consumers while allowing new +consumers to select one contract set. Public Java packages and behavior remain +unchanged; no provider SDK is added to either module. + +The graph network node now consumes `argi-document-model`, and the graph RAG +node now consumes `argi-rerank-model`. Parsing and ranking algorithms are not +changed. + +## Validation and rollback + +The affected modules are validated through reactor compilation and their +existing unit tests. External Nacos, Redis, Elasticsearch, and ARMS deployment +environments are not required for these naming and dependency-boundary +changes; integration tests requiring those services remain environment-gated. + +Rollback is a source-level revert of the corresponding PR. Configuration keys, +wire payloads, storage formats, and observation attribute names are preserved +unless explicitly listed above. diff --git a/graph-nodes/argi-graph-node-network/pom.xml b/graph-nodes/argi-graph-node-network/pom.xml index f4c593f25..8c201d2fa 100644 --- a/graph-nodes/argi-graph-node-network/pom.xml +++ b/graph-nodes/argi-graph-node-network/pom.xml @@ -44,7 +44,7 @@ io.github.agentic-ai-java - argi-extensions-model + argi-document-model diff --git a/graph-nodes/argi-graph-node-rag/pom.xml b/graph-nodes/argi-graph-node-rag/pom.xml index aabe4c605..e464601d9 100644 --- a/graph-nodes/argi-graph-node-rag/pom.xml +++ b/graph-nodes/argi-graph-node-rag/pom.xml @@ -44,7 +44,7 @@ io.github.agentic-ai-java - argi-extensions-model + argi-rerank-model diff --git a/pom.xml b/pom.xml index 69e246211..e87d24c80 100644 --- a/pom.xml +++ b/pom.xml @@ -48,7 +48,9 @@ + argi-document-model argi-extensions-model + argi-rerank-model graph-persistence/argi-graph-persistence-jdbc @@ -259,12 +261,23 @@ + + io.github.agentic-ai-java + argi-document-model + ${project.version} + io.github.agentic-ai-java argi-extensions-model ${project.version} + + io.github.agentic-ai-java + argi-rerank-model + ${project.version} + + io.github.agentic-ai-java argi-graph-core