diff --git a/pom.xml b/pom.xml
index b4c1c82..0e8689d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,17 +11,20 @@
UTF-8
2.0.17
- 2.25.3
+ 2.25.4
4.7.7
3.8.0
- 0.1.0-SNAPSHOT
- 4.17.0
+ 0.1.0
+ 4.18.1
+ 2.21.2
2.0
ai.wanaku.code.engine.camel.CamelEngineMain
- 3.2.1
+ 3.4.0
3.5.5
1.26.0
- 5.11.0
+ 5.14.3
+ 7.6.0.202603022253-r
+ 2.71.0
@@ -44,7 +47,7 @@
ai.wanaku.sdk
capabilities-bom
- ${wanaku.sdk.version}
+ ${wanaku-capabilities-sdk.version}
pom
import
@@ -70,7 +73,7 @@
ai.wanaku.sdk
- capabilities-runtime
+ capabilities-runtimes-common
ai.wanaku.sdk
@@ -134,7 +137,7 @@
org.eclipse.jgit
org.eclipse.jgit
- 7.5.0.202512021534-r
+ ${jgit.version}
@@ -212,10 +215,21 @@
- 2.71.0
+ ${palantir-format-version.version}
+
+
+
+ **/*.properties
+ **/*.proto
+
+
+
+ true
+ jakarta|javax,org.w3c|org.xml,java|org|io|,,\#,org.junit|org.mockito|\#org.assertj|\#org.junit|\#org.mockito
+
diff --git a/src/main/java/ai/wanaku/code/engine/camel/CamelEngineMain.java b/src/main/java/ai/wanaku/code/engine/camel/CamelEngineMain.java
index 30f398f..624d879 100644
--- a/src/main/java/ai/wanaku/code/engine/camel/CamelEngineMain.java
+++ b/src/main/java/ai/wanaku/code/engine/camel/CamelEngineMain.java
@@ -1,5 +1,15 @@
package ai.wanaku.code.engine.camel;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.concurrent.Callable;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import io.grpc.Grpc;
+import io.grpc.InsecureServerCredentials;
+import io.grpc.Server;
+import io.grpc.ServerBuilder;
import ai.wanaku.capabilities.sdk.api.discovery.RegistrationManager;
import ai.wanaku.capabilities.sdk.api.types.providers.ServiceTarget;
import ai.wanaku.capabilities.sdk.api.types.providers.ServiceType;
@@ -22,16 +32,6 @@
import ai.wanaku.code.engine.camel.init.Initializer;
import ai.wanaku.code.engine.camel.init.InitializerFactory;
import ai.wanaku.code.engine.camel.util.VersionHelper;
-import io.grpc.Grpc;
-import io.grpc.InsecureServerCredentials;
-import io.grpc.Server;
-import io.grpc.ServerBuilder;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.concurrent.Callable;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import picocli.CommandLine;
public class CamelEngineMain implements Callable {
diff --git a/src/main/java/ai/wanaku/code/engine/camel/WanakuCamelManager.java b/src/main/java/ai/wanaku/code/engine/camel/WanakuCamelManager.java
index 421bde0..1521b57 100644
--- a/src/main/java/ai/wanaku/code/engine/camel/WanakuCamelManager.java
+++ b/src/main/java/ai/wanaku/code/engine/camel/WanakuCamelManager.java
@@ -1,13 +1,13 @@
package ai.wanaku.code.engine.camel;
-import ai.wanaku.code.engine.camel.downloader.ResourceType;
-import ai.wanaku.code.engine.camel.util.WanakuRoutesLoader;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Map;
import org.apache.camel.CamelContext;
import org.apache.camel.impl.DefaultCamelContext;
+import ai.wanaku.code.engine.camel.downloader.ResourceType;
+import ai.wanaku.code.engine.camel.util.WanakuRoutesLoader;
public class WanakuCamelManager {
private final CamelContext context;
diff --git a/src/main/java/ai/wanaku/code/engine/camel/codegen/CodeGenDiscoveryCallback.java b/src/main/java/ai/wanaku/code/engine/camel/codegen/CodeGenDiscoveryCallback.java
index 9684bc1..2e382ba 100644
--- a/src/main/java/ai/wanaku/code/engine/camel/codegen/CodeGenDiscoveryCallback.java
+++ b/src/main/java/ai/wanaku/code/engine/camel/codegen/CodeGenDiscoveryCallback.java
@@ -1,12 +1,5 @@
package ai.wanaku.code.engine.camel.codegen;
-import ai.wanaku.capabilities.sdk.api.discovery.DiscoveryCallback;
-import ai.wanaku.capabilities.sdk.api.discovery.RegistrationManager;
-import ai.wanaku.capabilities.sdk.api.types.providers.ServiceTarget;
-import ai.wanaku.capabilities.sdk.services.ServicesHttpClient;
-import ai.wanaku.code.engine.camel.downloader.DownloaderFactory;
-import ai.wanaku.code.engine.camel.downloader.ResourceRefs;
-import ai.wanaku.code.engine.camel.downloader.ResourceType;
import java.net.URI;
import java.nio.file.Files;
import java.nio.file.Path;
@@ -16,6 +9,13 @@
import java.util.concurrent.CountDownLatch;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import ai.wanaku.capabilities.sdk.api.discovery.DiscoveryCallback;
+import ai.wanaku.capabilities.sdk.api.discovery.RegistrationManager;
+import ai.wanaku.capabilities.sdk.api.types.providers.ServiceTarget;
+import ai.wanaku.capabilities.sdk.services.ServicesHttpClient;
+import ai.wanaku.code.engine.camel.downloader.DownloaderFactory;
+import ai.wanaku.code.engine.camel.downloader.ResourceRefs;
+import ai.wanaku.code.engine.camel.downloader.ResourceType;
/**
* Discovery callback that initializes and registers code generation tools.
diff --git a/src/main/java/ai/wanaku/code/engine/camel/codegen/CodeGenToolRegistrar.java b/src/main/java/ai/wanaku/code/engine/camel/codegen/CodeGenToolRegistrar.java
index 1946c54..6e703c4 100644
--- a/src/main/java/ai/wanaku/code/engine/camel/codegen/CodeGenToolRegistrar.java
+++ b/src/main/java/ai/wanaku/code/engine/camel/codegen/CodeGenToolRegistrar.java
@@ -1,12 +1,5 @@
package ai.wanaku.code.engine.camel.codegen;
-import ai.wanaku.capabilities.sdk.api.types.InputSchema;
-import ai.wanaku.capabilities.sdk.api.types.Property;
-import ai.wanaku.capabilities.sdk.api.types.ToolReference;
-import ai.wanaku.capabilities.sdk.services.ServicesHttpClient;
-import ai.wanaku.code.engine.camel.codegen.tools.GenerateOrchestrationTool;
-import ai.wanaku.code.engine.camel.codegen.tools.ReadKameletTool;
-import ai.wanaku.code.engine.camel.codegen.tools.SearchServicesTool;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@@ -14,6 +7,13 @@
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import ai.wanaku.capabilities.sdk.api.types.InputSchema;
+import ai.wanaku.capabilities.sdk.api.types.Property;
+import ai.wanaku.capabilities.sdk.api.types.ToolReference;
+import ai.wanaku.capabilities.sdk.services.ServicesHttpClient;
+import ai.wanaku.code.engine.camel.codegen.tools.GenerateOrchestrationTool;
+import ai.wanaku.code.engine.camel.codegen.tools.ReadKameletTool;
+import ai.wanaku.code.engine.camel.codegen.tools.SearchServicesTool;
/**
* Registers and deregisters code generation tools with Wanaku.
diff --git a/src/main/java/ai/wanaku/code/engine/camel/codegen/CodeGenToolService.java b/src/main/java/ai/wanaku/code/engine/camel/codegen/CodeGenToolService.java
index 9235484..07bd425 100644
--- a/src/main/java/ai/wanaku/code/engine/camel/codegen/CodeGenToolService.java
+++ b/src/main/java/ai/wanaku/code/engine/camel/codegen/CodeGenToolService.java
@@ -1,12 +1,12 @@
package ai.wanaku.code.engine.camel.codegen;
-import ai.wanaku.code.engine.camel.codegen.tools.GenerateOrchestrationTool;
-import ai.wanaku.code.engine.camel.codegen.tools.ReadKameletTool;
-import ai.wanaku.code.engine.camel.codegen.tools.SearchServicesTool;
import java.net.URI;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import ai.wanaku.code.engine.camel.codegen.tools.GenerateOrchestrationTool;
+import ai.wanaku.code.engine.camel.codegen.tools.ReadKameletTool;
+import ai.wanaku.code.engine.camel.codegen.tools.SearchServicesTool;
/**
* Service that handles code generation tool invocations.
diff --git a/src/main/java/ai/wanaku/code/engine/camel/codegen/tools/GenerateOrchestrationTool.java b/src/main/java/ai/wanaku/code/engine/camel/codegen/tools/GenerateOrchestrationTool.java
index addd64b..cff600e 100644
--- a/src/main/java/ai/wanaku/code/engine/camel/codegen/tools/GenerateOrchestrationTool.java
+++ b/src/main/java/ai/wanaku/code/engine/camel/codegen/tools/GenerateOrchestrationTool.java
@@ -1,9 +1,9 @@
package ai.wanaku.code.engine.camel.codegen.tools;
-import ai.wanaku.code.engine.camel.codegen.CodeGenResourceLoader;
import java.io.IOException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import ai.wanaku.code.engine.camel.codegen.CodeGenResourceLoader;
/**
* Tool that returns the orchestration template for code generation.
diff --git a/src/main/java/ai/wanaku/code/engine/camel/codegen/tools/ReadKameletTool.java b/src/main/java/ai/wanaku/code/engine/camel/codegen/tools/ReadKameletTool.java
index 1d0a102..52b1a3f 100644
--- a/src/main/java/ai/wanaku/code/engine/camel/codegen/tools/ReadKameletTool.java
+++ b/src/main/java/ai/wanaku/code/engine/camel/codegen/tools/ReadKameletTool.java
@@ -1,9 +1,9 @@
package ai.wanaku.code.engine.camel.codegen.tools;
-import ai.wanaku.code.engine.camel.codegen.CodeGenResourceLoader;
import java.io.IOException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import ai.wanaku.code.engine.camel.codegen.CodeGenResourceLoader;
/**
* Tool that reads the content of a Kamelet by name.
diff --git a/src/main/java/ai/wanaku/code/engine/camel/codegen/tools/SearchServicesTool.java b/src/main/java/ai/wanaku/code/engine/camel/codegen/tools/SearchServicesTool.java
index 645d506..bac2381 100644
--- a/src/main/java/ai/wanaku/code/engine/camel/codegen/tools/SearchServicesTool.java
+++ b/src/main/java/ai/wanaku/code/engine/camel/codegen/tools/SearchServicesTool.java
@@ -1,10 +1,10 @@
package ai.wanaku.code.engine.camel.codegen.tools;
-import ai.wanaku.code.engine.camel.codegen.CodeGenConfig;
-import ai.wanaku.code.engine.camel.codegen.CodeGenResourceLoader;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import ai.wanaku.code.engine.camel.codegen.CodeGenConfig;
+import ai.wanaku.code.engine.camel.codegen.CodeGenResourceLoader;
/**
* Tool that searches for available services (Kamelets) in the code generation package.
diff --git a/src/main/java/ai/wanaku/code/engine/camel/downloader/DataStoreDownloader.java b/src/main/java/ai/wanaku/code/engine/camel/downloader/DataStoreDownloader.java
index 453adf5..e826f21 100644
--- a/src/main/java/ai/wanaku/code/engine/camel/downloader/DataStoreDownloader.java
+++ b/src/main/java/ai/wanaku/code/engine/camel/downloader/DataStoreDownloader.java
@@ -1,8 +1,5 @@
package ai.wanaku.code.engine.camel.downloader;
-import ai.wanaku.capabilities.sdk.api.types.DataStore;
-import ai.wanaku.capabilities.sdk.api.types.WanakuResponse;
-import ai.wanaku.capabilities.sdk.services.ServicesHttpClient;
import java.net.URI;
import java.nio.file.Files;
import java.nio.file.Path;
@@ -11,6 +8,9 @@
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import ai.wanaku.capabilities.sdk.api.types.DataStore;
+import ai.wanaku.capabilities.sdk.api.types.WanakuResponse;
+import ai.wanaku.capabilities.sdk.services.ServicesHttpClient;
public class DataStoreDownloader implements Downloader {
private static final Logger LOG = LoggerFactory.getLogger(DataStoreDownloader.class);
diff --git a/src/main/java/ai/wanaku/code/engine/camel/downloader/DownloaderFactory.java b/src/main/java/ai/wanaku/code/engine/camel/downloader/DownloaderFactory.java
index f0bbd39..6369d06 100644
--- a/src/main/java/ai/wanaku/code/engine/camel/downloader/DownloaderFactory.java
+++ b/src/main/java/ai/wanaku/code/engine/camel/downloader/DownloaderFactory.java
@@ -1,10 +1,10 @@
package ai.wanaku.code.engine.camel.downloader;
-import ai.wanaku.capabilities.sdk.services.ServicesHttpClient;
import java.net.URI;
import java.nio.file.Path;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import ai.wanaku.capabilities.sdk.services.ServicesHttpClient;
/**
* Factory for creating downloader instances based on URI scheme.
diff --git a/src/main/java/ai/wanaku/code/engine/camel/downloader/ResourceDownloaderCallback.java b/src/main/java/ai/wanaku/code/engine/camel/downloader/ResourceDownloaderCallback.java
index 3424101..fbea935 100644
--- a/src/main/java/ai/wanaku/code/engine/camel/downloader/ResourceDownloaderCallback.java
+++ b/src/main/java/ai/wanaku/code/engine/camel/downloader/ResourceDownloaderCallback.java
@@ -1,9 +1,5 @@
package ai.wanaku.code.engine.camel.downloader;
-import ai.wanaku.capabilities.sdk.api.discovery.DiscoveryCallback;
-import ai.wanaku.capabilities.sdk.api.discovery.RegistrationManager;
-import ai.wanaku.capabilities.sdk.api.types.providers.ServiceTarget;
-import ai.wanaku.capabilities.sdk.common.exceptions.WanakuWebException;
import java.net.URI;
import java.nio.file.Path;
import java.util.HashMap;
@@ -12,6 +8,10 @@
import java.util.concurrent.CountDownLatch;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import ai.wanaku.capabilities.sdk.api.discovery.DiscoveryCallback;
+import ai.wanaku.capabilities.sdk.api.discovery.RegistrationManager;
+import ai.wanaku.capabilities.sdk.api.types.providers.ServiceTarget;
+import ai.wanaku.capabilities.sdk.common.exceptions.WanakuWebException;
public class ResourceDownloaderCallback implements DiscoveryCallback {
private static final Logger LOG = LoggerFactory.getLogger(ResourceDownloaderCallback.class);
diff --git a/src/main/java/ai/wanaku/code/engine/camel/downloader/TarBz2Downloader.java b/src/main/java/ai/wanaku/code/engine/camel/downloader/TarBz2Downloader.java
index 30b151c..8d60356 100644
--- a/src/main/java/ai/wanaku/code/engine/camel/downloader/TarBz2Downloader.java
+++ b/src/main/java/ai/wanaku/code/engine/camel/downloader/TarBz2Downloader.java
@@ -1,9 +1,5 @@
package ai.wanaku.code.engine.camel.downloader;
-import ai.wanaku.capabilities.sdk.api.types.DataStore;
-import ai.wanaku.capabilities.sdk.api.types.WanakuResponse;
-import ai.wanaku.capabilities.sdk.services.ServicesHttpClient;
-import ai.wanaku.code.engine.camel.util.ArchiveExtractor;
import java.io.ByteArrayInputStream;
import java.net.URI;
import java.nio.file.Files;
@@ -13,6 +9,10 @@
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import ai.wanaku.capabilities.sdk.api.types.DataStore;
+import ai.wanaku.capabilities.sdk.api.types.WanakuResponse;
+import ai.wanaku.capabilities.sdk.services.ServicesHttpClient;
+import ai.wanaku.code.engine.camel.util.ArchiveExtractor;
/**
* Downloads and extracts tar.bz2 archives from the Wanaku data store.
diff --git a/src/main/java/ai/wanaku/code/engine/camel/grpc/CodeExecutorService.java b/src/main/java/ai/wanaku/code/engine/camel/grpc/CodeExecutorService.java
index f4574c6..42c17d1 100644
--- a/src/main/java/ai/wanaku/code/engine/camel/grpc/CodeExecutorService.java
+++ b/src/main/java/ai/wanaku/code/engine/camel/grpc/CodeExecutorService.java
@@ -1,20 +1,22 @@
package ai.wanaku.code.engine.camel.grpc;
-import ai.wanaku.capabilities.sdk.services.ServicesHttpClient;
-import ai.wanaku.code.engine.camel.WanakuCamelManager;
-import ai.wanaku.core.exchange.CodeExecutionReply;
-import ai.wanaku.core.exchange.CodeExecutionRequest;
-import ai.wanaku.core.exchange.CodeExecutorGrpc;
-import ai.wanaku.core.exchange.ExecutionStatus;
-import ai.wanaku.core.exchange.OutputType;
-import io.grpc.stub.StreamObserver;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
+import java.time.Instant;
import org.apache.camel.CamelContext;
import org.apache.camel.ProducerTemplate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import io.grpc.stub.StreamObserver;
+import ai.wanaku.capabilities.sdk.services.ServicesHttpClient;
+import ai.wanaku.code.engine.camel.WanakuCamelManager;
+import ai.wanaku.core.exchange.v1.CodeExecutionReply;
+import ai.wanaku.core.exchange.v1.CodeExecutionRequest;
+import ai.wanaku.core.exchange.v1.CodeExecutorGrpc;
+import ai.wanaku.core.exchange.v1.ExecutionStatus;
+import ai.wanaku.core.exchange.v1.OutputType;
+import com.google.protobuf.Timestamp;
public class CodeExecutorService extends CodeExecutorGrpc.CodeExecutorImplBase {
private static final Logger LOG = LoggerFactory.getLogger(CodeExecutorService.class);
@@ -29,6 +31,14 @@ public CodeExecutorService(ServicesHttpClient servicesHttpClient, Path dataDir,
this.defaultRepositories = defaultRepositories;
}
+ private static Timestamp now() {
+ Instant instant = Instant.now();
+ return Timestamp.newBuilder()
+ .setSeconds(instant.getEpochSecond())
+ .setNanos(instant.getNano())
+ .build();
+ }
+
@Override
public void executeCode(CodeExecutionRequest request, StreamObserver responseObserver) {
LOG.info("Received code execution request for URI: {}", request.getUri());
@@ -41,14 +51,11 @@ public void executeCode(CodeExecutionRequest request, StreamObserver