feat(agent): add structured outputs and media archive support
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
import { AGENT_DEFINITIONS } from "@/lib/agent-definitions";
|
||||
|
||||
export type AgentTemplateId = "campaign-distributor";
|
||||
|
||||
export type AgentTemplate = {
|
||||
@@ -15,46 +17,19 @@ export type AgentTemplate = {
|
||||
};
|
||||
|
||||
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.",
|
||||
],
|
||||
},
|
||||
...AGENT_DEFINITIONS.map((definition) => ({
|
||||
id: definition.id,
|
||||
name: definition.metadata.name,
|
||||
description: definition.metadata.description,
|
||||
emoji: definition.metadata.emoji,
|
||||
color: definition.metadata.color,
|
||||
vibe: definition.metadata.vibe,
|
||||
tools: definition.uiReference.tools,
|
||||
channels: definition.channelCatalog,
|
||||
expectedInputs: definition.uiReference.expectedInputs,
|
||||
expectedOutputs: definition.uiReference.expectedOutputs,
|
||||
notes: definition.uiReference.notes,
|
||||
})),
|
||||
] as const;
|
||||
|
||||
const AGENT_TEMPLATE_BY_ID = new Map<AgentTemplateId, AgentTemplate>(
|
||||
@@ -62,8 +37,5 @@ const AGENT_TEMPLATE_BY_ID = new Map<AgentTemplateId, AgentTemplate>(
|
||||
);
|
||||
|
||||
export function getAgentTemplate(id: string): AgentTemplate | undefined {
|
||||
if (id === "campaign-distributor") {
|
||||
return AGENT_TEMPLATE_BY_ID.get(id);
|
||||
}
|
||||
return undefined;
|
||||
return AGENT_TEMPLATE_BY_ID.get(id as AgentTemplateId);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user