universal-mcp-agents 0.1.14__py3-none-any.whl → 0.1.15__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.
Potentially problematic release.
This version of universal-mcp-agents might be problematic. Click here for more details.
- universal_mcp/agents/__init__.py +1 -1
- universal_mcp/agents/base.py +2 -1
- universal_mcp/agents/bigtool/__main__.py +4 -3
- universal_mcp/agents/bigtool/agent.py +1 -0
- universal_mcp/agents/bigtool/graph.py +7 -4
- universal_mcp/agents/bigtool/tools.py +4 -5
- universal_mcp/agents/builder/__main__.py +49 -23
- universal_mcp/agents/builder/builder.py +101 -102
- universal_mcp/agents/builder/helper.py +4 -6
- universal_mcp/agents/builder/prompts.py +92 -39
- universal_mcp/agents/builder/state.py +1 -1
- universal_mcp/agents/codeact0/__init__.py +2 -1
- universal_mcp/agents/codeact0/agent.py +12 -5
- universal_mcp/agents/codeact0/langgraph_agent.py +11 -14
- universal_mcp/agents/codeact0/llm_tool.py +1 -2
- universal_mcp/agents/codeact0/playbook_agent.py +353 -0
- universal_mcp/agents/codeact0/prompts.py +113 -39
- universal_mcp/agents/codeact0/sandbox.py +43 -32
- universal_mcp/agents/codeact0/state.py +27 -3
- universal_mcp/agents/codeact0/tools.py +180 -0
- universal_mcp/agents/codeact0/utils.py +53 -18
- universal_mcp/agents/shared/__main__.py +3 -2
- universal_mcp/agents/shared/prompts.py +1 -1
- universal_mcp/agents/shared/tool_node.py +17 -12
- universal_mcp/agents/utils.py +18 -12
- {universal_mcp_agents-0.1.14.dist-info → universal_mcp_agents-0.1.15.dist-info}/METADATA +3 -3
- universal_mcp_agents-0.1.15.dist-info/RECORD +50 -0
- universal_mcp/agents/codeact0/usecases/1-unsubscribe.yaml +0 -4
- universal_mcp/agents/codeact0/usecases/10-reddit2.yaml +0 -10
- universal_mcp/agents/codeact0/usecases/11-github.yaml +0 -14
- universal_mcp/agents/codeact0/usecases/2-reddit.yaml +0 -27
- universal_mcp/agents/codeact0/usecases/2.1-instructions.md +0 -81
- universal_mcp/agents/codeact0/usecases/2.2-instructions.md +0 -71
- universal_mcp/agents/codeact0/usecases/3-earnings.yaml +0 -4
- universal_mcp/agents/codeact0/usecases/4-maps.yaml +0 -41
- universal_mcp/agents/codeact0/usecases/5-gmailreply.yaml +0 -8
- universal_mcp/agents/codeact0/usecases/6-contract.yaml +0 -6
- universal_mcp/agents/codeact0/usecases/7-overnight.yaml +0 -14
- universal_mcp/agents/codeact0/usecases/8-sheets_chart.yaml +0 -25
- universal_mcp/agents/codeact0/usecases/9-learning.yaml +0 -9
- universal_mcp/agents/planner/__init__.py +0 -51
- universal_mcp/agents/planner/__main__.py +0 -28
- universal_mcp/agents/planner/graph.py +0 -85
- universal_mcp/agents/planner/prompts.py +0 -14
- universal_mcp/agents/planner/state.py +0 -11
- universal_mcp_agents-0.1.14.dist-info/RECORD +0 -66
- {universal_mcp_agents-0.1.14.dist-info → universal_mcp_agents-0.1.15.dist-info}/WHEEL +0 -0
|
@@ -1,41 +0,0 @@
|
|
|
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
|
|
@@ -1,8 +0,0 @@
|
|
|
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
|
|
@@ -1,6 +0,0 @@
|
|
|
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
|
|
@@ -1,14 +0,0 @@
|
|
|
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
|
-
|
|
@@ -1,25 +0,0 @@
|
|
|
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
|
|
@@ -1,9 +0,0 @@
|
|
|
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
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
from langgraph.checkpoint.base import BaseCheckpointSaver
|
|
2
|
-
from universal_mcp.tools.registry import ToolRegistry
|
|
3
|
-
|
|
4
|
-
from universal_mcp.agents.base import BaseAgent
|
|
5
|
-
from universal_mcp.agents.llm import load_chat_model
|
|
6
|
-
from universal_mcp.agents.react import ReactAgent
|
|
7
|
-
|
|
8
|
-
from .graph import build_graph
|
|
9
|
-
from .prompts import DEVELOPER_PROMPT
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
class PlannerAgent(BaseAgent):
|
|
13
|
-
def __init__(
|
|
14
|
-
self,
|
|
15
|
-
name: str,
|
|
16
|
-
instructions: str,
|
|
17
|
-
model: str,
|
|
18
|
-
registry: ToolRegistry,
|
|
19
|
-
memory: BaseCheckpointSaver | None = None,
|
|
20
|
-
executor_agent_cls: type[BaseAgent] = ReactAgent,
|
|
21
|
-
**kwargs,
|
|
22
|
-
):
|
|
23
|
-
super().__init__(
|
|
24
|
-
name=name,
|
|
25
|
-
instructions=instructions,
|
|
26
|
-
model=model,
|
|
27
|
-
memory=memory,
|
|
28
|
-
**kwargs,
|
|
29
|
-
)
|
|
30
|
-
self.app_registry = registry
|
|
31
|
-
self.llm = load_chat_model(model)
|
|
32
|
-
self.executor_agent_cls = executor_agent_cls
|
|
33
|
-
|
|
34
|
-
def _build_system_message(self):
|
|
35
|
-
return DEVELOPER_PROMPT.format(name=self.name, instructions=self.instructions)
|
|
36
|
-
|
|
37
|
-
async def _build_graph(self):
|
|
38
|
-
return build_graph(
|
|
39
|
-
self.llm,
|
|
40
|
-
self.app_registry,
|
|
41
|
-
self._build_system_message(),
|
|
42
|
-
self.model,
|
|
43
|
-
self.executor_agent_cls,
|
|
44
|
-
).compile(checkpointer=self.memory)
|
|
45
|
-
|
|
46
|
-
@property
|
|
47
|
-
def graph(self):
|
|
48
|
-
return self._graph
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
__all__ = ["PlannerAgent"]
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import asyncio
|
|
2
|
-
|
|
3
|
-
from universal_mcp.agentr.registry import AgentrRegistry
|
|
4
|
-
|
|
5
|
-
from universal_mcp.agents.planner import PlannerAgent
|
|
6
|
-
from universal_mcp.agents.utils import messages_to_list
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
async def main():
|
|
10
|
-
registry = AgentrRegistry()
|
|
11
|
-
agent = PlannerAgent(
|
|
12
|
-
name="planner-agent",
|
|
13
|
-
instructions="You are a helpful assistant.",
|
|
14
|
-
model="azure/gpt-4o",
|
|
15
|
-
registry=registry,
|
|
16
|
-
)
|
|
17
|
-
from rich import print
|
|
18
|
-
|
|
19
|
-
print("Starting agent...")
|
|
20
|
-
result = await agent.invoke(
|
|
21
|
-
user_input="Send an email to manoj@agentr.dev with the subject 'testing planner' and body 'This is a test of the planner agent.'",
|
|
22
|
-
thread_id="xyz",
|
|
23
|
-
)
|
|
24
|
-
print(messages_to_list(result["messages"]))
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
if __name__ == "__main__":
|
|
28
|
-
asyncio.run(main())
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
from typing import Any
|
|
2
|
-
|
|
3
|
-
from langchain_core.messages import AIMessage, SystemMessage
|
|
4
|
-
from langgraph.graph import END, START, StateGraph
|
|
5
|
-
from loguru import logger
|
|
6
|
-
|
|
7
|
-
from universal_mcp.agents.shared.tool_node import build_tool_node_graph
|
|
8
|
-
|
|
9
|
-
from .state import State
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
def build_graph(llm, registry, instructions, model, executor_agent_cls):
|
|
13
|
-
"""Build the graph for the planner agent."""
|
|
14
|
-
graph_builder = StateGraph(State)
|
|
15
|
-
|
|
16
|
-
async def _tool_finder_node(state: State) -> dict[str, Any]:
|
|
17
|
-
"""Runs the tool finder subgraph to identify necessary tools."""
|
|
18
|
-
task = state["messages"][-1].content
|
|
19
|
-
logger.info(f"Running tool finder for task: {task}")
|
|
20
|
-
tool_finder_graph = build_tool_node_graph(llm, registry)
|
|
21
|
-
tool_finder_state = await tool_finder_graph.ainvoke({"original_task": task, "messages": state["messages"]})
|
|
22
|
-
|
|
23
|
-
if not tool_finder_state.get("apps_required"):
|
|
24
|
-
logger.info("Tool finder determined no apps are required.")
|
|
25
|
-
return {"apps_with_tools": {}}
|
|
26
|
-
|
|
27
|
-
apps_with_tools = tool_finder_state.get("apps_with_tools", {})
|
|
28
|
-
logger.info(f"Tool finder identified apps and tools: {apps_with_tools}")
|
|
29
|
-
return {"apps_with_tools": apps_with_tools, "task": task}
|
|
30
|
-
|
|
31
|
-
def _should_continue(state: State) -> str:
|
|
32
|
-
"""Determines whether to continue to the executor or end."""
|
|
33
|
-
if state.get("apps_with_tools"):
|
|
34
|
-
return "continue"
|
|
35
|
-
return "end"
|
|
36
|
-
|
|
37
|
-
async def _executor_node(state: State) -> dict[str, Any]:
|
|
38
|
-
"""Executes the task with the identified tools."""
|
|
39
|
-
tool_config = state["apps_with_tools"]
|
|
40
|
-
|
|
41
|
-
logger.info(f"Preparing executor with tools: {tool_config}")
|
|
42
|
-
agent = executor_agent_cls(
|
|
43
|
-
name="executor-agent",
|
|
44
|
-
instructions=instructions,
|
|
45
|
-
model=model,
|
|
46
|
-
registry=registry,
|
|
47
|
-
tools=tool_config,
|
|
48
|
-
)
|
|
49
|
-
|
|
50
|
-
await agent.ainit()
|
|
51
|
-
react_graph = agent._graph
|
|
52
|
-
logger.info("Invoking executor agent with tools.")
|
|
53
|
-
# We invoke the agent to make it run the tool
|
|
54
|
-
response = await react_graph.ainvoke({"messages": state["messages"]})
|
|
55
|
-
|
|
56
|
-
final_message = AIMessage(content=response["messages"][-1].content)
|
|
57
|
-
return {"messages": [final_message]}
|
|
58
|
-
|
|
59
|
-
async def _no_tools_node(state: State) -> dict[str, Any]:
|
|
60
|
-
"""Handles tasks that don't require tools by invoking the LLM directly."""
|
|
61
|
-
logger.info("No tools required. Invoking LLM directly.")
|
|
62
|
-
messages = [
|
|
63
|
-
SystemMessage(content=instructions),
|
|
64
|
-
*state["messages"],
|
|
65
|
-
]
|
|
66
|
-
response = await llm.ainvoke(messages)
|
|
67
|
-
return {"messages": [response]}
|
|
68
|
-
|
|
69
|
-
graph_builder.add_node("tool_finder", _tool_finder_node)
|
|
70
|
-
graph_builder.add_node("executor", _executor_node)
|
|
71
|
-
graph_builder.add_node("no_tools_executor", _no_tools_node)
|
|
72
|
-
|
|
73
|
-
graph_builder.add_edge(START, "tool_finder")
|
|
74
|
-
graph_builder.add_conditional_edges(
|
|
75
|
-
"tool_finder",
|
|
76
|
-
_should_continue,
|
|
77
|
-
{
|
|
78
|
-
"continue": "executor",
|
|
79
|
-
"end": "no_tools_executor",
|
|
80
|
-
},
|
|
81
|
-
)
|
|
82
|
-
graph_builder.add_edge("executor", END)
|
|
83
|
-
graph_builder.add_edge("no_tools_executor", END)
|
|
84
|
-
|
|
85
|
-
return graph_builder
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
# prompts.py
|
|
2
|
-
|
|
3
|
-
DEVELOPER_PROMPT = """
|
|
4
|
-
You are a planner agent that orchestrates tasks by selecting the right tools.
|
|
5
|
-
|
|
6
|
-
Your primary goal is to analyze a user's request and determine the most effective sequence of tools to accomplish it. You have access to a registry of applications and their corresponding tools.
|
|
7
|
-
|
|
8
|
-
Here's your process:
|
|
9
|
-
1. **Assess the Task**: Understand the user's intent and what they want to achieve.
|
|
10
|
-
2. **Identify Necessary Tools**: Based on the task, identify which applications and tools are required.
|
|
11
|
-
3. **Orchestrate Execution**: Pass the selected tools and instructions to an executor agent to perform the task.
|
|
12
|
-
|
|
13
|
-
{instructions}
|
|
14
|
-
"""
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
from typing import Annotated
|
|
2
|
-
|
|
3
|
-
from langgraph.graph.message import add_messages
|
|
4
|
-
from typing_extensions import TypedDict
|
|
5
|
-
from universal_mcp.types import ToolConfig
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
class State(TypedDict):
|
|
9
|
-
messages: Annotated[list, add_messages]
|
|
10
|
-
task: str
|
|
11
|
-
apps_with_tools: ToolConfig
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
universal_mcp/agents/__init__.py,sha256=kM4mC6Pf6lmaaZF1volo7VtKgA8FDyzb1sNenpB7Ulk,1244
|
|
2
|
-
universal_mcp/agents/base.py,sha256=xQ_zMHTvULaiE4LiE7IfhrLmlBtvJ5zVE9Rq2nJ4Hm4,6976
|
|
3
|
-
universal_mcp/agents/cli.py,sha256=AG9e4iSX3GazT537573YrYT1wSaZYOr42rrYQ7xP3YA,1016
|
|
4
|
-
universal_mcp/agents/hil.py,sha256=_5PCK6q0goGm8qylJq44aSp2MadP-yCPvhOJYKqWLMo,3808
|
|
5
|
-
universal_mcp/agents/llm.py,sha256=hVRwjZs3MHl5_3BWedmurs2Jt1oZDfFX0Zj9F8KH7fk,1787
|
|
6
|
-
universal_mcp/agents/react.py,sha256=8XQvJ0HLVgc-K0qn9Ml48WGcgUGuIKtL67HatlT6Da0,3334
|
|
7
|
-
universal_mcp/agents/simple.py,sha256=NSATg5TWzsRNS7V3LFiDG28WSOCIwCdcC1g7NRwg2nM,2095
|
|
8
|
-
universal_mcp/agents/utils.py,sha256=pZFAqH__csH-gRLlTOnuU8kNix3_t5eC3yIk926FWpQ,6898
|
|
9
|
-
universal_mcp/agents/bigtool/__init__.py,sha256=mZG8dsaCVyKlm82otxtiTA225GIFLUCUUYPEIPF24uw,2299
|
|
10
|
-
universal_mcp/agents/bigtool/__main__.py,sha256=a15OUoqPR938x7eseWtxu0aLX7lRS3nu8k5Ks3giUY4,472
|
|
11
|
-
universal_mcp/agents/bigtool/agent.py,sha256=FsWa7S00RHmzrLd2ms_aR4wJ09h_KFJ8DDzFnADKJOQ,251
|
|
12
|
-
universal_mcp/agents/bigtool/context.py,sha256=ny7gd-vvVpUOYAeQbAEUT0A6Vm6Nn2qGywxTzPBzYFg,929
|
|
13
|
-
universal_mcp/agents/bigtool/graph.py,sha256=SE1IavwrSciIWsb_miekEh3H46UJWpeIOkcp7CsRG_w,5764
|
|
14
|
-
universal_mcp/agents/bigtool/prompts.py,sha256=Joi5mCzZX63aM_6eBrMOKuNRHjTkceVIibSsGBGqhYE,2041
|
|
15
|
-
universal_mcp/agents/bigtool/state.py,sha256=TQeGZD99okclkoCh5oz-VYIlEsC9yLQyDpnBnm7QCN8,759
|
|
16
|
-
universal_mcp/agents/bigtool/tools.py,sha256=vlydQQnITS7OPaSzyILf3czrgO3_fEB-i7zItKcEWjU,6377
|
|
17
|
-
universal_mcp/agents/builder/__main__.py,sha256=mGw5xHK53qNGgs6q7s2PPPPWozWPDKXD2AZGQTqCDQc,10750
|
|
18
|
-
universal_mcp/agents/builder/builder.py,sha256=uhUOH6S7F2iWDhpNOpfzVUT1VB0MQnmcEkLPYJs65gY,8151
|
|
19
|
-
universal_mcp/agents/builder/helper.py,sha256=G6IoXB433zAwfOGhDXOIGsf_EC9bbOSGN8WPWGSzmrk,2700
|
|
20
|
-
universal_mcp/agents/builder/prompts.py,sha256=k0IfhWZ10zou3I2e3kczxf2zpY2AsPshjeY_h5oQ1KA,2673
|
|
21
|
-
universal_mcp/agents/builder/state.py,sha256=nJrH-ChSpqv-fsXhvP4UkouVdQw0ji376uFM0aJ91D0,921
|
|
22
|
-
universal_mcp/agents/codeact/__init__.py,sha256=rLE8gvOo5H4YSr71DRq76b3RV3uuotxuAy_VnBVaVwk,60
|
|
23
|
-
universal_mcp/agents/codeact/__main__.py,sha256=W2cHXRwH1dZG3ETIkMwUqA_d62K3IctHP-FDZWDjxdw,1067
|
|
24
|
-
universal_mcp/agents/codeact/agent.py,sha256=sKZWokTHcuL68Y6SNyaaHe6_XkWxaIq36TrNmPJfQto,9762
|
|
25
|
-
universal_mcp/agents/codeact/models.py,sha256=2fdAcF5bxWDpljjEwDEdPBflTMShSPwwncHrphRjsYg,222
|
|
26
|
-
universal_mcp/agents/codeact/prompts.py,sha256=EMI-imnd0Ps0Bd2FOvSqgiicvvtFFu0MF9s93PiC_3k,4493
|
|
27
|
-
universal_mcp/agents/codeact/sandbox.py,sha256=NjN6ISj8psFtHf8V0w24ChJdUMUWkq7OrlbHdzm4wBc,2299
|
|
28
|
-
universal_mcp/agents/codeact/state.py,sha256=WTPfpxDlGRnlr5tZuXMg_KU7GS7TZbnrIKslOvZLbQI,565
|
|
29
|
-
universal_mcp/agents/codeact/utils.py,sha256=JUbT_HYGS_D1BzmzoVpORIe7SGur1KgJguTZ_1tZ4JY,1918
|
|
30
|
-
universal_mcp/agents/codeact0/__init__.py,sha256=rLE8gvOo5H4YSr71DRq76b3RV3uuotxuAy_VnBVaVwk,60
|
|
31
|
-
universal_mcp/agents/codeact0/__main__.py,sha256=V2wLWW9ym3rtiSvPEs-N0Mki7G5dYHzV5dAsAoF-ygQ,1148
|
|
32
|
-
universal_mcp/agents/codeact0/agent.py,sha256=WmCHhhGN1q2Q1s14FN2kaNBEIVlYRoMpWJOqQEYjaBo,6538
|
|
33
|
-
universal_mcp/agents/codeact0/config.py,sha256=H-1woj_nhSDwf15F63WYn723y4qlRefXzGxuH81uYF0,2215
|
|
34
|
-
universal_mcp/agents/codeact0/langgraph_agent.py,sha256=8-Y3-OOEpY_XLcnjvFX-KyAQA5SzBjya3YBrrV9Qh_8,652
|
|
35
|
-
universal_mcp/agents/codeact0/llm_tool.py,sha256=9xgRylNZo3lya33L3iqS7yipJYaHCeUEEBCfjUp71vc,13821
|
|
36
|
-
universal_mcp/agents/codeact0/prompts.py,sha256=VT3v61JkAvZwjQoxwKR3QsYdkbyd_1E8bIm3oABNfMg,7512
|
|
37
|
-
universal_mcp/agents/codeact0/sandbox.py,sha256=tkrhQoV7sAIT5rtd5kpNYEgDz4y82WSHKpMGE6bqthE,3108
|
|
38
|
-
universal_mcp/agents/codeact0/state.py,sha256=kcoCoz-kd0Ukw1YNGDHNggixCK34KzMl2t6GztakSo4,412
|
|
39
|
-
universal_mcp/agents/codeact0/utils.py,sha256=6yeUVsB2CkcrutHjfpMI3KsMJkVpFj3Piag6A2IG0Jc,14733
|
|
40
|
-
universal_mcp/agents/codeact0/usecases/1-unsubscribe.yaml,sha256=DiChHW-mNOcaaiec7f_04_A0Xyf9a2ihzXiPA9-Fw1I,239
|
|
41
|
-
universal_mcp/agents/codeact0/usecases/10-reddit2.yaml,sha256=R3vrZZNv_E-m_SuSJ5tSv11HqMomm8Gtxp_LDhkrnAw,618
|
|
42
|
-
universal_mcp/agents/codeact0/usecases/11-github.yaml,sha256=iu4-vlvopPct9vfAseElLXPUAWN5sMVri4oMbDYlA4s,672
|
|
43
|
-
universal_mcp/agents/codeact0/usecases/2-reddit.yaml,sha256=-dstvFMjsuP9UQM3B_G1HBn7ImNIMxSCNbITpfwgwAY,2525
|
|
44
|
-
universal_mcp/agents/codeact0/usecases/2.1-instructions.md,sha256=0gQBY_A3jT_lgKNiu6GdyEYupbX0Xz2unlCoTQwv-Es,5098
|
|
45
|
-
universal_mcp/agents/codeact0/usecases/2.2-instructions.md,sha256=Cx-VkcC55MrgFxlMBMBCD83jEge_yZgBWKwtuK1OPFc,4458
|
|
46
|
-
universal_mcp/agents/codeact0/usecases/3-earnings.yaml,sha256=c1ipGMmqafz8zTzGNYyn_4VldC-PB5FY87l8HS9QkOM,344
|
|
47
|
-
universal_mcp/agents/codeact0/usecases/4-maps.yaml,sha256=2KwGE1sFGtP8vEjKZ5Yjlro2j5LzafWbVlFy0E3a1CA,2462
|
|
48
|
-
universal_mcp/agents/codeact0/usecases/5-gmailreply.yaml,sha256=2ExMgk3z453phZocmCw0bmnJXugy79YNaoAfZV5CfMU,593
|
|
49
|
-
universal_mcp/agents/codeact0/usecases/6-contract.yaml,sha256=yVvoz1-pmJVsJSkCtTCuO57Ln5y1Kj7ErkjPyRweJb0,574
|
|
50
|
-
universal_mcp/agents/codeact0/usecases/7-overnight.yaml,sha256=Vod5md6wxmhY4MFkc1soMOpNNDXquVufo48QkM2orz0,731
|
|
51
|
-
universal_mcp/agents/codeact0/usecases/8-sheets_chart.yaml,sha256=aZpdyDMnrHjmV9wMqgV3VXsYGvNPFD58px6ZPjva5PM,1097
|
|
52
|
-
universal_mcp/agents/codeact0/usecases/9-learning.yaml,sha256=MXAgTU1p0Ek1md8dvb5Srb1W6QU4xPUgb6KgNfoza10,535
|
|
53
|
-
universal_mcp/agents/planner/__init__.py,sha256=7nGDDtmPk2LN4s5poIFkflm5ZoyRuQSQ73Qw_4GOov4,1415
|
|
54
|
-
universal_mcp/agents/planner/__main__.py,sha256=OfhTfYDZK_ZUfc8sX-Sa6TWk-dNqD2rl13Ln64mNAtw,771
|
|
55
|
-
universal_mcp/agents/planner/graph.py,sha256=70hhIoEZOcYojpiyVSCedgYpnmxVP7aqdn8s6VBu-D4,3228
|
|
56
|
-
universal_mcp/agents/planner/prompts.py,sha256=_JoHqiAvswtqCDu90AGUHmfsu8eWE1-_yI4LLn3pqMU,657
|
|
57
|
-
universal_mcp/agents/planner/state.py,sha256=qqyp-jSGsCxe1US-PRLT4-y1sITAcVE6nCMlQLnvop0,278
|
|
58
|
-
universal_mcp/agents/shared/__main__.py,sha256=u6ezelmT7poaMRr5AfKp3uXGOV7zEwj017j_iAeUcZs,1450
|
|
59
|
-
universal_mcp/agents/shared/prompts.py,sha256=-gNyfhrJFtPEG4YeoJRYKmkmRHsI8a5f5ssxk_AWrOI,3760
|
|
60
|
-
universal_mcp/agents/shared/tool_node.py,sha256=syydbbKFMpu9Gg45yGP-kpN5KvD2oSRXWtqo1YpD6gY,9038
|
|
61
|
-
universal_mcp/applications/llm/__init__.py,sha256=xnpxq4Wl_pevvwtSUtEwcty8_d61ywO1V2YnEXyCREY,46
|
|
62
|
-
universal_mcp/applications/llm/app.py,sha256=iNLU6z2LRZc01GfSKvV0vNzT1LhKAjq_UrSJEmjthjw,6032
|
|
63
|
-
universal_mcp/applications/ui/app.py,sha256=c7OkZsO2fRtndgAzAQbKu-1xXRuRp9Kjgml57YD2NR4,9459
|
|
64
|
-
universal_mcp_agents-0.1.14.dist-info/METADATA,sha256=6a7VjzkIfQdp6b4UfQVAMKFzg2qE8wszgkocVRgqNok,878
|
|
65
|
-
universal_mcp_agents-0.1.14.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
66
|
-
universal_mcp_agents-0.1.14.dist-info/RECORD,,
|
|
File without changes
|