mirror of
https://gitea.toothfairyai.com/ToothFairyAI/tf_code.git
synced 2026-03-31 22:32:28 +00:00
feat(id): brand WorkspaceID through Drizzle and Zod schemas (#16964)
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import { Hono } from "hono"
|
||||
import { stream } from "hono/streaming"
|
||||
import { describeRoute, validator, resolver } from "hono-openapi"
|
||||
import { SessionID } from "@/session/schema"
|
||||
import { SessionID, MessageID } from "@/session/schema"
|
||||
import z from "zod"
|
||||
import { Session } from "../../session"
|
||||
import { MessageV2 } from "../../session/message-v2"
|
||||
@@ -607,7 +607,7 @@ export const SessionRoutes = lazy(() =>
|
||||
"param",
|
||||
z.object({
|
||||
sessionID: SessionID.zod,
|
||||
messageID: z.string().meta({ description: "Message ID" }),
|
||||
messageID: MessageID.zod,
|
||||
}),
|
||||
),
|
||||
async (c) => {
|
||||
@@ -642,7 +642,7 @@ export const SessionRoutes = lazy(() =>
|
||||
"param",
|
||||
z.object({
|
||||
sessionID: SessionID.zod,
|
||||
messageID: z.string().meta({ description: "Message ID" }),
|
||||
messageID: MessageID.zod,
|
||||
}),
|
||||
),
|
||||
async (c) => {
|
||||
@@ -676,8 +676,8 @@ export const SessionRoutes = lazy(() =>
|
||||
"param",
|
||||
z.object({
|
||||
sessionID: SessionID.zod,
|
||||
messageID: z.string().meta({ description: "Message ID" }),
|
||||
partID: z.string().meta({ description: "Part ID" }),
|
||||
messageID: MessageID.zod,
|
||||
partID: z.string(),
|
||||
}),
|
||||
),
|
||||
async (c) => {
|
||||
@@ -711,8 +711,8 @@ export const SessionRoutes = lazy(() =>
|
||||
"param",
|
||||
z.object({
|
||||
sessionID: SessionID.zod,
|
||||
messageID: z.string().meta({ description: "Message ID" }),
|
||||
partID: z.string().meta({ description: "Part ID" }),
|
||||
messageID: MessageID.zod,
|
||||
partID: z.string(),
|
||||
}),
|
||||
),
|
||||
validator("json", MessageV2.Part),
|
||||
|
||||
@@ -22,6 +22,7 @@ import { Flag } from "../flag/flag"
|
||||
import { Command } from "../command"
|
||||
import { Global } from "../global"
|
||||
import { WorkspaceContext } from "../control-plane/workspace-context"
|
||||
import { WorkspaceID } from "../control-plane/schema"
|
||||
import { WorkspaceRouterMiddleware } from "../control-plane/workspace-router-middleware"
|
||||
import { ProjectRoutes } from "./routes/project"
|
||||
import { SessionRoutes } from "./routes/session"
|
||||
@@ -190,7 +191,7 @@ export namespace Server {
|
||||
)
|
||||
.use(async (c, next) => {
|
||||
if (c.req.path === "/log") return next()
|
||||
const workspaceID = c.req.query("workspace") || c.req.header("x-opencode-workspace")
|
||||
const rawWorkspaceID = c.req.query("workspace") || c.req.header("x-opencode-workspace")
|
||||
const raw = c.req.query("directory") || c.req.header("x-opencode-directory") || process.cwd()
|
||||
const directory = Filesystem.resolve(
|
||||
(() => {
|
||||
@@ -203,7 +204,7 @@ export namespace Server {
|
||||
)
|
||||
|
||||
return WorkspaceContext.provide({
|
||||
workspaceID,
|
||||
workspaceID: rawWorkspaceID ? WorkspaceID.make(rawWorkspaceID) : undefined,
|
||||
async fn() {
|
||||
return Instance.provide({
|
||||
directory,
|
||||
|
||||
Reference in New Issue
Block a user