{"schema_version":"1.0","provider":"wauldo","manifest_url":"https://wauldo.com/.well-known/agent-manifest.json","tools":[{"name":"rss_feed","description":"Fetch an RSS or Atom feed and return recent items (title, link, published, summary).","input_schema":{"properties":{"max_items":{"description":"Number of items (1-50, default 10)","maximum":50,"minimum":1,"type":"integer"},"url":{"description":"Feed URL (https only)","type":"string"}},"required":["url"],"type":"object"},"side_effects":"external","cost_class":"free","requires_secret":false,"hints":["Subscribe to RSS / Atom. SSRF-blocked on private IPs / IPv6."]},{"name":"datetime","description":"Date/time helpers: now, parse, format, add duration, diff between timestamps. UTC + numeric offset.","input_schema":{"properties":{"action":{"description":"Operation to perform","enum":["now","parse","format","add","diff"],"type":"string"},"days":{"type":"integer"},"format":{"description":"strftime format string","type":"string"},"from":{"description":"RFC3339 start (diff)","type":"string"},"hours":{"type":"integer"},"minutes":{"type":"integer"},"seconds":{"type":"integer"},"to":{"description":"RFC3339 end (diff)","type":"string"},"tz_offset_minutes":{"description":"Timezone offset in minutes from UTC","type":"integer"},"unit":{"enum":["seconds","minutes","hours","days"],"type":"string"},"value":{"description":"RFC3339 datetime (parse/format/add)","type":"string"}},"required":["action"],"type":"object"},"side_effects":"none","cost_class":"free","requires_secret":false,"hints":["Returns current UTC time. Use when a claim references 'now', 'recent', 'today'."]},{"name":"analytics_fetcher","description":"Fetch project metrics from GitHub (stars, forks, issues), crates.io (downloads), or npm (weekly downloads). Input: platform and target identifier.","input_schema":{"properties":{"platform":{"description":"Platform to fetch metrics from","enum":["github","crates_io","npm"],"type":"string"},"target":{"description":"Target identifier (e.g., 'owner/repo' for GitHub, 'crate-name' for crates.io)","type":"string"}},"required":["platform","target"],"type":"object"},"side_effects":"external","cost_class":"metered","requires_secret":true,"hints":[]},{"name":"calculator","description":"Performs basic arithmetic operations (add, subtract, multiply, divide)","input_schema":{"properties":{"a":{"description":"First operand","type":"number"},"b":{"description":"Second operand","type":"number"},"operation":{"description":"The arithmetic operation to perform","enum":["add","subtract","multiply","divide"],"type":"string"}},"required":["operation","a","b"],"type":"object"},"side_effects":"none","cost_class":"free","requires_secret":false,"hints":["Multi-arg arithmetic. Pass `operation` + `a` + `b`."]},{"name":"social_poster","description":"Create, schedule, and track social media posts for growth campaigns. Actions: create_draft (save post), list_posts (view by tenant), schedule (mark for posting), post (execute via platform API). Supports: twitter, linkedin, discord, producthunt.","input_schema":{"properties":{"action":{"description":"Action to perform","enum":["create_draft","list_posts","schedule","post"],"type":"string"},"content":{"description":"Post content text","type":"string"},"platform":{"description":"Target platform","enum":["twitter","linkedin","discord","producthunt"],"type":"string"},"post_id":{"description":"Post ID (for schedule/post actions)","type":"string"},"scheduled_at":{"description":"ISO 8601 datetime for scheduling (e.g., 2026-03-25T08:00:00Z)","type":"string"},"tenant_id":{"description":"Tenant/project identifier for isolation","type":"string"}},"required":["action","tenant_id"],"type":"object"},"side_effects":"mutating","cost_class":"free","requires_secret":true,"hints":["Posts to user's connected social accounts — confirm content before send."]},{"name":"model_router","description":"Analyze a query to determine the best AI model and task type. Returns recommended model, provider, and confidence score.","input_schema":{"properties":{"query":{"description":"The user query or task description to analyze","type":"string"}},"required":["query"],"type":"object"},"side_effects":"external","cost_class":"metered","requires_secret":false,"hints":[]},{"name":"scheduler","description":"Manage launch timeline tasks for growth campaigns. Actions: add_task, list_tasks, complete_task, check_overdue. Per-tenant isolation. Use for J-14 to J+30 launch sequences.","input_schema":{"properties":{"action":{"description":"Action to perform","enum":["add_task","list_tasks","complete_task","check_overdue"],"type":"string"},"category":{"description":"Category: prep, launch, post_launch, content, community","type":"string"},"description":{"description":"Detailed task description","type":"string"},"due_date":{"description":"Due date ISO 8601 (e.g., 2026-03-25)","type":"string"},"label":{"description":"Short task label (e.g., 'Publish crates.io')","type":"string"},"task_id":{"description":"Task ID (for complete_task)","type":"string"},"tenant_id":{"description":"Tenant/project identifier","type":"string"}},"required":["action","tenant_id"],"type":"object"},"side_effects":"mutating","cost_class":"free","requires_secret":false,"hints":[]},{"name":"pricing_manager","description":"Manage API pricing plans and calculate revenue projections. Actions: create_plan, list_plans, project_revenue, suggest_pricing. Per-tenant isolation.","input_schema":{"properties":{"action":{"description":"Action to perform","enum":["create_plan","list_plans","project_revenue","suggest_pricing"],"type":"string"},"category":{"description":"API category for pricing suggestions (e.g., 'llm_gateway', 'rag_api')","type":"string"},"features":{"description":"List of features included","items":{"type":"string"},"type":"array"},"name":{"description":"Plan name (e.g., 'Free', 'Pro', 'Enterprise')","type":"string"},"price_usd":{"description":"Monthly price in USD","type":"number"},"requests_per_month":{"description":"Included API requests per month","type":"integer"},"subscribers":{"description":"Expected subscribers per plan: {\"Free\": 100, \"Pro\": 20}","type":"object"},"tenant_id":{"description":"Tenant/project identifier","type":"string"}},"required":["action","tenant_id"],"type":"object"},"side_effects":"none","cost_class":"free","requires_secret":false,"hints":[]},{"name":"file_operations","description":"Read, write, list, and delete files in the agent workspace. Restricted to ./agent_workspace directory. Max file size: 512KB.","input_schema":{"properties":{"content":{"description":"Content to write (for write operation)","type":"string"},"force":{"description":"Force delete (for delete operation)","type":"boolean"},"operation":{"description":"Operation to perform","enum":["read","write","list","delete"],"type":"string"},"path":{"description":"File path relative to workspace","type":"string"},"recursive":{"description":"List recursively (for list operation)","type":"boolean"}},"required":["operation"],"type":"object"},"side_effects":"mutating","cost_class":"free","requires_secret":false,"hints":["Workspace-canonicalised: cannot escape the agent's sandbox via symlinks."]},{"name":"web_search","description":"Search the web via Tavily. Returns top results with title, URL, content snippet, and relevance score.","input_schema":{"properties":{"max_results":{"description":"Number of results (1-20, default 5)","maximum":20,"minimum":1,"type":"integer"},"query":{"description":"Search query","type":"string"}},"required":["query"],"type":"object"},"side_effects":"external_paid","cost_class":"metered","requires_secret":true,"hints":["Use for fresh stats, news, anything published after Wikipedia's last refresh.","Returns ≤ 10 results with snippet + URL — pick the highest-confidence one."]},{"name":"wikipedia","description":"Fetch a Wikipedia article summary. Returns title, extract, description, and URL.","input_schema":{"properties":{"lang":{"description":"Wikipedia language code (en, fr, es, de, ...). Default: en","type":"string"},"title":{"description":"Page title (e.g., 'Rust (programming language)')","type":"string"}},"required":["title"],"type":"object"},"side_effects":"external","cost_class":"free","requires_secret":false,"hints":["Use for biographical facts, historical events, named entities."]},{"name":"arxiv","description":"Search arXiv for academic papers. Returns id, title, summary, published date, authors, URL.","input_schema":{"properties":{"max_results":{"description":"Number of results (1-20, default 5)","maximum":20,"minimum":1,"type":"integer"},"query":{"description":"Search query (keyword or 'cat:cs.AI' style)","type":"string"}},"required":["query"],"type":"object"},"side_effects":"external","cost_class":"free","requires_secret":false,"hints":["Use for academic claims, paper citations, technical definitions."]},{"name":"slack_webhook","description":"Post a message to a Slack channel via an incoming webhook URL (hooks.slack.com only).","input_schema":{"properties":{"icon_emoji":{"description":"Optional emoji like ':robot_face:'","type":"string"},"text":{"description":"Message text (Slack mrkdwn supported)","type":"string"},"username":{"description":"Optional bot display name","type":"string"},"webhook_url":{"description":"Slack incoming webhook URL (must be on hooks.slack.com)","type":"string"}},"required":["webhook_url","text"],"type":"object"},"side_effects":"mutating","cost_class":"free","requires_secret":true,"hints":["Posts to a Slack incoming webhook. Webhook URL required."]},{"name":"spawn_sub_agent","description":"Spawn a fully verified sub-agent for a focused sub-task (e.g., research one concrete topic in parallel with other sub-tasks). Returns the child's final answer, verdict, and wall time. The child runs the full plan-execute-synthesise lifecycle with fact-checking. Use when a query naturally decomposes into independent research threads. Cap : depth 2.","input_schema":{"properties":{"preset":{"description":"Agent preset for the child. Default: 'general_task'. Don't recurse on 'planner_executor' from a planner_executor parent (depth guard).","type":"string"},"prompt":{"description":"Self-contained prompt for the child agent (max 4096 chars). Should be a focused single sub-task, not a full multi-part query.","type":"string"},"timeout_secs":{"description":"Sub-task timeout in seconds. Default 60, max 180.","type":"number"}},"required":["prompt"],"type":"object"},"side_effects":"external","cost_class":"metered","requires_secret":false,"hints":[]}],"presets":[{"name":"general_task","description":"General-purpose agent. Default fallback when no preset is specified."},{"name":"rag_data_engineer","description":"RAG-grounded knowledge agent. Auto-retrieves tenant context, fact-checks every claim against uploaded docs."},{"name":"rust_backend_architect","description":"Rust backend code review + architecture preset. Multi-step analysis with parallel_group fan-out."},{"name":"security_auditor","description":"Security audit preset. Threat-model + vuln scan + remediation suggestions."},{"name":"deep_research","description":"Multi-iteration research preset. Wikipedia + arxiv + web_search chained."}],"agent_mode":{"header":"X-Agent-Client","user_agent_prefixes":["ClaudeCode/","Cursor/","Continue/","Aider/","Cline/"],"env_vars_detected":["WAULDO_AGENT","CLAUDE_CODE","CURSOR_AGENT"],"auto_confirm_safe_ops":true}}