| 1234567891011121314151617181920212223242526272829303132 |
- import { ProjectV2 } from "@kirincode-ai/core/project"
- import { Schema } from "effect"
- import { HttpApi, HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/unstable/httpapi"
- import { Authorization } from "../middleware/authorization"
- import { InstanceContextMiddleware } from "../middleware/instance-context"
- import { WorkspaceRoutingMiddleware, WorkspaceRoutingQuery } from "../middleware/workspace-routing"
- export const GenerateNamePayload = Schema.Struct({
- context: Schema.optional(Schema.String),
- })
- export const ProjectCopyApi = HttpApi.make("projectCopyName").add(
- HttpApiGroup.make("projectCopyName")
- .add(
- HttpApiEndpoint.post("generateName", "/experimental/project/:projectID/copy/generate-name", {
- params: { projectID: ProjectV2.ID },
- query: WorkspaceRoutingQuery,
- payload: GenerateNamePayload,
- success: Schema.Struct({ name: Schema.String }),
- }).annotateMerge(
- OpenApi.annotations({
- identifier: "experimental.projectCopy.generateName",
- summary: "Generate project copy name",
- description: "Generate a short name for a project copy from task context.",
- }),
- ),
- )
- .annotateMerge(OpenApi.annotations({ title: "projectCopy", description: "Project copy naming routes." }))
- .middleware(InstanceContextMiddleware)
- .middleware(WorkspaceRoutingMiddleware)
- .middleware(Authorization),
- )
|