"use client" import { Check, Copy, ExternalLink, TriangleAlert } from "lucide-react" import { useState } from "react" import { trackOnboardingEvent } from "@/lib/onboarding-events" import { safeFirstPrompt } from "@/lib/product" type WorkflowKind = "single_project" | "production" | "team_project" type CopyState = "idle" | "copied" | "unavailable" const workflows: Record = { single_project: { title: "One editor, one active project", description: "Start on a copied or non-sensitive project. The first useful proof is that your local MCP client, connector, open project, and active sequence can communicate without changing anything.", nextStep: "Install the local server and connector, open a copied project with an active sequence, then run the read-only connection check below.", sourceHref: "https://helpx.adobe.com/premiere/desktop/collaborate-with-others/collaborate-using-productions/productions-faq.html", sourceLabel: "Adobe: Productions FAQ", }, production: { title: "A large, multi-project production on shared storage", description: "Adobe describes Productions as a shared-storage workflow for organizing related Premiere projects. This server can help you inspect a local, open project, but it does not decide your storage, locking, or facility policy for you.", nextStep: "Keep the first test local and copied. Confirm the connection without changes, then use the Project Intake preview only with an approved facility template.", sourceHref: "https://helpx.adobe.com/premiere/desktop/collaborate-with-others/collaborate-using-productions/about-productions.html", sourceLabel: "Adobe: About Productions", }, team_project: { title: "Remote collaborators in a shared cloud project", description: "Adobe describes Team Projects as a cloud-managed collaboration path. Treat your Team Project permissions, sync state, and collaboration policy as Adobe workflow decisions; this local MCP connection does not grant or prove them.", nextStep: "Check the current Adobe Team Projects guidance first. If you evaluate this server, do it in a copied test context and start with the same no-change local connection check.", sourceHref: "https://helpx.adobe.com/premiere/desktop/collaborate-with-others/collaborate-using-team-projects/when-to-use-team-projects-and-when-to-use-productions.html", sourceLabel: "Adobe: Team Projects vs. Productions", }, } const choices: Array<{ id: WorkflowKind; label: string; detail: string }> = [ { id: "single_project", label: "One editor, one project", detail: "A local project or a small test sequence." }, { id: "production", label: "A Production on shared storage", detail: "Multiple related projects and a facility workflow." }, { id: "team_project", label: "A remote Team Project", detail: "Cloud-shared collaboration with other editors." }, ] export function WorkflowChooser() { const [selected, setSelected] = useState(null) const [copyState, setCopyState] = useState("idle") const recommendation = selected ? workflows[selected] : null function chooseWorkflow(nextWorkflow: WorkflowKind) { if (nextWorkflow === selected) return setSelected(nextWorkflow) setCopyState("idle") trackOnboardingEvent("onboarding_workflow_guide_recommendation_viewed", { workflow_type: nextWorkflow }) } async function copyPrompt() { if (!selected) return try { if (!navigator.clipboard?.writeText) throw new Error("Clipboard API is unavailable") await navigator.clipboard.writeText(safeFirstPrompt) setCopyState("copied") trackOnboardingEvent("onboarding_workflow_guide_prompt_copied", { workflow_type: selected }) window.setTimeout(() => setCopyState("idle"), 2200) } catch { setCopyState("unavailable") } } return (
Which collaboration context are you evaluating?

This guide does not save your answer or inspect a project. It only gives you a cautious local starting point and the relevant Adobe reference.

{choices.map((choice) => ( ))}
{recommendation ? (

Your safe starting point

{recommendation.title}

{recommendation.description}

{recommendation.nextStep}

{recommendation.sourceLabel}

Use this first in your compatible AI client

{safeFirstPrompt} {copyState === "unavailable" ? (

) : null}
) : null}
) }