feat(id): brand SessionID through Drizzle and Zod schemas (#16953)

This commit is contained in:
Kit Langton
2026-03-11 19:16:56 -04:00
committed by GitHub
parent 4e73473119
commit cb67465675
44 changed files with 226 additions and 158 deletions

View File

@@ -1,4 +1,5 @@
import { BusEvent } from "@/bus/bus-event"
import { SessionID } from "./schema"
import z from "zod"
import { NamedError } from "@opencode-ai/util/error"
import { APICallError, convertToModelMessages, LoadAPIKeyError, type ModelMessage, type UIMessage } from "ai"
@@ -79,7 +80,7 @@ export namespace MessageV2 {
const PartBase = z.object({
id: z.string(),
sessionID: z.string(),
sessionID: SessionID.zod,
messageID: z.string(),
})
@@ -344,7 +345,7 @@ export namespace MessageV2 {
const Base = z.object({
id: z.string(),
sessionID: z.string(),
sessionID: SessionID.zod,
})
export const User = Base.extend({
@@ -457,7 +458,7 @@ export namespace MessageV2 {
Removed: BusEvent.define(
"message.removed",
z.object({
sessionID: z.string(),
sessionID: SessionID.zod,
messageID: z.string(),
}),
),
@@ -470,7 +471,7 @@ export namespace MessageV2 {
PartDelta: BusEvent.define(
"message.part.delta",
z.object({
sessionID: z.string(),
sessionID: SessionID.zod,
messageID: z.string(),
partID: z.string(),
field: z.string(),
@@ -480,7 +481,7 @@ export namespace MessageV2 {
PartRemoved: BusEvent.define(
"message.part.removed",
z.object({
sessionID: z.string(),
sessionID: SessionID.zod,
messageID: z.string(),
partID: z.string(),
}),
@@ -728,7 +729,7 @@ export namespace MessageV2 {
)
}
export const stream = fn(Identifier.schema("session"), async function* (sessionID) {
export const stream = fn(SessionID.zod, async function* (sessionID) {
const size = 50
let offset = 0
while (true) {
@@ -792,7 +793,7 @@ export namespace MessageV2 {
export const get = fn(
z.object({
sessionID: Identifier.schema("session"),
sessionID: SessionID.zod,
messageID: Identifier.schema("message"),
}),
async (input): Promise<WithParts> => {