From c39f8272a4703800298e16aa4f3ebaad2ff8deaa Mon Sep 17 00:00:00 2001 From: Simantak Dabhade Date: Mon, 9 Feb 2026 20:57:25 -0800 Subject: [PATCH 1/2] changing mino.ai calls to the agent.tinyfish.ai calls --- README.md | 6 +++--- anime-watch-hub/README.md | 2 +- anime-watch-hub/app/api/check-platform/route.ts | 2 +- anime-watch-hub/docs/mino-api-integration.md | 4 ++-- bestbet/README.md | 2 +- bestbet/app/webagent.ts | 2 +- competitor-analysis/app/api/scrape-pricing/route.ts | 2 +- competitor-analysis/lib/mino-client.ts | 2 +- fast-qa/lib/mino-client.ts | 2 +- loan-decision-copilot/README.md | 2 +- loan-decision-copilot/docs/MINO_API_DOCUMENTATION (1).md | 4 ++-- .../supabase/functions/analyze-loan/index.ts | 2 +- research-sentry/README.md | 2 +- research-sentry/lib/mino.ts | 4 ++-- research-sentry/voice-research-project.txt | 2 +- stay-scout-hub/README.md | 2 +- stay-scout-hub/docs/MINO_AREA_RESEARCH_API.md | 4 ++-- stay-scout-hub/supabase/functions/check-platform/index.ts | 2 +- stay-scout-hub/supabase/functions/reasearch-area/index.ts | 2 +- summer-school-finder/README.md | 2 +- .../supabase/functions/mino-search-stream/index.ts | 2 +- .../supabase/functions/mino-search/index.ts | 2 +- tinyskills/lib/mino-client.ts | 2 +- 23 files changed, 29 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index fb8002e..2cdd1a8 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ Here is how to run a simple automation agent: #### cURL ```bash -curl -N -X POST https://mino.ai/v1/automation/run-sse \ +curl -N -X POST https://agent.tinyfish.ai/v1/automation/run-sse \ -H "X-API-Key: $MINO_API_KEY" \ -H "Content-Type: application/json" \ -d '{ @@ -74,7 +74,7 @@ import os import requests response = requests.post( - "https://mino.ai/v1/automation/run-sse", + "https://agent.tinyfish.ai/v1/automation/run-sse", headers={ "X-API-Key": os.getenv("MINO_API_KEY"), "Content-Type": "application/json", @@ -97,7 +97,7 @@ for line in response.iter_lines(): #### TypeScript ```typescript -const response = await fetch("https://mino.ai/v1/automation/run-sse", { +const response = await fetch("https://agent.tinyfish.ai/v1/automation/run-sse", { method: "POST", headers: { "X-API-Key": process.env.MINO_API_KEY, diff --git a/anime-watch-hub/README.md b/anime-watch-hub/README.md index 588d6de..9ce72f8 100644 --- a/anime-watch-hub/README.md +++ b/anime-watch-hub/README.md @@ -28,7 +28,7 @@ The application employs a two-stage process. After getting search URLs from Gemi ```typescript -const response = await fetch("https://mino.ai/v1/automation/run-sse", { +const response = await fetch("https://agent.tinyfish.ai/v1/automation/run-sse", { method: "POST", diff --git a/anime-watch-hub/app/api/check-platform/route.ts b/anime-watch-hub/app/api/check-platform/route.ts index dd49726..a6925e3 100644 --- a/anime-watch-hub/app/api/check-platform/route.ts +++ b/anime-watch-hub/app/api/check-platform/route.ts @@ -60,7 +60,7 @@ Return a JSON object with these fields: If the anime is NOT found or not available, set available to false and explain why in the message. If you encounter a geo-restriction or region block, mention that in the message.` - const minoResponse = await fetch('https://mino.ai/v1/automation/run-sse', { + const minoResponse = await fetch('https://agent.tinyfish.ai/v1/automation/run-sse', { method: 'POST', headers: { 'Content-Type': 'application/json', diff --git a/anime-watch-hub/docs/mino-api-integration.md b/anime-watch-hub/docs/mino-api-integration.md index fe31289..9105564 100644 --- a/anime-watch-hub/docs/mino-api-integration.md +++ b/anime-watch-hub/docs/mino-api-integration.md @@ -184,7 +184,7 @@ Return a JSON object with these fields: If the anime is NOT found or not available, set available to false and explain why in the message.`; // Call Mino API with SSE - const minoResponse = await fetch('https://mino.ai/v1/automation/run-sse', { + const minoResponse = await fetch('https://agent.tinyfish.ai/v1/automation/run-sse', { method: 'POST', headers: { 'Content-Type': 'application/json', @@ -294,7 +294,7 @@ curl -X POST https://your-app.vercel.app/api/check-platform \ #### 3. Direct Mino API Call ```bash -curl -X POST https://mino.ai/v1/automation/run-sse \ +curl -X POST https://agent.tinyfish.ai/v1/automation/run-sse \ -H "Content-Type: application/json" \ -H "X-API-Key: YOUR_MINO_API_KEY" \ -d '{ diff --git a/bestbet/README.md b/bestbet/README.md index 17ddf8c..cb75e48 100644 --- a/bestbet/README.md +++ b/bestbet/README.md @@ -14,7 +14,7 @@ The app calls the TinyFish SSE endpoint to run a web agent on each selected spor ```typescript -const response = await fetch("https://mino.ai/v1/automation/run-sse", { +const response = await fetch("https://agent.tinyfish.ai/v1/automation/run-sse", { method: "POST", headers: { "X-API-Key": process.env.NEXT_PUBLIC_MINO_API_KEY, diff --git a/bestbet/app/webagent.ts b/bestbet/app/webagent.ts index 75dba22..bf3a9e0 100644 --- a/bestbet/app/webagent.ts +++ b/bestbet/app/webagent.ts @@ -1,4 +1,4 @@ -const ENDPOINT = "https://mino.ai/v1/automation/run-sse"; +const ENDPOINT = "https://agent.tinyfish.ai/v1/automation/run-sse"; export type MinoSSECallbacks = { onStreamingUrl?: (url: string) => void; diff --git a/competitor-analysis/app/api/scrape-pricing/route.ts b/competitor-analysis/app/api/scrape-pricing/route.ts index a4750fe..281432f 100644 --- a/competitor-analysis/app/api/scrape-pricing/route.ts +++ b/competitor-analysis/app/api/scrape-pricing/route.ts @@ -350,7 +350,7 @@ async function scrapePricingPage( const goal = SCRAPING_GOALS[detailLevel]; console.log(`[Scrape] Using ${detailLevel} detail level for ${competitor.name}`); - const minoResponse = await fetch('https://mino.ai/v1/automation/run-sse', { + const minoResponse = await fetch('https://agent.tinyfish.ai/v1/automation/run-sse', { method: 'POST', headers: { 'X-API-Key': apiKey, diff --git a/competitor-analysis/lib/mino-client.ts b/competitor-analysis/lib/mino-client.ts index 6c8f81f..8592630 100644 --- a/competitor-analysis/lib/mino-client.ts +++ b/competitor-analysis/lib/mino-client.ts @@ -4,7 +4,7 @@ import { parseSSELine, isCompleteEvent, isErrorEvent, formatStepMessage, MinoEvent } from "./utils"; -const MINO_API_URL = "https://mino.ai/v1/automation/run-sse"; +const MINO_API_URL = "https://agent.tinyfish.ai/v1/automation/run-sse"; export interface MinoRequestConfig { url: string; diff --git a/fast-qa/lib/mino-client.ts b/fast-qa/lib/mino-client.ts index 45277d9..05f1527 100644 --- a/fast-qa/lib/mino-client.ts +++ b/fast-qa/lib/mino-client.ts @@ -4,7 +4,7 @@ import { parseSSELine, isCompleteEvent, isErrorEvent, formatStepMessage, MinoEvent } from "./utils"; -const MINO_API_URL = "https://mino.ai/v1/automation/run-sse"; +const MINO_API_URL = "https://agent.tinyfish.ai/v1/automation/run-sse"; export interface MinoRequestConfig { url: string; diff --git a/loan-decision-copilot/README.md b/loan-decision-copilot/README.md index bbf4f40..1792344 100644 --- a/loan-decision-copilot/README.md +++ b/loan-decision-copilot/README.md @@ -40,7 +40,7 @@ For each discovered bank: ```typescript -const response = await fetch("https://mino.ai/v1/automation/run-sse", { +const response = await fetch("https://agent.tinyfish.ai/v1/automation/run-sse", { method: "POST", headers: { "Content-Type": "application/json", diff --git a/loan-decision-copilot/docs/MINO_API_DOCUMENTATION (1).md b/loan-decision-copilot/docs/MINO_API_DOCUMENTATION (1).md index d9c1763..bfe8e17 100644 --- a/loan-decision-copilot/docs/MINO_API_DOCUMENTATION (1).md +++ b/loan-decision-copilot/docs/MINO_API_DOCUMENTATION (1).md @@ -74,7 +74,7 @@ LoanLens is a loan comparison application that automates the extraction of loan │ │ │ │ │ │ ┌─────────────────────────────────────────────────────────────────┐ │ │ │ │ │ MINO API (SSE Stream) │ │ │ -│ │ │ - Endpoint: https://mino.ai/v1/automation/run-sse │ │ │ +│ │ │ - Endpoint: https://agent.tinyfish.ai/v1/automation/run-sse │ │ │ │ │ │ - Browser agent navigates to URL │ │ │ │ │ │ - Extracts loan details (rates, terms, eligibility) │ │ │ │ │ │ - Streams live preview URL + status updates │ │ │ @@ -257,7 +257,7 @@ serve(async (req) => { send({ type: "STATUS", message: "Connecting to browser agent..." }); // Call Mino API with SSE streaming - const minoResponse = await fetch("https://mino.ai/v1/automation/run-sse", { + const minoResponse = await fetch("https://agent.tinyfish.ai/v1/automation/run-sse", { method: "POST", headers: { "Content-Type": "application/json", diff --git a/loan-decision-copilot/supabase/functions/analyze-loan/index.ts b/loan-decision-copilot/supabase/functions/analyze-loan/index.ts index 50e68bf..3c18f55 100644 --- a/loan-decision-copilot/supabase/functions/analyze-loan/index.ts +++ b/loan-decision-copilot/supabase/functions/analyze-loan/index.ts @@ -77,7 +77,7 @@ Be objective and factual. If information is not available, indicate "Not specifi try { send({ type: "STATUS", message: "Connecting to browser agent..." }); - const minoResponse = await fetch("https://mino.ai/v1/automation/run-sse", { + const minoResponse = await fetch("https://agent.tinyfish.ai/v1/automation/run-sse", { method: "POST", headers: { "Content-Type": "application/json", diff --git a/research-sentry/README.md b/research-sentry/README.md index 149aacd..9e651dc 100644 --- a/research-sentry/README.md +++ b/research-sentry/README.md @@ -10,7 +10,7 @@ https://voice-research.vercel.app/ ## TinyFish API usage (snippet) ```ts -const res = await fetch("https://mino.ai/v1/automation/run-sse", { +const res = await fetch("https://agent.tinyfish.ai/v1/automation/run-sse", { method: "POST", headers: { "X-API-Key": process.env.MINO_API_KEY!, diff --git a/research-sentry/lib/mino.ts b/research-sentry/lib/mino.ts index 8e9927f..4034f26 100644 --- a/research-sentry/lib/mino.ts +++ b/research-sentry/lib/mino.ts @@ -1,5 +1,5 @@ // TinyFish Web Agent Client -// Endpoint: https://mino.ai/v1/automation/run-sse +// Endpoint: https://agent.tinyfish.ai/v1/automation/run-sse export async function runMinoAutomation( url: string, @@ -23,7 +23,7 @@ export async function runMinoAutomation( const timeout = timeoutMs ? setTimeout(() => controller.abort(), timeoutMs) : null; try { - const res = await fetch('https://mino.ai/v1/automation/run-sse', { + const res = await fetch('https://agent.tinyfish.ai/v1/automation/run-sse', { method: 'POST', headers: { 'X-API-Key': apiKey, diff --git a/research-sentry/voice-research-project.txt b/research-sentry/voice-research-project.txt index 02b4926..6d93e45 100644 --- a/research-sentry/voice-research-project.txt +++ b/research-sentry/voice-research-project.txt @@ -241,7 +241,7 @@ export async function transcribeAudio(buffer: Buffer, filename = 'audio.webm') { FILE: lib/mino.ts ------------------------------------------------------------ export async function runMinoAutomation(url: string, goal: string, stealth = false) { - const res = await fetch('https://mino.ai/v1/automation/run-sse', { + const res = await fetch('https://agent.tinyfish.ai/v1/automation/run-sse', { method: 'POST', headers: { 'X-API-Key': process.env.MINO_API_KEY!, diff --git a/stay-scout-hub/README.md b/stay-scout-hub/README.md index 88efbce..1b26f69 100644 --- a/stay-scout-hub/README.md +++ b/stay-scout-hub/README.md @@ -30,7 +30,7 @@ For every suggested area, a Mino agent: ### Example Mino API Call ```ts -const response = await fetch("https://mino.ai/v1/automation/run-sse", { +const response = await fetch("https://agent.tinyfish.ai/v1/automation/run-sse", { method: "POST", headers: { "X-API-Key": process.env.MINO_API_KEY, diff --git a/stay-scout-hub/docs/MINO_AREA_RESEARCH_API.md b/stay-scout-hub/docs/MINO_AREA_RESEARCH_API.md index 19aa5b4..9a7aa36 100644 --- a/stay-scout-hub/docs/MINO_AREA_RESEARCH_API.md +++ b/stay-scout-hub/docs/MINO_AREA_RESEARCH_API.md @@ -96,7 +96,7 @@ User Request | API | Endpoint | Auth | Rate Limits | |-----|----------|------|-------------| | Gemini | `generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent` | API Key | Standard Gemini limits | -| Mino | `mino.ai/v1/automation/run-sse` | X-API-Key header | Per-account limits | +| Mino | `agent.tinyfish.ai/v1/automation/run-sse` | X-API-Key header | Per-account limits | --- @@ -370,7 +370,7 @@ async function searchHotelAreas(city: string, purpose: string) { import requests import json -MINO_API_URL = "https://mino.ai/v1/automation/run-sse" +MINO_API_URL = "https://agent.tinyfish.ai/v1/automation/run-sse" MINO_API_KEY = "your-mino-api-key" def research_area_with_mino(area_name: str, city: str, purpose: str): diff --git a/stay-scout-hub/supabase/functions/check-platform/index.ts b/stay-scout-hub/supabase/functions/check-platform/index.ts index 413200a..4ff3e8d 100644 --- a/stay-scout-hub/supabase/functions/check-platform/index.ts +++ b/stay-scout-hub/supabase/functions/check-platform/index.ts @@ -6,7 +6,7 @@ const corsHeaders = { }; const MINO_API_KEY = Deno.env.get('MINO_API_KEY'); -const MINO_API_URL = 'https://mino.ai/v1/automation/run-sse'; +const MINO_API_URL = 'https://agent.tinyfish.ai/v1/automation/run-sse'; Deno.serve(async (req) => { if (req.method === 'OPTIONS') { diff --git a/stay-scout-hub/supabase/functions/reasearch-area/index.ts b/stay-scout-hub/supabase/functions/reasearch-area/index.ts index 379dd89..ebdc650 100644 --- a/stay-scout-hub/supabase/functions/reasearch-area/index.ts +++ b/stay-scout-hub/supabase/functions/reasearch-area/index.ts @@ -6,7 +6,7 @@ const corsHeaders = { }; const MINO_API_KEY = Deno.env.get('MINO_API_KEY'); -const MINO_API_URL = 'https://mino.ai/v1/automation/run-sse'; +const MINO_API_URL = 'https://agent.tinyfish.ai/v1/automation/run-sse'; Deno.serve(async (req) => { if (req.method === 'OPTIONS') { diff --git a/summer-school-finder/README.md b/summer-school-finder/README.md index 6fbbb35..9d65c17 100644 --- a/summer-school-finder/README.md +++ b/summer-school-finder/README.md @@ -10,7 +10,7 @@ An AI-powered web app that discovers and compares summer school programs from un ## Code snippet - ```bash -const response = await fetch("https://mino.ai/v1/automation/run-sse", { +const response = await fetch("https://agent.tinyfish.ai/v1/automation/run-sse", { method: "POST", headers: { "Content-Type": "application/json", diff --git a/summer-school-finder/supabase/functions/mino-search-stream/index.ts b/summer-school-finder/supabase/functions/mino-search-stream/index.ts index e9b3da3..ab0b30a 100644 --- a/summer-school-finder/supabase/functions/mino-search-stream/index.ts +++ b/summer-school-finder/supabase/functions/mino-search-stream/index.ts @@ -21,7 +21,7 @@ serve(async (req) => { console.log(`Starting Mino SSE agent for URL: ${url}`); // Call Mino API with SSE streaming - const response = await fetch("https://mino.ai/v1/automation/run-sse", { + const response = await fetch("https://agent.tinyfish.ai/v1/automation/run-sse", { method: "POST", headers: { "Content-Type": "application/json", diff --git a/summer-school-finder/supabase/functions/mino-search/index.ts b/summer-school-finder/supabase/functions/mino-search/index.ts index 6240310..a9b5e10 100644 --- a/summer-school-finder/supabase/functions/mino-search/index.ts +++ b/summer-school-finder/supabase/functions/mino-search/index.ts @@ -21,7 +21,7 @@ serve(async (req) => { console.log(`Starting Mino agent for URL: ${url}`); // Call Mino API with SSE streaming - const response = await fetch("https://mino.ai/v1/automation/run-sse", { + const response = await fetch("https://agent.tinyfish.ai/v1/automation/run-sse", { method: "POST", headers: { "Content-Type": "application/json", diff --git a/tinyskills/lib/mino-client.ts b/tinyskills/lib/mino-client.ts index b00b020..c00be03 100644 --- a/tinyskills/lib/mino-client.ts +++ b/tinyskills/lib/mino-client.ts @@ -11,7 +11,7 @@ import { isSystemEvent, } from "./utils"; -const MINO_API_URL = "https://mino.ai/v1/automation/run-sse"; +const MINO_API_URL = "https://agent.tinyfish.ai/v1/automation/run-sse"; export interface MinoRequestConfig { url: string; From 28431110913b2976eb85134acb9ca3fe1b5b1564 Mon Sep 17 00:00:00 2001 From: Simantak Dabhade Date: Mon, 9 Feb 2026 21:03:41 -0800 Subject: [PATCH 2/2] renaming TINYFISH_API_KEY -> MINO_API_KEY --- README.md | 6 +++--- anime-watch-hub/app/api/check-platform/route.ts | 2 +- anime-watch-hub/docs/mino-api-integration.md | 6 +++--- bestbet/README.md | 4 ++-- bestbet/app/webagent.ts | 2 +- competitor-analysis/FEATURES.md | 4 ++-- competitor-analysis/README.md | 4 ++-- competitor-analysis/app/api/scrape-pricing/route.ts | 4 ++-- competitor-analysis/lib/mino-client.ts | 6 +++--- fast-qa/README.md | 2 +- fast-qa/app/api/execute-tests/route.ts | 4 ++-- fast-qa/lib/mino-client.ts | 4 ++-- loan-decision-copilot/README.md | 4 ++-- .../docs/MINO_API_DOCUMENTATION (1).md | 12 ++++++------ .../supabase/functions/analyze-loan/index.ts | 8 ++++---- research-sentry/README.md | 4 ++-- research-sentry/lib/mino.ts | 4 ++-- research-sentry/voice-research-project.txt | 6 +++--- stay-scout-hub/README.md | 6 +++--- stay-scout-hub/docs/MINO_AREA_RESEARCH_API.md | 8 ++++---- .../supabase/functions/check-platform/index.ts | 8 ++++---- .../supabase/functions/reasearch-area/index.ts | 8 ++++---- .../supabase/functions/mino-search-stream/index.ts | 8 ++++---- .../supabase/functions/mino-search/index.ts | 8 ++++---- tinyskills/README.md | 2 +- tinyskills/app/api/scrape-sources/route.ts | 2 +- 26 files changed, 68 insertions(+), 68 deletions(-) diff --git a/README.md b/README.md index 2cdd1a8..76b2955 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ Here is how to run a simple automation agent: ```bash curl -N -X POST https://agent.tinyfish.ai/v1/automation/run-sse \ - -H "X-API-Key: $MINO_API_KEY" \ + -H "X-API-Key: $TINYFISH_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "url": "https://agentql.com", @@ -76,7 +76,7 @@ import requests response = requests.post( "https://agent.tinyfish.ai/v1/automation/run-sse", headers={ - "X-API-Key": os.getenv("MINO_API_KEY"), + "X-API-Key": os.getenv("TINYFISH_API_KEY"), "Content-Type": "application/json", }, json={ @@ -100,7 +100,7 @@ for line in response.iter_lines(): const response = await fetch("https://agent.tinyfish.ai/v1/automation/run-sse", { method: "POST", headers: { - "X-API-Key": process.env.MINO_API_KEY, + "X-API-Key": process.env.TINYFISH_API_KEY, "Content-Type": "application/json", }, body: JSON.stringify({ diff --git a/anime-watch-hub/app/api/check-platform/route.ts b/anime-watch-hub/app/api/check-platform/route.ts index a6925e3..4ca5b19 100644 --- a/anime-watch-hub/app/api/check-platform/route.ts +++ b/anime-watch-hub/app/api/check-platform/route.ts @@ -19,7 +19,7 @@ export async function POST(request: NextRequest) { ) } - const apiKey = process.env.MINO_API_KEY + const apiKey = process.env.TINYFISH_API_KEY if (!apiKey) { return new Response( encoder.encode(`data: ${JSON.stringify({ type: 'ERROR', message: 'Mino API key not configured' })}\n\n`), diff --git a/anime-watch-hub/docs/mino-api-integration.md b/anime-watch-hub/docs/mino-api-integration.md index 9105564..8c03c8d 100644 --- a/anime-watch-hub/docs/mino-api-integration.md +++ b/anime-watch-hub/docs/mino-api-integration.md @@ -155,7 +155,7 @@ import { NextRequest } from 'next/server'; export async function POST(request: NextRequest) { const { animeTitle, platformName, searchUrl } = await request.json(); - const apiKey = process.env.MINO_API_KEY; + const apiKey = process.env.TINYFISH_API_KEY; const goal = `You are checking if the anime "${animeTitle}" is available to stream on ${platformName}. @@ -296,7 +296,7 @@ curl -X POST https://your-app.vercel.app/api/check-platform \ ```bash curl -X POST https://agent.tinyfish.ai/v1/automation/run-sse \ -H "Content-Type: application/json" \ - -H "X-API-Key: YOUR_MINO_API_KEY" \ + -H "X-API-Key: YOUR_TINYFISH_API_KEY" \ -d '{ "url": "https://www.crunchyroll.com/search?q=attack+on+titan", "goal": "Check if Attack on Titan is available on this platform..." @@ -441,7 +441,7 @@ data: {"type":"COMPLETE","resultJson":"{\"available\":false,\"message\":\"Attack | Variable | Description | |----------|-------------| | `GEMINI_API_KEY` | Google Gemini API key for platform URL discovery | -| `MINO_API_KEY` | Mino API key for browser automation | +| `TINYFISH_API_KEY` | Mino API key for browser automation | --- diff --git a/bestbet/README.md b/bestbet/README.md index cb75e48..6562e2a 100644 --- a/bestbet/README.md +++ b/bestbet/README.md @@ -17,7 +17,7 @@ The app calls the TinyFish SSE endpoint to run a web agent on each selected spor const response = await fetch("https://agent.tinyfish.ai/v1/automation/run-sse", { method: "POST", headers: { - "X-API-Key": process.env.NEXT_PUBLIC_MINO_API_KEY, + "X-API-Key": process.env.NEXT_PUBLIC_TINYFISH_API_KEY, "Content-Type": "application/json", }, body: JSON.stringify({ @@ -54,7 +54,7 @@ npm install 2. Create a `.env.local` file with your TinyFish API key: ``` -NEXT_PUBLIC_MINO_API_KEY=your_tinyfish_api_key_here +NEXT_PUBLIC_TINYFISH_API_KEY=your_tinyfish_api_key_here ``` 3. Start the dev server: diff --git a/bestbet/app/webagent.ts b/bestbet/app/webagent.ts index bf3a9e0..76058ed 100644 --- a/bestbet/app/webagent.ts +++ b/bestbet/app/webagent.ts @@ -13,7 +13,7 @@ export async function runMinoSSE( const response = await fetch(ENDPOINT, { method: "POST", headers: { - "X-API-Key": process.env.NEXT_PUBLIC_MINO_API_KEY!, + "X-API-Key": process.env.NEXT_PUBLIC_TINYFISH_API_KEY!, "Content-Type": "application/json", }, body: JSON.stringify({ url, goal }), diff --git a/competitor-analysis/FEATURES.md b/competitor-analysis/FEATURES.md index d6320c2..8c799ad 100644 --- a/competitor-analysis/FEATURES.md +++ b/competitor-analysis/FEATURES.md @@ -271,7 +271,7 @@ When clicking a competitor row, shows: ## Environment Variables ```bash -MINO_API_KEY= # Mino API key for scraping +TINYFISH_API_KEY= # Mino API key for scraping OPENROUTER_API_KEY= # OpenRouter API key for AI ``` @@ -314,7 +314,7 @@ npm install # Set environment variables cp .env.example .env.local -# Add MINO_API_KEY and OPENROUTER_API_KEY +# Add TINYFISH_API_KEY and OPENROUTER_API_KEY # Run development server npm run dev diff --git a/competitor-analysis/README.md b/competitor-analysis/README.md index 13300d4..9a25eeb 100644 --- a/competitor-analysis/README.md +++ b/competitor-analysis/README.md @@ -22,7 +22,7 @@ The Mino API powers browser automation for this use case. See the code snippet b ```bash npm install -export MINO_API_KEY=your_key +export TINYFISH_API_KEY=your_key export OPENROUTER_API_KEY=your_key npm run dev ``` @@ -51,7 +51,7 @@ npm install 3. Create `.env.local` file: ```bash -MINO_API_KEY=xxx # Browser automation +TINYFISH_API_KEY=xxx # Browser automation OPENROUTER_API_KEY=xxx # AI URL generation + pricing analysis ``` diff --git a/competitor-analysis/app/api/scrape-pricing/route.ts b/competitor-analysis/app/api/scrape-pricing/route.ts index 281432f..7267578 100644 --- a/competitor-analysis/app/api/scrape-pricing/route.ts +++ b/competitor-analysis/app/api/scrape-pricing/route.ts @@ -333,13 +333,13 @@ async function scrapePricingPage( timestamp: startTime, }); - const apiKey = process.env.MINO_API_KEY; + const apiKey = process.env.TINYFISH_API_KEY; if (!apiKey) { await sendEvent({ type: 'competitor_error', competitor: competitor.name, id: competitor.id, - error: 'MINO_API_KEY not configured', + error: 'TINYFISH_API_KEY not configured', timestamp: Date.now(), }); return null; diff --git a/competitor-analysis/lib/mino-client.ts b/competitor-analysis/lib/mino-client.ts index 8592630..c3a2633 100644 --- a/competitor-analysis/lib/mino-client.ts +++ b/competitor-analysis/lib/mino-client.ts @@ -27,7 +27,7 @@ export interface MinoResponse { /** * Execute a Mino automation task and return the parsed result * @param config - Automation configuration - * @param apiKey - Mino API key (defaults to process.env.MINO_API_KEY) + * @param apiKey - Mino API key (defaults to process.env.TINYFISH_API_KEY) * @param verbose - Log step-by-step progress (default: true) * @returns Promise with the automation result */ @@ -36,10 +36,10 @@ export async function runMinoAutomation( apiKey?: string, verbose: boolean = true ): Promise { - const key = apiKey || process.env.MINO_API_KEY; + const key = apiKey || process.env.TINYFISH_API_KEY; if (!key) { - throw new Error("MINO_API_KEY is required. Set it in .env or pass as parameter."); + throw new Error("TINYFISH_API_KEY is required. Set it in .env or pass as parameter."); } const events: MinoEvent[] = []; diff --git a/fast-qa/README.md b/fast-qa/README.md index e38bb4f..477c9d2 100644 --- a/fast-qa/README.md +++ b/fast-qa/README.md @@ -95,7 +95,7 @@ npm install 3. Create `.env.local` file: ```bash # Mino API Key (required for test execution) -MINO_API_KEY=sk-mino-... +TINYFISH_API_KEY=sk-mino-... # OpenRouter API Key (required for AI test generation) OPENROUTER_API_KEY=sk-or-... diff --git a/fast-qa/app/api/execute-tests/route.ts b/fast-qa/app/api/execute-tests/route.ts index d593da7..ecfd68b 100644 --- a/fast-qa/app/api/execute-tests/route.ts +++ b/fast-qa/app/api/execute-tests/route.ts @@ -69,13 +69,13 @@ export async function POST(request: NextRequest) { return; } - const apiKey = process.env.MINO_API_KEY; + const apiKey = process.env.TINYFISH_API_KEY; if (!apiKey) { await sendEvent({ type: 'test_error', testCaseId: 'system', timestamp: Date.now(), - data: { error: 'MINO_API_KEY not configured' }, + data: { error: 'TINYFISH_API_KEY not configured' }, }); await closeWriter(); return; diff --git a/fast-qa/lib/mino-client.ts b/fast-qa/lib/mino-client.ts index 05f1527..6250b47 100644 --- a/fast-qa/lib/mino-client.ts +++ b/fast-qa/lib/mino-client.ts @@ -39,10 +39,10 @@ export async function runMinoAutomation( apiKey?: string, callbacks?: MinoStreamCallbacks ): Promise { - const key = apiKey || process.env.MINO_API_KEY; + const key = apiKey || process.env.TINYFISH_API_KEY; if (!key) { - throw new Error("MINO_API_KEY is required. Set it in .env or pass as parameter."); + throw new Error("TINYFISH_API_KEY is required. Set it in .env or pass as parameter."); } const events: MinoEvent[] = []; diff --git a/loan-decision-copilot/README.md b/loan-decision-copilot/README.md index 1792344..2724bd1 100644 --- a/loan-decision-copilot/README.md +++ b/loan-decision-copilot/README.md @@ -44,7 +44,7 @@ const response = await fetch("https://agent.tinyfish.ai/v1/automation/run-sse", method: "POST", headers: { "Content-Type": "application/json", - "X-API-Key": MINO_API_KEY, + "X-API-Key": TINYFISH_API_KEY, }, body: JSON.stringify({ url: bankUrl, @@ -79,7 +79,7 @@ Return structured JSON with your findings. | Variable | Description | Required | |----------|-------------|----------| -| `MINO_API_KEY` | TinyFish Web Agent [API key](https://mino.ai) | ✅ | +| `TINYFISH_API_KEY` | TinyFish Web Agent [API key](https://mino.ai) | ✅ | | `LOVABLE_API_KEY` | Lovable AI Gateway key | ✅ | ### Setup diff --git a/loan-decision-copilot/docs/MINO_API_DOCUMENTATION (1).md b/loan-decision-copilot/docs/MINO_API_DOCUMENTATION (1).md index bfe8e17..a7ab56c 100644 --- a/loan-decision-copilot/docs/MINO_API_DOCUMENTATION (1).md +++ b/loan-decision-copilot/docs/MINO_API_DOCUMENTATION (1).md @@ -237,9 +237,9 @@ serve(async (req) => { ); } - const MINO_API_KEY = Deno.env.get("MINO_API_KEY"); - if (!MINO_API_KEY) { - throw new Error("MINO_API_KEY is not configured"); + const TINYFISH_API_KEY = Deno.env.get("TINYFISH_API_KEY"); + if (!TINYFISH_API_KEY) { + throw new Error("TINYFISH_API_KEY is not configured"); } // Dynamic goal based on loan type @@ -261,7 +261,7 @@ serve(async (req) => { method: "POST", headers: { "Content-Type": "application/json", - "X-API-Key": MINO_API_KEY, + "X-API-Key": TINYFISH_API_KEY, }, body: JSON.stringify({ url, @@ -571,7 +571,7 @@ interface LoanAnalysisResult { | Error | Cause | Resolution | |-------|-------|------------| -| `MINO_API_KEY is not configured` | Missing API key in environment | Add secret via Lovable dashboard | +| `TINYFISH_API_KEY is not configured` | Missing API key in environment | Add secret via Lovable dashboard | | `Mino API error: 429` | Rate limiting | Implement exponential backoff | | `timeout` | Page took too long | Increase timeout (currently 5 min) | | `Invalid response from bank discovery` | AI returned malformed JSON | Retry or adjust prompt | @@ -590,7 +590,7 @@ data: {"type":"ERROR","message":"Failed to load page: Connection timeout"} | Variable | Description | |----------|-------------| -| `MINO_API_KEY` | API key for Mino browser automation | +| `TINYFISH_API_KEY` | API key for Mino browser automation | | `LOVABLE_API_KEY` | Auto-configured for Lovable AI Gateway | ### Timeout Configuration diff --git a/loan-decision-copilot/supabase/functions/analyze-loan/index.ts b/loan-decision-copilot/supabase/functions/analyze-loan/index.ts index 3c18f55..d6c651c 100644 --- a/loan-decision-copilot/supabase/functions/analyze-loan/index.ts +++ b/loan-decision-copilot/supabase/functions/analyze-loan/index.ts @@ -20,9 +20,9 @@ serve(async (req) => { ); } - const MINO_API_KEY = Deno.env.get("MINO_API_KEY"); - if (!MINO_API_KEY) { - throw new Error("MINO_API_KEY is not configured"); + const TINYFISH_API_KEY = Deno.env.get("TINYFISH_API_KEY"); + if (!TINYFISH_API_KEY) { + throw new Error("TINYFISH_API_KEY is not configured"); } const loanTypeMap: Record = { @@ -81,7 +81,7 @@ Be objective and factual. If information is not available, indicate "Not specifi method: "POST", headers: { "Content-Type": "application/json", - "X-API-Key": MINO_API_KEY, + "X-API-Key": TINYFISH_API_KEY, }, body: JSON.stringify({ url, goal, timeout: 300000 }), // 5 minute timeout }); diff --git a/research-sentry/README.md b/research-sentry/README.md index 9e651dc..5e36b4e 100644 --- a/research-sentry/README.md +++ b/research-sentry/README.md @@ -13,7 +13,7 @@ https://voice-research.vercel.app/ const res = await fetch("https://agent.tinyfish.ai/v1/automation/run-sse", { method: "POST", headers: { - "X-API-Key": process.env.MINO_API_KEY!, + "X-API-Key": process.env.TINYFISH_API_KEY!, "Content-Type": "application/json", }, body: JSON.stringify({ @@ -28,7 +28,7 @@ const res = await fetch("https://agent.tinyfish.ai/v1/automation/run-sse", { 1. Install deps: `npm install` 2. Create `.env.local`: ``` -MINO_API_KEY=your_tinyfish_key +TINYFISH_API_KEY=your_tinyfish_key OPENAI_API_KEY=your_openai_key ``` 3. Start dev server: `npm run dev` diff --git a/research-sentry/lib/mino.ts b/research-sentry/lib/mino.ts index 4034f26..22de50b 100644 --- a/research-sentry/lib/mino.ts +++ b/research-sentry/lib/mino.ts @@ -7,10 +7,10 @@ export async function runMinoAutomation( stealth = false, options?: { timeoutMs?: number } ): Promise { - const apiKey = process.env.MINO_API_KEY; + const apiKey = process.env.TINYFISH_API_KEY; if (!apiKey) { - console.error('[Mino] MINO_API_KEY not set in environment'); + console.error('[Mino] TINYFISH_API_KEY not set in environment'); return null; } diff --git a/research-sentry/voice-research-project.txt b/research-sentry/voice-research-project.txt index 6d93e45..29397bf 100644 --- a/research-sentry/voice-research-project.txt +++ b/research-sentry/voice-research-project.txt @@ -53,7 +53,7 @@ AI-powered research paper discovery using voice or text. 2. cp .env.local.example .env.local 3. Add your API keys - OPENAI_API_KEY - - MINO_API_KEY + - TINYFISH_API_KEY 4. npm run dev ## Deploy @@ -160,7 +160,7 @@ FILE: .env.local.example ------------------------------------------------------------ # Rename to .env.local and add your keys OPENAI_API_KEY=sk-your-key-here -MINO_API_KEY=your-mino-key-here +TINYFISH_API_KEY=your-mino-key-here ================================================================================ @@ -244,7 +244,7 @@ export async function runMinoAutomation(url: string, goal: string, stealth = fal const res = await fetch('https://agent.tinyfish.ai/v1/automation/run-sse', { method: 'POST', headers: { - 'X-API-Key': process.env.MINO_API_KEY!, + 'X-API-Key': process.env.TINYFISH_API_KEY!, 'Content-Type': 'application/json', }, body: JSON.stringify({ url, goal, browser_profile: stealth ? 'stealth' : 'lite' }), diff --git a/stay-scout-hub/README.md b/stay-scout-hub/README.md index 1b26f69..3029e78 100644 --- a/stay-scout-hub/README.md +++ b/stay-scout-hub/README.md @@ -33,7 +33,7 @@ For every suggested area, a Mino agent: const response = await fetch("https://agent.tinyfish.ai/v1/automation/run-sse", { method: "POST", headers: { - "X-API-Key": process.env.MINO_API_KEY, + "X-API-Key": process.env.TINYFISH_API_KEY, "Content-Type": "application/json", }, body: JSON.stringify({ @@ -134,7 +134,7 @@ npm install 2. Create a .env.local file: ```bash GEMINI_API_KEY=your_gemini_api_key -MINO_API_KEY=your_mino_api_key +TINYFISH_API_KEY=your_mino_api_key ``` 3. Start the dev server: @@ -147,7 +147,7 @@ npm run dev ## Environment Variables - GEMINI_API_KEY - Area discovery and neighborhood reasoning -- MINO_API_KEY - Live browser automation for area research +- TINYFISH_API_KEY - Live browser automation for area research ## Notes diff --git a/stay-scout-hub/docs/MINO_AREA_RESEARCH_API.md b/stay-scout-hub/docs/MINO_AREA_RESEARCH_API.md index 9a7aa36..aea8735 100644 --- a/stay-scout-hub/docs/MINO_AREA_RESEARCH_API.md +++ b/stay-scout-hub/docs/MINO_AREA_RESEARCH_API.md @@ -371,7 +371,7 @@ import requests import json MINO_API_URL = "https://agent.tinyfish.ai/v1/automation/run-sse" -MINO_API_KEY = "your-mino-api-key" +TINYFISH_API_KEY = "your-mino-api-key" def research_area_with_mino(area_name: str, city: str, purpose: str): """ @@ -416,7 +416,7 @@ RETURN JSON ONLY: response = requests.post( MINO_API_URL, headers={ - "X-API-Key": MINO_API_KEY, + "X-API-Key": TINYFISH_API_KEY, "Content-Type": "application/json", }, json={ @@ -622,13 +622,13 @@ Both edge functions provide fallback data if the primary API fails: | Variable | Required | Description | |----------|----------|-------------| | `GEMINI_API_KEY` | Yes | Google AI API key for area discovery | -| `MINO_API_KEY` | Yes | Mino API key for browser automation | +| `TINYFISH_API_KEY` | Yes | Mino API key for browser automation | --- ## Quick Start Checklist -1. ✅ Set `GEMINI_API_KEY` and `MINO_API_KEY` in your environment +1. ✅ Set `GEMINI_API_KEY` and `TINYFISH_API_KEY` in your environment 2. ✅ Deploy `discover-areas` and `research-area` edge functions 3. ✅ Implement SSE parsing in your frontend 4. ✅ Handle the 180-second timeout gracefully diff --git a/stay-scout-hub/supabase/functions/check-platform/index.ts b/stay-scout-hub/supabase/functions/check-platform/index.ts index 4ff3e8d..a5f8e3f 100644 --- a/stay-scout-hub/supabase/functions/check-platform/index.ts +++ b/stay-scout-hub/supabase/functions/check-platform/index.ts @@ -5,7 +5,7 @@ const corsHeaders = { 'Access-Control-Allow-Headers': 'authorization, x-client-info, apikey, content-type', }; -const MINO_API_KEY = Deno.env.get('MINO_API_KEY'); +const TINYFISH_API_KEY = Deno.env.get('TINYFISH_API_KEY'); const MINO_API_URL = 'https://agent.tinyfish.ai/v1/automation/run-sse'; Deno.serve(async (req) => { @@ -23,9 +23,9 @@ Deno.serve(async (req) => { ); } - if (!MINO_API_KEY) { + if (!TINYFISH_API_KEY) { return new Response( - JSON.stringify({ error: 'MINO_API_KEY not configured' }), + JSON.stringify({ error: 'TINYFISH_API_KEY not configured' }), { status: 500, headers: { ...corsHeaders, 'Content-Type': 'application/json' } } ); } @@ -138,7 +138,7 @@ RETURN JSON ONLY: const minoResponse = await fetch(MINO_API_URL, { method: 'POST', headers: { - 'X-API-Key': MINO_API_KEY!, + 'X-API-Key': TINYFISH_API_KEY!, 'Content-Type': 'application/json', }, body: JSON.stringify({ diff --git a/stay-scout-hub/supabase/functions/reasearch-area/index.ts b/stay-scout-hub/supabase/functions/reasearch-area/index.ts index ebdc650..2be9a99 100644 --- a/stay-scout-hub/supabase/functions/reasearch-area/index.ts +++ b/stay-scout-hub/supabase/functions/reasearch-area/index.ts @@ -5,7 +5,7 @@ const corsHeaders = { 'Access-Control-Allow-Headers': 'authorization, x-client-info, apikey, content-type', }; -const MINO_API_KEY = Deno.env.get('MINO_API_KEY'); +const TINYFISH_API_KEY = Deno.env.get('TINYFISH_API_KEY'); const MINO_API_URL = 'https://agent.tinyfish.ai/v1/automation/run-sse'; Deno.serve(async (req) => { @@ -23,9 +23,9 @@ Deno.serve(async (req) => { ); } - if (!MINO_API_KEY) { + if (!TINYFISH_API_KEY) { return new Response( - JSON.stringify({ error: 'MINO_API_KEY not configured' }), + JSON.stringify({ error: 'TINYFISH_API_KEY not configured' }), { status: 500, headers: { ...corsHeaders, 'Content-Type': 'application/json' } } ); } @@ -102,7 +102,7 @@ RETURN JSON ONLY (no markdown): const minoResponse = await fetch(MINO_API_URL, { method: 'POST', headers: { - 'X-API-Key': MINO_API_KEY!, + 'X-API-Key': TINYFISH_API_KEY!, 'Content-Type': 'application/json', }, body: JSON.stringify({ diff --git a/summer-school-finder/supabase/functions/mino-search-stream/index.ts b/summer-school-finder/supabase/functions/mino-search-stream/index.ts index ab0b30a..03bc18e 100644 --- a/summer-school-finder/supabase/functions/mino-search-stream/index.ts +++ b/summer-school-finder/supabase/functions/mino-search-stream/index.ts @@ -13,9 +13,9 @@ serve(async (req) => { try { const { url, goal } = await req.json(); - const MINO_API_KEY = Deno.env.get("MINO_API_KEY"); - if (!MINO_API_KEY) { - throw new Error("MINO_API_KEY is not configured"); + const TINYFISH_API_KEY = Deno.env.get("TINYFISH_API_KEY"); + if (!TINYFISH_API_KEY) { + throw new Error("TINYFISH_API_KEY is not configured"); } console.log(`Starting Mino SSE agent for URL: ${url}`); @@ -25,7 +25,7 @@ serve(async (req) => { method: "POST", headers: { "Content-Type": "application/json", - "X-API-Key": MINO_API_KEY, + "X-API-Key": TINYFISH_API_KEY, }, body: JSON.stringify({ url, goal }), }); diff --git a/summer-school-finder/supabase/functions/mino-search/index.ts b/summer-school-finder/supabase/functions/mino-search/index.ts index a9b5e10..106bc07 100644 --- a/summer-school-finder/supabase/functions/mino-search/index.ts +++ b/summer-school-finder/supabase/functions/mino-search/index.ts @@ -13,9 +13,9 @@ serve(async (req) => { try { const { url, goal } = await req.json(); - const MINO_API_KEY = Deno.env.get("MINO_API_KEY"); - if (!MINO_API_KEY) { - throw new Error("MINO_API_KEY is not configured"); + const TINYFISH_API_KEY = Deno.env.get("TINYFISH_API_KEY"); + if (!TINYFISH_API_KEY) { + throw new Error("TINYFISH_API_KEY is not configured"); } console.log(`Starting Mino agent for URL: ${url}`); @@ -25,7 +25,7 @@ serve(async (req) => { method: "POST", headers: { "Content-Type": "application/json", - "X-API-Key": MINO_API_KEY, + "X-API-Key": TINYFISH_API_KEY, }, body: JSON.stringify({ url, goal }), }); diff --git a/tinyskills/README.md b/tinyskills/README.md index 8b90e2c..79f98e8 100644 --- a/tinyskills/README.md +++ b/tinyskills/README.md @@ -124,7 +124,7 @@ npm install 3. Create a `.env.local` file with your API keys: ``` -MINO_API_KEY=your_tinyfish_api_key_here +TINYFISH_API_KEY=your_tinyfish_api_key_here OPENROUTER_API_KEY=your_openrouter_api_key_here ``` diff --git a/tinyskills/app/api/scrape-sources/route.ts b/tinyskills/app/api/scrape-sources/route.ts index 510db8e..2965dea 100644 --- a/tinyskills/app/api/scrape-sources/route.ts +++ b/tinyskills/app/api/scrape-sources/route.ts @@ -48,7 +48,7 @@ export async function POST(request: Request) { return; } - const apiKey = process.env.MINO_API_KEY; + const apiKey = process.env.TINYFISH_API_KEY; if (!apiKey) { await sendEvent({ type: "error", error: "Mino API key not configured" }); await closeWriter();