diff --git a/data/plugins.ts b/data/plugins.ts index 85ab3f0..484c1ac 100644 --- a/data/plugins.ts +++ b/data/plugins.ts @@ -1,44 +1,11 @@ import { Plugin } from "../src/app/plugins/utils/types"; -const vesuPlugin: Plugin = { - id: "9d3e05ef-c85a-43cc-8e57-486e94fcf40f", - name: "Vesu", - description: - "Deposit and withdraw tokens to earn yield in the Vesu DeFi protocol", - image: "/logos/vesu.png", - - actions: [ - { - name: "Deposit Earn", - description: "Deposit tokens into Vesu protocol to earn yield", - parameters: [ - { - name: "depositTokenSymbol", - type: "string", - description: "Symbol of the token to deposit (e.g., ETH, USDC)", - required: true, - }, - { - name: "depositAmount", - type: "string", - description: "Amount of tokens to deposit", - required: true, - }, - ], - }, - { - name: "Withdraw Earn", - description: "Withdraw tokens and earned yield from Vesu protocol", - parameters: [ - { - name: "withdrawTokenSymbol", - type: "string", - description: "Symbol of the token to withdraw", - required: true, - }, - ], - }, - ], +const corePlugin: Plugin = { + id: "a5dcf686-50ee-41f5-bdcb-44eaacbeaf81", + name: "Core", + description: "", + image: "/logos/starknet.png", + actions: [], }; const unruggablePlugin: Plugin = { @@ -142,6 +109,47 @@ const unruggablePlugin: Plugin = { ], }; +const vesuPlugin: Plugin = { + id: "9d3e05ef-c85a-43cc-8e57-486e94fcf40f", + name: "Vesu", + description: + "Deposit and withdraw tokens to earn yield in the Vesu DeFi protocol", + image: "/logos/vesu.png", + + actions: [ + { + name: "Deposit Earn", + description: "Deposit tokens into Vesu protocol to earn yield", + parameters: [ + { + name: "depositTokenSymbol", + type: "string", + description: "Symbol of the token to deposit (e.g., ETH, USDC)", + required: true, + }, + { + name: "depositAmount", + type: "string", + description: "Amount of tokens to deposit", + required: true, + }, + ], + }, + { + name: "Withdraw Earn", + description: "Withdraw tokens and earned yield from Vesu protocol", + parameters: [ + { + name: "withdrawTokenSymbol", + type: "string", + description: "Symbol of the token to withdraw", + required: true, + }, + ], + }, + ], +}; + const avnuPlugin: Plugin = { id: "7d3e05ef-c85a-43cc-8e57-486e94fcf38e", name: "AVNU", @@ -257,12 +265,433 @@ const artpeacePlugin: Plugin = { const twitterPlugin: Plugin = { id: "3d3e05ef-c85a-43cc-8e57-486e94fcf34e", name: "Twitter", - description: "", + description: + "Interact with Twitter/X platform - post tweets, manage threads, follow users, and retrieve information", image: "/logos/twitter.png", + actions: [ + { + name: "createTwitterPost", + description: "Create and publish a new tweet", + parameters: [ + { + name: "post", + type: "string", + description: "Content of the tweet to be posted", + required: true, + }, + ], + }, + { + name: "replyTweet", + description: "Reply to an existing tweet", + parameters: [ + { + name: "tweet_id", + type: "string", + description: "ID of the tweet to reply to", + required: true, + }, + { + name: "response_text", + type: "string", + description: "Content of the reply tweet", + required: true, + }, + ], + }, + { + name: "createAndPostTwitterThread", + description: "Create and post a thread of multiple tweets", + parameters: [ + { + name: "thread", + type: "string[]", + description: "Array of tweet contents that will form the thread", + required: true, + }, + ], + }, + { + name: "followXUserFromUsername", + description: "Follow a Twitter user by their username", + parameters: [ + { + name: "username", + type: "string", + description: "Username of the account to follow", + required: true, + }, + ], + }, + { + name: "getLastUserTweet", + description: "Retrieve the most recent tweet from a specified user", + parameters: [ + { + name: "account_name", + type: "string", + description: "Username of the account to get the latest tweet from", + required: true, + }, + ], + }, + { + name: "getLastTweetsOptions", + description: "Search and retrieve tweets based on a query", + parameters: [ + { + name: "query", + type: "string", + description: "Search query for finding tweets", + required: true, + }, + { + name: "maxTweets", + type: "number", + description: "Maximum number of tweets to retrieve", + required: true, + }, + ], + }, + { + name: "getLastTweetsFromUser", + description: "Retrieve recent tweets from a specified user", + parameters: [ + { + name: "username", + type: "string", + description: "Username of the account to get tweets from", + required: true, + }, + { + name: "maxTweets", + type: "number", + description: "Maximum number of tweets to retrieve", + required: false, + }, + ], + }, + { + name: "getLastTweetsAndRepliesFromUser", + description: "Retrieve recent tweets and replies from a specified user", + parameters: [ + { + name: "username", + type: "string", + description: "Username of the account to get tweets and replies from", + required: true, + }, + { + name: "maxTweets", + type: "number", + description: "Maximum number of tweets and replies to retrieve", + required: false, + }, + ], + }, + { + name: "getTwitterUserIdFromUsername", + description: "Get the Twitter user ID for a given username", + parameters: [ + { + name: "username", + type: "string", + description: "Username to get the ID for", + required: true, + }, + ], + }, + { + name: "getTwitterProfileFromUsername", + description: "Get the Twitter profile information for a given username", + parameters: [ + { + name: "username", + type: "string", + description: "Username to get the profile information for", + required: true, + }, + ], + }, + ], +}; + +const discordPlugin: Plugin = { + id: "1e489b06-d538-4e29-8412-2e4724a777e3", + name: "Discord", + description: "Interact with Discord", + image: "/logos/discord.png", + actions: [ + { + name: "DiscordChannelSearchTool", + description: "", + parameters: [], + }, + { + name: "DiscordGetGuildsTool", + description: "", + parameters: [], + }, + { + name: "DiscordGetMessagesTool", + description: "", + parameters: [], + }, + { + name: "DiscordGetTextChannelsTool", + description: "", + parameters: [], + }, + { + name: "DiscordSendMessagesTool", + description: "", + parameters: [], + }, + ], +}; + +const telegramPlugin: Plugin = { + id: "297bf546-ba26-4556-a65c-2317ba710d32", + name: "Telegram", + description: "", + image: "/logos/telegram.png", + actions: [], +}; + +const duckduckgoPlugin: Plugin = { + id: "544bb4dd-4c2f-42da-95be-cbbc86f0585e", + name: "Duckduckgo", + description: + "A plugin that performs web searches using DuckDuckGo's search engine, as part of LangChain tools.", + image: "/logos/duckduckgo.png", + actions: [ + { + name: "Invoke", + description: "Perform a search query using DuckDuckGo", + parameters: [ + { + name: "input", + type: "string", + description: "The search query to execute", + required: true, + }, + ], + }, + ], +}; + +const dallEPlugin: Plugin = { + id: "68290790-695f-4aaa-bb8c-95583899b47a", + name: "Dall-E", + description: + "A powerful AI image generation plugin that creates unique images from textual description, as part of LangChain tools.", + image: "/logos/dallE.png", + actions: [ + { + name: "Invoke", + description: + "Generate an image based on a text prompt and return its URL", + parameters: [ + { + name: "input", + type: "string", + description: "Text description of the image you want to generate", + required: true, + }, + ], + }, + ], +}; + +const gmailPlugin: Plugin = { + id: "0a463a27-f236-4f2a-88f5-ab6c4a4da9a9", + name: "Gmail", + description: + "Interact with Gmail to manage emails, drafts, and threads, as part of LangChain tools.", + image: "/logos/gmail.png", + actions: [ + { + name: "GmailCreateDraft", + description: "", + parameters: [], + }, + { + name: "GmailGetMessage", + description: "", + parameters: [], + }, + { + name: "GmailGetThread", + description: "", + parameters: [], + }, + { + name: "GmailSearch", + description: "", + parameters: [], + }, + { + name: "GmailSendMessage", + description: "", + parameters: [], + }, + ], +}; + +const gcalendarPlugin: Plugin = { + id: "3a15ea40-0211-48c9-a3a8-1b9c92502ab6", + name: "Google Calendar", + description: + "Manage Google Calendar events, schedules, and calendars with features for creating, updating, and querying calendar data, as part of LangChain tools.", + image: "/logos/gcalendar.png", + actions: [ + { + name: "GoogleCalendarCreateTool", + description: "", + parameters: [], + }, + { + name: "GoogleCalendarViewTool", + description: "", + parameters: [], + }, + ], +}; + +const searchapiPlugin: Plugin = { + id: "fe276fc9-3b3d-438d-bb4f-b613aef97531", + name: "Search API", + description: + "Search and retrieve current news articles from various sources using Google News engine, with support for filtering, sorting, and customized results, as part of LangChain tools.", + image: "/logos/searchapi.png", + actions: [], +}; + +const wikipediaPlugin: Plugin = { + id: "c36dd777-e209-4c7d-b60c-57003c53d9de", + name: "Wikipedia", + description: + "Search and retrieve information from Wikipedia, including articles, summaries, and related content, as part of LangChain tools.", + image: "/logos/wikipedia.png", + actions: [], +}; + +const coinmarketcapPlugin: Plugin = { + id: "22caebb4-27ec-425a-9868-bbf15e381249", + name: "CoinMarketCap", + description: "", + image: "/logos/coinmarketcap.png", + actions: [], +}; + +const atlanticPlugin: Plugin = { + id: "abd3235d-67d0-4a33-a506-00fd5811481f", + name: "Atlantic", + description: + "A plugin for interacting with Atlantic's proof generation and verification services", + image: "/logos/atlantic.png", + actions: [ + { + name: "getProof", + description: "Generate a proof by uploading a ZIP file to Atlantic", + parameters: [ + { + name: "agent", + type: "StarknetAgentInterface", + description: "The Starknet agent interface", + required: true, + }, + { + name: "param", + type: "AtlanticParam", + description: "The Atlantic parameters, including the filename", + required: true, + }, + ], + }, + { + name: "verifyProof", + description: "Verify a proof using the Atlantic service", + parameters: [ + { + name: "agent", + type: "StarknetAgentInterface", + description: "The Starknet agent interface", + required: true, + }, + { + name: "param", + type: "AtlanticParam", + description: "The Atlantic parameters, including the filename", + required: true, + }, + ], + }, + ], +}; + +const argentxPlugin: Plugin = { + id: "4d3e0dc1-c027-491c-8d50-a337a38ec10d", + name: "Argent X", + description: "", + image: "/logos/argentx.png", + actions: [], +}; + +const openzeppelinPlugin: Plugin = { + id: "0a0d8122-0fa7-4278-b207-1ea0277e99ed", + name: "OpenZeppelin", + description: "", + image: "/logos/openzeppelin.png", + actions: [], +}; + +const okxPlugin: Plugin = { + id: "e9e7054e-e3b1-4b9a-ae69-53371e9b4a02", + name: "Okx", + description: "", + image: "/logos/okx.png", + actions: [], +}; + +const braavosPlugin: Plugin = { + id: "ae0057b0-e6e7-40bc-a22f-6afa5addb57a", + name: "Braavos", + description: "", + image: "/logos/braavos.png", + actions: [], +}; + +const pragmaPlugin: Plugin = { + id: "f5ed5517-267b-4d4e-b4ba-1dab110d6dbd", + name: "Pragma", + description: "", + image: "/logos/pragma.png", + actions: [], +}; + +const madaraPlugin: Plugin = { + id: "62121657-9286-4002-ab6d-5c984232477a", + name: "Madara", + description: "", + image: "/logos/madara.png", + actions: [], +}; + +const fibrousPlugin: Plugin = { + id: "cc0f610c-29c4-4377-a51c-20f31838df71", + name: "Fibrous", + description: "", + image: "/logos/fibrous.png", actions: [], }; export const allPlugins: Array = [ + corePlugin, + argentxPlugin, + braavosPlugin, + openzeppelinPlugin, + okxPlugin, unruggablePlugin, vesuPlugin, avnuPlugin, @@ -270,4 +699,18 @@ export const allPlugins: Array = [ dexscreenerPlugin, artpeacePlugin, twitterPlugin, + discordPlugin, + telegramPlugin, + duckduckgoPlugin, + dallEPlugin, + gmailPlugin, + gcalendarPlugin, + wikipediaPlugin, + searchapiPlugin, + atlanticPlugin, + coinmarketcapPlugin, + + pragmaPlugin, + madaraPlugin, + fibrousPlugin, ]; diff --git a/public/logos/argentx.png b/public/logos/argentx.png new file mode 100644 index 0000000..64656f3 Binary files /dev/null and b/public/logos/argentx.png differ diff --git a/public/logos/atlantic.png b/public/logos/atlantic.png new file mode 100644 index 0000000..316b4df Binary files /dev/null and b/public/logos/atlantic.png differ diff --git a/public/logos/avnu.png b/public/logos/avnu.png index f0a2fae..a077e98 100644 Binary files a/public/logos/avnu.png and b/public/logos/avnu.png differ diff --git a/public/logos/braavos.png b/public/logos/braavos.png new file mode 100644 index 0000000..dfefb72 Binary files /dev/null and b/public/logos/braavos.png differ diff --git a/public/logos/coinmarketcap.png b/public/logos/coinmarketcap.png new file mode 100644 index 0000000..97f4864 Binary files /dev/null and b/public/logos/coinmarketcap.png differ diff --git a/public/logos/dallE.png b/public/logos/dallE.png new file mode 100644 index 0000000..953f130 Binary files /dev/null and b/public/logos/dallE.png differ diff --git a/public/logos/discord.png b/public/logos/discord.png new file mode 100644 index 0000000..c71fe21 Binary files /dev/null and b/public/logos/discord.png differ diff --git a/public/logos/duckduckgo.png b/public/logos/duckduckgo.png new file mode 100644 index 0000000..8fced73 Binary files /dev/null and b/public/logos/duckduckgo.png differ diff --git a/public/logos/fibrous.png b/public/logos/fibrous.png new file mode 100644 index 0000000..7fc3969 Binary files /dev/null and b/public/logos/fibrous.png differ diff --git a/public/logos/gcalendar.png b/public/logos/gcalendar.png new file mode 100644 index 0000000..d3da9ea Binary files /dev/null and b/public/logos/gcalendar.png differ diff --git a/public/logos/gmail.png b/public/logos/gmail.png new file mode 100644 index 0000000..2a77496 Binary files /dev/null and b/public/logos/gmail.png differ diff --git a/public/logos/madara.png b/public/logos/madara.png new file mode 100644 index 0000000..5419d31 Binary files /dev/null and b/public/logos/madara.png differ diff --git a/public/logos/okx.png b/public/logos/okx.png new file mode 100644 index 0000000..66d4cb6 Binary files /dev/null and b/public/logos/okx.png differ diff --git a/public/logos/openzeppelin.png b/public/logos/openzeppelin.png new file mode 100644 index 0000000..fbd2955 Binary files /dev/null and b/public/logos/openzeppelin.png differ diff --git a/public/logos/pragma.png b/public/logos/pragma.png new file mode 100644 index 0000000..d342724 Binary files /dev/null and b/public/logos/pragma.png differ diff --git a/public/logos/searchapi.png b/public/logos/searchapi.png new file mode 100644 index 0000000..8d00ef0 Binary files /dev/null and b/public/logos/searchapi.png differ diff --git a/public/logos/starknet.png b/public/logos/starknet.png new file mode 100644 index 0000000..e12aa5b Binary files /dev/null and b/public/logos/starknet.png differ diff --git a/public/logos/telegram.png b/public/logos/telegram.png new file mode 100644 index 0000000..f99d5d3 Binary files /dev/null and b/public/logos/telegram.png differ diff --git a/public/logos/twitter.png b/public/logos/twitter.png index 3240f55..d26d1eb 100644 Binary files a/public/logos/twitter.png and b/public/logos/twitter.png differ diff --git a/public/logos/wikipedia.png b/public/logos/wikipedia.png new file mode 100644 index 0000000..7e9ab8c Binary files /dev/null and b/public/logos/wikipedia.png differ diff --git a/src/app/plugins/page.tsx b/src/app/plugins/page.tsx index 9050690..5a6d853 100644 --- a/src/app/plugins/page.tsx +++ b/src/app/plugins/page.tsx @@ -39,7 +39,7 @@ export default function HomePage() { y: windowSize.height / 2, }); const [dragPosition, setDragPosition] = useState({ - x: -windowSize.width * 0.025, + x: 0, y: 0, }); const [isDragging, setIsDragging] = useState(false); @@ -53,7 +53,10 @@ export default function HomePage() { useEffect(() => { setIsClient(true); - + setDragPosition({ + x: -window.innerWidth * 0.025, + y: 0, + }); const handleResize = () => { setWindowSize({ width: window.innerWidth, height: window.innerHeight }); }; @@ -187,7 +190,7 @@ export default function HomePage() {
{/* Draggable Grid */}