Skip to content

Commit 9fa0dee

Browse files
feat: add A2A SDK dependencies and update comments for clarity in service interfaces
1 parent c24fa72 commit 9fa0dee

File tree

4 files changed

+48
-15
lines changed

4 files changed

+48
-15
lines changed

pom.xml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,7 @@
276276

277277
<mcp.version>0.10.0</mcp.version>
278278
<opentelemetry.version>1.38.0</opentelemetry.version>
279+
<a2a-sdk.version>0.2.5.Beta2</a2a-sdk.version>
279280

280281
<!-- CheckStyle Plugin -->
281282
<disable.checks>false</disable.checks>
@@ -352,6 +353,23 @@
352353
<type>pom</type>
353354
<scope>import</scope>
354355
</dependency>
356+
357+
<!-- A2A SDK Dependencies -->
358+
<dependency>
359+
<groupId>io.github.a2asdk</groupId>
360+
<artifactId>a2a-java-reference-server</artifactId>
361+
<version>${a2a-sdk.version}</version>
362+
</dependency>
363+
<dependency>
364+
<groupId>io.github.a2asdk</groupId>
365+
<artifactId>a2a-java-sdk-server-common</artifactId>
366+
<version>${a2a-sdk.version}</version>
367+
</dependency>
368+
<dependency>
369+
<groupId>io.github.a2asdk</groupId>
370+
<artifactId>a2a-java-sdk-client</artifactId>
371+
<version>${a2a-sdk.version}</version>
372+
</dependency>
355373
</dependencies>
356374
</dependencyManagement>
357375

spring-ai-alibaba-jmanus/src/main/java/com/alibaba/cloud/ai/manus/planning/service/IPlanParameterMappingService.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,14 @@
2323
import java.util.Map;
2424

2525
/**
26-
* Plan parameter mapping service interface providing functionality for handling parameter placeholders in plan templates
26+
* Plan parameter mapping service interface providing functionality for handling parameter
27+
* placeholders in plan templates
2728
*/
2829
public interface IPlanParameterMappingService {
2930

3031
/**
31-
* Validate whether all parameter placeholders in plan template can be found in raw parameters. Throws detailed exception information if validation fails
32+
* Validate whether all parameter placeholders in plan template can be found in raw
33+
* parameters. Throws detailed exception information if validation fails
3234
* @param planJson plan template JSON string
3335
* @param rawParams raw parameters dictionary
3436
* @return validation result containing list of missing parameters
@@ -55,7 +57,8 @@ ParameterValidationResult validateParameters(String planJson, Map<String, Object
5557
String replaceParametersInJson(String planJson, Map<String, Object> rawParams) throws ParameterValidationException;
5658

5759
/**
58-
* Validate parameter completeness before parameter replacement. Throws detailed exception information if validation fails
60+
* Validate parameter completeness before parameter replacement. Throws detailed
61+
* exception information if validation fails
5962
* @param planJson plan template JSON
6063
* @param rawParams raw parameters
6164
* @throws ParameterValidationException thrown when parameter validation fails
@@ -73,7 +76,8 @@ void validateParametersBeforeReplacement(String planJson, Map<String, Object> ra
7376
String replaceParametersSafely(String planJson, Map<String, Object> rawParams) throws ParameterValidationException;
7477

7578
/**
76-
* Get parameter requirements information for plan template to help users understand what parameters need to be provided
79+
* Get parameter requirements information for plan template to help users understand
80+
* what parameters need to be provided
7781
* @param planJson plan template JSON
7882
* @return parameter requirements information
7983
*/

spring-ai-alibaba-jmanus/src/main/java/com/alibaba/cloud/ai/manus/planning/service/PlanParameterMappingService.java

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,16 @@
2727
import java.util.regex.Pattern;
2828

2929
/**
30-
* Plan parameter mapping service implementation class providing specific implementation for handling parameter placeholders in plan templates
30+
* Plan parameter mapping service implementation class providing specific implementation
31+
* for handling parameter placeholders in plan templates
3132
*/
3233
@Service
3334
public class PlanParameterMappingService implements IPlanParameterMappingService {
3435

3536
private static final Logger logger = LoggerFactory.getLogger(PlanParameterMappingService.class);
3637

37-
// Parameter placeholder regex pattern: matches <<parameter_name>> format, supports all Unicode characters
38+
// Parameter placeholder regex pattern: matches <<parameter_name>> format, supports
39+
// all Unicode characters
3840
private static final Pattern PARAMETER_PATTERN = Pattern.compile("<<([^<>]+)>>");
3941

4042
// Parameter placeholder prefix and suffix
@@ -79,7 +81,8 @@ public ParameterValidationResult validateParameters(String planJson, Map<String,
7981
result.setMessage("All parameter validation passed, found " + foundParams.size() + " parameters");
8082
}
8183
else {
82-
result.setMessage("Missing parameters: " + String.join(", ", missingParams) + ", found " + foundParams.size() + " parameters");
84+
result.setMessage("Missing parameters: " + String.join(", ", missingParams) + ", found "
85+
+ foundParams.size() + " parameters");
8386
}
8487

8588
logger.info("Parameter validation result: {}", result.getMessage());
@@ -94,7 +97,8 @@ public ParameterValidationResult validateParameters(String planJson, Map<String,
9497
}
9598

9699
/**
97-
* Validate parameter completeness before parameter replacement. Throws detailed exception information if validation fails
100+
* Validate parameter completeness before parameter replacement. Throws detailed
101+
* exception information if validation fails
98102
* @param planJson plan template JSON
99103
* @param rawParams raw parameters
100104
* @throws ParameterValidationException thrown when parameter validation fails
@@ -132,7 +136,8 @@ public List<String> extractParameterPlaceholders(String planJson) {
132136

133137
Matcher matcher = PARAMETER_PATTERN.matcher(planJson);
134138
while (matcher.find()) {
135-
placeholders.add(matcher.group(1)); // Only return parameter name, not including <<>>
139+
placeholders.add(matcher.group(1)); // Only return parameter name, not
140+
// including <<>>
136141
}
137142

138143
logger.debug("Extracted {} parameter placeholders: {}", placeholders.size(), placeholders);
@@ -216,7 +221,8 @@ public String replaceParametersInJson(String planJson, Map<String, Object> rawPa
216221
}
217222

218223
/**
219-
* Check if parameter name is valid. Parameter names can only contain letters, numbers and underscores
224+
* Check if parameter name is valid. Parameter names can only contain letters, numbers
225+
* and underscores
220226
*/
221227
public static boolean isValidParameterName(String paramName) {
222228
if (paramName == null || paramName.trim().isEmpty()) {
@@ -236,7 +242,8 @@ public static String buildPlaceholder(String paramName) {
236242
}
237243

238244
/**
239-
* Get parameter requirements information for plan template to help users understand what parameters need to be provided
245+
* Get parameter requirements information for plan template to help users understand
246+
* what parameters need to be provided
240247
* @param planJson plan template JSON
241248
* @return parameter requirements information
242249
*/
@@ -269,7 +276,8 @@ public String getParameterRequirements(String planJson) {
269276

270277
private String buildDetailedErrorMessage(List<String> missingParams, List<String> foundParams, String planJson) {
271278
StringBuilder errorMessage = new StringBuilder();
272-
errorMessage.append("❌ Parameter validation failed! The plan template contains the following parameter placeholders, but the raw parameters did not provide or provided mismatched values:\n\n");
279+
errorMessage.append(
280+
"❌ Parameter validation failed! The plan template contains the following parameter placeholders, but the raw parameters did not provide or provided mismatched values:\n\n");
273281

274282
// List missing parameters with examples
275283
errorMessage.append("🔍 Missing parameters:\n");
@@ -289,7 +297,8 @@ private String buildDetailedErrorMessage(List<String> missingParams, List<String
289297
errorMessage.append(" 1. Check if parameter name spelling is correct\n");
290298
errorMessage.append(" 2. Ensure all required parameters are provided\n");
291299
errorMessage.append(" 3. Parameter names are case-sensitive\n");
292-
errorMessage.append(" 4. Parameter names can only contain letters, numbers and underscores, and cannot start with numbers\n\n");
300+
errorMessage.append(
301+
" 4. Parameter names can only contain letters, numbers and underscores, and cannot start with numbers\n\n");
293302

294303
errorMessage.append("📋 Plan template content:\n");
295304
errorMessage.append(planJson);

spring-ai-alibaba-jmanus/src/main/java/com/alibaba/cloud/ai/manus/runtime/service/IPlanIdDispatcher.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,10 @@
2121
public interface IPlanIdDispatcher {
2222

2323
// TODO: runtime needs to add new service for persisting runtime state
24-
// TODO: research the conversation service, it doesn't seem to integrate well with the original interaction
25-
// TODO: determine what needs to be persisted and what to persist to support stop functionality
24+
// TODO: research the conversation service, it doesn't seem to integrate well with the
25+
// original interaction
26+
// TODO: determine what needs to be persisted and what to persist to support stop
27+
// functionality
2628

2729
/**
2830
* Check if ID is a plan template ID

0 commit comments

Comments
 (0)