feat(id): brand ProviderID and ModelID (#17110)

This commit is contained in:
Kit Langton
2026-03-12 09:27:52 -04:00
committed by GitHub
parent 2eeba53b07
commit c45467964c
23 changed files with 157 additions and 107 deletions

View File

@@ -2,12 +2,14 @@ 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 { ModelID, ProviderID } from "../../src/provider/schema"
import { SessionID, MessageID, PartID } from "../../src/session/schema"
const sessionID = SessionID.make("session")
const providerID = ProviderID.make("test")
const model: Provider.Model = {
id: "test-model",
providerID: "test",
id: ModelID.make("test-model"),
providerID,
api: {
id: "test-model",
url: "https://example.com",
@@ -61,7 +63,7 @@ function userInfo(id: string): MessageV2.User {
role: "user",
time: { created: 0 },
agent: "user",
model: { providerID: "test", modelID: "test" },
model: { providerID, modelID: ModelID.make("test") },
tools: {},
mode: "",
} as unknown as MessageV2.User
@@ -795,7 +797,7 @@ describe("session.message-v2.fromError", () => {
code: "context_length_exceeded",
},
}
const result = MessageV2.fromError(input, { providerID: "test" })
const result = MessageV2.fromError(input, { providerID })
expect(result).toStrictEqual({
name: "ContextOverflowError",
@@ -830,7 +832,7 @@ describe("session.message-v2.fromError", () => {
message: item.code === "invalid_prompt" ? item.message : undefined,
},
}
const result = MessageV2.fromError(input, { providerID: "test" })
const result = MessageV2.fromError(input, { providerID })
expect(result).toStrictEqual({
name: "APIError",
@@ -862,7 +864,7 @@ describe("session.message-v2.fromError", () => {
responseHeaders: { "content-type": "application/json" },
isRetryable: false,
})
const result = MessageV2.fromError(error, { providerID: "test" })
const result = MessageV2.fromError(error, { providerID })
expect(MessageV2.ContextOverflowError.isInstance(result)).toBe(true)
})
})
@@ -877,14 +879,14 @@ describe("session.message-v2.fromError", () => {
responseHeaders: { "content-type": "application/json" },
isRetryable: false,
}),
{ providerID: "test" },
{ providerID },
)
expect(MessageV2.ContextOverflowError.isInstance(result)).toBe(false)
expect(MessageV2.APIError.isInstance(result)).toBe(true)
})
test("serializes unknown inputs", () => {
const result = MessageV2.fromError(123, { providerID: "test" })
const result = MessageV2.fromError(123, { providerID })
expect(result).toStrictEqual({
name: "UnknownError",