diff --git a/client/base/src/main/java/org/a2aproject/sdk/client/ClientTaskManager.java b/client/base/src/main/java/org/a2aproject/sdk/client/ClientTaskManager.java index 0a962eab7..1a393dc44 100644 --- a/client/base/src/main/java/org/a2aproject/sdk/client/ClientTaskManager.java +++ b/client/base/src/main/java/org/a2aproject/sdk/client/ClientTaskManager.java @@ -60,7 +60,7 @@ synchronized Task saveTaskEvent(TaskStatusUpdateEvent taskStatusUpdateEvent) thr Task task = currentTask; if (task == null) { task = Task.builder() - .status(new TaskStatus(TaskState.UNRECOGNIZED)) + .status(new TaskStatus(TaskState.TASK_STATE_UNSPECIFIED)) .id(taskId) .contextId(contextId == null ? "" : contextId) .build(); @@ -96,7 +96,7 @@ synchronized Task saveTaskEvent(TaskArtifactUpdateEvent taskArtifactUpdateEvent) Task task = currentTask; if (task == null) { task = Task.builder() - .status(new TaskStatus(TaskState.UNRECOGNIZED)) + .status(new TaskStatus(TaskState.TASK_STATE_UNSPECIFIED)) .id(taskId) .contextId(contextId == null ? "" : contextId) .build(); diff --git a/compat-0.3/server-conversion/src/main/java/org/a2aproject/sdk/compat03/conversion/mappers/domain/TaskStateMapper_v0_3.java b/compat-0.3/server-conversion/src/main/java/org/a2aproject/sdk/compat03/conversion/mappers/domain/TaskStateMapper_v0_3.java index 05f8b464d..82a5faf4b 100644 --- a/compat-0.3/server-conversion/src/main/java/org/a2aproject/sdk/compat03/conversion/mappers/domain/TaskStateMapper_v0_3.java +++ b/compat-0.3/server-conversion/src/main/java/org/a2aproject/sdk/compat03/conversion/mappers/domain/TaskStateMapper_v0_3.java @@ -15,12 +15,12 @@ *
  • v1.0: {@code TASK_STATE_SUBMITTED, TASK_STATE_WORKING, ...}
  • * *

    - * Additionally, the {@code UNKNOWN} state in v0.3 maps to {@code UNRECOGNIZED} in v1.0. + * Additionally, the {@code UNKNOWN} state in v0.3 maps to {@code TASK_STATE_UNSPECIFIED} in v1.0. *

    * This mapper uses manual switch statements instead of {@code @ValueMapping} to: *

    * @@ -50,8 +50,8 @@ public interface TaskStateMapper_v0_3 { * CANCELED → TASK_STATE_CANCELED * FAILED → TASK_STATE_FAILED * REJECTED → TASK_STATE_REJECTED - * UNKNOWN → UNRECOGNIZED - * null → UNRECOGNIZED + * UNKNOWN → TASK_STATE_UNSPECIFIED + * null → TASK_STATE_UNSPECIFIED * * * @param v03 the v0.3 task state (may be null) @@ -59,7 +59,7 @@ public interface TaskStateMapper_v0_3 { */ default TaskState toV10(TaskState_v0_3 v03) { if (v03 == null) { - return TaskState.UNRECOGNIZED; + return TaskState.TASK_STATE_UNSPECIFIED; } return switch (v03) { case SUBMITTED -> TaskState.TASK_STATE_SUBMITTED; @@ -70,7 +70,7 @@ default TaskState toV10(TaskState_v0_3 v03) { case CANCELED -> TaskState.TASK_STATE_CANCELED; case FAILED -> TaskState.TASK_STATE_FAILED; case REJECTED -> TaskState.TASK_STATE_REJECTED; - case UNKNOWN -> TaskState.UNRECOGNIZED; + case UNKNOWN -> TaskState.TASK_STATE_UNSPECIFIED; }; } @@ -89,7 +89,7 @@ default TaskState toV10(TaskState_v0_3 v03) { * TASK_STATE_CANCELED → CANCELED * TASK_STATE_FAILED → FAILED * TASK_STATE_REJECTED → REJECTED - * UNRECOGNIZED → UNKNOWN + * TASK_STATE_UNSPECIFIED → UNKNOWN * null → UNKNOWN * * @@ -109,7 +109,7 @@ default TaskState_v0_3 fromV10(TaskState v10) { case TASK_STATE_CANCELED -> TaskState_v0_3.CANCELED; case TASK_STATE_FAILED -> TaskState_v0_3.FAILED; case TASK_STATE_REJECTED -> TaskState_v0_3.REJECTED; - case UNRECOGNIZED -> TaskState_v0_3.UNKNOWN; + case TASK_STATE_UNSPECIFIED -> TaskState_v0_3.UNKNOWN; }; } } diff --git a/spec-grpc/src/main/java/org/a2aproject/sdk/grpc/mapper/A2ACommonFieldMapper.java b/spec-grpc/src/main/java/org/a2aproject/sdk/grpc/mapper/A2ACommonFieldMapper.java index 7a5c277da..d2170d9c1 100644 --- a/spec-grpc/src/main/java/org/a2aproject/sdk/grpc/mapper/A2ACommonFieldMapper.java +++ b/spec-grpc/src/main/java/org/a2aproject/sdk/grpc/mapper/A2ACommonFieldMapper.java @@ -445,7 +445,7 @@ default org.a2aproject.sdk.spec.TaskState taskStateOrNull(org.a2aproject.sdk.grp // Reject invalid enum values (e.g., "INVALID_STATUS" from JSON) if (state == org.a2aproject.sdk.grpc.TaskState.UNRECOGNIZED) { String validStates = java.util.Arrays.stream(org.a2aproject.sdk.spec.TaskState.values()) - .filter(s -> s != org.a2aproject.sdk.spec.TaskState.UNRECOGNIZED) + .filter(s -> s != org.a2aproject.sdk.spec.TaskState.TASK_STATE_UNSPECIFIED) .map(Enum::name) .collect(java.util.stream.Collectors.joining(", ")); throw new InvalidParamsError(null, diff --git a/spec-grpc/src/main/java/org/a2aproject/sdk/grpc/mapper/TaskStateMapper.java b/spec-grpc/src/main/java/org/a2aproject/sdk/grpc/mapper/TaskStateMapper.java index a8507afb5..cf9c071ad 100644 --- a/spec-grpc/src/main/java/org/a2aproject/sdk/grpc/mapper/TaskStateMapper.java +++ b/spec-grpc/src/main/java/org/a2aproject/sdk/grpc/mapper/TaskStateMapper.java @@ -38,7 +38,7 @@ default org.a2aproject.sdk.grpc.TaskState toProto(org.a2aproject.sdk.spec.TaskSt case TASK_STATE_CANCELED -> org.a2aproject.sdk.grpc.TaskState.TASK_STATE_CANCELED; case TASK_STATE_FAILED -> org.a2aproject.sdk.grpc.TaskState.TASK_STATE_FAILED; case TASK_STATE_REJECTED -> org.a2aproject.sdk.grpc.TaskState.TASK_STATE_REJECTED; - case UNRECOGNIZED -> org.a2aproject.sdk.grpc.TaskState.UNRECOGNIZED; + case TASK_STATE_UNSPECIFIED -> org.a2aproject.sdk.grpc.TaskState.TASK_STATE_UNSPECIFIED; }; } @@ -46,11 +46,11 @@ default org.a2aproject.sdk.grpc.TaskState toProto(org.a2aproject.sdk.spec.TaskSt * Converts proto TaskState to domain TaskState. * * @param proto the proto task state - * @return the domain task state, or UNKNOWN if input is null or unrecognized + * @return the domain task state, or TASK_STATE_UNSPECIFIED if input is null or unrecognized */ default org.a2aproject.sdk.spec.TaskState fromProto(org.a2aproject.sdk.grpc.TaskState proto) { if (proto == null) { - return org.a2aproject.sdk.spec.TaskState.UNRECOGNIZED; + return org.a2aproject.sdk.spec.TaskState.TASK_STATE_UNSPECIFIED; } return switch (proto) { @@ -62,7 +62,7 @@ default org.a2aproject.sdk.spec.TaskState fromProto(org.a2aproject.sdk.grpc.Task case TASK_STATE_CANCELED -> org.a2aproject.sdk.spec.TaskState.TASK_STATE_CANCELED; case TASK_STATE_FAILED -> org.a2aproject.sdk.spec.TaskState.TASK_STATE_FAILED; case TASK_STATE_REJECTED -> org.a2aproject.sdk.spec.TaskState.TASK_STATE_REJECTED; - case TASK_STATE_UNSPECIFIED, UNRECOGNIZED -> org.a2aproject.sdk.spec.TaskState.UNRECOGNIZED; + case TASK_STATE_UNSPECIFIED, UNRECOGNIZED -> org.a2aproject.sdk.spec.TaskState.TASK_STATE_UNSPECIFIED; }; } } diff --git a/spec/src/main/java/org/a2aproject/sdk/spec/TaskState.java b/spec/src/main/java/org/a2aproject/sdk/spec/TaskState.java index 2044581b1..a9a243464 100644 --- a/spec/src/main/java/org/a2aproject/sdk/spec/TaskState.java +++ b/spec/src/main/java/org/a2aproject/sdk/spec/TaskState.java @@ -27,7 +27,7 @@ *
  • TASK_STATE_CANCELED: Task was explicitly canceled by the user or system
  • *
  • TASK_STATE_FAILED: Task failed due to an error during execution
  • *
  • TASK_STATE_REJECTED: Task was rejected by the agent (e.g., invalid request, policy violation)
  • - *
  • UNRECOGNIZED: Task state cannot be determined (error recovery state)
  • + *
  • TASK_STATE_UNSPECIFIED: Task state cannot be determined (error recovery state)
  • * *

    * The {@link #isFinal()} method can be used to determine if a state is terminal, which is @@ -64,7 +64,7 @@ public enum TaskState { TASK_STATE_REJECTED(true, false), /** Task state is unknown or cannot be determined (terminal state). */ - UNRECOGNIZED(true, false); + TASK_STATE_UNSPECIFIED(false, false); private final boolean isFinal; private final boolean isInterrupted; @@ -81,7 +81,7 @@ public enum TaskState { * not transition to any other state. This is used by the event queue system * to determine when to close queues and by clients to know when to stop polling. *

    - * Terminal states: COMPLETED, FAILED, CANCELED, REJECTED, UNRECOGNIZED. + * Terminal states: TASK_STATE_COMPLETED, TASK_STATE_FAILED, TASK_STATE_CANCELED, TASK_STATE_REJECTED, TASK_STATE_UNSPECIFIED. * * @return {@code true} if this is a terminal state, {@code false} else. */