Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion extension-api/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<relativePath>../pom.xml</relativePath>
</parent>

<version>1.1.0</version>
<version>1.2.0</version>
<artifactId>golemcore-plugin-extension-api</artifactId>
<name>golemcore-plugin-extension-api</name>
<description>Compile-time plugin API and shared contracts for GolemCore plugins</description>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package me.golemcore.plugin.api.extension.model.rag;

/*
* Copyright 2026 Aleksei Kuleshov
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*
* Contact: alex@kuleshov.tech
*/

public record RagCorpusRef(String corpusId,String displayName){}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package me.golemcore.plugin.api.extension.model.rag;

/*
* Copyright 2026 Aleksei Kuleshov
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*
* Contact: alex@kuleshov.tech
*/

import java.util.Map;

public record RagDocument(String documentId,String title,String path,String content,String url,Map<String,String>metadata){

public RagDocument{metadata=metadata==null?Map.of():Map.copyOf(metadata);}}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package me.golemcore.plugin.api.extension.model.rag;

/*
* Copyright 2026 Aleksei Kuleshov
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*
* Contact: alex@kuleshov.tech
*/

public record RagIngestionCapabilities(boolean supportsDelete,boolean supportsReset,boolean supportsStatus,int maxBatchSize){}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package me.golemcore.plugin.api.extension.model.rag;

/*
* Copyright 2026 Aleksei Kuleshov
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*
* Contact: alex@kuleshov.tech
*/

public record RagIngestionResult(String status,int acceptedDocuments,int rejectedDocuments,String providerJobId,String message){}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package me.golemcore.plugin.api.extension.model.rag;

/*
* Copyright 2026 Aleksei Kuleshov
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*
* Contact: alex@kuleshov.tech
*/

public record RagIngestionStatus(String status,String message,int pendingDocuments,int processedDocuments,int failedDocuments,String lastUpdatedAt){}
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package me.golemcore.plugin.api.extension.spi;

/*
* Copyright 2026 Aleksei Kuleshov
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Contact: alex@kuleshov.tech
*/

import me.golemcore.plugin.api.extension.model.rag.RagCorpusRef;
import me.golemcore.plugin.api.extension.model.rag.RagDocument;
import me.golemcore.plugin.api.extension.model.rag.RagIngestionCapabilities;
import me.golemcore.plugin.api.extension.model.rag.RagIngestionResult;
import me.golemcore.plugin.api.extension.model.rag.RagIngestionStatus;

import java.util.List;
import java.util.concurrent.CompletableFuture;

public interface RagIngestionProvider {

String getProviderId();

boolean isAvailable();

RagIngestionCapabilities getCapabilities();

CompletableFuture<RagIngestionResult> upsertDocuments(RagCorpusRef corpus, List<RagDocument> documents);

CompletableFuture<RagIngestionResult> deleteDocuments(RagCorpusRef corpus, List<String> documentIds);

CompletableFuture<RagIngestionResult> resetCorpus(RagCorpusRef corpus);

CompletableFuture<RagIngestionStatus> getStatus(RagCorpusRef corpus);
}
8 changes: 4 additions & 4 deletions golemcore/lightrag/plugin.yaml
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
id: golemcore/lightrag
provider: golemcore
name: lightrag
version: 1.0.0
version: 1.1.0
pluginApiVersion: 1
engineVersion: ">=0.0.0 <1.0.0"
entrypoint: me.golemcore.plugins.golemcore.lightrag.LightRagPluginBootstrap
description: LightRAG-backed retrieval provider plugin for prompt augmentation and indexing.
sourceUrl: https://github.com/alexk-dev/golemcore-plugins/tree/main/golemcore/lightrag
license: Apache-2.0
description: "LightRAG-backed retrieval provider plugin for prompt augmentation and indexing."
sourceUrl: "https://github.com/alexk-dev/golemcore-plugins/tree/main/golemcore/lightrag"
license: "Apache-2.0"
maintainers:
- alexk-dev
19 changes: 10 additions & 9 deletions golemcore/lightrag/pom.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
<?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">
<?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>
Expand All @@ -11,7 +9,7 @@
<relativePath>../../pom.xml</relativePath>
</parent>

<version>1.0.0</version>
<version>1.1.0</version>
<artifactId>golemcore-lightrag-plugin</artifactId>
<name>golemcore/lightrag</name>
<description>LightRAG provider plugin for GolemCore</description>
Expand Down Expand Up @@ -51,6 +49,11 @@
<artifactId>okhttp-jvm</artifactId>
<version>${okhttp.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

<build>
Expand Down Expand Up @@ -83,9 +86,7 @@
<configuration>
<target>
<mkdir dir="${project.basedir}/../../dist/${plugin.owner}/${plugin.name}/${project.version}" />
<copy file="${project.build.directory}/${project.build.finalName}.jar"
tofile="${project.basedir}/../../dist/${plugin.owner}/${plugin.name}/${project.version}/${project.artifactId}-${project.version}.jar"
overwrite="true" />
<copy file="${project.build.directory}/${project.build.finalName}.jar" tofile="${project.basedir}/../../dist/${plugin.owner}/${plugin.name}/${project.version}/${project.artifactId}-${project.version}.jar" overwrite="true" />
</target>
</configuration>
<goals>
Expand All @@ -96,4 +97,4 @@
</plugin>
</plugins>
</build>
</project>
</project>
Loading
Loading