From f68cf6dd9b855b0d30b3290818a1786c3270a8d8 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Tue, 28 Jan 2025 19:24:11 +0000 Subject: [PATCH 1/8] docs: update icon and banner size requirements in README.md - Icon: Must be 1:1 ratio, at least 80x80px - Banner: Must be 16:9 ratio, at least 1200x676px Co-Authored-By: Nicolas Arqueros --- README.md | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d2d3ec5d..cbc41389 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ A collection of official tools for Shinkai, providing various functionalities fr ## Overview -This repository hosts a suite of tools designed to work with Shinkai's infrastructure +This repository hosts a suite of tools designed to work with Shinkai's infrastructure. Each tool is built to provide specific functionality while maintaining security and reliability through Shinkai's sandboxed environment. ## Available Tools @@ -26,6 +26,60 @@ Currently available tools include: And more! +## Tool Spotlight: DuckDuckGo Search + +The DuckDuckGo Search tool demonstrates the capabilities and structure of a Shinkai tool: + +### Functionality +- Performs web searches using DuckDuckGo +- Supports both API-based and browser-based search methods +- Returns structured results with titles, descriptions, and URLs + +### Implementation +- Primary search using DuckDuckGo's API +- Fallback to Puppeteer-based web scraping +- Configurable Chrome path for browser automation + +### Required Configuration +```json +{ + "chromePath": "Optional path to Chrome executable" +} +``` + +### Input Parameters +```json +{ + "message": "Your search query string" +} +``` + +### Output Format +```json +{ + "message": "[{\"title\": \"Result Title\", \"description\": \"Result Description\", \"url\": \"https://result.url\"}]", + "puppeteer": false +} +``` + +## Tool Development Requirements + +### Required Files +1. `metadata.json`: Tool configuration and interface definition +2. `tool.ts` or `tool.py`: Implementation code +3. `README.md`: Documentation and usage instructions + +### Required Assets +1. Icon Image + - Dimensions: Must be 1:1 ratio, at least 80x80 pixels + - Format: PNG + - Purpose: Tool identification in UI + +2. Banner Image + - Dimensions: Must be 16:9 ratio, at least 1200x676 pixels + - Format: PNG + - Purpose: Visual representation in store + ## Project Structure ``` tools/ From 43adda31b8e37f443286b8898830c6320c6faad3 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Tue, 28 Jan 2025 19:45:49 +0000 Subject: [PATCH 2/8] docs: update tool list with summaries and restructure tool structure section Co-Authored-By: Nicolas Arqueros --- README.md | 118 ++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 75 insertions(+), 43 deletions(-) diff --git a/README.md b/README.md index cbc41389..9b6839f9 100644 --- a/README.md +++ b/README.md @@ -10,57 +10,89 @@ This repository hosts a suite of tools designed to work with Shinkai's infrastru Currently available tools include: -### 1. Email IMAP Fetcher -- Fetches emails from an IMAP server -- Returns subject, date, sender, and text content -- Secure email handling - -### 2. Email Sender -- Sends emails using SMTP -- Simple and reliable email dispatch - -### 3. Smart Search -- Performs intelligent query optimization -- Returns comprehensive answers with sources -- Advanced search capabilities - -And more! - -## Tool Spotlight: DuckDuckGo Search - -The DuckDuckGo Search tool demonstrates the capabilities and structure of a Shinkai tool: - -### Functionality -- Performs web searches using DuckDuckGo -- Supports both API-based and browser-based search methods -- Returns structured results with titles, descriptions, and URLs - -### Implementation -- Primary search using DuckDuckGo's API -- Fallback to Puppeteer-based web scraping -- Configurable Chrome path for browser automation - -### Required Configuration +### Search & Information +- **Smart Search**: Comprehensive answer generation with source citations and statement extraction +- **DuckDuckGo Search**: Web search functionality with structured results +- **Google Search**: Web search using Google's search engine +- **X/Twitter Search**: Search tweets and user information +- **YouTube Summary**: Generate summaries of YouTube video content +- **Perplexity**: AI-powered search and analysis +- **Perplexity API**: Direct integration with Perplexity's API + +### Email & Communication +- **Email IMAP Fetcher**: Secure email retrieval from IMAP servers +- **Email Sender**: SMTP-based email dispatch service +- **Email Responder**: Automated email response generation with context awareness +- **Twitter Post**: Post updates to X/Twitter platform + +### File & Data Management +- **File Read**: Secure file reading operations +- **File Write**: File creation and update capabilities +- **File Update**: Modify existing file contents +- **Memory**: SQLite-based memory storage and retrieval +- **Download Page**: Web page content retrieval + +### Blockchain & Crypto +- **Coinbase Call Faucet**: Interact with Coinbase faucet +- **Coinbase Create Wallet**: Wallet creation functionality +- **Coinbase Get Balance**: Check wallet balances +- **Coinbase Get My Address**: Retrieve wallet addresses +- **Coinbase Get Transactions**: View transaction history +- **Coinbase Send TX**: Execute transactions + +### Media & Content +- **Meme Generator**: Create custom meme images +- **Text-to-Audio Kokoro**: Convert text to audio using Kokoro + +## Tool Structure and Required Files + +Every Shinkai tool requires specific files to function properly. Here's a detailed look at each required file: + +### icon.png +- Square image in PNG format (1:1 ratio) +- Minimum dimensions: 80x80 pixels +- Used for tool identification in the Shinkai UI +- Example: A distinctive icon representing the tool's primary function + +### metadata.json +- Defines tool configuration and interface +- Contains version, name, description, and author +- Specifies input parameters and output format +- Example: ```json { - "chromePath": "Optional path to Chrome executable" + "version": "1.0.0", + "name": "Example Tool", + "description": "Brief description of the tool's purpose", + "parameters": { + "type": "object", + "properties": { + "input": { + "type": "string", + "description": "Description of the input" + } + } + } } ``` -### Input Parameters -```json -{ - "message": "Your search query string" +### tool.ts or tool.py +- Main implementation file (TypeScript or Python) +- Contains the core logic and functionality +- Exports a default function that processes inputs +- Example: +```typescript +export default async function(input: string): Promise { + // Tool implementation + return processedResult; } ``` -### Output Format -```json -{ - "message": "[{\"title\": \"Result Title\", \"description\": \"Result Description\", \"url\": \"https://result.url\"}]", - "puppeteer": false -} -``` +### README.md +- Documentation for tool usage and setup +- Installation and configuration instructions +- Examples of input/output formats +- Any additional requirements or dependencies ## Tool Development Requirements From 04f8febea59bd47e2fa6b62b47368d36f145e804 Mon Sep 17 00:00:00 2001 From: Guillermo Valin <34345309+guillevalin@users.noreply.github.com> Date: Tue, 28 Jan 2025 14:56:07 -0500 Subject: [PATCH 3/8] Update README.md --- README.md | 31 +++++++++---------------------- 1 file changed, 9 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 9b6839f9..21f75877 100644 --- a/README.md +++ b/README.md @@ -51,9 +51,15 @@ Every Shinkai tool requires specific files to function properly. Here's a detail ### icon.png - Square image in PNG format (1:1 ratio) - Minimum dimensions: 80x80 pixels -- Used for tool identification in the Shinkai UI +- Used for tool identification in the Shinkai UI and Store - Example: A distinctive icon representing the tool's primary function +### banner.png +- Wide image in PNG format (16:9 ratio) +- Minimum dimensions: 1200x676 pixels +- Used for tool identification in the Shinkai UI and Store +- Example: A real world usage scenario that explains the tool benefits. + ### metadata.json - Defines tool configuration and interface - Contains version, name, description, and author @@ -94,24 +100,6 @@ export default async function(input: string): Promise { - Examples of input/output formats - Any additional requirements or dependencies -## Tool Development Requirements - -### Required Files -1. `metadata.json`: Tool configuration and interface definition -2. `tool.ts` or `tool.py`: Implementation code -3. `README.md`: Documentation and usage instructions - -### Required Assets -1. Icon Image - - Dimensions: Must be 1:1 ratio, at least 80x80 pixels - - Format: PNG - - Purpose: Tool identification in UI - -2. Banner Image - - Dimensions: Must be 16:9 ratio, at least 1200x676 pixels - - Format: PNG - - Purpose: Visual representation in store - ## Project Structure ``` tools/ @@ -119,9 +107,8 @@ tools/ │ ├── metadata.json # Tool metadata. │ ├── README.md # A description of the tool. │ └── tool.ts # The code of the tool. -├── packages/ -│ ├── tool.zip # Zipped contents of the tool. -│ └── directory.json # A listing of the available tools. +│ └── icon.png # Icon of the tool. +│ └── banner.png # Banner of the tool. ``` ## Run Tests From 4c32eb5792c7a1257eae65bcf1e898377be1fbd2 Mon Sep 17 00:00:00 2001 From: Edward Alvarado Date: Wed, 29 Jan 2025 11:03:34 -0300 Subject: [PATCH 4/8] Update .tool-dump.test.json --- tools/twitter-post/.tool-dump.test.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/twitter-post/.tool-dump.test.json b/tools/twitter-post/.tool-dump.test.json index b669008a..1f547b6d 100644 --- a/tools/twitter-post/.tool-dump.test.json +++ b/tools/twitter-post/.tool-dump.test.json @@ -1 +1 @@ -{"type":"Deno","content":[{"name":"X/Twitter Post","homepage":null,"author":"@@official.shinkai","version":"1.0.0","js_code":"import { getAccessToken } from './shinkai-local-support.ts';\n\ntype CONFIG = {};\ntype INPUTS = {\n text: string;\n};\ntype OUTPUT = {\n};\n\nasync function postTweet(bearerToken: string, text: string) {\n try {\n const url = 'https://api.x.com/2/tweets';\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Authorization': `Bearer ${bearerToken}`,\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n text\n })\n });\n\n if (!response.ok) {\n throw new Error(`Server returned ${response.status} : ${response.statusText}`);\n }\n\n const data = await response.json();\n console.log('Tweet posted:', data);\n return data;\n } catch (error) {\n console.error('Error posting tweet:', error);\n return error;\n }\n}\n\nexport async function run(config: CONFIG, inputs: INPUTS): Promise {\n const accessToken = await getAccessToken(\"twitter\");\n return await postTweet(accessToken, inputs.text) \n \n}","tools":[],"config":[],"description":"Function to post a tweet to Twitter.","keywords":["twitter","X","post","social media"],"input_args":{"type":"object","properties":{"text":{"type":"string","description":"Message to post"}},"required":[]},"output_arg":{"json":""},"activated":false,"embedding":[0.29419714,0.044715993,-0.08472824,-0.3596148,-0.36112997,0.15024751,-1.2623692,-0.121126145,0.77052677,-0.37017107,-0.16201174,0.31220248,-0.30055413,0.39176568,0.5124255,-0.26926005,0.15670618,-0.73046976,-2.2530584,0.3636606,-0.033898905,0.9498287,0.16001835,-0.06474072,-0.13535833,-0.71190935,0.5164653,-0.11643411,-1.2358605,-1.8434762,-0.11914357,0.57179314,-0.7578084,0.19929647,0.69374394,-0.022813234,-0.29951274,-0.21268031,-0.2013212,-0.009402297,-0.3158564,-0.36339867,-0.4879111,0.2831961,0.04024005,-0.5270208,-0.14752552,-0.011943791,0.3792737,0.40871114,-0.11643243,0.088049315,-0.1277782,0.4180324,-0.43636012,-0.38454044,-0.54683834,-0.78648657,-0.120501876,0.3359043,0.09091974,0.15050812,-4.006941,0.16425066,0.10323948,-0.25754064,-0.2151339,0.28914413,0.04182141,0.24908453,0.17105037,0.08708035,-0.66422164,0.06742294,0.21523958,-0.62386143,0.0935224,-0.25304973,0.53362113,0.18905556,0.5708722,0.56157213,0.048643753,0.45824477,-0.2087765,0.9702601,-0.09159906,-0.1590894,0.22805968,0.15716055,-0.34179744,0.063115366,0.594624,0.025454536,-0.4344561,-0.05217436,-0.1868218,0.34382558,-0.16016203,2.82865,0.43440056,-0.05800135,0.44138947,-0.32553622,-0.38936338,-0.6070375,-0.41922307,-0.3135796,0.108748645,-0.42694464,0.30626154,-0.10109474,-0.30872914,-0.15280795,0.1772417,-0.20734647,-0.3601042,0.52435243,0.12257256,0.81574327,-0.14413372,0.32579726,-1.0713991,-0.36330524,0.0457186,0.4830694,-0.71091473,0.08492307,0.13647038,-0.379717,0.93933016,-0.43009916,-0.41034737,-0.2428742,-0.12712874,0.3875908,-0.1668361,-0.63553226,0.22324881,-0.9516078,0.79902184,-1.7406433,0.80949867,0.19679123,0.5604219,0.4102943,-0.4029207,0.15223569,-0.23493396,0.23202801,0.22541264,0.014303759,0.21514738,0.116437525,0.9375549,0.05035751,-0.23672463,0.27270472,-0.24712498,0.29996613,-0.010596193,0.19327301,0.6766656,-0.5047528,0.19519088,-0.4474276,0.56735694,0.09896499,0.23621273,0.26490048,0.14887121,-0.34912395,-0.48643515,-0.23250854,-0.7485843,-0.137696,-0.18337977,-0.13316348,0.44284937,-0.20742796,-0.046476863,0.77154535,-0.5321926,0.014208667,0.012658723,0.26622802,0.42434698,-0.47068143,1.2717874,0.93188083,-0.18027046,1.7090449,-0.60502464,-0.36471626,-0.011204759,0.28025222,0.40935487,0.23459491,0.24156676,-0.3409424,-0.19756469,-0.3637474,0.18950611,-0.15835868,-0.54429823,0.12133555,0.6099043,0.15715697,-0.012424201,-0.29890603,0.30494294,-1.0671118,0.88555133,0.4495837,0.20615022,0.454822,-0.54320985,0.01971152,0.07012211,0.4699293,-0.36536208,0.8973122,-0.387295,-0.45881307,0.072395936,-0.33614922,-0.0725991,0.41578442,-0.06418067,-0.82547206,-0.21681076,0.8719808,0.22767767,1.4693404,0.71987325,0.2770809,-0.06354501,0.5963483,0.47952548,-0.49264014,0.011498023,0.44711232,-0.23695198,-0.15026173,0.22333407,-0.46678695,0.10244906,0.14141294,0.22144197,1.9264159,0.35488817,0.41005185,0.6202181,0.14869116,0.0139815435,-0.03291077,-2.1207616,-0.48612395,0.40433466,0.99482816,0.057316333,0.0039962977,0.75820124,-0.54542613,-0.39531094,-0.17068966,-0.20408405,-0.15370443,-0.110939845,-0.46126443,-0.81662947,0.7300637,0.11019997,-0.09730152,0.27788624,-0.14311525,-0.1176595,-0.13340983,-0.447568,-0.28585696,-0.47312766,0.06296199,0.40357333,0.056495488,-0.32727665,-0.54304916,-0.12912714,-0.18226904,0.50688875,-0.17452028,0.46717507,-0.5643217,-0.32895708,0.68992907,2.2128012,0.43460926,0.46618843,0.3944058,-0.00062801363,-0.21960413,-0.40231666,-0.13423616,-0.41995904,-0.591948,-0.9467548,-0.61205685,-0.019867279,-1.2693332,-0.07228962,-0.37074643,0.7909676,0.21913329,0.24579507,-0.21514991,0.64402825,-0.3345985,-0.38395765,0.31597155,0.16844665,-1.744025,0.4567633,0.48296988,-0.19717345,-0.22542816,0.022329276,0.18946815,0.014143743,0.874953,-0.39511406,1.6363496,0.3868573,-0.08653911,0.37638536,0.16625756,0.76850057,0.4763102,-0.18387854,-0.13253114,-1.3588253,-0.33952194,0.39177516,1.9236274,0.08391233,0.8615971,-0.035699055,-0.31430334,-0.3715813,-1.3998227,0.31499055,-0.46776152,-0.26938713,0.29946306,-0.30137652,-0.1607413,-0.1287726,1.0444766,0.16131504,-0.5219927,0.18575463,1.7399775,0.23048593,-0.14185868,-0.16977552,-0.0639839,-0.1788536,0.073234275,-0.29821315,-0.7691495,-0.4397285,0.5939721,0.4550734,-0.30991054,-0.35431036,0.2671051,0.33360326,0.23753506,0.32892624,0.90872693,0.5848144,0.29101217,0.6047823,0.17691815,-0.9592336,-0.30221337],"result":{"type":"object","properties":{"data":{"description":"The data returned by the Twitter API","type":"string"}},"required":["data"]},"sql_tables":[],"sql_queries":[],"file_inbox":null,"oauth":null,"assets":null},false]} \ No newline at end of file +{"type":"Deno","content":[{"name":"X/Twitter Post","homepage":null,"author":"@@official.shinkai","version":"1.0.0","js_code":"import { getAccessToken } from './shinkai-local-support.ts';\n\ntype CONFIG = {};\ntype INPUTS = {\n text: string;\n};\ntype OUTPUT = {\n};\n\nasync function postTweet(bearerToken: string, text: string) {\n try {\n const url = 'https://api.x.com/2/tweets';\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Authorization': `Bearer ${bearerToken}`,\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n text\n })\n });\n\n if (!response.ok) {\n throw new Error(`Server returned ${response.status} : ${response.statusText}`);\n }\n\n const data = await response.json();\n console.log('Tweet posted:', data);\n return data;\n } catch (error) {\n console.error('Error posting tweet:', error);\n return error;\n }\n}\n\nexport async function run(config: CONFIG, inputs: INPUTS): Promise {\n const accessToken = await getAccessToken(\"twitter\");\n return await postTweet(accessToken, inputs.text) \n \n}","tools":[],"config":[],"description":"Function to post a tweet to Twitter.","keywords":["twitter","X","post","social media"],"input_args":{"type":"object","properties":{"text":{"type":"string","description":"Message to post"}},"required":[]},"output_arg":{"json":""},"activated":false,"embedding":[0.29419714,0.044715993,-0.08472824,-0.3596148,-0.36112997,0.15024751,-1.2623692,-0.121126145,0.77052677,-0.37017107,-0.16201174,0.31220248,-0.30055413,0.39176568,0.5124255,-0.26926005,0.15670618,-0.73046976,-2.2530584,0.3636606,-0.033898905,0.9498287,0.16001835,-0.06474072,-0.13535833,-0.71190935,0.5164653,-0.11643411,-1.2358605,-1.8434762,-0.11914357,0.57179314,-0.7578084,0.19929647,0.69374394,-0.022813234,-0.29951274,-0.21268031,-0.2013212,-0.009402297,-0.3158564,-0.36339867,-0.4879111,0.2831961,0.04024005,-0.5270208,-0.14752552,-0.011943791,0.3792737,0.40871114,-0.11643243,0.088049315,-0.1277782,0.4180324,-0.43636012,-0.38454044,-0.54683834,-0.78648657,-0.120501876,0.3359043,0.09091974,0.15050812,-4.006941,0.16425066,0.10323948,-0.25754064,-0.2151339,0.28914413,0.04182141,0.24908453,0.17105037,0.08708035,-0.66422164,0.06742294,0.21523958,-0.62386143,0.0935224,-0.25304973,0.53362113,0.18905556,0.5708722,0.56157213,0.048643753,0.45824477,-0.2087765,0.9702601,-0.09159906,-0.1590894,0.22805968,0.15716055,-0.34179744,0.063115366,0.594624,0.025454536,-0.4344561,-0.05217436,-0.1868218,0.34382558,-0.16016203,2.82865,0.43440056,-0.05800135,0.44138947,-0.32553622,-0.38936338,-0.6070375,-0.41922307,-0.3135796,0.108748645,-0.42694464,0.30626154,-0.10109474,-0.30872914,-0.15280795,0.1772417,-0.20734647,-0.3601042,0.52435243,0.12257256,0.81574327,-0.14413372,0.32579726,-1.0713991,-0.36330524,0.0457186,0.4830694,-0.71091473,0.08492307,0.13647038,-0.379717,0.93933016,-0.43009916,-0.41034737,-0.2428742,-0.12712874,0.3875908,-0.1668361,-0.63553226,0.22324881,-0.9516078,0.79902184,-1.7406433,0.80949867,0.19679123,0.5604219,0.4102943,-0.4029207,0.15223569,-0.23493396,0.23202801,0.22541264,0.014303759,0.21514738,0.116437525,0.9375549,0.05035751,-0.23672463,0.27270472,-0.24712498,0.29996613,-0.010596193,0.19327301,0.6766656,-0.5047528,0.19519088,-0.4474276,0.56735694,0.09896499,0.23621273,0.26490048,0.14887121,-0.34912395,-0.48643515,-0.23250854,-0.7485843,-0.137696,-0.18337977,-0.13316348,0.44284937,-0.20742796,-0.046476863,0.77154535,-0.5321926,0.014208667,0.012658723,0.26622802,0.42434698,-0.47068143,1.2717874,0.93188083,-0.18027046,1.7090449,-0.60502464,-0.36471626,-0.011204759,0.28025222,0.40935487,0.23459491,0.24156676,-0.3409424,-0.19756469,-0.3637474,0.18950611,-0.15835868,-0.54429823,0.12133555,0.6099043,0.15715697,-0.012424201,-0.29890603,0.30494294,-1.0671118,0.88555133,0.4495837,0.20615022,0.454822,-0.54320985,0.01971152,0.07012211,0.4699293,-0.36536208,0.8973122,-0.387295,-0.45881307,0.072395936,-0.33614922,-0.0725991,0.41578442,-0.06418067,-0.82547206,-0.21681076,0.8719808,0.22767767,1.4693404,0.71987325,0.2770809,-0.06354501,0.5963483,0.47952548,-0.49264014,0.011498023,0.44711232,-0.23695198,-0.15026173,0.22333407,-0.46678695,0.10244906,0.14141294,0.22144197,1.9264159,0.35488817,0.41005185,0.6202181,0.14869116,0.0139815435,-0.03291077,-2.1207616,-0.48612395,0.40433466,0.99482816,0.057316333,0.0039962977,0.75820124,-0.54542613,-0.39531094,-0.17068966,-0.20408405,-0.15370443,-0.110939845,-0.46126443,-0.81662947,0.7300637,0.11019997,-0.09730152,0.27788624,-0.14311525,-0.1176595,-0.13340983,-0.447568,-0.28585696,-0.47312766,0.06296199,0.40357333,0.056495488,-0.32727665,-0.54304916,-0.12912714,-0.18226904,0.50688875,-0.17452028,0.46717507,-0.5643217,-0.32895708,0.68992907,2.2128012,0.43460926,0.46618843,0.3944058,-0.00062801363,-0.21960413,-0.40231666,-0.13423616,-0.41995904,-0.591948,-0.9467548,-0.61205685,-0.019867279,-1.2693332,-0.07228962,-0.37074643,0.7909676,0.21913329,0.24579507,-0.21514991,0.64402825,-0.3345985,-0.38395765,0.31597155,0.16844665,-1.744025,0.4567633,0.48296988,-0.19717345,-0.22542816,0.022329276,0.18946815,0.014143743,0.874953,-0.39511406,1.6363496,0.3868573,-0.08653911,0.37638536,0.16625756,0.76850057,0.4763102,-0.18387854,-0.13253114,-1.3588253,-0.33952194,0.39177516,1.9236274,0.08391233,0.8615971,-0.035699055,-0.31430334,-0.3715813,-1.3998227,0.31499055,-0.46776152,-0.26938713,0.29946306,-0.30137652,-0.1607413,-0.1287726,1.0444766,0.16131504,-0.5219927,0.18575463,1.7399775,0.23048593,-0.14185868,-0.16977552,-0.0639839,-0.1788536,0.073234275,-0.29821315,-0.7691495,-0.4397285,0.5939721,0.4550734,-0.30991054,-0.35431036,0.2671051,0.33360326,0.23753506,0.32892624,0.90872693,0.5848144,0.29101217,0.6047823,0.17691815,-0.9592336,-0.30221337],"result":{"type":"object","properties":{"data":{"description":"The data returned by the Twitter API","type":"string"}},"required":["data"]},"sql_tables":[],"sql_queries":[],"file_inbox":null,"oauth":[{"name":"twitter","authorizationUrl":"https://twitter.com/i/oauth2/authorize","tokenUrl":"https://api.x.com/2/oauth2/token","clientId":"","clientSecret":"","redirectUrl":"https://secrets.shinkai.com/redirect","version":"2.0","responseType":"code","scopes":["tweet.read","tweet.write","users.read","offline.access"],"pkceType":"plain","refreshToken":"true"}],"assets":null},false]} From f4846680ca5cff040e456996ee8b20d8dec9b926 Mon Sep 17 00:00:00 2001 From: Eddie Date: Wed, 29 Jan 2025 12:15:52 -0300 Subject: [PATCH 5/8] added metadata --- scripts/build_tools/interfaces.ts | 1 + scripts/build_tools/save_tools.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/build_tools/interfaces.ts b/scripts/build_tools/interfaces.ts index 9fcdf6ac..6b0849ef 100644 --- a/scripts/build_tools/interfaces.ts +++ b/scripts/build_tools/interfaces.ts @@ -40,6 +40,7 @@ export interface Metadata { name: string; query: string; }[]; + oauth: Record; } export interface DirectoryEntry { diff --git a/scripts/build_tools/save_tools.ts b/scripts/build_tools/save_tools.ts index 082acbe1..9bb11e75 100644 --- a/scripts/build_tools/save_tools.ts +++ b/scripts/build_tools/save_tools.ts @@ -42,7 +42,7 @@ async function buildToolJson( activated: false, assets: null, file_inbox: null, - oauth: null, + oauth: metadata.oauth, output_arg: { json: "" }, author, config: metadata.configurations?.properties ? From 9ed8efd92823e510a9900ac25155e9c62befb99d Mon Sep 17 00:00:00 2001 From: Eddie Date: Wed, 29 Jan 2025 12:21:51 -0300 Subject: [PATCH 6/8] update oauth --- scripts/build_tools/interfaces.ts | 2 +- tools/email-responder/metadata.json | 2 +- tools/file-read/metadata.json | 2 +- tools/file-update/metadata.json | 2 +- tools/file-write/metadata.json | 2 +- tools/meme-generator/metadata.json | 2 +- tools/memory/metadata.json | 2 +- tools/youtube-summary/metadata.json | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/scripts/build_tools/interfaces.ts b/scripts/build_tools/interfaces.ts index 6b0849ef..e13f71ce 100644 --- a/scripts/build_tools/interfaces.ts +++ b/scripts/build_tools/interfaces.ts @@ -40,7 +40,7 @@ export interface Metadata { name: string; query: string; }[]; - oauth: Record; + oauth: Record[] | null; } export interface DirectoryEntry { diff --git a/tools/email-responder/metadata.json b/tools/email-responder/metadata.json index 61406c19..a2c066e3 100644 --- a/tools/email-responder/metadata.json +++ b/tools/email-responder/metadata.json @@ -94,5 +94,5 @@ "local:::__official_shinkai:::shinkai_llm_prompt_processor", "local:::__official_shinkai:::memory_management" ], - "oauth": [] + "oauth": null } diff --git a/tools/file-read/metadata.json b/tools/file-read/metadata.json index 7d66e92e..db8e6800 100644 --- a/tools/file-read/metadata.json +++ b/tools/file-read/metadata.json @@ -42,5 +42,5 @@ "sqlTables": [], "sqlQueries": [], "tools": [], - "oauth": [] + "oauth": null } diff --git a/tools/file-update/metadata.json b/tools/file-update/metadata.json index 2b34855f..81fe2e47 100644 --- a/tools/file-update/metadata.json +++ b/tools/file-update/metadata.json @@ -53,5 +53,5 @@ "tools": [ "local:::__official_shinkai:::shinkai_llm_prompt_processor" ], - "oauth": [] + "oauth": null } diff --git a/tools/file-write/metadata.json b/tools/file-write/metadata.json index 08538c76..039d4395 100644 --- a/tools/file-write/metadata.json +++ b/tools/file-write/metadata.json @@ -48,5 +48,5 @@ "sqlTables": [], "sqlQueries": [], "tools": [], - "oauth": [] + "oauth": null } diff --git a/tools/meme-generator/metadata.json b/tools/meme-generator/metadata.json index 44c1a723..41fb0279 100644 --- a/tools/meme-generator/metadata.json +++ b/tools/meme-generator/metadata.json @@ -57,5 +57,5 @@ "local:::__official_shinkai:::shinkai_llm_prompt_processor", "local:::__official_shinkai:::smart_search_engine" ], - "oauth": [] + "oauth": null } diff --git a/tools/memory/metadata.json b/tools/memory/metadata.json index ef94143f..b407cfd0 100644 --- a/tools/memory/metadata.json +++ b/tools/memory/metadata.json @@ -82,5 +82,5 @@ "local:::__official_shinkai:::shinkai_sqlite_query_executor", "local:::__official_shinkai:::shinkai_llm_prompt_processor" ], - "oauth": [] + "oauth": null } diff --git a/tools/youtube-summary/metadata.json b/tools/youtube-summary/metadata.json index 55c54a3b..3d0db687 100644 --- a/tools/youtube-summary/metadata.json +++ b/tools/youtube-summary/metadata.json @@ -49,5 +49,5 @@ "tools": [ "local:::__official_shinkai:::shinkai_llm_prompt_processor" ], - "oauth": [] + "oauth": null } From 0b47f4a1f540411600311c34075dfc4cd1d6faa5 Mon Sep 17 00:00:00 2001 From: Nico Arqueros Date: Wed, 29 Jan 2025 18:22:04 -0600 Subject: [PATCH 7/8] fix text to audio --- tools/text-to-audio-kokoro/metadata.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/text-to-audio-kokoro/metadata.json b/tools/text-to-audio-kokoro/metadata.json index 461beab5..a3075e17 100644 --- a/tools/text-to-audio-kokoro/metadata.json +++ b/tools/text-to-audio-kokoro/metadata.json @@ -29,8 +29,8 @@ }, "parameters": { "properties": { - "input_file": { - "description": "Path to the input text file (.txt or .md)", + "text": { + "description": "text to convert to audio", "type": "string" }, "voice": { @@ -58,7 +58,7 @@ } }, "required": [ - "input_file" + "text" ], "type": "object" }, From e01c2080ef1ba69b0fc54fb706dc39c65cb41306 Mon Sep 17 00:00:00 2001 From: Guillermo Valin Date: Thu, 30 Jan 2025 10:07:23 -0300 Subject: [PATCH 8/8] Update CI/CD --- .github/workflows/build_tools.yaml | 7 +++---- .github/workflows/run_tests.yaml | 6 +++--- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build_tools.yaml b/.github/workflows/build_tools.yaml index 477971df..81aad4fe 100644 --- a/.github/workflows/build_tools.yaml +++ b/.github/workflows/build_tools.yaml @@ -4,12 +4,12 @@ on: workflow_dispatch: inputs: node_version: - description: 'Shinkai Node version to use (e.g. 0.9.7)' + description: 'Shinkai Node version to use (e.g. 0.9.8)' required: true type: string - default: "0.9.7" + default: "0.9.8" use_dev_prefix: - description: 'Use dev prefix for download URL (e.g. https://download.shinkai.com/dev-tools-0.9.7)' + description: 'Use dev prefix for download URL (e.g. https://download.shinkai.com/dev-tools-0.9.7). If false, it will build for production (e.g. https://download.shinkai.com/tools-0.9.7)' required: true type: boolean default: true @@ -17,7 +17,6 @@ on: description: 'Have you run tests successfully?' required: true type: boolean - default: false jobs: build_tools: diff --git a/.github/workflows/run_tests.yaml b/.github/workflows/run_tests.yaml index 0892265d..851a27c4 100644 --- a/.github/workflows/run_tests.yaml +++ b/.github/workflows/run_tests.yaml @@ -10,10 +10,10 @@ on: workflow_dispatch: inputs: node_version: - description: 'Shinkai Node version to use (e.g. 0.9.7)' + description: 'Shinkai Node version to use (e.g. 0.9.8)' required: true type: string - default: "0.9.7" + default: "0.9.8" jobs: run_tests: @@ -60,7 +60,7 @@ jobs: SHINKAI_STORE_ADDR: "https://shinkai-store-302883622007.us-central1.run.app" SHINKAI_STORE_TOKEN: ${{ secrets.SHINKAI_STORE_TOKEN }} USE_DOCKER: true - SHINKAI_NODE_IMAGE: "dcsparkdevops/shinkai-node:${{ inputs.node_version || 'latest' }}" + SHINKAI_NODE_IMAGE: "dcsparkdevops/shinkai-node:${{ inputs.node_version || 'debug-latest' }}" run: | ./scripts/run_node.sh & timeout 60 bash -c 'until curl -s --location "$SHINKAI_NODE_ADDR/v2/health_check" | jq -e ".status == \"ok\"" > /dev/null; do sleep 1; done'