feat: add URL-driven workspace state and streamed Codex research
This commit is contained in:
@@ -1,38 +1,22 @@
|
||||
import { createServerFn } from '@tanstack/react-start'
|
||||
import { z } from 'zod'
|
||||
import { startResearchInput } from './model'
|
||||
import { createServerFn } from "@tanstack/react-start";
|
||||
import { z } from "zod";
|
||||
import { startResearchInput } from "./model";
|
||||
|
||||
export const loadResearchStatus = createServerFn({ method: 'GET' }).handler(
|
||||
async () => {
|
||||
const { researchService } = await import('./runner.server')
|
||||
return researchService().status()
|
||||
},
|
||||
)
|
||||
export const startResearch = createServerFn({ method: 'POST' })
|
||||
export const loadResearchStatus = createServerFn({ method: "GET" })
|
||||
.validator(z.object({ id: z.uuid().optional() }).strict())
|
||||
.handler(async ({ data }) => {
|
||||
const { researchService } = await import("./runner.server");
|
||||
return researchService().status(data.id);
|
||||
});
|
||||
export const startResearch = createServerFn({ method: "POST" })
|
||||
.validator(startResearchInput)
|
||||
.handler(async ({ data }) => {
|
||||
const { researchService } = await import('./runner.server')
|
||||
return researchService().start(data)
|
||||
})
|
||||
export const cancelResearch = createServerFn({ method: 'POST' })
|
||||
const { researchService } = await import("./runner.server");
|
||||
return researchService().start(data);
|
||||
});
|
||||
export const cancelResearch = createServerFn({ method: "POST" })
|
||||
.validator(z.object({ id: z.string().uuid() }).strict())
|
||||
.handler(async ({ data }) => {
|
||||
const { researchService } = await import('./runner.server')
|
||||
return researchService().cancel(data.id)
|
||||
})
|
||||
|
||||
export const resetResearch = createServerFn({ method: 'POST' })
|
||||
.validator(z.object({ id: z.string().uuid() }).strict())
|
||||
.handler(async ({ data }) => {
|
||||
const { researchService } = await import('./runner.server')
|
||||
return researchService().reset(data.id)
|
||||
})
|
||||
|
||||
export const selectResearch = createServerFn({ method: 'POST' })
|
||||
.validator(
|
||||
z.object({ id: z.uuid(), currentId: z.uuid().nullable() }).strict(),
|
||||
)
|
||||
.handler(async ({ data }) => {
|
||||
const { researchService } = await import('./runner.server')
|
||||
return researchService().select(data.id, data.currentId)
|
||||
})
|
||||
const { researchService } = await import("./runner.server");
|
||||
return researchService().cancel(data.id);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user