universal-mcp 0.1.24rc14__py3-none-any.whl → 0.1.24rc19__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 (62) hide show
  1. universal_mcp/agentr/client.py +11 -0
  2. universal_mcp/agentr/registry.py +40 -5
  3. universal_mcp/applications/application.py +0 -2
  4. universal_mcp/applications/sample/app.py +79 -20
  5. universal_mcp/applications/utils.py +52 -0
  6. universal_mcp/servers/server.py +4 -3
  7. universal_mcp/tools/manager.py +0 -3
  8. universal_mcp/types.py +1 -21
  9. universal_mcp/utils/prompts.py +0 -2
  10. universal_mcp/utils/testing.py +1 -1
  11. {universal_mcp-0.1.24rc14.dist-info → universal_mcp-0.1.24rc19.dist-info}/METADATA +1 -1
  12. universal_mcp-0.1.24rc19.dist-info/RECORD +54 -0
  13. universal_mcp/__init__.py +0 -0
  14. universal_mcp/agents/__init__.py +0 -10
  15. universal_mcp/agents/autoagent/__init__.py +0 -30
  16. universal_mcp/agents/autoagent/__main__.py +0 -25
  17. universal_mcp/agents/autoagent/context.py +0 -26
  18. universal_mcp/agents/autoagent/graph.py +0 -151
  19. universal_mcp/agents/autoagent/prompts.py +0 -9
  20. universal_mcp/agents/autoagent/state.py +0 -27
  21. universal_mcp/agents/autoagent/studio.py +0 -25
  22. universal_mcp/agents/autoagent/utils.py +0 -13
  23. universal_mcp/agents/base.py +0 -129
  24. universal_mcp/agents/bigtool/__init__.py +0 -54
  25. universal_mcp/agents/bigtool/__main__.py +0 -24
  26. universal_mcp/agents/bigtool/context.py +0 -24
  27. universal_mcp/agents/bigtool/graph.py +0 -166
  28. universal_mcp/agents/bigtool/prompts.py +0 -31
  29. universal_mcp/agents/bigtool/state.py +0 -27
  30. universal_mcp/agents/bigtool2/__init__.py +0 -53
  31. universal_mcp/agents/bigtool2/__main__.py +0 -24
  32. universal_mcp/agents/bigtool2/agent.py +0 -11
  33. universal_mcp/agents/bigtool2/context.py +0 -33
  34. universal_mcp/agents/bigtool2/graph.py +0 -169
  35. universal_mcp/agents/bigtool2/prompts.py +0 -12
  36. universal_mcp/agents/bigtool2/state.py +0 -27
  37. universal_mcp/agents/builder.py +0 -80
  38. universal_mcp/agents/cli.py +0 -27
  39. universal_mcp/agents/codeact/__init__.py +0 -243
  40. universal_mcp/agents/codeact/sandbox.py +0 -27
  41. universal_mcp/agents/codeact/test.py +0 -15
  42. universal_mcp/agents/codeact/utils.py +0 -61
  43. universal_mcp/agents/hil.py +0 -104
  44. universal_mcp/agents/llm.py +0 -45
  45. universal_mcp/agents/planner/__init__.py +0 -37
  46. universal_mcp/agents/planner/__main__.py +0 -24
  47. universal_mcp/agents/planner/graph.py +0 -82
  48. universal_mcp/agents/planner/prompts.py +0 -1
  49. universal_mcp/agents/planner/state.py +0 -12
  50. universal_mcp/agents/react.py +0 -84
  51. universal_mcp/agents/shared/agent_node.py +0 -34
  52. universal_mcp/agents/shared/tool_node.py +0 -235
  53. universal_mcp/agents/simple.py +0 -40
  54. universal_mcp/agents/tools.py +0 -35
  55. universal_mcp/agents/utils.py +0 -111
  56. universal_mcp/analytics.py +0 -111
  57. universal_mcp/applications/__init__.py +0 -70
  58. universal_mcp/utils/common.py +0 -278
  59. universal_mcp-0.1.24rc14.dist-info/RECORD +0 -99
  60. {universal_mcp-0.1.24rc14.dist-info → universal_mcp-0.1.24rc19.dist-info}/WHEEL +0 -0
  61. {universal_mcp-0.1.24rc14.dist-info → universal_mcp-0.1.24rc19.dist-info}/entry_points.txt +0 -0
  62. {universal_mcp-0.1.24rc14.dist-info → universal_mcp-0.1.24rc19.dist-info}/licenses/LICENSE +0 -0
@@ -1,70 +0,0 @@
1
- from loguru import logger
2
-
3
- from universal_mcp.applications.application import (
4
- APIApplication,
5
- BaseApplication,
6
- GraphQLApplication,
7
- )
8
- from universal_mcp.config import AppConfig
9
- from universal_mcp.utils.common import (
10
- load_app_from_local_file,
11
- load_app_from_local_folder,
12
- load_app_from_package,
13
- load_app_from_remote_file,
14
- load_app_from_remote_zip,
15
- )
16
-
17
- app_cache: dict[str, type[BaseApplication]] = {}
18
-
19
-
20
- def app_from_slug(slug: str) -> type[BaseApplication]:
21
- """
22
- Dynamically resolve and return the application class based on slug.
23
- """
24
- return app_from_config(AppConfig(name=slug, source_type="package"))
25
-
26
-
27
- def app_from_config(config: AppConfig) -> type[BaseApplication]:
28
- """
29
- Dynamically resolve and return the application class based on AppConfig.
30
- """
31
- if config.name in app_cache:
32
- return app_cache[config.name]
33
-
34
- app_class = None
35
- try:
36
- match config.source_type:
37
- case "package":
38
- app_class = load_app_from_package(config)
39
- case "local_folder":
40
- app_class = load_app_from_local_folder(config)
41
- case "remote_zip":
42
- app_class = load_app_from_remote_zip(config)
43
- case "remote_file":
44
- app_class = load_app_from_remote_file(config)
45
- case "local_file":
46
- app_class = load_app_from_local_file(config)
47
- case _:
48
- raise ValueError(f"Unsupported source_type: {config.source_type}")
49
-
50
- except Exception as e:
51
- logger.error(
52
- f"Failed to load application '{config.name}' from source '{config.source_type}': {e}",
53
- exc_info=True,
54
- )
55
- raise
56
-
57
- if not app_class:
58
- raise ImportError(f"Could not load application class for '{config.name}'")
59
-
60
- logger.debug(f"Loaded class '{app_class.__name__}' for app '{config.name}'")
61
- app_cache[config.name] = app_class
62
- return app_class
63
-
64
-
65
- __all__ = [
66
- "app_from_config",
67
- "BaseApplication",
68
- "APIApplication",
69
- "GraphQLApplication",
70
- ]
@@ -1,278 +0,0 @@
1
- import hashlib
2
- import importlib
3
- import importlib.util
4
- import inspect
5
- import io
6
- import os
7
- import subprocess
8
- import sys
9
- import zipfile
10
- from pathlib import Path
11
-
12
- import httpx
13
- from loguru import logger
14
-
15
- from universal_mcp.applications.application import BaseApplication
16
- from universal_mcp.config import AppConfig
17
-
18
- # --- Global Constants and Setup ---
19
-
20
- UNIVERSAL_MCP_HOME = Path.home() / ".universal-mcp" / "packages"
21
- REMOTE_CACHE_DIR = UNIVERSAL_MCP_HOME / "remote_cache"
22
-
23
- if not UNIVERSAL_MCP_HOME.exists():
24
- UNIVERSAL_MCP_HOME.mkdir(parents=True, exist_ok=True)
25
- if not REMOTE_CACHE_DIR.exists():
26
- REMOTE_CACHE_DIR.mkdir(exist_ok=True)
27
-
28
- # set python path to include the universal-mcp home directory
29
- if str(UNIVERSAL_MCP_HOME) not in sys.path:
30
- sys.path.append(str(UNIVERSAL_MCP_HOME))
31
-
32
-
33
- # --- Default Name Generators ---
34
-
35
-
36
- def get_default_repository_path(slug: str) -> str:
37
- """
38
- Convert a repository slug to a repository URL.
39
- """
40
- slug = slug.strip().lower()
41
- return f"universal-mcp-{slug}"
42
-
43
-
44
- def get_default_package_name(slug: str) -> str:
45
- """
46
- Convert a repository slug to a package name.
47
- """
48
- slug = slug.strip().lower()
49
- package_name = f"universal_mcp_{slug.replace('-', '_')}"
50
- return package_name
51
-
52
-
53
- def get_default_module_path(slug: str) -> str:
54
- """
55
- Convert a repository slug to a module path.
56
- """
57
- package_name = get_default_package_name(slug)
58
- module_path = f"{package_name}.app"
59
- return module_path
60
-
61
-
62
- def get_default_class_name(slug: str) -> str:
63
- """
64
- Convert a repository slug to a class name.
65
- """
66
- slug = slug.strip().lower()
67
- class_name = "".join(part.capitalize() for part in slug.split("-")) + "App"
68
- return class_name
69
-
70
-
71
- # --- Installation and Loading Helpers ---
72
-
73
-
74
- def install_or_upgrade_package(package_name: str, repository_path: str):
75
- """
76
- Helper to install a package via pip from the universal-mcp GitHub repository.
77
- """
78
- uv_path = os.getenv("UV_PATH")
79
- uv_executable = str(Path(uv_path) / "uv") if uv_path else "uv"
80
- logger.info(f"Using uv executable: {uv_executable}")
81
- cmd = [
82
- uv_executable,
83
- "pip",
84
- "install",
85
- "--upgrade",
86
- repository_path,
87
- "--target",
88
- str(UNIVERSAL_MCP_HOME),
89
- ]
90
- logger.debug(f"Installing package '{package_name}' with command: {' '.join(cmd)}")
91
- try:
92
- result = subprocess.run(cmd, capture_output=True, text=True, check=True)
93
- if result.stdout:
94
- logger.info(f"Command stdout: {result.stdout}")
95
- if result.stderr:
96
- logger.warning(f"Command stderr: {result.stderr}")
97
- except subprocess.CalledProcessError as e:
98
- logger.error(f"Installation failed for '{package_name}': {e}")
99
- logger.error(f"Command stdout:\n{e.stdout}")
100
- logger.error(f"Command stderr:\n{e.stderr}")
101
- raise ModuleNotFoundError(f"Installation failed for package '{package_name}'") from e
102
- else:
103
- logger.debug(f"Package {package_name} installed successfully")
104
-
105
-
106
- def install_dependencies_from_path(project_root: Path, target_install_dir: Path):
107
- """
108
- Installs dependencies from pyproject.toml or requirements.txt found in project_root.
109
- """
110
- uv_path = os.getenv("UV_PATH")
111
- uv_executable = str(Path(uv_path) / "uv") if uv_path else "uv"
112
- cmd = []
113
-
114
- if (project_root / "pyproject.toml").exists():
115
- logger.info(f"Found pyproject.toml in {project_root}, installing dependencies.")
116
- cmd = [uv_executable, "pip", "install", ".", "--target", str(target_install_dir)]
117
- elif (project_root / "requirements.txt").exists():
118
- logger.info(f"Found requirements.txt in {project_root}, installing dependencies.")
119
- cmd = [
120
- uv_executable,
121
- "pip",
122
- "install",
123
- "-r",
124
- "requirements.txt",
125
- "--target",
126
- str(target_install_dir),
127
- ]
128
- else:
129
- logger.debug(f"No dependency file found in {project_root}. Skipping dependency installation.")
130
- return
131
-
132
- try:
133
- result = subprocess.run(cmd, capture_output=True, text=True, check=True, cwd=project_root)
134
- if result.stdout:
135
- logger.info(f"Dependency installation stdout:\n{result.stdout}")
136
- if result.stderr:
137
- logger.warning(f"Dependency installation stderr:\n{result.stderr}")
138
- except subprocess.CalledProcessError as e:
139
- logger.error(f"Dependency installation failed for project at '{project_root}': {e}")
140
- logger.error(f"Command stdout:\n{e.stdout}")
141
- logger.error(f"Command stderr:\n{e.stderr}")
142
- raise RuntimeError(f"Failed to install dependencies for {project_root}") from e
143
-
144
-
145
- def _load_class_from_project_root(project_root: Path, config: AppConfig) -> type[BaseApplication]:
146
- """Internal helper to load an application class from a local project directory."""
147
- logger.debug(f"Attempting to load '{config.name}' from project root: {project_root}")
148
- src_path = project_root / "src"
149
- if not src_path.is_dir():
150
- raise FileNotFoundError(f"Required 'src' directory not found in project at {project_root}")
151
-
152
- install_dependencies_from_path(project_root, UNIVERSAL_MCP_HOME)
153
-
154
- if str(src_path) not in sys.path:
155
- sys.path.insert(0, str(src_path))
156
- logger.debug(f"Added to sys.path: {src_path}")
157
-
158
- module_path_str = get_default_module_path(config.name)
159
- class_name_str = get_default_class_name(config.name)
160
-
161
- try:
162
- module = importlib.import_module(module_path_str)
163
- importlib.reload(module) # Reload to pick up changes
164
- app_class = getattr(module, class_name_str)
165
- return app_class
166
- except (ModuleNotFoundError, AttributeError) as e:
167
- logger.error(f"Failed to load module/class '{module_path_str}.{class_name_str}': {e}")
168
- raise
169
-
170
-
171
- # --- Application Loaders ---
172
-
173
-
174
- def load_app_from_package(config: AppConfig) -> type[BaseApplication]:
175
- """Loads an application from a pip-installable package."""
176
- logger.debug(f"Loading '{config.name}' as a package.")
177
- slug = config.name
178
- repository_path = get_default_repository_path(slug)
179
- package_name = get_default_package_name(slug)
180
- install_or_upgrade_package(package_name, repository_path)
181
-
182
- module_path_str = get_default_module_path(slug)
183
- class_name_str = get_default_class_name(slug)
184
- module = importlib.import_module(module_path_str)
185
- return getattr(module, class_name_str)
186
-
187
-
188
- def load_app_from_local_folder(config: AppConfig) -> type[BaseApplication]:
189
- """Loads an application from a local folder path."""
190
- project_path = Path(config.source_path).resolve()
191
- return _load_class_from_project_root(project_path, config)
192
-
193
-
194
- def load_app_from_remote_zip(config: AppConfig) -> type[BaseApplication]:
195
- """Downloads, caches, and loads an application from a remote .zip file."""
196
- url_hash = hashlib.sha256(config.source_path.encode()).hexdigest()[:16]
197
- project_path = REMOTE_CACHE_DIR / f"{config.name}-{url_hash}"
198
-
199
- if not project_path.exists():
200
- logger.info(f"Downloading remote project for '{config.name}' from {config.source_path}")
201
- project_path.mkdir(parents=True, exist_ok=True)
202
- response = httpx.get(config.source_path, follow_redirects=True, timeout=120)
203
- response.raise_for_status()
204
- with zipfile.ZipFile(io.BytesIO(response.content)) as z:
205
- z.extractall(project_path)
206
- logger.info(f"Extracted remote project to {project_path}")
207
-
208
- return _load_class_from_project_root(project_path, config)
209
-
210
-
211
- def load_app_from_remote_file(config: AppConfig) -> type[BaseApplication]:
212
- """Downloads, caches, and loads an application from a remote Python file."""
213
- logger.debug(f"Loading '{config.name}' as a remote file from {config.source_path}")
214
- url_hash = hashlib.sha256(config.source_path.encode()).hexdigest()[:16]
215
- cached_file_path = REMOTE_CACHE_DIR / f"{config.name}-{url_hash}.py"
216
-
217
- if not cached_file_path.exists():
218
- logger.info(f"Downloading remote file for '{config.name}' from {config.source_path}")
219
- try:
220
- response = httpx.get(config.source_path, follow_redirects=True, timeout=60)
221
- response.raise_for_status()
222
- cached_file_path.write_text(response.text, encoding="utf-8")
223
- logger.info(f"Cached remote file to {cached_file_path}")
224
- except httpx.HTTPStatusError as e:
225
- logger.error(f"Failed to download remote file: {e.response.status_code} {e.response.reason_phrase}")
226
- raise
227
- except Exception as e:
228
- logger.error(f"An unexpected error occurred during download: {e}")
229
- raise
230
-
231
- if not cached_file_path.stat().st_size > 0:
232
- raise ImportError(f"Remote file at {cached_file_path} is empty.")
233
-
234
- module_name = f"remote_app_{config.name}_{url_hash}"
235
- spec = importlib.util.spec_from_file_location(module_name, cached_file_path)
236
- if spec is None or spec.loader is None:
237
- raise ImportError(f"Could not create module spec for {cached_file_path}")
238
-
239
- module = importlib.util.module_from_spec(spec)
240
- sys.modules[module_name] = module
241
- spec.loader.exec_module(module)
242
-
243
- for name, obj in inspect.getmembers(module, inspect.isclass):
244
- if obj.__module__ == module_name and issubclass(obj, BaseApplication) and obj is not BaseApplication:
245
- logger.debug(f"Found application class '{name}' defined in remote file for '{config.name}'.")
246
- return obj
247
-
248
- raise ImportError(f"No class inheriting from BaseApplication found in remote file {config.source_path}")
249
-
250
-
251
- def load_app_from_local_file(config: AppConfig) -> type[BaseApplication]:
252
- """Loads an application from a local Python file."""
253
- logger.debug(f"Loading '{config.name}' as a local file from {config.source_path}")
254
- local_file_path = Path(config.source_path).resolve()
255
-
256
- if not local_file_path.is_file():
257
- raise FileNotFoundError(f"Local file not found at: {local_file_path}")
258
-
259
- if not local_file_path.stat().st_size > 0:
260
- raise ImportError(f"Local file at {local_file_path} is empty.")
261
-
262
- path_hash = hashlib.sha256(str(local_file_path).encode()).hexdigest()[:16]
263
- module_name = f"local_app_{config.name}_{path_hash}"
264
-
265
- spec = importlib.util.spec_from_file_location(module_name, local_file_path)
266
- if spec is None or spec.loader is None:
267
- raise ImportError(f"Could not create module spec for {local_file_path}")
268
-
269
- module = importlib.util.module_from_spec(spec)
270
- sys.modules[module_name] = module
271
- spec.loader.exec_module(module)
272
-
273
- for name, obj in inspect.getmembers(module, inspect.isclass):
274
- if obj.__module__ == module_name and issubclass(obj, BaseApplication) and obj is not BaseApplication:
275
- logger.debug(f"Found application class '{name}' in local file for '{config.name}'.")
276
- return obj
277
-
278
- raise ImportError(f"No class inheriting from BaseApplication found in local file {config.source_path}")
@@ -1,99 +0,0 @@
1
- universal_mcp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- universal_mcp/analytics.py,sha256=RzS88HSvJRGMjdJeLHnOgWzfKSb1jVnvOcD7NHqfERw,3733
3
- universal_mcp/cli.py,sha256=pPnIWLhSrLV9ukI8YAg2znehCR3VovhEkmh8XkRT3MU,2505
4
- universal_mcp/config.py,sha256=lOlDAgQMT7f6VymmsuCP9sYLlxGKj0hDF3hFcJ2nzS4,8135
5
- universal_mcp/exceptions.py,sha256=Uen8UFgLHGlSwXgRUyF-nhqTwdiBuL3okgBVRV2AgtA,2150
6
- universal_mcp/logger.py,sha256=VmH_83efpErLEDTJqz55Dp0dioTXfGvMBLZUx5smOLc,2116
7
- universal_mcp/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
- universal_mcp/types.py,sha256=zSKtth1Q9jR4_hrKZ6k9-9LYeM9zzPAvY3KJ6kYqFCM,814
9
- universal_mcp/agentr/README.md,sha256=t15pVgkCwZM5wzgLgrf0Zv6hVL7dPmKXvAeTf8CiXPQ,6641
10
- universal_mcp/agentr/__init__.py,sha256=fv1ZnOCduIUiJ9oN4e6Ya_hA2oWQvcEuDU3Ek1vEufI,180
11
- universal_mcp/agentr/client.py,sha256=TQgwrNc7dEMXuprELf0Q-fdYdrH92Ppd7PUDZoD-KcY,7429
12
- universal_mcp/agentr/integration.py,sha256=V5GjqocqS02tRoI8MeV9PL6m-BzejwBzgJhOHo4MxAE,4212
13
- universal_mcp/agentr/registry.py,sha256=rC9n4t55Y9a6NLFtioYOECRp6l2YxlOYc1Pmvdqh2GE,6927
14
- universal_mcp/agentr/server.py,sha256=bIPmHMiKKwnUYnxmfZVRh1thcn7Rytm_-bNiXTfANzc,2098
15
- universal_mcp/agents/__init__.py,sha256=heSawqbhwOXHV3Rn2B0VBvPhizvsRX4VBrbJCVnHCPo,553
16
- universal_mcp/agents/base.py,sha256=zNYbzV1KY0OM-lDvLBMpdDpueKc6Wy54kbuzjFmBa5w,5170
17
- universal_mcp/agents/builder.py,sha256=XsPmGHQxAL9Mzs-8NHnnh2Ix8-vdcNdNm-EFwgNVK3A,2993
18
- universal_mcp/agents/cli.py,sha256=7GdRBpu9rhZPiC2vaNQXWI7K-0yCnvdlmE0IFpvy2Gk,539
19
- universal_mcp/agents/hil.py,sha256=6xi0hhK5g-rhCrAMcGbjcKMReLWPC8rnFZMBOF3N_cY,3687
20
- universal_mcp/agents/llm.py,sha256=1R8gMh1atZuUe99jUlxA0xLb62k3vCp1yHnqENHrLB0,1590
21
- universal_mcp/agents/react.py,sha256=bjTq1SzNUSeCCDMrrfXsUBu_F_mGzow_jRx5KrQ-HVg,3032
22
- universal_mcp/agents/simple.py,sha256=JL8TFyXlA1F4zcArgKhlqVIbLWXetwM05z4MPDJgFeI,1367
23
- universal_mcp/agents/tools.py,sha256=7Vdw0VZYxXVAzAYSpRKWHzVl9Ll6NOnVRlc4cTXguUQ,1335
24
- universal_mcp/agents/utils.py,sha256=7kwFpD0Rv6JqHG-LlNCVwSu_xRX-N119mUmiBroHJL4,4109
25
- universal_mcp/agents/autoagent/__init__.py,sha256=RruAbcjyMTB-dIRkzFZYtQxrTpZetynBRYd1xD9noj8,836
26
- universal_mcp/agents/autoagent/__main__.py,sha256=HH5D5gSw6xirrSoj_0CCmQlVq_wfp--b6hZdiHGfXD8,654
27
- universal_mcp/agents/autoagent/context.py,sha256=RgjW1uCslucxYJpdmi4govd-0V1_9e6Y_kjWl3FpLrE,847
28
- universal_mcp/agents/autoagent/graph.py,sha256=zQ8XDPELK5MbdMy5hy9rkJtgd71I1RdPlpbNkqvXtuM,6645
29
- universal_mcp/agents/autoagent/prompts.py,sha256=v-EwzZ_0XPuBNd_r8aWxmKMSQlZLTVBr0o-dmTQMN1w,892
30
- universal_mcp/agents/autoagent/state.py,sha256=TQeGZD99okclkoCh5oz-VYIlEsC9yLQyDpnBnm7QCN8,759
31
- universal_mcp/agents/autoagent/studio.py,sha256=nfVRzPXwBjDORHA0wln2k3Nz-zQXNKgZMvgeqBvkdtM,644
32
- universal_mcp/agents/autoagent/utils.py,sha256=AFq-8scw_WlSZxDnTzxSNrOSiGYsIlqkqtQLDWf_rMU,431
33
- universal_mcp/agents/bigtool/__init__.py,sha256=gKSEOmOE5ZsIypxu1sUibzJ8acbk83DjApxE0Adawro,1853
34
- universal_mcp/agents/bigtool/__main__.py,sha256=_4HBqnlmdJwXOgeMITjBgaDHihED-aEgQmSXL9xcj0Y,602
35
- universal_mcp/agents/bigtool/context.py,sha256=KM_B-rvEulrvXSBrXAJpwxGHVMW0HgiYKMnmrL2pUEQ,688
36
- universal_mcp/agents/bigtool/graph.py,sha256=fOr0p547kjpM_CkRyyEcDxmTZ5lEKaTAR98nRCkgsks,8284
37
- universal_mcp/agents/bigtool/prompts.py,sha256=A6El6Qw9r_D8OD4IZKuYqvrJFJZZmUhrTKlyqFPf6c0,1666
38
- universal_mcp/agents/bigtool/state.py,sha256=TQeGZD99okclkoCh5oz-VYIlEsC9yLQyDpnBnm7QCN8,759
39
- universal_mcp/agents/bigtool2/__init__.py,sha256=uP52BOl0z1n_ECbybf6lxVvC0PAjNMrBUcXUOibXjvA,1779
40
- universal_mcp/agents/bigtool2/__main__.py,sha256=C4Mi8vM9kuGa_CryzIc9nL4-u73ZvSK5tOTbMDMN54I,605
41
- universal_mcp/agents/bigtool2/agent.py,sha256=iwn2kyC-Wft40f_QHlLtg7fPpFUpwkjk7I5LJrrS4i8,434
42
- universal_mcp/agents/bigtool2/context.py,sha256=1DMp8g4Gb6UUxVh8bcqafV2WpTGKo6GlaDN6Ey7cAbo,930
43
- universal_mcp/agents/bigtool2/graph.py,sha256=l6LBWmBCsjO0r1TZUXAQHXvz_iqkW_9tGJSlySkcG7A,8373
44
- universal_mcp/agents/bigtool2/prompts.py,sha256=Kn1sDrjH2xb3js_MPPu5PJHMP45unl93CdOC97Q_hzw,1652
45
- universal_mcp/agents/bigtool2/state.py,sha256=TQeGZD99okclkoCh5oz-VYIlEsC9yLQyDpnBnm7QCN8,759
46
- universal_mcp/agents/codeact/__init__.py,sha256=5D_I3lI_3tWjZERRoFav_bPe9UDaJ53pDzZYtyixg3E,10097
47
- universal_mcp/agents/codeact/sandbox.py,sha256=lGRzhuXTHCB1qauuOI3bH1-fPTsyL6Lf9EmMIz4C2xQ,1039
48
- universal_mcp/agents/codeact/test.py,sha256=AI3qWszpM46hF4wzuQm6A8g_UkhGmcg9KhHtk9u14ro,497
49
- universal_mcp/agents/codeact/utils.py,sha256=VuMvLTxBBh3pgaJk8RWj5AK8XZFF-1gnZJ6jFLeM_CI,1690
50
- universal_mcp/agents/planner/__init__.py,sha256=VTLVqIWkVh5SAuFoFupxByoqyNS1vCuc14mdUSr-vKE,1090
51
- universal_mcp/agents/planner/__main__.py,sha256=nAFabo6SVZh4_4GV-SWCpnGg5GsVXgiHYpm9mhCQ6zw,685
52
- universal_mcp/agents/planner/graph.py,sha256=Ct6cFJqXXf8pcYoVrlq-76uITemFfyX-mODBafmkjKA,3309
53
- universal_mcp/agents/planner/prompts.py,sha256=vLViZ4BeinqUe8gXACLl04UUnH-Hie5L2qDyhCmSNe0,32
54
- universal_mcp/agents/planner/state.py,sha256=m1QF99n4GswqoggYoYvv67pV2zW7HPkjwtfc2z783SE,291
55
- universal_mcp/agents/shared/agent_node.py,sha256=jXJ9MwysYk16tOwqvEtXBkcQhkK_PcPLnuXANTb9Z7g,1308
56
- universal_mcp/agents/shared/tool_node.py,sha256=Mmwiy3nUJKU1kXE1JfPdCCxtmbLoA-9pwLg4TbuacOs,8722
57
- universal_mcp/applications/__init__.py,sha256=HrCnGdAT7w4puw2_VulBfjOLku9D5DuMaOwAuQzu6nI,2067
58
- universal_mcp/applications/application.py,sha256=pGF9Rb2D6qzlaSwlcfZ-dNqPtsLkQTqL3jpsRuJ6-qE,23835
59
- universal_mcp/applications/sample/app.py,sha256=E0JwaWD7qytwawb_iWc1pBnJ-Te7MMtab4MxOOebLdc,8972
60
- universal_mcp/client/oauth.py,sha256=O00zOUfQxINaruFU2zt-64DIR1_mAqrY8ykLQo-teJU,8679
61
- universal_mcp/client/token_store.py,sha256=6VAzjzJG49wYvmEDqksFvb-fVqdjHIKWv7yYyh_AuF8,3912
62
- universal_mcp/client/transport.py,sha256=qqtb0ky6yvLBxsaA9-oFU0v9MwfcQb4eomq-O2fmwtQ,11850
63
- universal_mcp/integrations/__init__.py,sha256=tfzLyPEPly5tfIcT8K6-oKCr_MEFGxOROHy_NeVy0KM,200
64
- universal_mcp/integrations/integration.py,sha256=H-hOoDHqk78A4Fi_TGN7OOFS7PDfqXK_nedH8iSz-6A,16459
65
- universal_mcp/servers/__init__.py,sha256=speBb_E94UJa4A6Fv8RHFeoJ7cR-q2bCMtKV7R21P5w,142
66
- universal_mcp/servers/server.py,sha256=qHeHm4UFVUr8TAailbEkWGq7EdlOASkOevY_0lyrWWs,5882
67
- universal_mcp/stores/__init__.py,sha256=quvuwhZnpiSLuojf0NfmBx2xpaCulv3fbKtKaSCEmuM,603
68
- universal_mcp/stores/store.py,sha256=yWbEGZb53z3fpVyqGWbes63z1CtIzC_IuM49OXy__UY,10137
69
- universal_mcp/tools/__init__.py,sha256=jC8hsqfTdtn32yU57AVFUXiU3ZmUOCfCERSCaNEIH7E,395
70
- universal_mcp/tools/adapters.py,sha256=YJ2oqgc8JgmtsdRRtvO-PO0Q0bKqTJ4Y3J6yxlESoTo,3947
71
- universal_mcp/tools/docstring_parser.py,sha256=efEOE-ME7G5Jbbzpn7pN2xNuyu2M5zfZ1Tqu1lRB0Gk,8392
72
- universal_mcp/tools/func_metadata.py,sha256=F4jd--hoZWKPBbZihVtluYKUsIdXdq4a0VWRgMl5k-Q,10838
73
- universal_mcp/tools/manager.py,sha256=U2-OQY4FGTDKS4IEOZTLVLcdqMC2vVghS0p_iLXX2Gc,10507
74
- universal_mcp/tools/registry.py,sha256=LD0J_bPsd8PRTObyvXglqTW1jfZX98m7KBdyP8Yn7wA,2585
75
- universal_mcp/tools/tools.py,sha256=Lk-wUO3rfhwdxaRANtC7lQr5fXi7nclf0oHzxNAb79Q,4927
76
- universal_mcp/utils/__init__.py,sha256=8wi4PGWu-SrFjNJ8U7fr2iFJ1ktqlDmSKj1xYd7KSDc,41
77
- universal_mcp/utils/common.py,sha256=3aJK3AnBkmYf-dbsFLaEu_dGuXQ0Qi2HuqYTueLVhXQ,10968
78
- universal_mcp/utils/installation.py,sha256=PU_GfHPqzkumKk-xG4L9CkBzSmABxmchwblZkx-zY-I,7204
79
- universal_mcp/utils/prompts.py,sha256=FJhqE0gPXDzYHS8gOjAVrdqVxc9X12ESnpd4C3jDSMI,27547
80
- universal_mcp/utils/singleton.py,sha256=RoOiKxBOAhp0TK1QaMDYi-8GjRcy2Vh-bAOuIAcYan0,775
81
- universal_mcp/utils/testing.py,sha256=J857Xt5K-hMxTc8UNJWlkzLbca1zObjwNhNXzYGxBHI,8009
82
- universal_mcp/utils/openapi/__inti__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
- universal_mcp/utils/openapi/api_generator.py,sha256=sygUE8Sropq3Pz09N1kSwGelgnTCAz_lOGspTaYCWEs,6985
84
- universal_mcp/utils/openapi/api_splitter.py,sha256=io7fV-E8hUIR4NxFlakqydbgrQF6aBAnZHPMlpxw-wc,20967
85
- universal_mcp/utils/openapi/cli.py,sha256=az5ObS74R-MmDCOZ1PHTJVKZJrHnsBOAweOUa7A-GqA,25918
86
- universal_mcp/utils/openapi/docgen.py,sha256=DNmwlhg_-TRrHa74epyErMTRjV2nutfCQ7seb_Rq5hE,21366
87
- universal_mcp/utils/openapi/filters.py,sha256=96FajO5nLbvjNPy2A1HvSS9jqpzMDHd4q_QTP-DIsPI,3842
88
- universal_mcp/utils/openapi/openapi.py,sha256=mcmahLJrR-CS-r2RDaYOgMV1Eq7ZuCHMk7_Qrijadh4,62613
89
- universal_mcp/utils/openapi/postprocessor.py,sha256=j_OZ5u2VCb44rfvnJZdKcxQRyGgrEVMr8ue9oN0Ed7A,12235
90
- universal_mcp/utils/openapi/preprocessor.py,sha256=r4n0WQI__OzPL8FTza7jxiM4EYeZwa-3tvEJaJYZC44,63081
91
- universal_mcp/utils/openapi/readme.py,sha256=R2Jp7DUXYNsXPDV6eFTkLiy7MXbSULUj1vHh4O_nB4c,2974
92
- universal_mcp/utils/openapi/test_generator.py,sha256=vucBh9klWmQOUA740TFwfM9ry2nkwKWQiNRcsiZ9HbY,12229
93
- universal_mcp/utils/templates/README.md.j2,sha256=Mrm181YX-o_-WEfKs01Bi2RJy43rBiq2j6fTtbWgbTA,401
94
- universal_mcp/utils/templates/api_client.py.j2,sha256=972Im7LNUAq3yZTfwDcgivnb-b8u6_JLKWXwoIwXXXQ,908
95
- universal_mcp-0.1.24rc14.dist-info/METADATA,sha256=XNtKBwcCdqSZT8Xhqmgc4PlufG0UVh_ezWMStlWZh9c,3255
96
- universal_mcp-0.1.24rc14.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
97
- universal_mcp-0.1.24rc14.dist-info/entry_points.txt,sha256=QlBrVKmA2jIM0q-C-3TQMNJTTWOsOFQvgedBq2rZTS8,56
98
- universal_mcp-0.1.24rc14.dist-info/licenses/LICENSE,sha256=NweDZVPslBAZFzlgByF158b85GR0f5_tLQgq1NS48To,1063
99
- universal_mcp-0.1.24rc14.dist-info/RECORD,,