universal-mcp-agents 0.1.3__py3-none-any.whl → 0.1.4__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.

Files changed (32) hide show
  1. universal_mcp/agents/autoagent/graph.py +30 -11
  2. universal_mcp/agents/autoagent/studio.py +1 -7
  3. universal_mcp/agents/base.py +55 -9
  4. universal_mcp/agents/bigtool/__init__.py +3 -1
  5. universal_mcp/agents/bigtool/graph.py +78 -25
  6. universal_mcp/agents/bigtool2/__init__.py +3 -1
  7. universal_mcp/agents/bigtool2/agent.py +2 -1
  8. universal_mcp/agents/bigtool2/context.py +0 -1
  9. universal_mcp/agents/bigtool2/graph.py +76 -32
  10. universal_mcp/agents/bigtoolcache/__init__.py +6 -2
  11. universal_mcp/agents/bigtoolcache/agent.py +2 -1
  12. universal_mcp/agents/bigtoolcache/context.py +0 -1
  13. universal_mcp/agents/bigtoolcache/graph.py +88 -59
  14. universal_mcp/agents/bigtoolcache/prompts.py +29 -0
  15. universal_mcp/agents/bigtoolcache/tools_all.txt +956 -0
  16. universal_mcp/agents/bigtoolcache/tools_important.txt +474 -0
  17. universal_mcp/agents/builder.py +19 -5
  18. universal_mcp/agents/codeact/__init__.py +16 -4
  19. universal_mcp/agents/hil.py +16 -4
  20. universal_mcp/agents/llm.py +5 -1
  21. universal_mcp/agents/planner/__init__.py +7 -3
  22. universal_mcp/agents/planner/__main__.py +3 -1
  23. universal_mcp/agents/planner/graph.py +3 -1
  24. universal_mcp/agents/react.py +5 -1
  25. universal_mcp/agents/shared/tool_node.py +24 -8
  26. universal_mcp/agents/simple.py +8 -1
  27. universal_mcp/agents/tools.py +9 -3
  28. universal_mcp/agents/utils.py +35 -7
  29. {universal_mcp_agents-0.1.3.dist-info → universal_mcp_agents-0.1.4.dist-info}/METADATA +2 -2
  30. universal_mcp_agents-0.1.4.dist-info/RECORD +53 -0
  31. universal_mcp_agents-0.1.3.dist-info/RECORD +0 -51
  32. {universal_mcp_agents-0.1.3.dist-info → universal_mcp_agents-0.1.4.dist-info}/WHEEL +0 -0
@@ -25,9 +25,13 @@ class PlannerAgent(BaseAgent):
25
25
  self.executor_agent_cls = executor_agent_cls
26
26
 
27
27
  async def _build_graph(self):
28
- return build_graph(self.llm, self.app_registry, self.instructions, self.model, self.executor_agent_cls).compile(
29
- checkpointer=self.memory
30
- )
28
+ return build_graph(
29
+ self.llm,
30
+ self.app_registry,
31
+ self.instructions,
32
+ self.model,
33
+ self.executor_agent_cls,
34
+ ).compile(checkpointer=self.memory)
31
35
 
32
36
  @property
33
37
  def graph(self):
@@ -16,7 +16,9 @@ async def main():
16
16
 
17
17
  console = Console()
18
18
  console.print("Starting agent...", style="yellow")
19
- async for event in agent.stream(user_input="Send an email to manoj@agentr.dev'", thread_id="xyz"):
19
+ async for event in agent.stream(
20
+ user_input="Send an email to manoj@agentr.dev'", thread_id="xyz"
21
+ ):
20
22
  console.print(event.content, style="red")
21
23
 
22
24
 
@@ -18,7 +18,9 @@ def build_graph(llm, registry, instructions, model, executor_agent_cls):
18
18
  task = state["messages"][-1].content
19
19
  logger.info(f"Running tool finder for task: {task}")
20
20
  tool_finder_graph = build_tool_node_graph(llm, registry)
21
- tool_finder_state = await tool_finder_graph.ainvoke({"task": task, "messages": state["messages"]})
21
+ tool_finder_state = await tool_finder_graph.ainvoke(
22
+ {"task": task, "messages": state["messages"]}
23
+ )
22
24
 
23
25
  if not tool_finder_state.get("apps_required"):
24
26
  logger.info("Tool finder determined no apps are required.")
@@ -72,5 +72,9 @@ if __name__ == "__main__":
72
72
  tools={"google-mail": ["send_email"]},
73
73
  registry=AgentrRegistry(),
74
74
  )
75
- result = asyncio.run(agent.invoke("Send an email with the subject 'testing react agent' to manoj@agentr.dev"))
75
+ result = asyncio.run(
76
+ agent.invoke(
77
+ "Send an email with the subject 'testing react agent' to manoj@agentr.dev"
78
+ )
79
+ )
76
80
  logger.info(result["messages"][-1].content)
@@ -97,7 +97,9 @@ INSTRUCTIONS:
97
97
  reasoning: str
98
98
 
99
99
  response = await llm.with_structured_output(AppList).ainvoke(
100
- input=prompt.format(task=task, all_apps=all_apps, connected_apps=connected_apps)
100
+ input=prompt.format(
101
+ task=task, all_apps=all_apps, connected_apps=connected_apps
102
+ )
101
103
  )
102
104
  app_list = response.app_list
103
105
  reasoning = f"Found relevant apps: {app_list}. Reasoning: {response.reasoning}"
@@ -105,7 +107,9 @@ INSTRUCTIONS:
105
107
 
106
108
  return {
107
109
  **state,
108
- "messages": [AIMessage(content=f"Identified relevant apps: {', '.join(app_list)}")],
110
+ "messages": [
111
+ AIMessage(content=f"Identified relevant apps: {', '.join(app_list)}")
112
+ ],
109
113
  "relevant_apps": app_list,
110
114
  "reasoning": state.get("reasoning", "") + "\n" + reasoning,
111
115
  }
@@ -129,7 +133,9 @@ Your goal is to select the most appropriate tool for the given task.
129
133
  Only return tool ids.
130
134
  """
131
135
 
132
- response = await llm.with_structured_output(schema=ToolSelectionOutput).ainvoke(input=SELECT_TOOL_PROMPT)
136
+ response = await llm.with_structured_output(schema=ToolSelectionOutput).ainvoke(
137
+ input=SELECT_TOOL_PROMPT
138
+ )
133
139
 
134
140
  selected_tool_ids = response.tool_ids
135
141
  return selected_tool_ids
@@ -159,7 +165,9 @@ Task: "{task}"
159
165
  class SearchQuery(BaseModel):
160
166
  query: str
161
167
 
162
- response = await llm.with_structured_output(SearchQuery).ainvoke(input=prompt.format(task=task))
168
+ response = await llm.with_structured_output(SearchQuery).ainvoke(
169
+ input=prompt.format(task=task)
170
+ )
163
171
  query = response.query
164
172
  logger.info(f"Generated search query '{query}' for task '{task}'")
165
173
  return query
@@ -172,11 +180,17 @@ Task: "{task}"
172
180
  apps_with_tools_dict = {}
173
181
  reasoning_steps = []
174
182
  for app_name in state["relevant_apps"]:
175
- logger.info(f"Searching for tools in {app_name} for task: {task} with query '{search_query}'")
176
- found_tools = await registry.search_tools(query=search_query, app_id=app_name)
183
+ logger.info(
184
+ f"Searching for tools in {app_name} for task: {task} with query '{search_query}'"
185
+ )
186
+ found_tools = await registry.search_tools(
187
+ query=search_query, app_id=app_name
188
+ )
177
189
  selected_tools = await _select_tools(task, found_tools)
178
190
  apps_with_tools_dict[app_name] = selected_tools
179
- reasoning_steps.append(f"For '{app_name}', selected tool(s): {', '.join(selected_tools)}.")
191
+ reasoning_steps.append(
192
+ f"For '{app_name}', selected tool(s): {', '.join(selected_tools)}."
193
+ )
180
194
 
181
195
  return {
182
196
  **state,
@@ -208,7 +222,9 @@ Task: "{task}"
208
222
  )
209
223
  workflow.add_conditional_edges(
210
224
  "find_relevant_apps",
211
- lambda state: "search_tools" if state["relevant_apps"] else "handle_no_apps_found",
225
+ lambda state: "search_tools"
226
+ if state["relevant_apps"]
227
+ else "handle_no_apps_found",
212
228
  )
213
229
 
214
230
  workflow.add_edge("search_tools", END)
@@ -15,7 +15,14 @@ class State(TypedDict):
15
15
 
16
16
 
17
17
  class SimpleAgent(BaseAgent):
18
- def __init__(self, name: str, instructions: str, model: str, memory: BaseCheckpointSaver = None, **kwargs):
18
+ def __init__(
19
+ self,
20
+ name: str,
21
+ instructions: str,
22
+ model: str,
23
+ memory: BaseCheckpointSaver = None,
24
+ **kwargs,
25
+ ):
19
26
  super().__init__(name, instructions, model, memory, **kwargs)
20
27
  self.llm = load_chat_model(model)
21
28
 
@@ -15,7 +15,9 @@ async def load_agentr_tools(agentr_servers: dict):
15
15
  app = app_from_slug(app_name)
16
16
  integration = AgentrIntegration(name=app_name)
17
17
  app_instance = app(integration=integration)
18
- tool_manager.register_tools_from_app(app_instance, tool_names=tool_names["tools"])
18
+ tool_manager.register_tools_from_app(
19
+ app_instance, tool_names=tool_names["tools"]
20
+ )
19
21
  tools = tool_manager.list_tools(format=ToolFormat.LANGCHAIN)
20
22
  return tools
21
23
 
@@ -30,6 +32,10 @@ async def load_tools(path: str) -> ToolConfig:
30
32
  with open(path) as f:
31
33
  data = json.load(f)
32
34
  config = ToolConfig.model_validate(data)
33
- agentr_tools = await load_agentr_tools(config.model_dump(exclude_none=True)["agentrServers"])
34
- mcp_tools = await load_mcp_tools(config.model_dump(exclude_none=True)["mcpServers"])
35
+ agentr_tools = await load_agentr_tools(
36
+ config.model_dump(exclude_none=True)["agentrServers"]
37
+ )
38
+ mcp_tools = await load_mcp_tools(
39
+ config.model_dump(exclude_none=True)["mcpServers"]
40
+ )
35
41
  return agentr_tools + mcp_tools
@@ -24,11 +24,20 @@ Available commands:
24
24
  - `/tools` - List available tools
25
25
  - `/exit` - Exit the application
26
26
  """
27
- self.console.print(Panel(Markdown(welcome_text), title="🤖 AI Agent CLI", border_style="blue"))
27
+ self.console.print(
28
+ Panel(Markdown(welcome_text), title="🤖 AI Agent CLI", border_style="blue")
29
+ )
28
30
 
29
31
  def display_agent_response(self, response: str, agent_name: str):
30
32
  """Display agent response with formatting"""
31
- self.console.print(Panel(Markdown(response), title=f"🤖 {agent_name}", border_style="green", padding=(1, 2)))
33
+ self.console.print(
34
+ Panel(
35
+ Markdown(response),
36
+ title=f"🤖 {agent_name}",
37
+ border_style="green",
38
+ padding=(1, 2),
39
+ )
40
+ )
32
41
 
33
42
  @contextmanager
34
43
  def display_agent_response_streaming(self, agent_name: str):
@@ -54,7 +63,11 @@ Available commands:
54
63
  def display_thinking(self, thought: str):
55
64
  """Display agent's thinking process"""
56
65
  if thought:
57
- self.console.print(Panel(thought, title="💭 Thinking", border_style="yellow", padding=(1, 2)))
66
+ self.console.print(
67
+ Panel(
68
+ thought, title="💭 Thinking", border_style="yellow", padding=(1, 2)
69
+ )
70
+ )
58
71
 
59
72
  def display_tools(self, tools: list):
60
73
  """Display available tools in a table"""
@@ -71,12 +84,23 @@ Available commands:
71
84
  def display_tool_call(self, tool_call: dict):
72
85
  """Display tool call"""
73
86
  tool_call_str = json.dumps(tool_call, indent=2)
74
- self.console.print(Panel(tool_call_str, title="🛠️ Tool Call", border_style="green", padding=(1, 2)))
87
+ self.console.print(
88
+ Panel(
89
+ tool_call_str, title="🛠️ Tool Call", border_style="green", padding=(1, 2)
90
+ )
91
+ )
75
92
 
76
93
  def display_tool_result(self, tool_result: dict):
77
94
  """Display tool result"""
78
95
  tool_result_str = json.dumps(tool_result, indent=2)
79
- self.console.print(Panel(tool_result_str, title="🛠️ Tool Result", border_style="green", padding=(1, 2)))
96
+ self.console.print(
97
+ Panel(
98
+ tool_result_str,
99
+ title="🛠️ Tool Result",
100
+ border_style="green",
101
+ padding=(1, 2),
102
+ )
103
+ )
80
104
 
81
105
  def display_error(self, error: str):
82
106
  """Display error message"""
@@ -100,11 +124,15 @@ Available commands:
100
124
  value = Prompt.ask(interrupt.value["question"])
101
125
  return value
102
126
  elif interrupt_type == "bool":
103
- value = Prompt.ask(interrupt.value["question"], choices=["y", "n"], default="y")
127
+ value = Prompt.ask(
128
+ interrupt.value["question"], choices=["y", "n"], default="y"
129
+ )
104
130
  return value
105
131
  elif interrupt_type == "choice":
106
132
  value = Prompt.ask(
107
- interrupt.value["question"], choices=interrupt.value["choices"], default=interrupt.value["choices"][0]
133
+ interrupt.value["question"],
134
+ choices=interrupt.value["choices"],
135
+ default=interrupt.value["choices"][0],
108
136
  )
109
137
  return value
110
138
  else:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: universal-mcp-agents
3
- Version: 0.1.3
3
+ Version: 0.1.4
4
4
  Summary: Add your description here
5
5
  Project-URL: Homepage, https://github.com/universal-mcp/applications
6
6
  Project-URL: Repository, https://github.com/universal-mcp/applications
@@ -11,7 +11,7 @@ Requires-Dist: langchain-anthropic>=0.3.19
11
11
  Requires-Dist: langchain-google-genai>=2.1.10
12
12
  Requires-Dist: langchain-openai>=0.3.32
13
13
  Requires-Dist: langgraph>=0.6.6
14
- Requires-Dist: universal-mcp-applications>=0.1.2
14
+ Requires-Dist: universal-mcp-applications>=0.1.4
15
15
  Requires-Dist: universal-mcp>=0.1.24rc17
16
16
  Provides-Extra: dev
17
17
  Requires-Dist: pre-commit; extra == 'dev'
@@ -0,0 +1,53 @@
1
+ universal_mcp/agents/__init__.py,sha256=s50fHbQ3ufC_7mwQydHoua4KJOjKjKcUrAgMN0A_34M,588
2
+ universal_mcp/agents/base.py,sha256=gvo0nQDh6_LXbwRVWnGpL_u9e0ZSRe-ONHF9HPOzlj8,6086
3
+ universal_mcp/agents/builder.py,sha256=4F29b9QjrzVhz-di7MFA3X9vr1jpcjlRSLgPWvmzJQY,6134
4
+ universal_mcp/agents/cli.py,sha256=7GdRBpu9rhZPiC2vaNQXWI7K-0yCnvdlmE0IFpvy2Gk,539
5
+ universal_mcp/agents/hil.py,sha256=XfQT8QcuDbiIpUU9N4WSbO2Tm9YNSuwRqyCTWmCWaZo,3818
6
+ universal_mcp/agents/llm.py,sha256=k2aElFCAFEHSOTDVbA9NZrcWw6PMssG73_ZjVLYl3UM,1623
7
+ universal_mcp/agents/react.py,sha256=XlttlICxHOMa87MgLcoknDzepVMLsw6_DrWH7hfbmVM,2562
8
+ universal_mcp/agents/simple.py,sha256=Hr8sxDRW9VD3_ZaH-GhCgwe2XIRWEGn9ERYS25L6Los,1422
9
+ universal_mcp/agents/tools.py,sha256=vjTFJy1qw7WmKw2eCGiW0M9CgYV91hem8h8W2dLDwzg,1407
10
+ universal_mcp/agents/utils.py,sha256=eiR4CNf29ftqeySoCLjyh-gCXMout346_xA8i1Q9EAA,4516
11
+ universal_mcp/agents/autoagent/__init__.py,sha256=RruAbcjyMTB-dIRkzFZYtQxrTpZetynBRYd1xD9noj8,836
12
+ universal_mcp/agents/autoagent/__main__.py,sha256=HH5D5gSw6xirrSoj_0CCmQlVq_wfp--b6hZdiHGfXD8,654
13
+ universal_mcp/agents/autoagent/context.py,sha256=RgjW1uCslucxYJpdmi4govd-0V1_9e6Y_kjWl3FpLrE,847
14
+ universal_mcp/agents/autoagent/graph.py,sha256=ULTksF5qH-3whBvwP9Z2-0fiivudIx5482JWo70sneI,6928
15
+ universal_mcp/agents/autoagent/prompts.py,sha256=v-EwzZ_0XPuBNd_r8aWxmKMSQlZLTVBr0o-dmTQMN1w,892
16
+ universal_mcp/agents/autoagent/state.py,sha256=TQeGZD99okclkoCh5oz-VYIlEsC9yLQyDpnBnm7QCN8,759
17
+ universal_mcp/agents/autoagent/studio.py,sha256=6RHU5UTIfap3b3ZKYD_Z87ciKNjIQA4FGDw8c8nGA84,638
18
+ universal_mcp/agents/autoagent/utils.py,sha256=AFq-8scw_WlSZxDnTzxSNrOSiGYsIlqkqtQLDWf_rMU,431
19
+ universal_mcp/agents/bigtool/__init__.py,sha256=QfuZF1f7r2ACLc2_awyBiF7PATiE3-dv4x4VoYw5ljw,1875
20
+ universal_mcp/agents/bigtool/__main__.py,sha256=_4HBqnlmdJwXOgeMITjBgaDHihED-aEgQmSXL9xcj0Y,602
21
+ universal_mcp/agents/bigtool/context.py,sha256=KM_B-rvEulrvXSBrXAJpwxGHVMW0HgiYKMnmrL2pUEQ,688
22
+ universal_mcp/agents/bigtool/graph.py,sha256=_3QHCobnELN1qyj3Eel9xhCAqiuNZzm7AZCg3M2fltM,9208
23
+ universal_mcp/agents/bigtool/prompts.py,sha256=A6El6Qw9r_D8OD4IZKuYqvrJFJZZmUhrTKlyqFPf6c0,1666
24
+ universal_mcp/agents/bigtool/state.py,sha256=TQeGZD99okclkoCh5oz-VYIlEsC9yLQyDpnBnm7QCN8,759
25
+ universal_mcp/agents/bigtool2/__init__.py,sha256=RgT8OqIFpYEIXI5MhMFlUfZAc7aYI0_aX3HkgjPZtwk,1801
26
+ universal_mcp/agents/bigtool2/__main__.py,sha256=C4Mi8vM9kuGa_CryzIc9nL4-u73ZvSK5tOTbMDMN54I,605
27
+ universal_mcp/agents/bigtool2/agent.py,sha256=UPhjGjWOE6tOkL7Mzx8nosJox5kERvnu1BCpfNQEqlg,436
28
+ universal_mcp/agents/bigtool2/context.py,sha256=ny7gd-vvVpUOYAeQbAEUT0A6Vm6Nn2qGywxTzPBzYFg,929
29
+ universal_mcp/agents/bigtool2/graph.py,sha256=8yWSolV8DUvoOjwzVGwZrYsIiqj9nGMGAK8tCp76nKA,9256
30
+ universal_mcp/agents/bigtool2/prompts.py,sha256=Kn1sDrjH2xb3js_MPPu5PJHMP45unl93CdOC97Q_hzw,1652
31
+ universal_mcp/agents/bigtool2/state.py,sha256=TQeGZD99okclkoCh5oz-VYIlEsC9yLQyDpnBnm7QCN8,759
32
+ universal_mcp/agents/bigtoolcache/__init__.py,sha256=YY7X8-XQ3AC2t_Y9MN9dZk5wTPu7iU6YS8Yhn_akgC0,1844
33
+ universal_mcp/agents/bigtoolcache/__main__.py,sha256=HkPEQqsdnWtDzWSbYdVBBc_JhpRi82TYuaubxNMtt4w,622
34
+ universal_mcp/agents/bigtoolcache/agent.py,sha256=LvzLV4lens_F8Or1Q3cGpo_ZAPxDEWFqtM707FRe9u4,448
35
+ universal_mcp/agents/bigtoolcache/context.py,sha256=ny7gd-vvVpUOYAeQbAEUT0A6Vm6Nn2qGywxTzPBzYFg,929
36
+ universal_mcp/agents/bigtoolcache/graph.py,sha256=ASOO3P5qUMFj7zwGyn592PpZclMHCYbfP2atMhMy2Cs,8628
37
+ universal_mcp/agents/bigtoolcache/prompts.py,sha256=joVjGrgUA2KVNADohZlCc2inP6wdqg7Dgr_3mXzpHZE,3241
38
+ universal_mcp/agents/bigtoolcache/state.py,sha256=TQeGZD99okclkoCh5oz-VYIlEsC9yLQyDpnBnm7QCN8,759
39
+ universal_mcp/agents/bigtoolcache/tools_all.txt,sha256=g52i00AOh9VTDsAtIAF8vhqtTHQVmzTn61k724niEA0,95408
40
+ universal_mcp/agents/bigtoolcache/tools_important.txt,sha256=PD4klowvARwhbC8dcXMm_sGUWH7cAynX40nXLqeRbdQ,38593
41
+ universal_mcp/agents/codeact/__init__.py,sha256=qm06CsIodscl-XFfriYiPMDn7I_aIg48TTIw2ESgU2w,10263
42
+ universal_mcp/agents/codeact/sandbox.py,sha256=lGRzhuXTHCB1qauuOI3bH1-fPTsyL6Lf9EmMIz4C2xQ,1039
43
+ universal_mcp/agents/codeact/test.py,sha256=AI3qWszpM46hF4wzuQm6A8g_UkhGmcg9KhHtk9u14ro,497
44
+ universal_mcp/agents/codeact/utils.py,sha256=VuMvLTxBBh3pgaJk8RWj5AK8XZFF-1gnZJ6jFLeM_CI,1690
45
+ universal_mcp/agents/planner/__init__.py,sha256=GNtoMfL1zFTksYtLpbOBN6yW1G-tMhVQDd9_TlWl3hk,1139
46
+ universal_mcp/agents/planner/__main__.py,sha256=M4jZdWs7bWSG-J8iymwRR07Zmu89SAo6sDV3Ucqa1Bw,699
47
+ universal_mcp/agents/planner/graph.py,sha256=JRndNhAWgmjOsltzvyV49GNSASXNwAvc7ERuhZNLNm4,3123
48
+ universal_mcp/agents/planner/prompts.py,sha256=vLViZ4BeinqUe8gXACLl04UUnH-Hie5L2qDyhCmSNe0,32
49
+ universal_mcp/agents/planner/state.py,sha256=EdrIELvxzBZtdC1FpmErYnCC7OSJ3Irx9QGiCBCeomA,279
50
+ universal_mcp/agents/shared/tool_node.py,sha256=MMILT5o-ZNSmXDXavqyewWcgwmp0TFYInNX9MdUEvQM,8888
51
+ universal_mcp_agents-0.1.4.dist-info/METADATA,sha256=9FhL5a3MTh_CJVgUtjRIpfD2oAdzMJz8te6rbjp_hV8,793
52
+ universal_mcp_agents-0.1.4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
53
+ universal_mcp_agents-0.1.4.dist-info/RECORD,,
@@ -1,51 +0,0 @@
1
- universal_mcp/agents/__init__.py,sha256=s50fHbQ3ufC_7mwQydHoua4KJOjKjKcUrAgMN0A_34M,588
2
- universal_mcp/agents/base.py,sha256=zNYbzV1KY0OM-lDvLBMpdDpueKc6Wy54kbuzjFmBa5w,5170
3
- universal_mcp/agents/builder.py,sha256=duPULxwOEt6IFMK9n0yvaeOFW3Js50WucFi224BMwG8,5956
4
- universal_mcp/agents/cli.py,sha256=7GdRBpu9rhZPiC2vaNQXWI7K-0yCnvdlmE0IFpvy2Gk,539
5
- universal_mcp/agents/hil.py,sha256=6xi0hhK5g-rhCrAMcGbjcKMReLWPC8rnFZMBOF3N_cY,3687
6
- universal_mcp/agents/llm.py,sha256=P03zoUxBfivMa3djt2kmWANxGLg77Tapx1aQJEPVTCo,1592
7
- universal_mcp/agents/react.py,sha256=EVk59XVelBFV13us3CG-RolzRmu8v7FrhlR7m2QIYUY,2526
8
- universal_mcp/agents/simple.py,sha256=JL8TFyXlA1F4zcArgKhlqVIbLWXetwM05z4MPDJgFeI,1367
9
- universal_mcp/agents/tools.py,sha256=J8VdS1xnSEFeEVSmp5Hb47J2-4WJWtsIidUP1lFXhds,1341
10
- universal_mcp/agents/utils.py,sha256=7kwFpD0Rv6JqHG-LlNCVwSu_xRX-N119mUmiBroHJL4,4109
11
- universal_mcp/agents/autoagent/__init__.py,sha256=RruAbcjyMTB-dIRkzFZYtQxrTpZetynBRYd1xD9noj8,836
12
- universal_mcp/agents/autoagent/__main__.py,sha256=HH5D5gSw6xirrSoj_0CCmQlVq_wfp--b6hZdiHGfXD8,654
13
- universal_mcp/agents/autoagent/context.py,sha256=RgjW1uCslucxYJpdmi4govd-0V1_9e6Y_kjWl3FpLrE,847
14
- universal_mcp/agents/autoagent/graph.py,sha256=zQ8XDPELK5MbdMy5hy9rkJtgd71I1RdPlpbNkqvXtuM,6645
15
- universal_mcp/agents/autoagent/prompts.py,sha256=v-EwzZ_0XPuBNd_r8aWxmKMSQlZLTVBr0o-dmTQMN1w,892
16
- universal_mcp/agents/autoagent/state.py,sha256=TQeGZD99okclkoCh5oz-VYIlEsC9yLQyDpnBnm7QCN8,759
17
- universal_mcp/agents/autoagent/studio.py,sha256=nfVRzPXwBjDORHA0wln2k3Nz-zQXNKgZMvgeqBvkdtM,644
18
- universal_mcp/agents/autoagent/utils.py,sha256=AFq-8scw_WlSZxDnTzxSNrOSiGYsIlqkqtQLDWf_rMU,431
19
- universal_mcp/agents/bigtool/__init__.py,sha256=gKSEOmOE5ZsIypxu1sUibzJ8acbk83DjApxE0Adawro,1853
20
- universal_mcp/agents/bigtool/__main__.py,sha256=_4HBqnlmdJwXOgeMITjBgaDHihED-aEgQmSXL9xcj0Y,602
21
- universal_mcp/agents/bigtool/context.py,sha256=KM_B-rvEulrvXSBrXAJpwxGHVMW0HgiYKMnmrL2pUEQ,688
22
- universal_mcp/agents/bigtool/graph.py,sha256=fOr0p547kjpM_CkRyyEcDxmTZ5lEKaTAR98nRCkgsks,8284
23
- universal_mcp/agents/bigtool/prompts.py,sha256=A6El6Qw9r_D8OD4IZKuYqvrJFJZZmUhrTKlyqFPf6c0,1666
24
- universal_mcp/agents/bigtool/state.py,sha256=TQeGZD99okclkoCh5oz-VYIlEsC9yLQyDpnBnm7QCN8,759
25
- universal_mcp/agents/bigtool2/__init__.py,sha256=uP52BOl0z1n_ECbybf6lxVvC0PAjNMrBUcXUOibXjvA,1779
26
- universal_mcp/agents/bigtool2/__main__.py,sha256=C4Mi8vM9kuGa_CryzIc9nL4-u73ZvSK5tOTbMDMN54I,605
27
- universal_mcp/agents/bigtool2/agent.py,sha256=iwn2kyC-Wft40f_QHlLtg7fPpFUpwkjk7I5LJrrS4i8,434
28
- universal_mcp/agents/bigtool2/context.py,sha256=1DMp8g4Gb6UUxVh8bcqafV2WpTGKo6GlaDN6Ey7cAbo,930
29
- universal_mcp/agents/bigtool2/graph.py,sha256=l6LBWmBCsjO0r1TZUXAQHXvz_iqkW_9tGJSlySkcG7A,8373
30
- universal_mcp/agents/bigtool2/prompts.py,sha256=Kn1sDrjH2xb3js_MPPu5PJHMP45unl93CdOC97Q_hzw,1652
31
- universal_mcp/agents/bigtool2/state.py,sha256=TQeGZD99okclkoCh5oz-VYIlEsC9yLQyDpnBnm7QCN8,759
32
- universal_mcp/agents/bigtoolcache/__init__.py,sha256=dTPxrFIJGaJKb67a935UEkgqnBGdN9q1ba2HnpNAuq4,1792
33
- universal_mcp/agents/bigtoolcache/__main__.py,sha256=HkPEQqsdnWtDzWSbYdVBBc_JhpRi82TYuaubxNMtt4w,622
34
- universal_mcp/agents/bigtoolcache/agent.py,sha256=xLTymzsmpNpJf8-y1Mi8BbuWl09kXsk1sdhbJyVwASU,446
35
- universal_mcp/agents/bigtoolcache/context.py,sha256=1DMp8g4Gb6UUxVh8bcqafV2WpTGKo6GlaDN6Ey7cAbo,930
36
- universal_mcp/agents/bigtoolcache/graph.py,sha256=--CuUEc2IKGdKeMueEvsQ-GxCYZVlDclQdKhrf0ctvU,8418
37
- universal_mcp/agents/bigtoolcache/prompts.py,sha256=bIbuktsi0EkOXxYGkyB-e_rmolllrHo4kDsvWO5p_1c,1874
38
- universal_mcp/agents/bigtoolcache/state.py,sha256=TQeGZD99okclkoCh5oz-VYIlEsC9yLQyDpnBnm7QCN8,759
39
- universal_mcp/agents/codeact/__init__.py,sha256=5D_I3lI_3tWjZERRoFav_bPe9UDaJ53pDzZYtyixg3E,10097
40
- universal_mcp/agents/codeact/sandbox.py,sha256=lGRzhuXTHCB1qauuOI3bH1-fPTsyL6Lf9EmMIz4C2xQ,1039
41
- universal_mcp/agents/codeact/test.py,sha256=AI3qWszpM46hF4wzuQm6A8g_UkhGmcg9KhHtk9u14ro,497
42
- universal_mcp/agents/codeact/utils.py,sha256=VuMvLTxBBh3pgaJk8RWj5AK8XZFF-1gnZJ6jFLeM_CI,1690
43
- universal_mcp/agents/planner/__init__.py,sha256=VTLVqIWkVh5SAuFoFupxByoqyNS1vCuc14mdUSr-vKE,1090
44
- universal_mcp/agents/planner/__main__.py,sha256=nAFabo6SVZh4_4GV-SWCpnGg5GsVXgiHYpm9mhCQ6zw,685
45
- universal_mcp/agents/planner/graph.py,sha256=Cj5Y1BI9uJvrYsr4JrQSPRSszznjdVD2dJHWHHJhxp0,3101
46
- universal_mcp/agents/planner/prompts.py,sha256=vLViZ4BeinqUe8gXACLl04UUnH-Hie5L2qDyhCmSNe0,32
47
- universal_mcp/agents/planner/state.py,sha256=EdrIELvxzBZtdC1FpmErYnCC7OSJ3Irx9QGiCBCeomA,279
48
- universal_mcp/agents/shared/tool_node.py,sha256=IkjEcgzRAgjQTqcoa-i1dDY2LJfgOGj9HF8vihYuk_s,8678
49
- universal_mcp_agents-0.1.3.dist-info/METADATA,sha256=2f3oKTOzRHYoo7I8JXDJWklC09SHF0IWVzj0MljFGfg,793
50
- universal_mcp_agents-0.1.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
51
- universal_mcp_agents-0.1.3.dist-info/RECORD,,