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 extends UnknownVariant> 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);
+ }
+ }
+}