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

@@ -11,6 +11,7 @@ import { Filesystem } from "../../src/util/filesystem"
import { tmpdir } from "../fixture/fixture"
import type { Agent } from "../../src/agent/agent"
import type { MessageV2 } from "../../src/session/message-v2"
import { SessionID } from "../../src/session/schema"
describe("session.llm.hasToolCalls", () => {
test("returns false for empty messages array", () => {
@@ -265,7 +266,7 @@ describe("session.llm.stream", () => {
directory: tmp.path,
fn: async () => {
const resolved = await Provider.getModel(providerID, model.id)
const sessionID = "session-test-1"
const sessionID = SessionID.make("session-test-1")
const agent = {
name: "test",
mode: "primary",
@@ -395,7 +396,7 @@ describe("session.llm.stream", () => {
directory: tmp.path,
fn: async () => {
const resolved = await Provider.getModel("openai", model.id)
const sessionID = "session-test-2"
const sessionID = SessionID.make("session-test-2")
const agent = {
name: "test",
mode: "primary",
@@ -517,7 +518,7 @@ describe("session.llm.stream", () => {
directory: tmp.path,
fn: async () => {
const resolved = await Provider.getModel(providerID, model.id)
const sessionID = "session-test-3"
const sessionID = SessionID.make("session-test-3")
const agent = {
name: "test",
mode: "primary",
@@ -618,7 +619,7 @@ describe("session.llm.stream", () => {
directory: tmp.path,
fn: async () => {
const resolved = await Provider.getModel(providerID, model.id)
const sessionID = "session-test-4"
const sessionID = SessionID.make("session-test-4")
const agent = {
name: "test",
mode: "primary",

View File

@@ -2,8 +2,9 @@ import { describe, expect, test } from "bun:test"
import { APICallError } from "ai"
import { MessageV2 } from "../../src/session/message-v2"
import type { Provider } from "../../src/provider/provider"
import { SessionID } from "../../src/session/schema"
const sessionID = "session"
const sessionID = SessionID.make("session")
const model: Provider.Model = {
id: "test-model",
providerID: "test",

View File

@@ -1,6 +1,7 @@
import { describe, expect, test } from "bun:test"
import { MessageV2 } from "../../src/session/message-v2"
import { SessionPrompt } from "../../src/session/prompt"
import { SessionID } from "../../src/session/schema"
describe("structured-output.OutputFormat", () => {
test("parses text format", () => {
@@ -96,7 +97,7 @@ describe("structured-output.UserMessage", () => {
test("user message accepts outputFormat", () => {
const result = MessageV2.User.safeParse({
id: "test-id",
sessionID: "test-session",
sessionID: SessionID.descending(),
role: "user",
time: { created: Date.now() },
agent: "default",
@@ -112,7 +113,7 @@ describe("structured-output.UserMessage", () => {
test("user message works without outputFormat (optional)", () => {
const result = MessageV2.User.safeParse({
id: "test-id",
sessionID: "test-session",
sessionID: SessionID.descending(),
role: "user",
time: { created: Date.now() },
agent: "default",
@@ -125,7 +126,7 @@ describe("structured-output.UserMessage", () => {
describe("structured-output.AssistantMessage", () => {
const baseAssistantMessage = {
id: "test-id",
sessionID: "test-session",
sessionID: SessionID.descending(),
role: "assistant" as const,
parentID: "parent-id",
modelID: "claude-3",