copilot prompt for prebuilt cards can be configured per card

This commit is contained in:
arkml 2025-09-13 13:10:01 +05:30
parent eec92bbd39
commit c41e65d7a5
10 changed files with 32 additions and 22 deletions

View file

@ -108,5 +108,6 @@
"lastUpdatedAt": "2025-09-11T18:51:15.548Z", "lastUpdatedAt": "2025-09-11T18:51:15.548Z",
"name": "Customer Support", "name": "Customer Support",
"description": "Answers product information (RAG) and delivery status (MCP) questions.", "description": "Answers product information (RAG) and delivery status (MCP) questions.",
"category": "Customer Support" "category": "Customer Support",
} "copilotPrompt": "Give me a brief explanation of this assistant."
}

View file

@ -1,5 +1,4 @@
{ {
"category": "Developer Productivity",
"agents": [ "agents": [
{ {
"name": "GitHub Stats Hub", "name": "GitHub Stats Hub",
@ -575,5 +574,7 @@
], ],
"startAgent": "GitHub Stats Pipeline Hub", "startAgent": "GitHub Stats Pipeline Hub",
"name": "GitHub Data to Spreadsheet", "name": "GitHub Data to Spreadsheet",
"description": "Fetches GitHub repository stats and logs them to a Google Sheet with Slack notifications" "description": "Fetches GitHub repository stats and logs them to a Google Sheet with Slack notifications",
"category": "Developer Productivity",
"copilotPrompt": "Give me a brief explanation of this assistant. Also briefly tell me about how to setup a trigger for this assistant."
} }

View file

@ -115,5 +115,6 @@
"lastUpdatedAt": "2025-09-12T13:46:12.039Z", "lastUpdatedAt": "2025-09-12T13:46:12.039Z",
"name": "GitHub Issue to Slack", "name": "GitHub Issue to Slack",
"description": "Assistant that sends a formatted Slack message with GitHub issue details when a issue is opened or updated.", "description": "Assistant that sends a formatted Slack message with GitHub issue details when a issue is opened or updated.",
"category": "Developer Productivity" "category": "Developer Productivity",
} "copilotPrompt": "Give me a brief explanation of this assistant. Also briefly tell me about how to setup a trigger for this assistant."
}

View file

@ -129,5 +129,6 @@
"lastUpdatedAt": "2025-09-12T06:30:34.203Z", "lastUpdatedAt": "2025-09-12T06:30:34.203Z",
"name": "GitHub PR to Slack", "name": "GitHub PR to Slack",
"description": "Assistant that sends a formatted Slack message with PR details when a PR is opened or merged.", "description": "Assistant that sends a formatted Slack message with PR details when a PR is opened or merged.",
"category": "Developer Productivity" "category": "Developer Productivity",
} "copilotPrompt": "Give me a brief explanation of this assistant. Also briefly tell me about how to setup a trigger for this assistant."
}

View file

@ -465,5 +465,6 @@
], ],
"startAgent": "Recruitment HR Bot", "startAgent": "Recruitment HR Bot",
"name": "Interview Scheduler", "name": "Interview Scheduler",
"description": "Automate interview scheduling with candidates from Google Sheets" "description": "Automate interview scheduling with candidates from Google Sheets",
"copilotPrompt": "Give me a brief explanation of this assistant."
} }

View file

@ -238,5 +238,6 @@
"lastUpdatedAt": "2025-09-12T05:56:12.131Z", "lastUpdatedAt": "2025-09-12T05:56:12.131Z",
"name": "Meeting Prep Assistant", "name": "Meeting Prep Assistant",
"description": "Assistant that researches meeting guests, compiles a summary, and sends it via email.", "description": "Assistant that researches meeting guests, compiles a summary, and sends it via email.",
"category": "Work Productivity" "category": "Work Productivity",
} "copilotPrompt": "Give me a brief explanation of this assistant. Also briefly tell me about how to setup a trigger for this assistant."
}

View file

@ -293,5 +293,6 @@
"lastUpdatedAt": "2025-09-09T17:48:53.292Z", "lastUpdatedAt": "2025-09-09T17:48:53.292Z",
"name": "Browse Reddit on Slack", "name": "Browse Reddit on Slack",
"description": "Browses Reddit for topics of interest and sends them to a Slack channel.", "description": "Browses Reddit for topics of interest and sends them to a Slack channel.",
"category": "News & Social" "category": "News & Social",
} "copilotPrompt": "Give me a brief explanation of this assistant. Also briefly tell me about how to setup a scheduled trigger for this assistant."
}

View file

@ -295,5 +295,6 @@
"lastUpdatedAt": "2025-09-11T18:02:35.880Z", "lastUpdatedAt": "2025-09-11T18:02:35.880Z",
"name": "Viral Tweet Assistant", "name": "Viral Tweet Assistant",
"description": "Research topics and create a tweet including generated images.", "description": "Research topics and create a tweet including generated images.",
"category": "News & Social" "category": "News & Social",
} "copilotPrompt": "Give me a brief explanation of this assistant."
}

View file

@ -375,5 +375,6 @@
"lastUpdatedAt": "2025-09-11T17:26:48.865Z", "lastUpdatedAt": "2025-09-11T17:26:48.865Z",
"name": "Twitter Sentiment", "name": "Twitter Sentiment",
"description": "Searches Twitter for tweets about a company and analyzes their sentiment.", "description": "Searches Twitter for tweets about a company and analyzes their sentiment.",
"category": "News & Social" "category": "News & Social",
} "copilotPrompt": "Give me a brief explanation of this assistant. Also briefly tell me about how to setup a scheduled trigger for this assistant."
}

View file

@ -107,13 +107,14 @@ export function BuildAssistantSection() {
}; };
// Handle template selection // Handle template selection
const handleTemplateSelect = async (templateId: string) => { const handleTemplateSelect = async (template: any) => {
// Show a small non-blocking spinner on the clicked card // Show a small non-blocking spinner on the clicked card
setLoadingTemplateId(templateId); setLoadingTemplateId(template.id);
try { try {
await createProjectWithOptions({ await createProjectWithOptions({
template: templateId, template: template.id,
prompt: 'Explain this workflow', // Prefer a card-specific copilot prompt if present on the template JSON
prompt: template.copilotPrompt || 'Explain this workflow',
router, router,
onError: () => { onError: () => {
// Clear loading state if creation fails // Clear loading state if creation fails
@ -499,7 +500,7 @@ export function BuildAssistantSection() {
{items.map((template) => ( {items.map((template) => (
<button <button
key={template.id} key={template.id}
onClick={() => handleTemplateSelect(template.id)} onClick={() => handleTemplateSelect(template)}
disabled={loadingTemplateId === template.id} disabled={loadingTemplateId === template.id}
className={clsx( className={clsx(
"relative block p-4 border border-gray-200 dark:border-gray-700 rounded-xl transition-all group text-left", "relative block p-4 border border-gray-200 dark:border-gray-700 rounded-xl transition-all group text-left",