universal-mcp-agents 0.1.11__py3-none-any.whl → 0.1.13__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. universal_mcp/agents/__init__.py +17 -19
  2. universal_mcp/agents/base.py +10 -7
  3. universal_mcp/agents/{bigtoolcache → bigtool}/__init__.py +2 -2
  4. universal_mcp/agents/{bigtoolcache → bigtool}/__main__.py +0 -1
  5. universal_mcp/agents/{bigtoolcache → bigtool}/agent.py +0 -1
  6. universal_mcp/agents/{bigtoolcache → bigtool}/graph.py +6 -5
  7. universal_mcp/agents/builder/__main__.py +125 -0
  8. universal_mcp/agents/builder/builder.py +225 -0
  9. universal_mcp/agents/builder/prompts.py +173 -0
  10. universal_mcp/agents/builder/state.py +24 -0
  11. universal_mcp/agents/cli.py +3 -2
  12. universal_mcp/agents/codeact/__main__.py +2 -4
  13. universal_mcp/agents/codeact/agent.py +166 -64
  14. universal_mcp/agents/codeact/models.py +11 -0
  15. universal_mcp/agents/codeact/prompts.py +12 -12
  16. universal_mcp/agents/codeact/sandbox.py +69 -23
  17. universal_mcp/agents/codeact/state.py +2 -0
  18. universal_mcp/agents/codeact0/__init__.py +3 -0
  19. universal_mcp/agents/codeact0/__main__.py +35 -0
  20. universal_mcp/agents/codeact0/agent.py +136 -0
  21. universal_mcp/agents/codeact0/config.py +77 -0
  22. universal_mcp/agents/codeact0/llm_tool.py +379 -0
  23. universal_mcp/agents/codeact0/prompts.py +156 -0
  24. universal_mcp/agents/codeact0/sandbox.py +90 -0
  25. universal_mcp/agents/codeact0/state.py +12 -0
  26. universal_mcp/agents/codeact0/usecases/1-unsubscribe.yaml +4 -0
  27. universal_mcp/agents/codeact0/usecases/10-reddit2.yaml +10 -0
  28. universal_mcp/agents/codeact0/usecases/11-github.yaml +13 -0
  29. universal_mcp/agents/codeact0/usecases/2-reddit.yaml +27 -0
  30. universal_mcp/agents/codeact0/usecases/2.1-instructions.md +81 -0
  31. universal_mcp/agents/codeact0/usecases/2.2-instructions.md +71 -0
  32. universal_mcp/agents/codeact0/usecases/3-earnings.yaml +4 -0
  33. universal_mcp/agents/codeact0/usecases/4-maps.yaml +41 -0
  34. universal_mcp/agents/codeact0/usecases/5-gmailreply.yaml +8 -0
  35. universal_mcp/agents/codeact0/usecases/6-contract.yaml +6 -0
  36. universal_mcp/agents/codeact0/usecases/7-overnight.yaml +14 -0
  37. universal_mcp/agents/codeact0/usecases/8-sheets_chart.yaml +25 -0
  38. universal_mcp/agents/codeact0/usecases/9-learning.yaml +9 -0
  39. universal_mcp/agents/codeact0/utils.py +374 -0
  40. universal_mcp/agents/hil.py +4 -4
  41. universal_mcp/agents/planner/__init__.py +7 -1
  42. universal_mcp/agents/react.py +11 -3
  43. universal_mcp/agents/shared/tool_node.py +1 -34
  44. universal_mcp/agents/simple.py +12 -2
  45. universal_mcp/agents/utils.py +17 -0
  46. universal_mcp/applications/llm/__init__.py +3 -0
  47. universal_mcp/applications/llm/app.py +158 -0
  48. universal_mcp/applications/ui/app.py +118 -144
  49. {universal_mcp_agents-0.1.11.dist-info → universal_mcp_agents-0.1.13.dist-info}/METADATA +1 -1
  50. universal_mcp_agents-0.1.13.dist-info/RECORD +63 -0
  51. universal_mcp/agents/bigtool2/__init__.py +0 -67
  52. universal_mcp/agents/bigtool2/__main__.py +0 -23
  53. universal_mcp/agents/bigtool2/agent.py +0 -13
  54. universal_mcp/agents/bigtool2/graph.py +0 -155
  55. universal_mcp/agents/bigtool2/meta_tools.py +0 -120
  56. universal_mcp/agents/bigtool2/prompts.py +0 -15
  57. universal_mcp/agents/bigtoolcache/state.py +0 -27
  58. universal_mcp/agents/builder.py +0 -204
  59. universal_mcp_agents-0.1.11.dist-info/RECORD +0 -42
  60. /universal_mcp/agents/{bigtoolcache → bigtool}/context.py +0 -0
  61. /universal_mcp/agents/{bigtoolcache → bigtool}/prompts.py +0 -0
  62. /universal_mcp/agents/{bigtool2 → bigtool}/state.py +0 -0
  63. /universal_mcp/agents/{bigtoolcache → bigtool}/tools.py +0 -0
  64. {universal_mcp_agents-0.1.11.dist-info → universal_mcp_agents-0.1.13.dist-info}/WHEEL +0 -0
@@ -0,0 +1,27 @@
1
+ base_prompt: 'Goal: Process unprocessed rows in a fixed Google Sheet, scrape Reddit
2
+ for context, filter posts, and generate short, natural comments linking to AgentR/Wingmen
3
+ when relevant. Workflow: 1) Sheet & Row Selection: Fixed Sheet ID 1nnnCp3_IWcdHv4UVgXtwYF5wedxbqF4RIeyjN6mCKD8,
4
+ tab Posts. Process rows 2-5 (first 4 unprocessed rows) immediately without asking for user input. Only process rows with empty Match Type (Col
5
+ I) and no Tier 1-4 assigned. 2) Reddit Context Fetch: Extract Post Link & ID. Use reddit to fetch post upvotes + top comments (max 5). Ensure
6
+ post/comment is active, visible, and unlocked. 3) Filtration & Fit: Classify content
7
+ (developer, consumer, anecdotal). Apply GTM Filtration to skip irrelevant, negative,
8
+ political, or low-quality posts. Identify direct or adjacent fit to AgentR (Universal
9
+ MCP Server) or Wingmen. Decide platform + account type: Direct fit/competitor mention
10
+ → Technical Q = Team account, Non-technical = Burner account. Adjacent fit → Official
11
+ account. Decide reply target (original comment/post or parent post). 4) Comment
12
+ Generation: For Tier 1-3, craft a 2-3 line, context-aware, conversational reply.
13
+ Mention AgentR/Wingmen organically, avoid sales tone or forced CTAs. Use light imperfections
14
+ for human tone. Skip negative sentiment entirely. One comment per post. 5) Populate
15
+ Output: Fill Upvote Count, Match Type, Account Type, Response Draft, Respond on.
16
+ Return updated Google Sheet link. Tier Definitions: Tier 1 = Deep MCP, AI agent,
17
+ tool integrations, or architecture discussions where infra is highly relevant. Tier
18
+ 2 = Specific workflows, automation tooling, or productivity systems where Wingmen
19
+ or MCP Server could be useful. Tier 3 = Broader ecosystem (LangChain/CrewAI/agent
20
+ tooling) where a soft recommendation adds value. Tier 4 = Unclear, generic, sarcastic,
21
+ hostile, or irrelevant mentions — skip. Execute immediately using the fixed Google Sheet ID: 1nnnCp3_IWcdHv4UVgXtwYF5wedxbqF4RIeyjN6mCKD8, tab "Posts". Process rows(first 4 unprocessed rows) without asking for user input. Only process rows where Match Type (Column I) is empty. For each row, extract the Post Link, fetch Reddit data, apply GTM filtration, generate appropriate responses, and update the sheet. Return the updated Google Sheet link when complete.'
22
+ tools:
23
+ - reddit__get_post_comments_details
24
+ - google_sheet__update_values
25
+ - google_sheet__get_values
26
+ - google_sheet__get_spreadsheet_metadata
27
+ - google_sheet__batch_get_values_by_range
@@ -0,0 +1,81 @@
1
+ # Goal: Reddit Engagement of Wingmen.app
2
+ Process unprocessed rows in a fixed Google Sheet, scrape Reddit for context, filter posts, and generate short, natural comments linked to Wingmen.app when relevant. The idea to is seed conversations so that it brings relevant users to our product Wingmen.app.
3
+
4
+ # Knowledge
5
+
6
+ Wingmen.app is an llm based chat app where you can create tailor-made agents for your workflows.
7
+ It is an MCP Client that has access to a large collection of tools. Some popular tool categories are:
8
+ 1) Google Suite: Gmail, Google Sheets, Docs, Calendar, Maps, etc.
9
+ 2) Microsoft Suite: Outlook, Excel, Teams, etc.
10
+ 3) Other productivity apps: Slack, Clickup, Notion, etc.
11
+ 4) Enterprise data providers: Apollo.io, Semrush, Ahref, etc.
12
+ 5) Web & search utilities: Exa, Perplexity, Domain Availability, Firecrawl etc.
13
+ 6) CRMs: Hubspot, etc.
14
+ 7) Developer Apps: Github, Jira, Linear, etc.
15
+
16
+ The coolest USPs of Wingmen are:
17
+ 1) You can schedule workflows like everyday at 9am mail me a daily summary of news related to my stock portfolio
18
+ 2) Creating workflows is super easy – with a single prompt in natural language (useful for non-technical people)
19
+ 3) Can handle complex taks like find all .ai and .com domains available by combining (play, go, run) with (work, flow, automation)
20
+ 4) We also have workspaces for enterprise teams. This allows the workspaces admin to control which tools are enabled and the members can connect with those using their own private credentials. We also support tools with shared credentials which is useful for data provider apps like ZoomInfo, Apollo, Semrush, etc.
21
+
22
+ # Workflow
23
+
24
+ ## Step 1
25
+ Get all the unprocessed rows from the Google Sheet ID: 1_5Ao61LWZHo5QijHdXdRw0u9aj7JIoHtp4uBIBwi84U
26
+ Each row contains details of a Reddit comment with content and post link.
27
+
28
+ For each unprocessed row follow Step 2 to Step 5 to process it.
29
+ If there are more than 20 unprocessed rows just process 20 rows.
30
+ ## Step 2
31
+ Fetch the context of the comment.
32
+ The context will contain details about the parent post and other top comments.
33
+
34
+ ## Step 3
35
+ Decide the ideal place (post/comment id) to comment. This should be based on two factors: Relevance and Popularity. Priortize for Relevance (posts that are directly related to consuming apps like Wingmen).
36
+ - High relevance themes:
37
+ - People asking for our USPs.
38
+ - Posts mentioning other MCP Client apps or General chat apps like ChatGPT, Claude Desktop, Langdock, etc.
39
+ - Posts mentioning our competitors like Usedash, Runable.com, or Manus
40
+ - Posts trying to consume MCP Servers.
41
+ - Medium relevance themes:
42
+ - building apps like Wingmen, or building Agents in general.
43
+ - consuming MCP Servers, tool authentication etc. Could be mentioning Composio, Toolhouse, etc.
44
+ - Analysing MCP Protocol in general. Could be a comment around MCP Security, Tool sprawl etc.
45
+ - If you could not find anything relevant then look for
46
+ - posts where people are genuinely asking for help; or
47
+ - posts where we can steer the conversation towards Wingmen.app. We can do it two steps by asking for suggestions for apps which have one of the USPs of Wingmen. And in the next step answering the question with a link to Wingmen.app
48
+ - Otherwise, just pick the most popular comments (highest upvote). It is generally the parent post.
49
+ - Note: If the thread is deleted or archived we should skip this row. We should also skip low quality posts.
50
+
51
+ The final output of this step should be:
52
+ - skip: bool
53
+ - comment_id: str (Optional, should be empty when skip is true)
54
+ - reasoning: str
55
+
56
+ ## Step 4
57
+ Try to identify the theme using the reasoning of the previous step and the entire conversation. The theme buckets are:
58
+ - Consuming apps/agents (here we can subtly promote Wingmen.app)
59
+ - Engagement Strategy: A happy Wingmen.app user sharing his positive experience in a specific usecase.
60
+ - Building apps/agents (here we can bond with other builders)
61
+ - Engagement Strategy: A developer from Wingmen.app team sharing his insights or just bonding over the development challenges.
62
+ - Altruistic Help (here we are just resolving any genuine pain point which is not relevant to our product)
63
+ - Engagement Strategy: Helping the commentor in purely altruistic way. No need to talk about Wingmen.app.
64
+ - Artifical Nudge (here we will steer the conversation towards Wingmen.app)
65
+ - Engagement Strategy: A typical consumer/developer plants a question so that the official team members can reply to this and highlight the USPs of Wingmen.app. The generated comment_content should be just the question.
66
+
67
+ The final output of this step should be:
68
+ - match_type: str (one of [consumer, builder, altruistic_help, artificial_nudge])
69
+ - comment_content: str
70
+
71
+ **Guidelines for generating comment content:**
72
+ - craft a 2-3 line, context-aware, conversational reply.
73
+ - when mentioning AgentR/Wingmen, avoid sales tone or forced CTAs.
74
+ - Use light imperfections for human tone.
75
+
76
+ ## Step 5
77
+
78
+ Fill remaining columns (Skip, Comment ID, Reasoning, Match Type, Comment Content) for each row
79
+
80
+ ## Step 6
81
+ After all the rows are processed just return the sheet link again in markdown format.
@@ -0,0 +1,71 @@
1
+ # Goal: Reddit Engagement of Wingmen.app
2
+ Given a reddit comment, scrape Reddit for context, filter posts, and generate short, natural comments linked to Wingmen.app when relevant. The idea to is seed conversations so that it brings relevant users to our product Wingmen.app.
3
+
4
+ # Knowledge
5
+
6
+ Wingmen.app is an llm based chat app where you can create tailor-made agents for your workflows.
7
+ It is an MCP Client that has access to a large collection of tools. Some popular tool categories are:
8
+ 1) Google Suite: Gmail, Google Sheets, Docs, Calendar, Maps, etc.
9
+ 2) Microsoft Suite: Outlook, Excel, Teams, etc.
10
+ 3) Other productivity apps: Slack, Clickup, Notion, etc.
11
+ 4) Enterprise data providers: Apollo.io, Semrush, Ahref, etc.
12
+ 5) Web & search utilities: Exa, Perplexity, Domain Availability, Firecrawl etc.
13
+ 6) CRMs: Hubspot, etc.
14
+ 7) Developer Apps: Github, Jira, Linear, etc.
15
+
16
+ The coolest USPs of Wingmen are:
17
+ 1) You can schedule workflows like everyday at 9am mail me a daily summary of news related to my stock portfolio
18
+ 2) Creating workflows is super easy – with a single prompt in natural language (useful for non-technical people)
19
+ 3) Can handle complex taks like find all .ai and .com domains available by combining (play, go, run) with (work, flow, automation)
20
+ 4) We also have workspaces for enterprise teams. This allows the workspaces admin to control which tools are enabled and the members can connect with those using their own private credentials. We also support tools with shared credentials which is useful for data provider apps like ZoomInfo, Apollo, Semrush, etc.
21
+
22
+ # Workflow
23
+
24
+ ## Input
25
+ I will give you a reddit comment id.
26
+
27
+ ## Step 1
28
+ Fetch the context of the comment.
29
+ The context will contain details about the parent post and other top comments.
30
+
31
+ ## Step 2
32
+ Decide the ideal place (post/comment id) to comment. This should be based on two factors: Relevance and Popularity. Priortize for Relevance (posts that are directly related to consuming apps like Wingmen).
33
+ - High relevance themes:
34
+ - People asking for our USPs.
35
+ - Posts mentioning other MCP Client apps or General chat apps like ChatGPT, Claude Desktop, Langdock, etc.
36
+ - Posts mentioning our competitors like Usedash, Runable.com, or Manus
37
+ - Posts trying to consume MCP Servers.
38
+ - Medium relevance themes:
39
+ - building apps like Wingmen, or building Agents in general.
40
+ - consuming MCP Servers, tool authentication etc. Could be mentioning Composio, Toolhouse, etc.
41
+ - Analysing MCP Protocol in general. Could be a comment around MCP Security, Tool sprawl etc.
42
+ - If you could not find anything relevant then look for
43
+ - posts where people are genuinely asking for help; or
44
+ - posts where we can steer the conversation towards Wingmen.app. We can do it two steps by asking for suggestions for apps which have one of the USPs of Wingmen. And in the next step answering the question with a link to Wingmen.app
45
+ - Otherwise, just pick the most popular comments (highest upvote). It is generally the parent post.
46
+ - Note: If the thread is deleted or archived we should skip this row. We should also skip low quality posts.
47
+
48
+ The final output of this step should be:
49
+ - skip: bool
50
+ - comment_id: str (Optional, should be empty when skip is true)
51
+ - reasoning: str
52
+
53
+ ## Final step
54
+ Try to identify the theme using the reasoning of the previous step and the entire conversation. The theme buckets are:
55
+ - Consuming apps/agents (here we can subtly promote Wingmen.app)
56
+ - Engagement Strategy: A happy Wingmen.app user sharing his positive experience in a specific usecase.
57
+ - Building apps/agents (here we can bond with other builders)
58
+ - Engagement Strategy: A developer from Wingmen.app team sharing his insights or just bonding over the development challenges.
59
+ - Pain Resolution (here we are just trying to be helpful)
60
+ - Engagement Strategy: Helping the commentor in purely altruistic way.
61
+ - Artifical Nudge (here we will steer the conversation towards Wingmen.app)
62
+ - Engagement Strategy: A typical consumer/developer plants a question so that the official team members can comment and highlight the USPs of Wingmen.app.
63
+
64
+ The final output of the workflow should be:
65
+ - match_type: str (one of [consumer, builder, pain_resolver, artificial_nudge])
66
+ - comment_content: str
67
+
68
+ **Guidelines for generating comment content:**
69
+ - craft a 2-3 line, context-aware, conversational reply.
70
+ - when mentioning AgentR/Wingmen, avoid sales tone or forced CTAs.
71
+ - Use light imperfections for human tone.
@@ -0,0 +1,4 @@
1
+ base_prompt: 'Generate a financial flash report for Apple Inc. Research their latest earnings data including revenue, net income, EPS, and year-over-year changes. Create a formatted report with highlights, upcoming events, and summary. Present the report in chat and email it to adit@agentr.dev.'
2
+ tools:
3
+ - exa__answer
4
+ - google_mail__send_email
@@ -0,0 +1,41 @@
1
+ base_prompt: 'Objective: Find businesses from Google Maps for a given category & location,
2
+ store them in a Google Sheet, then process unprocessed leads to scrape emails and
3
+ sync with HubSpot CRM. Stage 1 - Lead Discovery Get coordinates of Area + City.
4
+ Search on Google Maps with category & coordinates.
5
+ Extract: Name, Google Maps URL, Address, Phone, Website; leave Email & CRM Status
6
+ blank. Sheet: Name: {Area}, {City} Leads - {Category} - {dd-mmm} If exists → append
7
+ non-duplicate rows; else create in folder "Leads from Google Maps" (ID: 142QBejJX0jAqzDz_NHdwVTkcmagoog__).
8
+ Add headers: Name | Google Maps URL | Address | Phone | Website | Email | CRM Status.
9
+ Populate with businesses found. Edge Cases: No results → return message, skip sheet
10
+ creation. Missing data → leave blank. Stage 2 - Lead Processing & CRM Sync Locate
11
+ sheet in Google Drive, ensure headers match. Parse category from sheet name. Identify
12
+ unprocessed rows (CRM Status blank) — by default process the first, or a specified
13
+ row/range/count. Scrape Website for Email: If website exists → scrape homepage/contact
14
+ page; fallback to firecrawl_scrape_url. Save found email in sheet. HubSpot Handling:
15
+ Search contact by email/website/phone. If not found → create with available details,
16
+ Lead Status = New, add note {Area, City} — {Category} — {Google Maps URL}. If exists
17
+ → append note; keep other fields unchanged. Save HubSpot Contact URL/ID in sheet.
18
+ Update CRM Status: Lead Created, Lead Creation Failed, Website not found, Email
19
+ not found, etc. Edge Cases: No Website → create with phone; mark Website not found.
20
+ No Email → create; mark Email not found. Email already in sheet → skip row. Execute immediately for "Cafes" near "IIT Bombay" in "Mumbai" without asking for confirmation.'
21
+ tools:
22
+ - serpapi__google_maps_search
23
+ - firecrawl__scrape_url
24
+ - google_drive__get_file_details
25
+ - google_drive__create_folder
26
+ - google_drive__find_folder_id_by_name
27
+ - google_drive__search_files
28
+ - google_sheet__update_values
29
+ - google_sheet__get_values
30
+ - google_sheet__get_spreadsheet_metadata
31
+ - google_sheet__batch_get_values_by_range
32
+ - google_sheet__create_spreadsheet
33
+ - google_sheet__clear_values
34
+ - hubspot__search_contacts_post
35
+ - hubspot__batch_read_contacts_post
36
+ - hubspot__get_contacts
37
+ - hubspot__get_contact_by_id
38
+ - hubspot__update_contact_by_id
39
+ - hubspot__batch_update_contacts
40
+ - hubspot__create_contacts_batch
41
+ - hubspot__create_contact
@@ -0,0 +1,8 @@
1
+ base_prompt: 'Process emails from the last 24 hours. Fetch primary
2
+ inbox emails excluding replied threads, classify with LLM as Reply Required, No
3
+ Reply Needed, or Ambiguous. For Reply Required/Ambiguous, draft human, on-brand replies for user review.
4
+ Follow greeting, acknowledge, address concern, invite further questions, and friendly
5
+ sign-off. Provide end summary of drafts, skipped, and ambiguous emails. Execute immediately without asking for confirmation. Do not send any emails. Just provide me a report.'
6
+ tools:
7
+ - google_mail__list_messages
8
+ - google_mail__get_message_details
@@ -0,0 +1,6 @@
1
+ base_prompt: 'Analyze a contract from my google drive from the perspective of the Service Provider. Use the search to find it, do not ask me any questions, and assume details that I have not provided. Identify potentially unfavorable clauses such as vague terms, one-sided obligations, IP transfer issues, indemnity clauses, termination conditions, and payment problems. Provide a structured analysis with clause numbers, full text, and explanations of concerns.'
2
+ tools:
3
+ - google_drive__get_file_details
4
+ - google_drive__search_files
5
+ - google_docs__get_document
6
+ - exa__answer
@@ -0,0 +1,14 @@
1
+ base_prompt: 'Create a summary of overnight updates from 8:00 PM yesterday to 8:00 AM today in IST. Check Gmail for important emails and ClickUp for mentions and assigned tasks. Organize findings into high priority and other items, then provide a comprehensive summary of all overnight activity.'
2
+ tools:
3
+ - google_mail__list_messages
4
+ - clickup__comments_get_task_comments
5
+ - clickup__comments_get_list_comments
6
+ - clickup__comments_get_view_comments
7
+ - clickup__tasks_get_list_tasks
8
+ - clickup__tasks_filter_team_tasks
9
+ - clickup__time_tracking_get_time_entries_within_date_range
10
+ - clickup__time_tracking_get_time_entry_history
11
+ - clickup__authorization_get_workspace_list
12
+ - clickup__spaces_get_details
13
+ - clickup__lists_get_list_details
14
+
@@ -0,0 +1,25 @@
1
+ base_prompt: 'Analyze the data in Google Sheet (ID: 1nnnCp3_IWcdHv4UVgXtwYF5wedxbqF4RIeyjN6mCKD8) and create 3-5 relevant charts and visualizations. Add pie charts, bar graphs, and other appropriate visualizations based on the data structure. Embed all charts directly into the sheet and provide the updated sheet link.'
2
+ tools:
3
+ - google_sheet__create_spreadsheet
4
+ - google_sheet__get_spreadsheet_metadata
5
+ - google_sheet__batch_get_values_by_range
6
+ - google_sheet__append_dimensions
7
+ - google_sheet__insert_dimensions
8
+ - google_sheet__delete_sheet
9
+ - google_sheet__add_sheet
10
+ - google_sheet__delete_dimensions
11
+ - google_sheet__add_basic_chart
12
+ - google_sheet__add_table
13
+ - google_sheet__add_pie_chart
14
+ - google_sheet__clear_values
15
+ - google_sheet__update_values
16
+ - google_sheet__clear_basic_filter
17
+ - google_sheet__get_values
18
+ - google_sheet__discover_tables
19
+ - google_sheet__set_basic_filter
20
+ - google_sheet__analyze_table_schema
21
+ - google_sheet__copy_sheet_to_spreadsheet
22
+ - google_sheet__append_values
23
+ - google_sheet__batch_get_values_by_data_filter
24
+ - google_sheet__batch_clear_values
25
+ - google_sheet__format_cells
@@ -0,0 +1,9 @@
1
+ base_prompt: 'Create a 7-day learning plan for Python Programming. Research essential concepts and skills, create a detailed day-by-day plan with topics, goals, resources, and exercises. Compile the plan into a Google Doc and schedule daily emails at 8 AM starting today. Send Day 1 immediately to adit@agentr.dev and provide the Google Doc link.'
2
+ tools:
3
+ - google_docs__get_document
4
+ - google_docs__create_document
5
+ - google_docs__insert_text
6
+ - google_mail__send_email
7
+ - google_mail__send_draft
8
+ - google_mail__create_draft
9
+ - exa__answer