Skip to content

Commit 7fb9d97

Browse files
committed
1652 Refactor ToolFunction and introduce BaseToolFunction for clearer abstraction and improved code organization.
1 parent 6a16297 commit 7fb9d97

File tree

6 files changed

+27
-27
lines changed

6 files changed

+27
-27
lines changed

sdks/backend/java/component-api/src/main/java/com/bytechef/component/definition/ComponentDsl.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,15 @@
1616

1717
package com.bytechef.component.definition;
1818

19-
import static com.bytechef.component.definition.ai.agent.ToolFunction.TOOLS;
19+
import static com.bytechef.component.definition.ai.agent.BaseToolFunction.TOOLS;
2020

2121
import com.bytechef.component.definition.ActionDefinition.PerformFunction;
2222
import com.bytechef.component.definition.Authorization.AuthorizationType;
2323
import com.bytechef.component.definition.OptionsDataSource.BaseOptionsFunction;
2424
import com.bytechef.component.definition.Property.ObjectProperty;
2525
import com.bytechef.component.definition.Property.ValueProperty;
2626
import com.bytechef.component.definition.TriggerDefinition.PropertiesFunction;
27-
import com.bytechef.component.definition.ai.agent.SingleConnectionToolFunction;
27+
import com.bytechef.component.definition.ai.agent.ToolFunction;
2828
import com.bytechef.component.definition.unified.base.adapter.ProviderModelAdapter;
2929
import com.bytechef.component.definition.unified.base.mapper.ProviderModelMapper;
3030
import com.bytechef.definition.BaseOutputDefinition.OutputSchema;
@@ -241,7 +241,7 @@ public static ModifiableTimeProperty time(String name) {
241241
return new ModifiableTimeProperty(name);
242242
}
243243

244-
public static ModifiableClusterElementDefinition<SingleConnectionToolFunction> tool(
244+
public static ModifiableClusterElementDefinition<ToolFunction> tool(
245245
ActionDefinition actionDefinition) {
246246

247247
Optional<String> title = actionDefinition.getTitle();
@@ -252,7 +252,7 @@ public static ModifiableClusterElementDefinition<SingleConnectionToolFunction> t
252252
.map(f -> (PerformFunction) f)
253253
.orElse((inputParameters, connectionParameters, context) -> null);
254254

255-
return ComponentDsl.<SingleConnectionToolFunction>clusterElement(actionDefinition.getName())
255+
return ComponentDsl.<ToolFunction>clusterElement(actionDefinition.getName())
256256
.title(title.orElse(null))
257257
.description(description.orElse(null))
258258
.type(TOOLS)

sdks/backend/java/component-api/src/main/java/com/bytechef/component/definition/ai/agent/SingleConnectionToolFunction.java renamed to sdks/backend/java/component-api/src/main/java/com/bytechef/component/definition/ai/agent/BaseToolFunction.java

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,12 @@
1616

1717
package com.bytechef.component.definition.ai.agent;
1818

19-
import com.bytechef.component.definition.ClusterElementContext;
20-
import com.bytechef.component.definition.Parameters;
19+
import com.bytechef.component.definition.ClusterElementDefinition.ClusterElementType;
2120

2221
/**
2322
* @author Ivica Cardic
2423
*/
25-
@FunctionalInterface
26-
public interface SingleConnectionToolFunction extends ToolFunction {
24+
public interface BaseToolFunction {
2725

28-
/**
29-
*
30-
* @param inputParameters
31-
* @param connectionParameters
32-
* @param context
33-
* @return
34-
*/
35-
Object apply(Parameters inputParameters, Parameters connectionParameters, ClusterElementContext context)
36-
throws Exception;
26+
ClusterElementType TOOLS = new ClusterElementType("TOOLS", "tools", "Tools", true, false);
3727
}

sdks/backend/java/component-api/src/main/java/com/bytechef/component/definition/ai/agent/ToolFunction.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,22 @@
1616

1717
package com.bytechef.component.definition.ai.agent;
1818

19-
import com.bytechef.component.definition.ClusterElementDefinition.ClusterElementType;
19+
import com.bytechef.component.definition.ClusterElementContext;
20+
import com.bytechef.component.definition.Parameters;
2021

2122
/**
2223
* @author Ivica Cardic
2324
*/
24-
public interface ToolFunction {
25+
@FunctionalInterface
26+
public interface ToolFunction extends BaseToolFunction {
2527

26-
ClusterElementType TOOLS = new ClusterElementType("TOOLS", "tools", "Tools", true, false);
28+
/**
29+
*
30+
* @param inputParameters
31+
* @param connectionParameters
32+
* @param context
33+
* @return
34+
*/
35+
Object apply(Parameters inputParameters, Parameters connectionParameters, ClusterElementContext context)
36+
throws Exception;
2737
}

server/ee/libs/embedded/embedded-execution/embedded-execution-service/src/main/java/com/bytechef/ee/embedded/execution/facade/ToolFacadeImpl.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
import com.bytechef.commons.util.CollectionUtils;
1111
import com.bytechef.component.definition.ComponentCategory;
12-
import com.bytechef.component.definition.ai.agent.ToolFunction;
12+
import com.bytechef.component.definition.ai.agent.BaseToolFunction;
1313
import com.bytechef.ee.embedded.configuration.domain.Integration;
1414
import com.bytechef.ee.embedded.configuration.domain.IntegrationInstance;
1515
import com.bytechef.ee.embedded.configuration.domain.IntegrationInstanceConfiguration;
@@ -74,7 +74,7 @@ public ToolFacadeImpl(
7474

7575
@Override
7676
public List<ToolDTO> getTools() {
77-
return clusterElementDefinitionService.getClusterElementDefinitions(ToolFunction.TOOLS)
77+
return clusterElementDefinitionService.getClusterElementDefinitions(BaseToolFunction.TOOLS)
7878
.stream()
7979
.map(clusterElementDefinition -> new ToolDTO(
8080
getToolName(
@@ -111,7 +111,7 @@ public Map<String, List<ToolDTO>> getTools(
111111
.filter(componentDefinition -> filterByCategoryNames(categoryNames, componentDefinition))
112112
.flatMap(componentDefinition -> CollectionUtils.stream(
113113
clusterElementDefinitionService.getClusterElementDefinitions(
114-
componentDefinition.getName(), componentDefinition.getVersion(), ToolFunction.TOOLS)))
114+
componentDefinition.getName(), componentDefinition.getVersion(), BaseToolFunction.TOOLS)))
115115
.filter(clusterElementDefinition -> filterByClusterElementNames(
116116
clusterElementNames, clusterElementDefinition))
117117
.collect(

server/libs/platform/platform-component/platform-component-api/src/main/java/com/bytechef/platform/component/definition/ai/agent/MultipleConnectionsToolFunction.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,15 @@
1818

1919
import com.bytechef.component.definition.ClusterElementContext;
2020
import com.bytechef.component.definition.Parameters;
21-
import com.bytechef.component.definition.ai.agent.ToolFunction;
21+
import com.bytechef.component.definition.ai.agent.BaseToolFunction;
2222
import com.bytechef.platform.component.ComponentConnection;
2323
import java.util.Map;
2424

2525
/**
2626
* @author Ivica Cardic
2727
*/
2828
@FunctionalInterface
29-
public interface MultipleConnectionsToolFunction extends ToolFunction {
29+
public interface MultipleConnectionsToolFunction extends BaseToolFunction {
3030

3131
/**
3232
* @param inputParameters

server/libs/platform/platform-component/platform-component-service/src/main/java/com/bytechef/platform/component/service/ClusterElementDefinitionServiceImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
import com.bytechef.component.definition.Parameters;
3131
import com.bytechef.component.definition.PropertiesDataSource;
3232
import com.bytechef.component.definition.Property.DynamicPropertiesProperty;
33-
import com.bytechef.component.definition.ai.agent.SingleConnectionToolFunction;
33+
import com.bytechef.component.definition.ai.agent.ToolFunction;
3434
import com.bytechef.component.exception.ProviderException;
3535
import com.bytechef.exception.ConfigurationException;
3636
import com.bytechef.exception.ExecutionException;
@@ -354,7 +354,7 @@ private Object executeTool(
354354
String componentName, Integer componentVersion, String clusterElementName, Map<String, ?> inputParameters,
355355
@Nullable ComponentConnection componentConnection, ClusterElementContext context) {
356356

357-
SingleConnectionToolFunction toolFunction = getClusterElement(
357+
ToolFunction toolFunction = getClusterElement(
358358
componentName, componentVersion, clusterElementName);
359359

360360
try {

0 commit comments

Comments
 (0)