70 lines
1.8 KiB
TypeScript
70 lines
1.8 KiB
TypeScript
export type AgentTemplateId = "campaign-distributor";
|
|
|
|
export type AgentTemplate = {
|
|
id: AgentTemplateId;
|
|
name: string;
|
|
description: string;
|
|
emoji: string;
|
|
color: string;
|
|
vibe: string;
|
|
tools: readonly string[];
|
|
channels: readonly string[];
|
|
expectedInputs: readonly string[];
|
|
expectedOutputs: readonly string[];
|
|
notes: readonly string[];
|
|
};
|
|
|
|
export const AGENT_TEMPLATES: readonly AgentTemplate[] = [
|
|
{
|
|
id: "campaign-distributor",
|
|
name: "Campaign Distributor",
|
|
description:
|
|
"Develops and distributes LemonSpace campaign content across social media and messenger channels.",
|
|
emoji: "lemon",
|
|
color: "yellow",
|
|
vibe: "Transforms canvas outputs into campaign-ready channel content.",
|
|
tools: ["WebFetch", "WebSearch", "Read", "Write", "Edit"],
|
|
channels: [
|
|
"Instagram Feed",
|
|
"Instagram Stories",
|
|
"Instagram Reels",
|
|
"LinkedIn",
|
|
"Twitter / X",
|
|
"TikTok",
|
|
"Pinterest",
|
|
"WhatsApp Business",
|
|
"Telegram",
|
|
"E-Mail Newsletter",
|
|
"Discord",
|
|
],
|
|
expectedInputs: [
|
|
"Render-Node-Export",
|
|
"Compare-Varianten",
|
|
"KI-Bild-Output",
|
|
"Frame-Dimensionen",
|
|
],
|
|
expectedOutputs: [
|
|
"Caption-Pakete",
|
|
"Kanal-Matrix",
|
|
"Posting-Plan",
|
|
"Hashtag-Sets",
|
|
"Messenger-Texte",
|
|
],
|
|
notes: [
|
|
"MVP: static input-only node, no execution flow.",
|
|
"agent-output remains pending until runtime orchestration exists.",
|
|
],
|
|
},
|
|
] as const;
|
|
|
|
const AGENT_TEMPLATE_BY_ID = new Map<AgentTemplateId, AgentTemplate>(
|
|
AGENT_TEMPLATES.map((template) => [template.id, template]),
|
|
);
|
|
|
|
export function getAgentTemplate(id: string): AgentTemplate | undefined {
|
|
if (id === "campaign-distributor") {
|
|
return AGENT_TEMPLATE_BY_ID.get(id);
|
|
}
|
|
return undefined;
|
|
}
|