import { isProjectOwnership, type ProjectOwnership, } from "../shared/project-ownership.ts"; import { isProjectType, type ProjectType } from "../shared/project-type.ts"; export const PROJECT_CREATE_USAGE = "Usage: raidiant-hub project create (type: product|tool; ownership: company|personal)"; export type ProjectCreateArgs = | { error: string } | { id: string; type: ProjectType; ownership: ProjectOwnership; name: string }; /** Parse `project create ` from CLI positional args. */ export const parseProjectCreateArgs = (positional: string[]): ProjectCreateArgs | undefined => { if (positional[0] !== "project" || positional[1] !== "create") return undefined; if (!positional[2] || !positional[3] || !positional[4] || !positional[5]) { return { error: PROJECT_CREATE_USAGE }; } const type = positional[3]; if (!isProjectType(type)) { return { error: "Project type must be product or tool." }; } const ownership = positional[4]; if (!isProjectOwnership(ownership)) { return { error: "Project ownership must be company or personal." }; } return { id: positional[2], type, ownership, name: positional.slice(5).join(" "), }; };