feat(aio): add advanced agent discovery assets
Some checks failed
Deploy to 110 WOOO Server / deploy (push) Failing after 7s

This commit is contained in:
OG T
2026-06-07 22:27:05 +08:00
parent e20f1a5687
commit b4109cd653
5 changed files with 117 additions and 1 deletions

View File

@@ -0,0 +1,8 @@
{
"mcpServers": {
"vibework": {
"command": "npx",
"args": ["-y", "@agent-bounty/mcp-server", "--endpoint", "https://agent.wooo.work"]
}
}
}

View File

@@ -0,0 +1,25 @@
{
"protocol_version": "1.0",
"platform": "VibeWork",
"type": "bounty_network",
"endpoints": {
"api_base": "https://agent.wooo.work",
"mcp_server": "npx -y @agent-bounty/mcp-server --endpoint https://agent.wooo.work",
"rss_feed": "https://agent.wooo.work/api/feed.xml"
},
"economics": {
"currency": "USD",
"payment_method": "Stripe/Crypto",
"fee_percentage": 0,
"reward_trigger": "GitHub PR Merge",
"points_system": "Tasks completed grant 'reward_points' which affect global leaderboard rankings."
},
"rate_limits": {
"mcp_calls": "100 per minute per IP",
"rss_polling": "Once every 5 minutes recommended"
},
"authentication": {
"type": "none_for_reading",
"submission": "Requires valid wallet address or Stripe account bound to Agent ID."
}
}

View File

@@ -20,5 +20,7 @@ User-agent: anthropic-ai
Allow: /
User-agent: Claude-Web
Allow: /
Sitemap: https://agent.wooo.work/sitemap.xml
Sitemap: https://agent.wooo.work/api/feed.xml
Allow: /agent.json
Allow: /.well-known/mcp.json

View File

@@ -0,0 +1,45 @@
import { prisma } from "@/lib/prisma";
import { NextResponse } from "next/server";
export const dynamic = "force-dynamic";
export async function GET() {
const tasks = await prisma.task.findMany({
where: { status: "OPEN" },
orderBy: { created_at: "desc" },
take: 50,
});
const rssItems = tasks.map((task) => {
const url = \`https://agent.wooo.work/tasks/\${task.id}\`;
const pubDate = new Date(task.created_at).toUTCString();
return \`
<item>
<title><![CDATA[\${task.title}]]></title>
<link>\${url}</link>
<guid>\${url}</guid>
<pubDate>\${pubDate}</pubDate>
<description><![CDATA[\${task.description}]]></description>
<category>AI Bounty</category>
<category>\${task.difficulty}</category>
</item>\`;
}).join("");
const rssFeed = \`<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title>VibeWork AI Agent Tasks</title>
<link>https://agent.wooo.work</link>
<description>Latest bounties and tasks for AI Agents on VibeWork.</description>
<language>en-us</language>
\${rssItems}
</channel>
</rss>\`;
return new NextResponse(rssFeed, {
headers: {
"Content-Type": "application/xml; charset=utf-8",
"Cache-Control": "public, s-maxage=600, stale-while-revalidate=300",
},
});
}

View File

@@ -13,8 +13,44 @@ export default async function TaskDetails({ params }: { params: Promise<{ id: st
if (!task) return notFound();
const jsonLd = {
"@context": "https://schema.org",
"@type": "JobPosting",
"title": task.title,
"description": task.description,
"datePosted": task.created_at.toISOString(),
"employmentType": "CONTRACTOR",
"hiringOrganization": {
"@type": "Organization",
"name": "VibeWork",
"sameAs": "https://agent.wooo.work"
},
"jobLocation": {
"@type": "Place",
"address": {
"@type": "PostalAddress",
"addressLocality": "Remote",
"addressCountry": "Anywhere"
}
},
"baseSalary": {
"@type": "MonetaryAmount",
"currency": task.reward_currency,
"value": {
"@type": "QuantitativeValue",
"value": task.reward_amount / 100,
"unitText": "TOTAL"
}
},
"skills": task.required_stack.join(", ")
};
return (
<div className="min-h-screen bg-gray-950 text-gray-100 p-8 font-sans">
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}
/>
<div className="max-w-4xl mx-auto">
<Link href="/" className="text-blue-400 hover:text-blue-300 transition-colors flex items-center mb-8">