From d07b321db3e13db6e5624a544d8ecfcc232ceddc Mon Sep 17 00:00:00 2001 From: "ark-hand[bot]" Date: Fri, 9 Oct 2026 03:08:13 +0000 Subject: [PATCH] chore: sync from ark-apis f3c299ab7a Auto-generated SDK sync from ark-apis at f3c299ab7a. Generated files are overwritten by the sync pipeline and should not be edited by hand. Sync-Source-Commit: 36d8e15468bc3fd86f2aaabf99b6c9209c2b8131 Ark-APIs-Commit: f3c299ab7a Release-Version: 0.10.0 --- README.md | 4 +- VERSION | 2 +- pom.xml | 2 +- .../ContentBlockStartContentBlock.java | 1 + .../ContentBlockStartContentBlockType.java | 4 ++ .../MessagesResponseContentBlockDelta.java | 1 + ...MessagesResponseContentBlockDeltaType.java | 4 ++ .../messages/MessagesResponseContentPart.java | 1 + .../MessagesResponseContentPartType.java | 4 ++ .../models/messages/MessagesStreamEvent.java | 1 + .../messages/MessagesStreamEventType.java | 4 ++ .../UnknownContentBlockStartContentBlock.java | 52 ++++++++++++++++++ ...nownMessagesResponseContentBlockDelta.java | 52 ++++++++++++++++++ .../UnknownMessagesResponseContentPart.java | 52 ++++++++++++++++++ .../messages/UnknownMessagesStreamEvent.java | 52 ++++++++++++++++++ .../runtime/models/responses/Annotation.java | 1 + .../models/responses/AnnotationType.java | 4 ++ .../runtime/models/responses/AppliedEdit.java | 1 + .../models/responses/AppliedEditType.java | 4 ++ .../runtime/models/responses/ContentItem.java | 1 + .../models/responses/ContentItemType.java | 4 ++ .../models/responses/DoubaoAppCallBlock.java | 1 + .../responses/DoubaoAppCallBlockType.java | 4 ++ .../runtime/models/responses/InputItem.java | 1 + .../runtime/models/responses/ItemType.java | 4 ++ .../models/responses/OutputContentItem.java | 1 + .../runtime/models/responses/OutputItem.java | 1 + .../models/responses/ResponseStreamEvent.java | 1 + .../responses/ResponseStreamEventType.java | 4 ++ .../ark/runtime/models/responses/Tool.java | 1 + .../runtime/models/responses/ToolType.java | 4 ++ .../models/responses/TypedToolChoice.java | 1 + .../models/responses/TypedToolChoiceType.java | 4 ++ .../models/responses/UnknownAnnotation.java | 52 ++++++++++++++++++ .../models/responses/UnknownAppliedEdit.java | 52 ++++++++++++++++++ .../models/responses/UnknownContentItem.java | 52 ++++++++++++++++++ .../responses/UnknownDoubaoAppCallBlock.java | 52 ++++++++++++++++++ .../models/responses/UnknownInputItem.java | 52 ++++++++++++++++++ .../responses/UnknownOutputContentItem.java | 52 ++++++++++++++++++ .../models/responses/UnknownOutputItem.java | 52 ++++++++++++++++++ .../responses/UnknownResponseStreamEvent.java | 52 ++++++++++++++++++ .../runtime/models/responses/UnknownTool.java | 52 ++++++++++++++++++ .../responses/UnknownTypedToolChoice.java | 52 ++++++++++++++++++ .../ark/runtime/service/ArkService.java | 1 + .../ark/runtime/utils/JacksonUtil.java | 1 + .../ark/runtime/utils/UnknownVariant.java | 14 +++++ .../runtime/utils/UnknownVariantFallback.java | 15 +++++ .../runtime/utils/UnknownVariantHandler.java | 26 +++++++++ .../runtime/utils/UnknownVariantSupport.java | 55 +++++++++++++++++++ 49 files changed, 906 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/volcengine/ark/runtime/models/messages/UnknownContentBlockStartContentBlock.java create mode 100644 src/main/java/com/volcengine/ark/runtime/models/messages/UnknownMessagesResponseContentBlockDelta.java create mode 100644 src/main/java/com/volcengine/ark/runtime/models/messages/UnknownMessagesResponseContentPart.java create mode 100644 src/main/java/com/volcengine/ark/runtime/models/messages/UnknownMessagesStreamEvent.java create mode 100644 src/main/java/com/volcengine/ark/runtime/models/responses/UnknownAnnotation.java create mode 100644 src/main/java/com/volcengine/ark/runtime/models/responses/UnknownAppliedEdit.java create mode 100644 src/main/java/com/volcengine/ark/runtime/models/responses/UnknownContentItem.java create mode 100644 src/main/java/com/volcengine/ark/runtime/models/responses/UnknownDoubaoAppCallBlock.java create mode 100644 src/main/java/com/volcengine/ark/runtime/models/responses/UnknownInputItem.java create mode 100644 src/main/java/com/volcengine/ark/runtime/models/responses/UnknownOutputContentItem.java create mode 100644 src/main/java/com/volcengine/ark/runtime/models/responses/UnknownOutputItem.java create mode 100644 src/main/java/com/volcengine/ark/runtime/models/responses/UnknownResponseStreamEvent.java create mode 100644 src/main/java/com/volcengine/ark/runtime/models/responses/UnknownTool.java create mode 100644 src/main/java/com/volcengine/ark/runtime/models/responses/UnknownTypedToolChoice.java create mode 100644 src/main/java/com/volcengine/ark/runtime/utils/UnknownVariant.java create mode 100644 src/main/java/com/volcengine/ark/runtime/utils/UnknownVariantFallback.java create mode 100644 src/main/java/com/volcengine/ark/runtime/utils/UnknownVariantHandler.java create mode 100644 src/main/java/com/volcengine/ark/runtime/utils/UnknownVariantSupport.java diff --git a/README.md b/README.md index 3101716..0d01b7d 100644 --- a/README.md +++ b/README.md @@ -10,14 +10,14 @@ The official Java library for accessing ModelArk on Volcengine and BytePlus. It com.volcengine ark-runtime - 0.9.0 + 0.10.0 ``` ### Gradle ```groovy -implementation 'com.volcengine:ark-runtime:0.9.0' +implementation 'com.volcengine:ark-runtime:0.10.0' ``` ## Choose Volcengine or BytePlus diff --git a/VERSION b/VERSION index ac39a10..78bc1ab 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.9.0 +0.10.0 diff --git a/pom.xml b/pom.xml index 9de00b4..4191c9c 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.volcengine ark-runtime - 0.9.0 + 0.10.0 jar ark-runtime diff --git a/src/main/java/com/volcengine/ark/runtime/models/messages/ContentBlockStartContentBlock.java b/src/main/java/com/volcengine/ark/runtime/models/messages/ContentBlockStartContentBlock.java index c847344..e1ef306 100644 --- a/src/main/java/com/volcengine/ark/runtime/models/messages/ContentBlockStartContentBlock.java +++ b/src/main/java/com/volcengine/ark/runtime/models/messages/ContentBlockStartContentBlock.java @@ -29,6 +29,7 @@ @JsonSubTypes.Type(value = ContentBlockStartContentBlockWebSearchToolResult.class, name = "web_search_tool_result"), }) +@com.volcengine.ark.runtime.utils.UnknownVariantFallback(UnknownContentBlockStartContentBlock.class) public interface ContentBlockStartContentBlock { public ContentBlockStartContentBlockType getType(); } diff --git a/src/main/java/com/volcengine/ark/runtime/models/messages/ContentBlockStartContentBlockType.java b/src/main/java/com/volcengine/ark/runtime/models/messages/ContentBlockStartContentBlockType.java index 3c533be..bbef5d0 100644 --- a/src/main/java/com/volcengine/ark/runtime/models/messages/ContentBlockStartContentBlockType.java +++ b/src/main/java/com/volcengine/ark/runtime/models/messages/ContentBlockStartContentBlockType.java @@ -25,6 +25,9 @@ */ public enum ContentBlockStartContentBlockType { + // SDK-only sentinel; original unknown wire value lives on UnknownVariant. + UNKNOWN("__ark_unknown_variant__"), + SERVER_TOOL_USE("server_tool_use"), TEXT("text"), @@ -54,6 +57,7 @@ public String toString() { @JsonCreator public static ContentBlockStartContentBlockType fromValue(String value) { for (ContentBlockStartContentBlockType b : ContentBlockStartContentBlockType.values()) { + if (b == UNKNOWN) continue; if (b.value.equalsIgnoreCase(value)) { return b; } diff --git a/src/main/java/com/volcengine/ark/runtime/models/messages/MessagesResponseContentBlockDelta.java b/src/main/java/com/volcengine/ark/runtime/models/messages/MessagesResponseContentBlockDelta.java index c68cc96..a2e4d00 100644 --- a/src/main/java/com/volcengine/ark/runtime/models/messages/MessagesResponseContentBlockDelta.java +++ b/src/main/java/com/volcengine/ark/runtime/models/messages/MessagesResponseContentBlockDelta.java @@ -28,6 +28,7 @@ @JsonSubTypes.Type(value = MessagesResponseContentBlockDeltaThinking.class, name = "thinking_delta"), }) +@com.volcengine.ark.runtime.utils.UnknownVariantFallback(UnknownMessagesResponseContentBlockDelta.class) public interface MessagesResponseContentBlockDelta { public MessagesResponseContentBlockDeltaType getType(); } diff --git a/src/main/java/com/volcengine/ark/runtime/models/messages/MessagesResponseContentBlockDeltaType.java b/src/main/java/com/volcengine/ark/runtime/models/messages/MessagesResponseContentBlockDeltaType.java index 50ad6ef..6b4f119 100644 --- a/src/main/java/com/volcengine/ark/runtime/models/messages/MessagesResponseContentBlockDeltaType.java +++ b/src/main/java/com/volcengine/ark/runtime/models/messages/MessagesResponseContentBlockDeltaType.java @@ -25,6 +25,9 @@ */ public enum MessagesResponseContentBlockDeltaType { + // SDK-only sentinel; original unknown wire value lives on UnknownVariant. + UNKNOWN("__ark_unknown_variant__"), + INPUT_JSON_DELTA("input_json_delta"), SIGNATURE_DELTA("signature_delta"), @@ -52,6 +55,7 @@ public String toString() { @JsonCreator public static MessagesResponseContentBlockDeltaType fromValue(String value) { for (MessagesResponseContentBlockDeltaType b : MessagesResponseContentBlockDeltaType.values()) { + if (b == UNKNOWN) continue; if (b.value.equalsIgnoreCase(value)) { return b; } diff --git a/src/main/java/com/volcengine/ark/runtime/models/messages/MessagesResponseContentPart.java b/src/main/java/com/volcengine/ark/runtime/models/messages/MessagesResponseContentPart.java index de9b704..0b83ce6 100644 --- a/src/main/java/com/volcengine/ark/runtime/models/messages/MessagesResponseContentPart.java +++ b/src/main/java/com/volcengine/ark/runtime/models/messages/MessagesResponseContentPart.java @@ -29,6 +29,7 @@ @JsonSubTypes.Type(value = MessagesResponseContentPartWebSearchToolResult.class, name = "web_search_tool_result"), }) +@com.volcengine.ark.runtime.utils.UnknownVariantFallback(UnknownMessagesResponseContentPart.class) public interface MessagesResponseContentPart { public MessagesResponseContentPartType getType(); } diff --git a/src/main/java/com/volcengine/ark/runtime/models/messages/MessagesResponseContentPartType.java b/src/main/java/com/volcengine/ark/runtime/models/messages/MessagesResponseContentPartType.java index e595e6f..e480820 100644 --- a/src/main/java/com/volcengine/ark/runtime/models/messages/MessagesResponseContentPartType.java +++ b/src/main/java/com/volcengine/ark/runtime/models/messages/MessagesResponseContentPartType.java @@ -25,6 +25,9 @@ */ public enum MessagesResponseContentPartType { + // SDK-only sentinel; original unknown wire value lives on UnknownVariant. + UNKNOWN("__ark_unknown_variant__"), + SERVER_TOOL_USE("server_tool_use"), TEXT("text"), @@ -54,6 +57,7 @@ public String toString() { @JsonCreator public static MessagesResponseContentPartType fromValue(String value) { for (MessagesResponseContentPartType b : MessagesResponseContentPartType.values()) { + if (b == UNKNOWN) continue; if (b.value.equalsIgnoreCase(value)) { return b; } diff --git a/src/main/java/com/volcengine/ark/runtime/models/messages/MessagesStreamEvent.java b/src/main/java/com/volcengine/ark/runtime/models/messages/MessagesStreamEvent.java index 9cc9e0d..1bbd97a 100644 --- a/src/main/java/com/volcengine/ark/runtime/models/messages/MessagesStreamEvent.java +++ b/src/main/java/com/volcengine/ark/runtime/models/messages/MessagesStreamEvent.java @@ -31,6 +31,7 @@ @JsonSubTypes.Type(value = MessagesResponseStreamMessageStop.class, name = "message_stop"), }) +@com.volcengine.ark.runtime.utils.UnknownVariantFallback(UnknownMessagesStreamEvent.class) public interface MessagesStreamEvent { public MessagesStreamEventType getType(); } diff --git a/src/main/java/com/volcengine/ark/runtime/models/messages/MessagesStreamEventType.java b/src/main/java/com/volcengine/ark/runtime/models/messages/MessagesStreamEventType.java index ce75e50..355d990 100644 --- a/src/main/java/com/volcengine/ark/runtime/models/messages/MessagesStreamEventType.java +++ b/src/main/java/com/volcengine/ark/runtime/models/messages/MessagesStreamEventType.java @@ -25,6 +25,9 @@ */ public enum MessagesStreamEventType { + // SDK-only sentinel; original unknown wire value lives on UnknownVariant. + UNKNOWN("__ark_unknown_variant__"), + CONTENT_BLOCK_DELTA("content_block_delta"), CONTENT_BLOCK_START("content_block_start"), @@ -58,6 +61,7 @@ public String toString() { @JsonCreator public static MessagesStreamEventType fromValue(String value) { for (MessagesStreamEventType b : MessagesStreamEventType.values()) { + if (b == UNKNOWN) continue; if (b.value.equalsIgnoreCase(value)) { return b; } diff --git a/src/main/java/com/volcengine/ark/runtime/models/messages/UnknownContentBlockStartContentBlock.java b/src/main/java/com/volcengine/ark/runtime/models/messages/UnknownContentBlockStartContentBlock.java new file mode 100644 index 0000000..e3ac7ab --- /dev/null +++ b/src/main/java/com/volcengine/ark/runtime/models/messages/UnknownContentBlockStartContentBlock.java @@ -0,0 +1,52 @@ +// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates. +// SPDX-License-Identifier: Apache-2.0 + +/* + * Ark Messages API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.volcengine.ark.runtime.models.messages; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.volcengine.ark.runtime.utils.UnknownVariantSupport; +import java.io.IOException; + +/** Generated by ark-apis unknown_response_variants; retained future ContentBlockStartContentBlock payload. */ +@JsonTypeInfo(use = JsonTypeInfo.Id.NONE) +@JsonDeserialize(using = UnknownContentBlockStartContentBlock.Deserializer.class) +@JsonSerialize(using = UnknownVariantSupport.Serializer.class) +public final class UnknownContentBlockStartContentBlock extends UnknownVariantSupport implements ContentBlockStartContentBlock { + public UnknownContentBlockStartContentBlock(JsonNode rawJson) { + super("type", rawJson); + } + + @Override + public ContentBlockStartContentBlockType getType() { + return ContentBlockStartContentBlockType.UNKNOWN; + } + + public static final class Deserializer extends JsonDeserializer { + @Override + public UnknownContentBlockStartContentBlock deserialize(JsonParser parser, DeserializationContext context) throws IOException { + JsonNode node = parser.getCodec().readTree(parser); + if (!UnknownVariantSupport.hasDiscriminator(node, "type")) { + return (UnknownContentBlockStartContentBlock) context.handleUnexpectedToken(UnknownContentBlockStartContentBlock.class, parser); + } + return new UnknownContentBlockStartContentBlock(node); + } + } +} diff --git a/src/main/java/com/volcengine/ark/runtime/models/messages/UnknownMessagesResponseContentBlockDelta.java b/src/main/java/com/volcengine/ark/runtime/models/messages/UnknownMessagesResponseContentBlockDelta.java new file mode 100644 index 0000000..c2a30fc --- /dev/null +++ b/src/main/java/com/volcengine/ark/runtime/models/messages/UnknownMessagesResponseContentBlockDelta.java @@ -0,0 +1,52 @@ +// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates. +// SPDX-License-Identifier: Apache-2.0 + +/* + * Ark Messages API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.volcengine.ark.runtime.models.messages; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.volcengine.ark.runtime.utils.UnknownVariantSupport; +import java.io.IOException; + +/** Generated by ark-apis unknown_response_variants; retained future MessagesResponseContentBlockDelta payload. */ +@JsonTypeInfo(use = JsonTypeInfo.Id.NONE) +@JsonDeserialize(using = UnknownMessagesResponseContentBlockDelta.Deserializer.class) +@JsonSerialize(using = UnknownVariantSupport.Serializer.class) +public final class UnknownMessagesResponseContentBlockDelta extends UnknownVariantSupport implements MessagesResponseContentBlockDelta { + public UnknownMessagesResponseContentBlockDelta(JsonNode rawJson) { + super("type", rawJson); + } + + @Override + public MessagesResponseContentBlockDeltaType getType() { + return MessagesResponseContentBlockDeltaType.UNKNOWN; + } + + public static final class Deserializer extends JsonDeserializer { + @Override + public UnknownMessagesResponseContentBlockDelta deserialize(JsonParser parser, DeserializationContext context) throws IOException { + JsonNode node = parser.getCodec().readTree(parser); + if (!UnknownVariantSupport.hasDiscriminator(node, "type")) { + return (UnknownMessagesResponseContentBlockDelta) context.handleUnexpectedToken(UnknownMessagesResponseContentBlockDelta.class, parser); + } + return new UnknownMessagesResponseContentBlockDelta(node); + } + } +} diff --git a/src/main/java/com/volcengine/ark/runtime/models/messages/UnknownMessagesResponseContentPart.java b/src/main/java/com/volcengine/ark/runtime/models/messages/UnknownMessagesResponseContentPart.java new file mode 100644 index 0000000..9be8487 --- /dev/null +++ b/src/main/java/com/volcengine/ark/runtime/models/messages/UnknownMessagesResponseContentPart.java @@ -0,0 +1,52 @@ +// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates. +// SPDX-License-Identifier: Apache-2.0 + +/* + * Ark Messages API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.volcengine.ark.runtime.models.messages; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.volcengine.ark.runtime.utils.UnknownVariantSupport; +import java.io.IOException; + +/** Generated by ark-apis unknown_response_variants; retained future MessagesResponseContentPart payload. */ +@JsonTypeInfo(use = JsonTypeInfo.Id.NONE) +@JsonDeserialize(using = UnknownMessagesResponseContentPart.Deserializer.class) +@JsonSerialize(using = UnknownVariantSupport.Serializer.class) +public final class UnknownMessagesResponseContentPart extends UnknownVariantSupport implements MessagesResponseContentPart { + public UnknownMessagesResponseContentPart(JsonNode rawJson) { + super("type", rawJson); + } + + @Override + public MessagesResponseContentPartType getType() { + return MessagesResponseContentPartType.UNKNOWN; + } + + public static final class Deserializer extends JsonDeserializer { + @Override + public UnknownMessagesResponseContentPart deserialize(JsonParser parser, DeserializationContext context) throws IOException { + JsonNode node = parser.getCodec().readTree(parser); + if (!UnknownVariantSupport.hasDiscriminator(node, "type")) { + return (UnknownMessagesResponseContentPart) context.handleUnexpectedToken(UnknownMessagesResponseContentPart.class, parser); + } + return new UnknownMessagesResponseContentPart(node); + } + } +} diff --git a/src/main/java/com/volcengine/ark/runtime/models/messages/UnknownMessagesStreamEvent.java b/src/main/java/com/volcengine/ark/runtime/models/messages/UnknownMessagesStreamEvent.java new file mode 100644 index 0000000..8647f9a --- /dev/null +++ b/src/main/java/com/volcengine/ark/runtime/models/messages/UnknownMessagesStreamEvent.java @@ -0,0 +1,52 @@ +// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates. +// SPDX-License-Identifier: Apache-2.0 + +/* + * Ark Messages API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.volcengine.ark.runtime.models.messages; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.volcengine.ark.runtime.utils.UnknownVariantSupport; +import java.io.IOException; + +/** Generated by ark-apis unknown_response_variants; retained future MessagesStreamEvent payload. */ +@JsonTypeInfo(use = JsonTypeInfo.Id.NONE) +@JsonDeserialize(using = UnknownMessagesStreamEvent.Deserializer.class) +@JsonSerialize(using = UnknownVariantSupport.Serializer.class) +public final class UnknownMessagesStreamEvent extends UnknownVariantSupport implements MessagesStreamEvent { + public UnknownMessagesStreamEvent(JsonNode rawJson) { + super("type", rawJson); + } + + @Override + public MessagesStreamEventType getType() { + return MessagesStreamEventType.UNKNOWN; + } + + public static final class Deserializer extends JsonDeserializer { + @Override + public UnknownMessagesStreamEvent deserialize(JsonParser parser, DeserializationContext context) throws IOException { + JsonNode node = parser.getCodec().readTree(parser); + if (!UnknownVariantSupport.hasDiscriminator(node, "type")) { + return (UnknownMessagesStreamEvent) context.handleUnexpectedToken(UnknownMessagesStreamEvent.class, parser); + } + return new UnknownMessagesStreamEvent(node); + } + } +} diff --git a/src/main/java/com/volcengine/ark/runtime/models/responses/Annotation.java b/src/main/java/com/volcengine/ark/runtime/models/responses/Annotation.java index 48bd60a..e8f29b8 100644 --- a/src/main/java/com/volcengine/ark/runtime/models/responses/Annotation.java +++ b/src/main/java/com/volcengine/ark/runtime/models/responses/Annotation.java @@ -26,6 +26,7 @@ @JsonSubTypes.Type(value = UrlCitation.class, name = "url_citation"), }) +@com.volcengine.ark.runtime.utils.UnknownVariantFallback(UnknownAnnotation.class) public interface Annotation { public AnnotationType getType(); } diff --git a/src/main/java/com/volcengine/ark/runtime/models/responses/AnnotationType.java b/src/main/java/com/volcengine/ark/runtime/models/responses/AnnotationType.java index 8c20214..d6493fd 100644 --- a/src/main/java/com/volcengine/ark/runtime/models/responses/AnnotationType.java +++ b/src/main/java/com/volcengine/ark/runtime/models/responses/AnnotationType.java @@ -25,6 +25,9 @@ */ public enum AnnotationType { + // SDK-only sentinel; original unknown wire value lives on UnknownVariant. + UNKNOWN("__ark_unknown_variant__"), + DOC_CITATION("doc_citation"), URL_CITATION("url_citation"); @@ -48,6 +51,7 @@ public String toString() { @JsonCreator public static AnnotationType fromValue(String value) { for (AnnotationType b : AnnotationType.values()) { + if (b == UNKNOWN) continue; if (b.value.equalsIgnoreCase(value)) { return b; } diff --git a/src/main/java/com/volcengine/ark/runtime/models/responses/AppliedEdit.java b/src/main/java/com/volcengine/ark/runtime/models/responses/AppliedEdit.java index 04c1695..e6aed05 100644 --- a/src/main/java/com/volcengine/ark/runtime/models/responses/AppliedEdit.java +++ b/src/main/java/com/volcengine/ark/runtime/models/responses/AppliedEdit.java @@ -26,6 +26,7 @@ @JsonSubTypes.Type(value = ClearToolUsesResponse.class, name = "clear_tool_uses"), }) +@com.volcengine.ark.runtime.utils.UnknownVariantFallback(UnknownAppliedEdit.class) public interface AppliedEdit { public AppliedEditType getType(); } diff --git a/src/main/java/com/volcengine/ark/runtime/models/responses/AppliedEditType.java b/src/main/java/com/volcengine/ark/runtime/models/responses/AppliedEditType.java index c362900..1655ebf 100644 --- a/src/main/java/com/volcengine/ark/runtime/models/responses/AppliedEditType.java +++ b/src/main/java/com/volcengine/ark/runtime/models/responses/AppliedEditType.java @@ -25,6 +25,9 @@ */ public enum AppliedEditType { + // SDK-only sentinel; original unknown wire value lives on UnknownVariant. + UNKNOWN("__ark_unknown_variant__"), + CLEAR_THINKING("clear_thinking"), CLEAR_TOOL_USES("clear_tool_uses"); @@ -48,6 +51,7 @@ public String toString() { @JsonCreator public static AppliedEditType fromValue(String value) { for (AppliedEditType b : AppliedEditType.values()) { + if (b == UNKNOWN) continue; if (b.value.equalsIgnoreCase(value)) { return b; } diff --git a/src/main/java/com/volcengine/ark/runtime/models/responses/ContentItem.java b/src/main/java/com/volcengine/ark/runtime/models/responses/ContentItem.java index d1da815..526816f 100644 --- a/src/main/java/com/volcengine/ark/runtime/models/responses/ContentItem.java +++ b/src/main/java/com/volcengine/ark/runtime/models/responses/ContentItem.java @@ -31,6 +31,7 @@ @JsonSubTypes.Type(value = OutputContentItemReasoningText.class, name = "reasoning_text"), }) +@com.volcengine.ark.runtime.utils.UnknownVariantFallback(UnknownContentItem.class) public interface ContentItem { public ContentItemType getType(); } diff --git a/src/main/java/com/volcengine/ark/runtime/models/responses/ContentItemType.java b/src/main/java/com/volcengine/ark/runtime/models/responses/ContentItemType.java index 51c9661..6961b79 100644 --- a/src/main/java/com/volcengine/ark/runtime/models/responses/ContentItemType.java +++ b/src/main/java/com/volcengine/ark/runtime/models/responses/ContentItemType.java @@ -25,6 +25,9 @@ */ public enum ContentItemType { + // SDK-only sentinel; original unknown wire value lives on UnknownVariant. + UNKNOWN("__ark_unknown_variant__"), + INPUT_AUDIO("input_audio"), INPUT_FILE("input_file"), @@ -58,6 +61,7 @@ public String toString() { @JsonCreator public static ContentItemType fromValue(String value) { for (ContentItemType b : ContentItemType.values()) { + if (b == UNKNOWN) continue; if (b.value.equalsIgnoreCase(value)) { return b; } diff --git a/src/main/java/com/volcengine/ark/runtime/models/responses/DoubaoAppCallBlock.java b/src/main/java/com/volcengine/ark/runtime/models/responses/DoubaoAppCallBlock.java index 1cc5f17..57a9de1 100644 --- a/src/main/java/com/volcengine/ark/runtime/models/responses/DoubaoAppCallBlock.java +++ b/src/main/java/com/volcengine/ark/runtime/models/responses/DoubaoAppCallBlock.java @@ -28,6 +28,7 @@ @JsonSubTypes.Type(value = DoubaoAppCallBlockSearch.class, name = "search"), }) +@com.volcengine.ark.runtime.utils.UnknownVariantFallback(UnknownDoubaoAppCallBlock.class) public interface DoubaoAppCallBlock { public DoubaoAppCallBlockType getType(); } diff --git a/src/main/java/com/volcengine/ark/runtime/models/responses/DoubaoAppCallBlockType.java b/src/main/java/com/volcengine/ark/runtime/models/responses/DoubaoAppCallBlockType.java index fc8e90e..409c7ed 100644 --- a/src/main/java/com/volcengine/ark/runtime/models/responses/DoubaoAppCallBlockType.java +++ b/src/main/java/com/volcengine/ark/runtime/models/responses/DoubaoAppCallBlockType.java @@ -25,6 +25,9 @@ */ public enum DoubaoAppCallBlockType { + // SDK-only sentinel; original unknown wire value lives on UnknownVariant. + UNKNOWN("__ark_unknown_variant__"), + OUTPUT_TEXT("output_text"), REASONING_SEARCH("reasoning_search"), @@ -52,6 +55,7 @@ public String toString() { @JsonCreator public static DoubaoAppCallBlockType fromValue(String value) { for (DoubaoAppCallBlockType b : DoubaoAppCallBlockType.values()) { + if (b == UNKNOWN) continue; if (b.value.equalsIgnoreCase(value)) { return b; } diff --git a/src/main/java/com/volcengine/ark/runtime/models/responses/InputItem.java b/src/main/java/com/volcengine/ark/runtime/models/responses/InputItem.java index 9a9e4ff..9079259 100644 --- a/src/main/java/com/volcengine/ark/runtime/models/responses/InputItem.java +++ b/src/main/java/com/volcengine/ark/runtime/models/responses/InputItem.java @@ -32,6 +32,7 @@ @JsonSubTypes.Type(value = ItemReasoning.class, name = "reasoning"), }) +@com.volcengine.ark.runtime.utils.UnknownVariantFallback(UnknownInputItem.class) public interface InputItem { public ItemType getType(); } diff --git a/src/main/java/com/volcengine/ark/runtime/models/responses/ItemType.java b/src/main/java/com/volcengine/ark/runtime/models/responses/ItemType.java index 0f4cdfe..b4b4af9 100644 --- a/src/main/java/com/volcengine/ark/runtime/models/responses/ItemType.java +++ b/src/main/java/com/volcengine/ark/runtime/models/responses/ItemType.java @@ -25,6 +25,9 @@ */ public enum ItemType { + // SDK-only sentinel; original unknown wire value lives on UnknownVariant. + UNKNOWN("__ark_unknown_variant__"), + AGENT_TOOL_CALL("agent_tool_call"), DOUBAO_APP_CALL("doubao_app_call"), @@ -72,6 +75,7 @@ public String toString() { @JsonCreator public static ItemType fromValue(String value) { for (ItemType b : ItemType.values()) { + if (b == UNKNOWN) continue; if (b.value.equalsIgnoreCase(value)) { return b; } diff --git a/src/main/java/com/volcengine/ark/runtime/models/responses/OutputContentItem.java b/src/main/java/com/volcengine/ark/runtime/models/responses/OutputContentItem.java index 03e8430..16cee85 100644 --- a/src/main/java/com/volcengine/ark/runtime/models/responses/OutputContentItem.java +++ b/src/main/java/com/volcengine/ark/runtime/models/responses/OutputContentItem.java @@ -26,6 +26,7 @@ @JsonSubTypes.Type(value = OutputContentItemReasoningText.class, name = "reasoning_text"), }) +@com.volcengine.ark.runtime.utils.UnknownVariantFallback(UnknownOutputContentItem.class) public interface OutputContentItem { public ContentItemType getType(); } diff --git a/src/main/java/com/volcengine/ark/runtime/models/responses/OutputItem.java b/src/main/java/com/volcengine/ark/runtime/models/responses/OutputItem.java index 671d06b..a6afedd 100644 --- a/src/main/java/com/volcengine/ark/runtime/models/responses/OutputItem.java +++ b/src/main/java/com/volcengine/ark/runtime/models/responses/OutputItem.java @@ -36,6 +36,7 @@ @JsonSubTypes.Type(value = ItemFunctionWebSearch.class, name = "web_search_call"), }) +@com.volcengine.ark.runtime.utils.UnknownVariantFallback(UnknownOutputItem.class) public interface OutputItem { public ItemType getType(); } diff --git a/src/main/java/com/volcengine/ark/runtime/models/responses/ResponseStreamEvent.java b/src/main/java/com/volcengine/ark/runtime/models/responses/ResponseStreamEvent.java index 8a2251d..b99a7e0 100644 --- a/src/main/java/com/volcengine/ark/runtime/models/responses/ResponseStreamEvent.java +++ b/src/main/java/com/volcengine/ark/runtime/models/responses/ResponseStreamEvent.java @@ -87,6 +87,7 @@ @JsonSubTypes.Type(value = ResponseWebSearchCallSearchingEvent.class, name = "response.web_search_call.searching"), }) +@com.volcengine.ark.runtime.utils.UnknownVariantFallback(UnknownResponseStreamEvent.class) public interface ResponseStreamEvent { public ResponseStreamEventType getType(); } diff --git a/src/main/java/com/volcengine/ark/runtime/models/responses/ResponseStreamEventType.java b/src/main/java/com/volcengine/ark/runtime/models/responses/ResponseStreamEventType.java index 0d358b9..9bd6e54 100644 --- a/src/main/java/com/volcengine/ark/runtime/models/responses/ResponseStreamEventType.java +++ b/src/main/java/com/volcengine/ark/runtime/models/responses/ResponseStreamEventType.java @@ -25,6 +25,9 @@ */ public enum ResponseStreamEventType { + // SDK-only sentinel; original unknown wire value lives on UnknownVariant. + UNKNOWN("__ark_unknown_variant__"), + ERROR("error"), RESPONSE_AGENT_TOOL_CALL_COMPLETED("response.agent_tool_call.completed"), @@ -170,6 +173,7 @@ public String toString() { @JsonCreator public static ResponseStreamEventType fromValue(String value) { for (ResponseStreamEventType b : ResponseStreamEventType.values()) { + if (b == UNKNOWN) continue; if (b.value.equalsIgnoreCase(value)) { return b; } diff --git a/src/main/java/com/volcengine/ark/runtime/models/responses/Tool.java b/src/main/java/com/volcengine/ark/runtime/models/responses/Tool.java index 3cc2cdb..3d1b3f3 100644 --- a/src/main/java/com/volcengine/ark/runtime/models/responses/Tool.java +++ b/src/main/java/com/volcengine/ark/runtime/models/responses/Tool.java @@ -30,6 +30,7 @@ @JsonSubTypes.Type(value = WebSearchTool.class, name = "web_search"), }) +@com.volcengine.ark.runtime.utils.UnknownVariantFallback(UnknownTool.class) public interface Tool { public ToolType getType(); } diff --git a/src/main/java/com/volcengine/ark/runtime/models/responses/ToolType.java b/src/main/java/com/volcengine/ark/runtime/models/responses/ToolType.java index b9f1ec0..9021c3a 100644 --- a/src/main/java/com/volcengine/ark/runtime/models/responses/ToolType.java +++ b/src/main/java/com/volcengine/ark/runtime/models/responses/ToolType.java @@ -25,6 +25,9 @@ */ public enum ToolType { + // SDK-only sentinel; original unknown wire value lives on UnknownVariant. + UNKNOWN("__ark_unknown_variant__"), + DOUBAO_APP("doubao_app"), FUNCTION("function"), @@ -56,6 +59,7 @@ public String toString() { @JsonCreator public static ToolType fromValue(String value) { for (ToolType b : ToolType.values()) { + if (b == UNKNOWN) continue; if (b.value.equalsIgnoreCase(value)) { return b; } diff --git a/src/main/java/com/volcengine/ark/runtime/models/responses/TypedToolChoice.java b/src/main/java/com/volcengine/ark/runtime/models/responses/TypedToolChoice.java index ae0ae03..7f9e297 100644 --- a/src/main/java/com/volcengine/ark/runtime/models/responses/TypedToolChoice.java +++ b/src/main/java/com/volcengine/ark/runtime/models/responses/TypedToolChoice.java @@ -28,6 +28,7 @@ @JsonSubTypes.Type(value = ToolChoiceWebSearch.class, name = "web_search"), }) +@com.volcengine.ark.runtime.utils.UnknownVariantFallback(UnknownTypedToolChoice.class) public interface TypedToolChoice { public TypedToolChoiceType getType(); } diff --git a/src/main/java/com/volcengine/ark/runtime/models/responses/TypedToolChoiceType.java b/src/main/java/com/volcengine/ark/runtime/models/responses/TypedToolChoiceType.java index 689b4f4..a5928ba 100644 --- a/src/main/java/com/volcengine/ark/runtime/models/responses/TypedToolChoiceType.java +++ b/src/main/java/com/volcengine/ark/runtime/models/responses/TypedToolChoiceType.java @@ -25,6 +25,9 @@ */ public enum TypedToolChoiceType { + // SDK-only sentinel; original unknown wire value lives on UnknownVariant. + UNKNOWN("__ark_unknown_variant__"), + FUNCTION("function"), KNOWLEDGE_SEARCH("knowledge_search"), @@ -52,6 +55,7 @@ public String toString() { @JsonCreator public static TypedToolChoiceType fromValue(String value) { for (TypedToolChoiceType b : TypedToolChoiceType.values()) { + if (b == UNKNOWN) continue; if (b.value.equalsIgnoreCase(value)) { return b; } diff --git a/src/main/java/com/volcengine/ark/runtime/models/responses/UnknownAnnotation.java b/src/main/java/com/volcengine/ark/runtime/models/responses/UnknownAnnotation.java new file mode 100644 index 0000000..cefd68f --- /dev/null +++ b/src/main/java/com/volcengine/ark/runtime/models/responses/UnknownAnnotation.java @@ -0,0 +1,52 @@ +// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates. +// SPDX-License-Identifier: Apache-2.0 + +/* + * Ark Responses API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.volcengine.ark.runtime.models.responses; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.volcengine.ark.runtime.utils.UnknownVariantSupport; +import java.io.IOException; + +/** Generated by ark-apis unknown_response_variants; retained future Annotation payload. */ +@JsonTypeInfo(use = JsonTypeInfo.Id.NONE) +@JsonDeserialize(using = UnknownAnnotation.Deserializer.class) +@JsonSerialize(using = UnknownVariantSupport.Serializer.class) +public final class UnknownAnnotation extends UnknownVariantSupport implements Annotation { + public UnknownAnnotation(JsonNode rawJson) { + super("type", rawJson); + } + + @Override + public AnnotationType getType() { + return AnnotationType.UNKNOWN; + } + + public static final class Deserializer extends JsonDeserializer { + @Override + public UnknownAnnotation deserialize(JsonParser parser, DeserializationContext context) throws IOException { + JsonNode node = parser.getCodec().readTree(parser); + if (!UnknownVariantSupport.hasDiscriminator(node, "type")) { + return (UnknownAnnotation) context.handleUnexpectedToken(UnknownAnnotation.class, parser); + } + return new UnknownAnnotation(node); + } + } +} diff --git a/src/main/java/com/volcengine/ark/runtime/models/responses/UnknownAppliedEdit.java b/src/main/java/com/volcengine/ark/runtime/models/responses/UnknownAppliedEdit.java new file mode 100644 index 0000000..a58524d --- /dev/null +++ b/src/main/java/com/volcengine/ark/runtime/models/responses/UnknownAppliedEdit.java @@ -0,0 +1,52 @@ +// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates. +// SPDX-License-Identifier: Apache-2.0 + +/* + * Ark Responses API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.volcengine.ark.runtime.models.responses; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.volcengine.ark.runtime.utils.UnknownVariantSupport; +import java.io.IOException; + +/** Generated by ark-apis unknown_response_variants; retained future AppliedEdit payload. */ +@JsonTypeInfo(use = JsonTypeInfo.Id.NONE) +@JsonDeserialize(using = UnknownAppliedEdit.Deserializer.class) +@JsonSerialize(using = UnknownVariantSupport.Serializer.class) +public final class UnknownAppliedEdit extends UnknownVariantSupport implements AppliedEdit { + public UnknownAppliedEdit(JsonNode rawJson) { + super("type", rawJson); + } + + @Override + public AppliedEditType getType() { + return AppliedEditType.UNKNOWN; + } + + public static final class Deserializer extends JsonDeserializer { + @Override + public UnknownAppliedEdit deserialize(JsonParser parser, DeserializationContext context) throws IOException { + JsonNode node = parser.getCodec().readTree(parser); + if (!UnknownVariantSupport.hasDiscriminator(node, "type")) { + return (UnknownAppliedEdit) context.handleUnexpectedToken(UnknownAppliedEdit.class, parser); + } + return new UnknownAppliedEdit(node); + } + } +} diff --git a/src/main/java/com/volcengine/ark/runtime/models/responses/UnknownContentItem.java b/src/main/java/com/volcengine/ark/runtime/models/responses/UnknownContentItem.java new file mode 100644 index 0000000..6123522 --- /dev/null +++ b/src/main/java/com/volcengine/ark/runtime/models/responses/UnknownContentItem.java @@ -0,0 +1,52 @@ +// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates. +// SPDX-License-Identifier: Apache-2.0 + +/* + * Ark Responses API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.volcengine.ark.runtime.models.responses; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.volcengine.ark.runtime.utils.UnknownVariantSupport; +import java.io.IOException; + +/** Generated by ark-apis unknown_response_variants; retained future ContentItem payload. */ +@JsonTypeInfo(use = JsonTypeInfo.Id.NONE) +@JsonDeserialize(using = UnknownContentItem.Deserializer.class) +@JsonSerialize(using = UnknownVariantSupport.Serializer.class) +public final class UnknownContentItem extends UnknownVariantSupport implements ContentItem { + public UnknownContentItem(JsonNode rawJson) { + super("type", rawJson); + } + + @Override + public ContentItemType getType() { + return ContentItemType.UNKNOWN; + } + + public static final class Deserializer extends JsonDeserializer { + @Override + public UnknownContentItem deserialize(JsonParser parser, DeserializationContext context) throws IOException { + JsonNode node = parser.getCodec().readTree(parser); + if (!UnknownVariantSupport.hasDiscriminator(node, "type")) { + return (UnknownContentItem) context.handleUnexpectedToken(UnknownContentItem.class, parser); + } + return new UnknownContentItem(node); + } + } +} diff --git a/src/main/java/com/volcengine/ark/runtime/models/responses/UnknownDoubaoAppCallBlock.java b/src/main/java/com/volcengine/ark/runtime/models/responses/UnknownDoubaoAppCallBlock.java new file mode 100644 index 0000000..4268355 --- /dev/null +++ b/src/main/java/com/volcengine/ark/runtime/models/responses/UnknownDoubaoAppCallBlock.java @@ -0,0 +1,52 @@ +// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates. +// SPDX-License-Identifier: Apache-2.0 + +/* + * Ark Responses API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.volcengine.ark.runtime.models.responses; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.volcengine.ark.runtime.utils.UnknownVariantSupport; +import java.io.IOException; + +/** Generated by ark-apis unknown_response_variants; retained future DoubaoAppCallBlock payload. */ +@JsonTypeInfo(use = JsonTypeInfo.Id.NONE) +@JsonDeserialize(using = UnknownDoubaoAppCallBlock.Deserializer.class) +@JsonSerialize(using = UnknownVariantSupport.Serializer.class) +public final class UnknownDoubaoAppCallBlock extends UnknownVariantSupport implements DoubaoAppCallBlock { + public UnknownDoubaoAppCallBlock(JsonNode rawJson) { + super("type", rawJson); + } + + @Override + public DoubaoAppCallBlockType getType() { + return DoubaoAppCallBlockType.UNKNOWN; + } + + public static final class Deserializer extends JsonDeserializer { + @Override + public UnknownDoubaoAppCallBlock deserialize(JsonParser parser, DeserializationContext context) throws IOException { + JsonNode node = parser.getCodec().readTree(parser); + if (!UnknownVariantSupport.hasDiscriminator(node, "type")) { + return (UnknownDoubaoAppCallBlock) context.handleUnexpectedToken(UnknownDoubaoAppCallBlock.class, parser); + } + return new UnknownDoubaoAppCallBlock(node); + } + } +} diff --git a/src/main/java/com/volcengine/ark/runtime/models/responses/UnknownInputItem.java b/src/main/java/com/volcengine/ark/runtime/models/responses/UnknownInputItem.java new file mode 100644 index 0000000..1e7ff80 --- /dev/null +++ b/src/main/java/com/volcengine/ark/runtime/models/responses/UnknownInputItem.java @@ -0,0 +1,52 @@ +// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates. +// SPDX-License-Identifier: Apache-2.0 + +/* + * Ark Responses API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.volcengine.ark.runtime.models.responses; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.volcengine.ark.runtime.utils.UnknownVariantSupport; +import java.io.IOException; + +/** Generated by ark-apis unknown_response_variants; retained future InputItem payload. */ +@JsonTypeInfo(use = JsonTypeInfo.Id.NONE) +@JsonDeserialize(using = UnknownInputItem.Deserializer.class) +@JsonSerialize(using = UnknownVariantSupport.Serializer.class) +public final class UnknownInputItem extends UnknownVariantSupport implements InputItem { + public UnknownInputItem(JsonNode rawJson) { + super("type", rawJson); + } + + @Override + public ItemType getType() { + return ItemType.UNKNOWN; + } + + public static final class Deserializer extends JsonDeserializer { + @Override + public UnknownInputItem deserialize(JsonParser parser, DeserializationContext context) throws IOException { + JsonNode node = parser.getCodec().readTree(parser); + if (!UnknownVariantSupport.hasDiscriminator(node, "type")) { + return (UnknownInputItem) context.handleUnexpectedToken(UnknownInputItem.class, parser); + } + return new UnknownInputItem(node); + } + } +} diff --git a/src/main/java/com/volcengine/ark/runtime/models/responses/UnknownOutputContentItem.java b/src/main/java/com/volcengine/ark/runtime/models/responses/UnknownOutputContentItem.java new file mode 100644 index 0000000..0a17162 --- /dev/null +++ b/src/main/java/com/volcengine/ark/runtime/models/responses/UnknownOutputContentItem.java @@ -0,0 +1,52 @@ +// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates. +// SPDX-License-Identifier: Apache-2.0 + +/* + * Ark Responses API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.volcengine.ark.runtime.models.responses; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.volcengine.ark.runtime.utils.UnknownVariantSupport; +import java.io.IOException; + +/** Generated by ark-apis unknown_response_variants; retained future OutputContentItem payload. */ +@JsonTypeInfo(use = JsonTypeInfo.Id.NONE) +@JsonDeserialize(using = UnknownOutputContentItem.Deserializer.class) +@JsonSerialize(using = UnknownVariantSupport.Serializer.class) +public final class UnknownOutputContentItem extends UnknownVariantSupport implements OutputContentItem { + public UnknownOutputContentItem(JsonNode rawJson) { + super("type", rawJson); + } + + @Override + public ContentItemType getType() { + return ContentItemType.UNKNOWN; + } + + public static final class Deserializer extends JsonDeserializer { + @Override + public UnknownOutputContentItem deserialize(JsonParser parser, DeserializationContext context) throws IOException { + JsonNode node = parser.getCodec().readTree(parser); + if (!UnknownVariantSupport.hasDiscriminator(node, "type")) { + return (UnknownOutputContentItem) context.handleUnexpectedToken(UnknownOutputContentItem.class, parser); + } + return new UnknownOutputContentItem(node); + } + } +} diff --git a/src/main/java/com/volcengine/ark/runtime/models/responses/UnknownOutputItem.java b/src/main/java/com/volcengine/ark/runtime/models/responses/UnknownOutputItem.java new file mode 100644 index 0000000..b57cf13 --- /dev/null +++ b/src/main/java/com/volcengine/ark/runtime/models/responses/UnknownOutputItem.java @@ -0,0 +1,52 @@ +// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates. +// SPDX-License-Identifier: Apache-2.0 + +/* + * Ark Responses API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.volcengine.ark.runtime.models.responses; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.volcengine.ark.runtime.utils.UnknownVariantSupport; +import java.io.IOException; + +/** Generated by ark-apis unknown_response_variants; retained future OutputItem payload. */ +@JsonTypeInfo(use = JsonTypeInfo.Id.NONE) +@JsonDeserialize(using = UnknownOutputItem.Deserializer.class) +@JsonSerialize(using = UnknownVariantSupport.Serializer.class) +public final class UnknownOutputItem extends UnknownVariantSupport implements OutputItem { + public UnknownOutputItem(JsonNode rawJson) { + super("type", rawJson); + } + + @Override + public ItemType getType() { + return ItemType.UNKNOWN; + } + + public static final class Deserializer extends JsonDeserializer { + @Override + public UnknownOutputItem deserialize(JsonParser parser, DeserializationContext context) throws IOException { + JsonNode node = parser.getCodec().readTree(parser); + if (!UnknownVariantSupport.hasDiscriminator(node, "type")) { + return (UnknownOutputItem) context.handleUnexpectedToken(UnknownOutputItem.class, parser); + } + return new UnknownOutputItem(node); + } + } +} diff --git a/src/main/java/com/volcengine/ark/runtime/models/responses/UnknownResponseStreamEvent.java b/src/main/java/com/volcengine/ark/runtime/models/responses/UnknownResponseStreamEvent.java new file mode 100644 index 0000000..f90290f --- /dev/null +++ b/src/main/java/com/volcengine/ark/runtime/models/responses/UnknownResponseStreamEvent.java @@ -0,0 +1,52 @@ +// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates. +// SPDX-License-Identifier: Apache-2.0 + +/* + * Ark Responses API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.volcengine.ark.runtime.models.responses; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.volcengine.ark.runtime.utils.UnknownVariantSupport; +import java.io.IOException; + +/** Generated by ark-apis unknown_response_variants; retained future ResponseStreamEvent payload. */ +@JsonTypeInfo(use = JsonTypeInfo.Id.NONE) +@JsonDeserialize(using = UnknownResponseStreamEvent.Deserializer.class) +@JsonSerialize(using = UnknownVariantSupport.Serializer.class) +public final class UnknownResponseStreamEvent extends UnknownVariantSupport implements ResponseStreamEvent { + public UnknownResponseStreamEvent(JsonNode rawJson) { + super("type", rawJson); + } + + @Override + public ResponseStreamEventType getType() { + return ResponseStreamEventType.UNKNOWN; + } + + public static final class Deserializer extends JsonDeserializer { + @Override + public UnknownResponseStreamEvent deserialize(JsonParser parser, DeserializationContext context) throws IOException { + JsonNode node = parser.getCodec().readTree(parser); + if (!UnknownVariantSupport.hasDiscriminator(node, "type")) { + return (UnknownResponseStreamEvent) context.handleUnexpectedToken(UnknownResponseStreamEvent.class, parser); + } + return new UnknownResponseStreamEvent(node); + } + } +} diff --git a/src/main/java/com/volcengine/ark/runtime/models/responses/UnknownTool.java b/src/main/java/com/volcengine/ark/runtime/models/responses/UnknownTool.java new file mode 100644 index 0000000..b9c62af --- /dev/null +++ b/src/main/java/com/volcengine/ark/runtime/models/responses/UnknownTool.java @@ -0,0 +1,52 @@ +// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates. +// SPDX-License-Identifier: Apache-2.0 + +/* + * Ark Responses API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.volcengine.ark.runtime.models.responses; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.volcengine.ark.runtime.utils.UnknownVariantSupport; +import java.io.IOException; + +/** Generated by ark-apis unknown_response_variants; retained future Tool payload. */ +@JsonTypeInfo(use = JsonTypeInfo.Id.NONE) +@JsonDeserialize(using = UnknownTool.Deserializer.class) +@JsonSerialize(using = UnknownVariantSupport.Serializer.class) +public final class UnknownTool extends UnknownVariantSupport implements Tool { + public UnknownTool(JsonNode rawJson) { + super("type", rawJson); + } + + @Override + public ToolType getType() { + return ToolType.UNKNOWN; + } + + public static final class Deserializer extends JsonDeserializer { + @Override + public UnknownTool deserialize(JsonParser parser, DeserializationContext context) throws IOException { + JsonNode node = parser.getCodec().readTree(parser); + if (!UnknownVariantSupport.hasDiscriminator(node, "type")) { + return (UnknownTool) context.handleUnexpectedToken(UnknownTool.class, parser); + } + return new UnknownTool(node); + } + } +} diff --git a/src/main/java/com/volcengine/ark/runtime/models/responses/UnknownTypedToolChoice.java b/src/main/java/com/volcengine/ark/runtime/models/responses/UnknownTypedToolChoice.java new file mode 100644 index 0000000..13c5389 --- /dev/null +++ b/src/main/java/com/volcengine/ark/runtime/models/responses/UnknownTypedToolChoice.java @@ -0,0 +1,52 @@ +// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates. +// SPDX-License-Identifier: Apache-2.0 + +/* + * Ark Responses API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.volcengine.ark.runtime.models.responses; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.volcengine.ark.runtime.utils.UnknownVariantSupport; +import java.io.IOException; + +/** Generated by ark-apis unknown_response_variants; retained future TypedToolChoice payload. */ +@JsonTypeInfo(use = JsonTypeInfo.Id.NONE) +@JsonDeserialize(using = UnknownTypedToolChoice.Deserializer.class) +@JsonSerialize(using = UnknownVariantSupport.Serializer.class) +public final class UnknownTypedToolChoice extends UnknownVariantSupport implements TypedToolChoice { + public UnknownTypedToolChoice(JsonNode rawJson) { + super("type", rawJson); + } + + @Override + public TypedToolChoiceType getType() { + return TypedToolChoiceType.UNKNOWN; + } + + public static final class Deserializer extends JsonDeserializer { + @Override + public UnknownTypedToolChoice deserialize(JsonParser parser, DeserializationContext context) throws IOException { + JsonNode node = parser.getCodec().readTree(parser); + if (!UnknownVariantSupport.hasDiscriminator(node, "type")) { + return (UnknownTypedToolChoice) context.handleUnexpectedToken(UnknownTypedToolChoice.class, parser); + } + return new UnknownTypedToolChoice(node); + } + } +} diff --git a/src/main/java/com/volcengine/ark/runtime/service/ArkService.java b/src/main/java/com/volcengine/ark/runtime/service/ArkService.java index 95c084f..a85ed88 100644 --- a/src/main/java/com/volcengine/ark/runtime/service/ArkService.java +++ b/src/main/java/com/volcengine/ark/runtime/service/ArkService.java @@ -165,6 +165,7 @@ public ArkService(final ArkApi api, final ExecutorService executorService) { public static ObjectMapper defaultObjectMapper() { ObjectMapper mapper = new ObjectMapper(); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + mapper.addHandler(new com.volcengine.ark.runtime.utils.UnknownVariantHandler()); mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); mapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE); return mapper; diff --git a/src/main/java/com/volcengine/ark/runtime/utils/JacksonUtil.java b/src/main/java/com/volcengine/ark/runtime/utils/JacksonUtil.java index e7236dd..434db4e 100644 --- a/src/main/java/com/volcengine/ark/runtime/utils/JacksonUtil.java +++ b/src/main/java/com/volcengine/ark/runtime/utils/JacksonUtil.java @@ -15,6 +15,7 @@ public class JacksonUtil { private static ObjectMapper defaultObjectMapper() { ObjectMapper mapper = new ObjectMapper(); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + mapper.addHandler(new UnknownVariantHandler()); mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); mapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE); return mapper; diff --git a/src/main/java/com/volcengine/ark/runtime/utils/UnknownVariant.java b/src/main/java/com/volcengine/ark/runtime/utils/UnknownVariant.java new file mode 100644 index 0000000..3778397 --- /dev/null +++ b/src/main/java/com/volcengine/ark/runtime/utils/UnknownVariant.java @@ -0,0 +1,14 @@ +// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates. +// SPDX-License-Identifier: Apache-2.0 +package com.volcengine.ark.runtime.utils; + +import com.fasterxml.jackson.databind.JsonNode; + +/** An unrecognized response union member, retained instead of discarded. */ +public interface UnknownVariant { + /** The original wire discriminator, such as a future event or item type. */ + String getDiscriminatorValue(); + + /** A defensive copy of the complete JSON object, including the discriminator. */ + JsonNode getRawJson(); +} diff --git a/src/main/java/com/volcengine/ark/runtime/utils/UnknownVariantFallback.java b/src/main/java/com/volcengine/ark/runtime/utils/UnknownVariantFallback.java new file mode 100644 index 0000000..c7c9b9a --- /dev/null +++ b/src/main/java/com/volcengine/ark/runtime/utils/UnknownVariantFallback.java @@ -0,0 +1,15 @@ +// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates. +// SPDX-License-Identifier: Apache-2.0 +package com.volcengine.ark.runtime.utils; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** Generated on response union interfaces to declare their raw JSON fallback. */ +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +public @interface UnknownVariantFallback { + Class value(); +} diff --git a/src/main/java/com/volcengine/ark/runtime/utils/UnknownVariantHandler.java b/src/main/java/com/volcengine/ark/runtime/utils/UnknownVariantHandler.java new file mode 100644 index 0000000..ee06755 --- /dev/null +++ b/src/main/java/com/volcengine/ark/runtime/utils/UnknownVariantHandler.java @@ -0,0 +1,26 @@ +// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates. +// SPDX-License-Identifier: Apache-2.0 +package com.volcengine.ark.runtime.utils; + +import com.fasterxml.jackson.core.JsonToken; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JavaType; +import com.fasterxml.jackson.databind.deser.DeserializationProblemHandler; +import com.fasterxml.jackson.databind.jsontype.TypeIdResolver; + +/** Only generated, opted-in response unions receive tolerant subtype decoding. */ +public final class UnknownVariantHandler extends DeserializationProblemHandler { + @Override + public JavaType handleUnknownTypeId(DeserializationContext context, JavaType baseType, + String subTypeId, TypeIdResolver resolver, String failureMessage) { + UnknownVariantFallback fallback = baseType.getRawClass().getAnnotation(UnknownVariantFallback.class); + if (fallback == null || subTypeId == null || subTypeId.isEmpty() + || context.getParser().currentToken() != JsonToken.VALUE_STRING) { + return null; + } + if (!baseType.getRawClass().isAssignableFrom(fallback.value())) { + throw new IllegalStateException("Invalid unknown variant fallback for " + baseType); + } + return context.constructType(fallback.value()); + } +} diff --git a/src/main/java/com/volcengine/ark/runtime/utils/UnknownVariantSupport.java b/src/main/java/com/volcengine/ark/runtime/utils/UnknownVariantSupport.java new file mode 100644 index 0000000..ce2983f --- /dev/null +++ b/src/main/java/com/volcengine/ark/runtime/utils/UnknownVariantSupport.java @@ -0,0 +1,55 @@ +// Copyright (c) 2026 ByteDance Ltd. and/or its affiliates. +// SPDX-License-Identifier: Apache-2.0 +package com.volcengine.ark.runtime.utils; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.jsontype.TypeSerializer; +import java.io.IOException; + +/** Shared immutable storage/serialization for generated unknown response variants. */ +public abstract class UnknownVariantSupport implements UnknownVariant { + private final String discriminatorValue; + private final JsonNode rawJson; + + protected UnknownVariantSupport(String discriminator, JsonNode rawJson) { + if (!hasDiscriminator(rawJson, discriminator)) { + throw new IllegalArgumentException("Expected an object with nonempty string discriminator: " + discriminator); + } + this.discriminatorValue = rawJson.get(discriminator).textValue(); + this.rawJson = rawJson.deepCopy(); + } + + public static boolean hasDiscriminator(JsonNode node, String discriminator) { + return node != null && node.isObject() && node.has(discriminator) + && node.get(discriminator).isTextual() && !node.get(discriminator).textValue().isEmpty(); + } + + @Override + public final String getDiscriminatorValue() { + return discriminatorValue; + } + + @Override + public final JsonNode getRawJson() { + return rawJson.deepCopy(); + } + + public static final class Serializer extends JsonSerializer { + @Override + public void serialize(UnknownVariant value, JsonGenerator generator, SerializerProvider provider) + throws IOException { + generator.writeTree(value.getRawJson()); + } + + @Override + public void serializeWithType(UnknownVariant value, JsonGenerator generator, + SerializerProvider provider, TypeSerializer typeSerializer) throws IOException { + // Raw JSON already contains the original discriminator. Do not emit a + // generated sentinel or Jackson class id when writing via an interface. + serialize(value, generator, provider); + } + } +}