summaryrefslogtreecommitdiffhomepage
path: root/js/src/server
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-05-28 13:35:05 -0400
committerDax Raad <[email protected]>2025-05-28 13:35:05 -0400
commitf3b224090cf6e719d58d9a36b3e07380aac68d31 (patch)
tree4f30a64fe31c6ca7e8e7bedf50031262df23be06 /js/src/server
parent3b7b7f4bea321323bb6e4c1ecfb0ebe113dc68f8 (diff)
downloadopencode-f3b224090cf6e719d58d9a36b3e07380aac68d31.tar.gz
opencode-f3b224090cf6e719d58d9a36b3e07380aac68d31.zip
better discriminator
Diffstat (limited to 'js/src/server')
-rw-r--r--js/src/server/message.ts15
1 files changed, 2 insertions, 13 deletions
diff --git a/js/src/server/message.ts b/js/src/server/message.ts
index 77ef5b8f2..4ad301a35 100644
--- a/js/src/server/message.ts
+++ b/js/src/server/message.ts
@@ -38,7 +38,7 @@ const ToolResult = z
});
const ToolInvocation = z
- .union([ToolCall, ToolPartialCall, ToolResult])
+ .discriminatedUnion("state", [ToolCall, ToolPartialCall, ToolResult])
.openapi({
ref: "Session.Message.ToolInvocation",
});
@@ -103,25 +103,14 @@ const StepStartPart = z
ref: "Session.Message.Part.StepStart",
});
-const DataPart = z
- .object({
- type: z.custom<`data-${string}`>(),
- id: z.string().optional(),
- data: z.unknown(),
- })
- .openapi({
- ref: "Session.Message.Part.Data",
- });
-
const Part = z
- .union([
+ .discriminatedUnion("type", [
TextPart,
ReasoningPart,
ToolInvocationPart,
SourceUrlPart,
FilePart,
StepStartPart,
- DataPart,
])
.openapi({
ref: "Session.Message.Part",