import { useState } from "react" import { AnimatePresence, motion } from "framer-motion" import { ListChecks } from "../ui/icons" import type { GoalRecord, ProfileSnapshot, ProjectRecord, WorkspaceRecord, TaskRecord } from "@shared/types" import { useT } from "../../i18n" import { unwrap } from "../../lib/desktop" import { ActionButton, InlineNotice, Input, Select, TextArea } from "../ui" import { describeActionError } from "./execution-utils" export function TaskCreator({ companyId, goals, projects, agents, workspaces, onSaved }: { companyId: string; goals: GoalRecord[]; projects: ProjectRecord[]; agents: ProfileSnapshot["agents"]; workspaces: WorkspaceRecord[]; onSaved: () => Promise }) { const t = useT() const [title, setTitle] = useState(""); const [description, setDescription] = useState("") const [goalId, setGoalId] = useState(goals[0]?.id ?? ""); const [projectId, setProjectId] = useState(projects[0]?.id ?? "") const [assigneeAgentId, setAssigneeAgentId] = useState(agents[0]?.id ?? ""); const [workspaceId, setWorkspaceId] = useState(workspaces[0]?.id ?? "") const [requiresFilesystem, setRequiresFilesystem] = useState(false) const [priority, setPriority] = useState("medium"); const [submitError, setSubmitError] = useState(null); const [submitting, setSubmitting] = useState(false) async function handleCreateTask() { setSubmitError(null); setSubmitting(true) try { unwrap(await window.agentCompany.saveTask({ companyId, projectId: projectId || null, goalId: goalId || null, title, description, assigneeAgentId: assigneeAgentId || null, workspaceId: workspaceId || null, requiresFilesystem, priority: priority as TaskRecord["priority"], status: "todo" })); setTitle(""); setDescription(""); setRequiresFilesystem(false); await onSaved() } catch (e) { setSubmitError(describeActionError(e)) } finally { setSubmitting(false) } } const [showAdvanced, setShowAdvanced] = useState(false) return (