Something went wrong. Try again.
opencode v2 mirror
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556import { Project } from "@opencode-ai/schema/project"import { Schema, Struct } from "effect"import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/unstable/httpapi"import { LocationQuery, locationQueryOpenApi } from "./location.js"import { ProjectNotFoundError } from "../errors.js"
const root = "/api/project"const UpdatePayload = Schema.Struct(Struct.omit(Project.UpdateInput.fields, ["projectID"]))
export const ProjectGroup = HttpApiGroup.make("server.project") .add( HttpApiEndpoint.get("project.list", root, { success: Schema.Array(Project.Info), }).annotateMerge( OpenApi.annotations({ identifier: "v2.project.list", summary: "List projects", description: "List known projects.", }), ), ) .add( HttpApiEndpoint.patch("project.update", `${root}/:projectID`, { params: { projectID: Project.ID }, payload: UpdatePayload, success: Project.Info, error: ProjectNotFoundError, }).annotateMerge( OpenApi.annotations({ identifier: "v2.project.update", summary: "Update project", description: "Update project display metadata and workspace commands.", }), ), ) .add( HttpApiEndpoint.get("project.current", `${root}/current`, { query: LocationQuery, success: Project.Current, }) .annotateMerge(locationQueryOpenApi) .annotateMerge( OpenApi.annotations({ identifier: "v2.project.current", summary: "Get current project", description: "Resolve the project for the requested location.", }), ), ) .annotateMerge( OpenApi.annotations({ title: "project", description: "Project routes.", }), )