mtpx 0.1.0__tar.gz

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 (74) hide show
  1. mtpx-0.1.0/PKG-INFO +163 -0
  2. mtpx-0.1.0/README.md +140 -0
  3. mtpx-0.1.0/pyproject.toml +37 -0
  4. mtpx-0.1.0/setup.cfg +4 -0
  5. mtpx-0.1.0/src/mtp/__init__.py +132 -0
  6. mtpx-0.1.0/src/mtp/agent.py +1986 -0
  7. mtpx-0.1.0/src/mtp/config.py +29 -0
  8. mtpx-0.1.0/src/mtp/events.py +22 -0
  9. mtpx-0.1.0/src/mtp/exceptions.py +10 -0
  10. mtpx-0.1.0/src/mtp/mcp.py +306 -0
  11. mtpx-0.1.0/src/mtp/media.py +268 -0
  12. mtpx-0.1.0/src/mtp/policy.py +32 -0
  13. mtpx-0.1.0/src/mtp/prompts.py +7 -0
  14. mtpx-0.1.0/src/mtp/protocol.py +77 -0
  15. mtpx-0.1.0/src/mtp/providers/__init__.py +40 -0
  16. mtpx-0.1.0/src/mtp/providers/anthropic_provider.py +328 -0
  17. mtpx-0.1.0/src/mtp/providers/cerebras_provider.py +200 -0
  18. mtpx-0.1.0/src/mtp/providers/cohere_provider.py +334 -0
  19. mtpx-0.1.0/src/mtp/providers/common.py +375 -0
  20. mtpx-0.1.0/src/mtp/providers/deepseek_provider.py +224 -0
  21. mtpx-0.1.0/src/mtp/providers/fireworks_provider.py +247 -0
  22. mtpx-0.1.0/src/mtp/providers/gemini_provider.py +437 -0
  23. mtpx-0.1.0/src/mtp/providers/groq_provider.py +336 -0
  24. mtpx-0.1.0/src/mtp/providers/mistral_provider.py +208 -0
  25. mtpx-0.1.0/src/mtp/providers/mock.py +6 -0
  26. mtpx-0.1.0/src/mtp/providers/openai_provider.py +164 -0
  27. mtpx-0.1.0/src/mtp/providers/openrouter_provider.py +335 -0
  28. mtpx-0.1.0/src/mtp/providers/sambanova_provider.py +164 -0
  29. mtpx-0.1.0/src/mtp/providers/simple_planner.py +55 -0
  30. mtpx-0.1.0/src/mtp/providers/together_provider.py +225 -0
  31. mtpx-0.1.0/src/mtp/runtime.py +404 -0
  32. mtpx-0.1.0/src/mtp/schema.py +182 -0
  33. mtpx-0.1.0/src/mtp/session_store.py +463 -0
  34. mtpx-0.1.0/src/mtp/simple_agent.py +948 -0
  35. mtpx-0.1.0/src/mtp/strict.py +90 -0
  36. mtpx-0.1.0/src/mtp/toolkits/__init__.py +23 -0
  37. mtpx-0.1.0/src/mtp/toolkits/calculator.py +98 -0
  38. mtpx-0.1.0/src/mtp/toolkits/common.py +16 -0
  39. mtpx-0.1.0/src/mtp/toolkits/crawl4ai_toolkit.py +115 -0
  40. mtpx-0.1.0/src/mtp/toolkits/file_toolkit.py +135 -0
  41. mtpx-0.1.0/src/mtp/toolkits/local.py +22 -0
  42. mtpx-0.1.0/src/mtp/toolkits/newspaper4k_toolkit.py +77 -0
  43. mtpx-0.1.0/src/mtp/toolkits/newspaper_toolkit.py +42 -0
  44. mtpx-0.1.0/src/mtp/toolkits/python_toolkit.py +130 -0
  45. mtpx-0.1.0/src/mtp/toolkits/shell_toolkit.py +70 -0
  46. mtpx-0.1.0/src/mtp/toolkits/website_toolkit.py +69 -0
  47. mtpx-0.1.0/src/mtp/toolkits/wikipedia_toolkit.py +48 -0
  48. mtpx-0.1.0/src/mtp/tools.py +159 -0
  49. mtpx-0.1.0/src/mtp/transport/__init__.py +4 -0
  50. mtpx-0.1.0/src/mtp/transport/http.py +52 -0
  51. mtpx-0.1.0/src/mtp/transport/stdio.py +29 -0
  52. mtpx-0.1.0/src/mtpx.egg-info/PKG-INFO +163 -0
  53. mtpx-0.1.0/src/mtpx.egg-info/SOURCES.txt +72 -0
  54. mtpx-0.1.0/src/mtpx.egg-info/dependency_links.txt +1 -0
  55. mtpx-0.1.0/src/mtpx.egg-info/top_level.txt +1 -0
  56. mtpx-0.1.0/tests/test_agent.py +236 -0
  57. mtpx-0.1.0/tests/test_agent_advanced_features.py +243 -0
  58. mtpx-0.1.0/tests/test_agent_loop.py +81 -0
  59. mtpx-0.1.0/tests/test_all_providers.py +61 -0
  60. mtpx-0.1.0/tests/test_config_runtime_policy.py +54 -0
  61. mtpx-0.1.0/tests/test_docs_consistency.py +91 -0
  62. mtpx-0.1.0/tests/test_groq_provider.py +121 -0
  63. mtpx-0.1.0/tests/test_mcp_adapter.py +119 -0
  64. mtpx-0.1.0/tests/test_openrouter.py +36 -0
  65. mtpx-0.1.0/tests/test_provider_adapters.py +259 -0
  66. mtpx-0.1.0/tests/test_provider_aliases.py +36 -0
  67. mtpx-0.1.0/tests/test_run_features.py +134 -0
  68. mtpx-0.1.0/tests/test_runtime.py +212 -0
  69. mtpx-0.1.0/tests/test_schema_policy.py +67 -0
  70. mtpx-0.1.0/tests/test_session_store.py +73 -0
  71. mtpx-0.1.0/tests/test_toolkits_local.py +70 -0
  72. mtpx-0.1.0/tests/test_toolkits_web.py +126 -0
  73. mtpx-0.1.0/tests/test_transport.py +73 -0
  74. mtpx-0.1.0/tests/test_usage_metrics.py +89 -0
mtpx-0.1.0/PKG-INFO ADDED
@@ -0,0 +1,163 @@
1
+ Metadata-Version: 2.4
2
+ Name: mtpx
3
+ Version: 0.1.0
4
+ Summary: MTPX: Model Tool Protocol and agent runtime for Python
5
+ Author: MTPX Contributors
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/Godboy/MTP
8
+ Project-URL: Documentation, https://github.com/Godboy/MTP/tree/main/docs
9
+ Project-URL: Repository, https://github.com/Godboy/MTP
10
+ Project-URL: Issues, https://github.com/Godboy/MTP/issues
11
+ Keywords: agent,llm,ai,tool-orchestration,mcp,model-context-protocol,groq,openai
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
20
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
21
+ Requires-Python: >=3.10
22
+ Description-Content-Type: text/markdown
23
+
24
+ # MTPX (Model Tool Protocol Extended)
25
+
26
+ MTPX is a protocol-first Python library for agent tool orchestration, built to support:
27
+ - Lazy tool loading by toolkit/category.
28
+ - Dependency-aware batch tool execution.
29
+ - Policy-aware execution based on tool risk.
30
+ - Multi-round model-tool-model loops.
31
+ - Provider adapters (now including Groq).
32
+ - Transport primitives (stdio + HTTP envelope transport).
33
+ - Experimental MCP JSON-RPC adapter over the same runtime core.
34
+
35
+ ## Quickstart
36
+
37
+ ## Install
38
+
39
+ ### From source (this repo)
40
+
41
+ ```bash
42
+ python -m venv .venv
43
+ .venv\Scripts\activate
44
+ pip install -e .
45
+ ```
46
+
47
+ ### From PyPI (target usage)
48
+
49
+ ```bash
50
+ pip install mtpx
51
+ ```
52
+
53
+ ### Provider SDKs and dotenv (install separately)
54
+
55
+ ```bash
56
+ pip install groq
57
+ pip install python-dotenv
58
+ ```
59
+
60
+ Copy `.env.example` to `.env` and set your key:
61
+
62
+ ```env
63
+ GROQ_API_KEY=your_groq_api_key_here
64
+ ```
65
+
66
+ ## Create an agent (local toolkits + Groq)
67
+
68
+ ```python
69
+ from mtp import Agent
70
+ from mtp.providers import Groq
71
+ from mtp.toolkits import CalculatorToolkit, FileToolkit, PythonToolkit, ShellToolkit
72
+
73
+ Agent.load_dotenv_if_available()
74
+
75
+ tools = Agent.ToolRegistry()
76
+ tools.register_toolkit_loader("calculator", CalculatorToolkit())
77
+ tools.register_toolkit_loader("file", FileToolkit(base_dir="."))
78
+ tools.register_toolkit_loader("python", PythonToolkit(base_dir="."))
79
+ tools.register_toolkit_loader("shell", ShellToolkit(base_dir="."))
80
+
81
+ provider = Groq(model="llama-3.3-70b-versatile")
82
+
83
+ agent = Agent.MTPAgent(
84
+ provider=provider,
85
+ tools=tools,
86
+ instructions="Use tools when needed and return concise answers.",
87
+ debug_mode=True,
88
+ strict_dependency_mode=True,
89
+ )
90
+ response = agent.run("Calculate 25*4+10 and list files in current directory.", max_rounds=4)
91
+ print(response)
92
+
93
+ # Stream final response tokens:
94
+ agent.print_response("Give me a short summary.", max_rounds=4, stream=True)
95
+
96
+ # Stream structured runtime events (readable terminal logs by default):
97
+ agent.print_response("Give me a short summary.", max_rounds=4, stream=True, stream_events=True)
98
+ # Raw JSON lines:
99
+ agent.print_response("Give me a short summary.", max_rounds=4, stream=True, stream_events=True, event_format="json")
100
+ ```
101
+
102
+ ## Persist conversation sessions (JSON database)
103
+
104
+ ```python
105
+ from mtp import Agent, JsonSessionStore
106
+ from mtp.providers import OpenAI
107
+
108
+ session_store = JsonSessionStore(db_path="tmp/mtp_json_db")
109
+ agent = Agent.MTPAgent(provider=OpenAI(model="gpt-4o"), tools=tools, session_store=session_store)
110
+
111
+ agent.run("Remember this: project codename is Atlas.", session_id="chat-1", user_id="u1")
112
+ agent.run("What is the project codename?", session_id="chat-1", user_id="u1")
113
+ ```
114
+
115
+ PostgreSQL and MySQL session stores are also available:
116
+
117
+ ```python
118
+ from mtp import PostgresSessionStore, MySQLSessionStore
119
+
120
+ pg_store = PostgresSessionStore(db_url="postgresql://user:pass@localhost:5432/mtp")
121
+ my_store = MySQLSessionStore(
122
+ host="localhost",
123
+ user="root",
124
+ password="secret",
125
+ database="mtp",
126
+ port=3306,
127
+ )
128
+ ```
129
+
130
+ ## Run examples
131
+
132
+ ```bash
133
+ python examples/quickstart.py
134
+ python examples/groq_agent.py
135
+ python examples/mcp_stdio_server.py
136
+ ```
137
+
138
+ ## Docs map
139
+ - [Quickstart](docs/QUICKSTART.md)
140
+ - [Agent API Reference](docs/AGENT_API.md)
141
+ - [Storage and Sessions](docs/STORAGE.md)
142
+ - [Providers](docs/PROVIDERS.md)
143
+ - [Creating Tools](docs/CREATING_TOOLS.md)
144
+ - [Events Contract](docs/EVENTS.md)
145
+ - [Architecture](docs/ARCHITECTURE.md)
146
+ - [Protocol Spec](docs/PROTOCOL_SPEC.md)
147
+ - [Local Toolkits](docs/LOCAL_TOOLKITS.md)
148
+ - [Groq Integration](docs/GROQ_INTEGRATION.md)
149
+ - [Transport](docs/TRANSPORT.md)
150
+ - [MCP Interop Adapter](docs/MCP_INTEROP.md)
151
+ - [Publishing](docs/PUBLISHING.md)
152
+
153
+ ## Repository structure
154
+ - `src/mtp/protocol.py`: Core protocol entities (`ToolSpec`, `ToolCall`, `ExecutionPlan`, etc.).
155
+ - `src/mtp/schema.py`: Versioned envelope + execution plan validation.
156
+ - `src/mtp/policy.py`: Risk policy (`allow` / `ask` / `deny`).
157
+ - `src/mtp/runtime.py`: Tool registry, lazy loading, caching, batch execution.
158
+ - `src/mtp/agent.py`: Agent loop around provider + runtime.
159
+ - `src/mtp/toolkits/`: Local toolkits (`calculator`, `file`, `python`, `shell`).
160
+ - `src/mtp/transport/`: Envelope transport over stdio and HTTP.
161
+ - `src/mtp/mcp.py`: MCP-compatible JSON-RPC adapter around `ToolRegistry`.
162
+ - `src/mtp/providers/`: Provider adapters (`MockPlannerProvider` + OpenAI/Groq/OpenRouter/Gemini/Anthropic/SambaNova/Cerebras/DeepSeek/Mistral/Cohere/TogetherAI/FireworksAI).
163
+ - `docs/`: documentation and implementation guides.
mtpx-0.1.0/README.md ADDED
@@ -0,0 +1,140 @@
1
+ # MTPX (Model Tool Protocol Extended)
2
+
3
+ MTPX is a protocol-first Python library for agent tool orchestration, built to support:
4
+ - Lazy tool loading by toolkit/category.
5
+ - Dependency-aware batch tool execution.
6
+ - Policy-aware execution based on tool risk.
7
+ - Multi-round model-tool-model loops.
8
+ - Provider adapters (now including Groq).
9
+ - Transport primitives (stdio + HTTP envelope transport).
10
+ - Experimental MCP JSON-RPC adapter over the same runtime core.
11
+
12
+ ## Quickstart
13
+
14
+ ## Install
15
+
16
+ ### From source (this repo)
17
+
18
+ ```bash
19
+ python -m venv .venv
20
+ .venv\Scripts\activate
21
+ pip install -e .
22
+ ```
23
+
24
+ ### From PyPI (target usage)
25
+
26
+ ```bash
27
+ pip install mtpx
28
+ ```
29
+
30
+ ### Provider SDKs and dotenv (install separately)
31
+
32
+ ```bash
33
+ pip install groq
34
+ pip install python-dotenv
35
+ ```
36
+
37
+ Copy `.env.example` to `.env` and set your key:
38
+
39
+ ```env
40
+ GROQ_API_KEY=your_groq_api_key_here
41
+ ```
42
+
43
+ ## Create an agent (local toolkits + Groq)
44
+
45
+ ```python
46
+ from mtp import Agent
47
+ from mtp.providers import Groq
48
+ from mtp.toolkits import CalculatorToolkit, FileToolkit, PythonToolkit, ShellToolkit
49
+
50
+ Agent.load_dotenv_if_available()
51
+
52
+ tools = Agent.ToolRegistry()
53
+ tools.register_toolkit_loader("calculator", CalculatorToolkit())
54
+ tools.register_toolkit_loader("file", FileToolkit(base_dir="."))
55
+ tools.register_toolkit_loader("python", PythonToolkit(base_dir="."))
56
+ tools.register_toolkit_loader("shell", ShellToolkit(base_dir="."))
57
+
58
+ provider = Groq(model="llama-3.3-70b-versatile")
59
+
60
+ agent = Agent.MTPAgent(
61
+ provider=provider,
62
+ tools=tools,
63
+ instructions="Use tools when needed and return concise answers.",
64
+ debug_mode=True,
65
+ strict_dependency_mode=True,
66
+ )
67
+ response = agent.run("Calculate 25*4+10 and list files in current directory.", max_rounds=4)
68
+ print(response)
69
+
70
+ # Stream final response tokens:
71
+ agent.print_response("Give me a short summary.", max_rounds=4, stream=True)
72
+
73
+ # Stream structured runtime events (readable terminal logs by default):
74
+ agent.print_response("Give me a short summary.", max_rounds=4, stream=True, stream_events=True)
75
+ # Raw JSON lines:
76
+ agent.print_response("Give me a short summary.", max_rounds=4, stream=True, stream_events=True, event_format="json")
77
+ ```
78
+
79
+ ## Persist conversation sessions (JSON database)
80
+
81
+ ```python
82
+ from mtp import Agent, JsonSessionStore
83
+ from mtp.providers import OpenAI
84
+
85
+ session_store = JsonSessionStore(db_path="tmp/mtp_json_db")
86
+ agent = Agent.MTPAgent(provider=OpenAI(model="gpt-4o"), tools=tools, session_store=session_store)
87
+
88
+ agent.run("Remember this: project codename is Atlas.", session_id="chat-1", user_id="u1")
89
+ agent.run("What is the project codename?", session_id="chat-1", user_id="u1")
90
+ ```
91
+
92
+ PostgreSQL and MySQL session stores are also available:
93
+
94
+ ```python
95
+ from mtp import PostgresSessionStore, MySQLSessionStore
96
+
97
+ pg_store = PostgresSessionStore(db_url="postgresql://user:pass@localhost:5432/mtp")
98
+ my_store = MySQLSessionStore(
99
+ host="localhost",
100
+ user="root",
101
+ password="secret",
102
+ database="mtp",
103
+ port=3306,
104
+ )
105
+ ```
106
+
107
+ ## Run examples
108
+
109
+ ```bash
110
+ python examples/quickstart.py
111
+ python examples/groq_agent.py
112
+ python examples/mcp_stdio_server.py
113
+ ```
114
+
115
+ ## Docs map
116
+ - [Quickstart](docs/QUICKSTART.md)
117
+ - [Agent API Reference](docs/AGENT_API.md)
118
+ - [Storage and Sessions](docs/STORAGE.md)
119
+ - [Providers](docs/PROVIDERS.md)
120
+ - [Creating Tools](docs/CREATING_TOOLS.md)
121
+ - [Events Contract](docs/EVENTS.md)
122
+ - [Architecture](docs/ARCHITECTURE.md)
123
+ - [Protocol Spec](docs/PROTOCOL_SPEC.md)
124
+ - [Local Toolkits](docs/LOCAL_TOOLKITS.md)
125
+ - [Groq Integration](docs/GROQ_INTEGRATION.md)
126
+ - [Transport](docs/TRANSPORT.md)
127
+ - [MCP Interop Adapter](docs/MCP_INTEROP.md)
128
+ - [Publishing](docs/PUBLISHING.md)
129
+
130
+ ## Repository structure
131
+ - `src/mtp/protocol.py`: Core protocol entities (`ToolSpec`, `ToolCall`, `ExecutionPlan`, etc.).
132
+ - `src/mtp/schema.py`: Versioned envelope + execution plan validation.
133
+ - `src/mtp/policy.py`: Risk policy (`allow` / `ask` / `deny`).
134
+ - `src/mtp/runtime.py`: Tool registry, lazy loading, caching, batch execution.
135
+ - `src/mtp/agent.py`: Agent loop around provider + runtime.
136
+ - `src/mtp/toolkits/`: Local toolkits (`calculator`, `file`, `python`, `shell`).
137
+ - `src/mtp/transport/`: Envelope transport over stdio and HTTP.
138
+ - `src/mtp/mcp.py`: MCP-compatible JSON-RPC adapter around `ToolRegistry`.
139
+ - `src/mtp/providers/`: Provider adapters (`MockPlannerProvider` + OpenAI/Groq/OpenRouter/Gemini/Anthropic/SambaNova/Cerebras/DeepSeek/Mistral/Cohere/TogetherAI/FireworksAI).
140
+ - `docs/`: documentation and implementation guides.
@@ -0,0 +1,37 @@
1
+ [build-system]
2
+ requires = ["setuptools>=68", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "mtpx"
7
+ version = "0.1.0"
8
+ description = "MTPX: Model Tool Protocol and agent runtime for Python"
9
+ readme = "README.md"
10
+ requires-python = ">=3.10"
11
+ license = { text = "MIT" }
12
+ authors = [{ name = "MTPX Contributors" }]
13
+ keywords = ["agent", "llm", "ai", "tool-orchestration", "mcp", "model-context-protocol", "groq", "openai"]
14
+ classifiers = [
15
+ "Development Status :: 3 - Alpha",
16
+ "Intended Audience :: Developers",
17
+ "License :: OSI Approved :: MIT License",
18
+ "Programming Language :: Python :: 3",
19
+ "Programming Language :: Python :: 3.10",
20
+ "Programming Language :: Python :: 3.11",
21
+ "Programming Language :: Python :: 3.12",
22
+ "Topic :: Software Development :: Libraries :: Python Modules",
23
+ "Topic :: Scientific/Engineering :: Artificial Intelligence",
24
+ ]
25
+ dependencies = []
26
+
27
+ [project.urls]
28
+ Homepage = "https://github.com/Godboy/MTP"
29
+ Documentation = "https://github.com/Godboy/MTP/tree/main/docs"
30
+ Repository = "https://github.com/Godboy/MTP"
31
+ Issues = "https://github.com/Godboy/MTP/issues"
32
+
33
+ [tool.setuptools]
34
+ package-dir = { "" = "src" }
35
+
36
+ [tool.setuptools.packages.find]
37
+ where = ["src"]
mtpx-0.1.0/setup.cfg ADDED
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,132 @@
1
+ from .events import EventStreamContext
2
+ from .config import load_dotenv_if_available
3
+ from .policy import PolicyDecision, RiskPolicy
4
+ from .agent import Agent, AgentAction, ProviderAdapter, RunOutput
5
+ from .session_store import (
6
+ JsonSessionStore,
7
+ MySQLSessionStore,
8
+ PostgresSessionStore,
9
+ SessionRecord,
10
+ SessionRun,
11
+ SessionStore,
12
+ )
13
+ from .exceptions import RetryAgentRun, StopAgentRun
14
+ from .protocol import (
15
+ ExecutionPlan,
16
+ ToolOutput,
17
+ ToolBatch,
18
+ ToolCall,
19
+ ToolResult,
20
+ ToolRiskLevel,
21
+ ToolSpec,
22
+ )
23
+ from .media import Audio, File, Image, Video
24
+ from .runtime import ExecutionCancelledError, ToolRegistry, ToolkitLoader, ToolRetryError, ToolStopError
25
+ from .schema import (
26
+ CURRENT_MTP_VERSION,
27
+ MessageEnvelope,
28
+ ToolArgumentsValidationError,
29
+ validate_execution_plan,
30
+ validate_tool_arguments,
31
+ )
32
+ from .simple_agent import MTPAgent
33
+ from .strict import StrictViolation, validate_strict_dependencies
34
+ from .tools import FunctionToolkit, mtp_tool, tool_spec_from_callable, toolkit_from_functions
35
+ from .toolkits import (
36
+ CalculatorToolkit,
37
+ Crawl4aiToolkit,
38
+ FileToolkit,
39
+ Newspaper4kToolkit,
40
+ NewspaperToolkit,
41
+ PythonToolkit,
42
+ ShellToolkit,
43
+ WebsiteToolkit,
44
+ WikipediaToolkit,
45
+ register_local_toolkits,
46
+ )
47
+ from .transport import HTTPTransportServer, run_stdio_transport
48
+ from .mcp import MCPJsonRpcServer, MCPServerInfo, run_mcp_stdio
49
+
50
+ # Convenience aliases for minimal import style:
51
+ # from mtp import Agent
52
+ # tools = Agent.ToolRegistry()
53
+ # helper = Agent.MTPAgent(...)
54
+ Agent.MTPAgent = MTPAgent
55
+ Agent.ToolRegistry = ToolRegistry
56
+ Agent.ToolkitLoader = ToolkitLoader
57
+ Agent.ToolSpec = ToolSpec
58
+ Agent.ToolRiskLevel = ToolRiskLevel
59
+ Agent.Audio = Audio
60
+ Agent.Image = Image
61
+ Agent.Video = Video
62
+ Agent.File = File
63
+ Agent.mtp_tool = staticmethod(mtp_tool)
64
+ Agent.tool_spec_from_callable = staticmethod(tool_spec_from_callable)
65
+ Agent.FunctionToolkit = FunctionToolkit
66
+ Agent.toolkit_from_functions = staticmethod(toolkit_from_functions)
67
+ Agent.RetryAgentRun = RetryAgentRun
68
+ Agent.StopAgentRun = StopAgentRun
69
+ Agent.register_local_toolkits = staticmethod(register_local_toolkits)
70
+ Agent.load_dotenv_if_available = staticmethod(load_dotenv_if_available)
71
+
72
+ __all__ = [
73
+ "Agent",
74
+ "AgentAction",
75
+ "RunOutput",
76
+ "SessionStore",
77
+ "JsonSessionStore",
78
+ "PostgresSessionStore",
79
+ "MySQLSessionStore",
80
+ "SessionRecord",
81
+ "SessionRun",
82
+ "ExecutionPlan",
83
+ "CURRENT_MTP_VERSION",
84
+ "MTPAgent",
85
+ "EventStreamContext",
86
+ "mtp_tool",
87
+ "tool_spec_from_callable",
88
+ "FunctionToolkit",
89
+ "toolkit_from_functions",
90
+ "MessageEnvelope",
91
+ "ProviderAdapter",
92
+ "PolicyDecision",
93
+ "RiskPolicy",
94
+ "ToolBatch",
95
+ "ToolCall",
96
+ "ToolOutput",
97
+ "ToolRegistry",
98
+ "ExecutionCancelledError",
99
+ "ToolRetryError",
100
+ "ToolStopError",
101
+ "ToolResult",
102
+ "ToolRiskLevel",
103
+ "ToolSpec",
104
+ "Audio",
105
+ "Image",
106
+ "Video",
107
+ "File",
108
+ "ToolkitLoader",
109
+ "CalculatorToolkit",
110
+ "Crawl4aiToolkit",
111
+ "FileToolkit",
112
+ "NewspaperToolkit",
113
+ "Newspaper4kToolkit",
114
+ "PythonToolkit",
115
+ "ShellToolkit",
116
+ "WebsiteToolkit",
117
+ "WikipediaToolkit",
118
+ "register_local_toolkits",
119
+ "HTTPTransportServer",
120
+ "run_stdio_transport",
121
+ "MCPJsonRpcServer",
122
+ "MCPServerInfo",
123
+ "run_mcp_stdio",
124
+ "StrictViolation",
125
+ "validate_strict_dependencies",
126
+ "load_dotenv_if_available",
127
+ "validate_execution_plan",
128
+ "validate_tool_arguments",
129
+ "ToolArgumentsValidationError",
130
+ "RetryAgentRun",
131
+ "StopAgentRun",
132
+ ]