agentrun-sdk 0.0.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.
Files changed (128) hide show
  1. agentrun/__init__.py +209 -0
  2. agentrun/agent_runtime/__client_async_template.py +466 -0
  3. agentrun/agent_runtime/__endpoint_async_template.py +345 -0
  4. agentrun/agent_runtime/__init__.py +53 -0
  5. agentrun/agent_runtime/__runtime_async_template.py +477 -0
  6. agentrun/agent_runtime/api/__data_async_template.py +58 -0
  7. agentrun/agent_runtime/api/__init__.py +6 -0
  8. agentrun/agent_runtime/api/control.py +1362 -0
  9. agentrun/agent_runtime/api/data.py +98 -0
  10. agentrun/agent_runtime/client.py +868 -0
  11. agentrun/agent_runtime/endpoint.py +649 -0
  12. agentrun/agent_runtime/model.py +362 -0
  13. agentrun/agent_runtime/runtime.py +904 -0
  14. agentrun/credential/__client_async_template.py +177 -0
  15. agentrun/credential/__credential_async_template.py +216 -0
  16. agentrun/credential/__init__.py +28 -0
  17. agentrun/credential/api/__init__.py +5 -0
  18. agentrun/credential/api/control.py +606 -0
  19. agentrun/credential/client.py +319 -0
  20. agentrun/credential/credential.py +381 -0
  21. agentrun/credential/model.py +248 -0
  22. agentrun/integration/__init__.py +21 -0
  23. agentrun/integration/agentscope/__init__.py +12 -0
  24. agentrun/integration/agentscope/adapter.py +17 -0
  25. agentrun/integration/agentscope/builtin.py +65 -0
  26. agentrun/integration/agentscope/message_adapter.py +185 -0
  27. agentrun/integration/agentscope/model_adapter.py +60 -0
  28. agentrun/integration/agentscope/tool_adapter.py +59 -0
  29. agentrun/integration/builtin/__init__.py +16 -0
  30. agentrun/integration/builtin/model.py +97 -0
  31. agentrun/integration/builtin/sandbox.py +276 -0
  32. agentrun/integration/builtin/toolset.py +47 -0
  33. agentrun/integration/crewai/__init__.py +12 -0
  34. agentrun/integration/crewai/adapter.py +9 -0
  35. agentrun/integration/crewai/builtin.py +65 -0
  36. agentrun/integration/crewai/model_adapter.py +27 -0
  37. agentrun/integration/crewai/tool_adapter.py +26 -0
  38. agentrun/integration/google_adk/__init__.py +12 -0
  39. agentrun/integration/google_adk/adapter.py +15 -0
  40. agentrun/integration/google_adk/builtin.py +65 -0
  41. agentrun/integration/google_adk/message_adapter.py +144 -0
  42. agentrun/integration/google_adk/model_adapter.py +43 -0
  43. agentrun/integration/google_adk/tool_adapter.py +25 -0
  44. agentrun/integration/langchain/__init__.py +9 -0
  45. agentrun/integration/langchain/adapter.py +15 -0
  46. agentrun/integration/langchain/builtin.py +71 -0
  47. agentrun/integration/langchain/message_adapter.py +141 -0
  48. agentrun/integration/langchain/model_adapter.py +37 -0
  49. agentrun/integration/langchain/tool_adapter.py +50 -0
  50. agentrun/integration/langgraph/__init__.py +13 -0
  51. agentrun/integration/langgraph/adapter.py +20 -0
  52. agentrun/integration/langgraph/builtin.py +65 -0
  53. agentrun/integration/pydantic_ai/__init__.py +12 -0
  54. agentrun/integration/pydantic_ai/adapter.py +13 -0
  55. agentrun/integration/pydantic_ai/builtin.py +65 -0
  56. agentrun/integration/pydantic_ai/model_adapter.py +44 -0
  57. agentrun/integration/pydantic_ai/tool_adapter.py +19 -0
  58. agentrun/integration/utils/__init__.py +112 -0
  59. agentrun/integration/utils/adapter.py +167 -0
  60. agentrun/integration/utils/canonical.py +157 -0
  61. agentrun/integration/utils/converter.py +134 -0
  62. agentrun/integration/utils/model.py +107 -0
  63. agentrun/integration/utils/tool.py +1714 -0
  64. agentrun/model/__client_async_template.py +357 -0
  65. agentrun/model/__init__.py +57 -0
  66. agentrun/model/__model_proxy_async_template.py +270 -0
  67. agentrun/model/__model_service_async_template.py +267 -0
  68. agentrun/model/api/__init__.py +6 -0
  69. agentrun/model/api/control.py +1173 -0
  70. agentrun/model/api/data.py +196 -0
  71. agentrun/model/client.py +674 -0
  72. agentrun/model/model.py +218 -0
  73. agentrun/model/model_proxy.py +439 -0
  74. agentrun/model/model_service.py +438 -0
  75. agentrun/sandbox/__browser_sandbox_async_template.py +113 -0
  76. agentrun/sandbox/__client_async_template.py +466 -0
  77. agentrun/sandbox/__code_interpreter_sandbox_async_template.py +466 -0
  78. agentrun/sandbox/__init__.py +54 -0
  79. agentrun/sandbox/__sandbox_async_template.py +398 -0
  80. agentrun/sandbox/__template_async_template.py +150 -0
  81. agentrun/sandbox/api/__browser_data_async_template.py +140 -0
  82. agentrun/sandbox/api/__code_interpreter_data_async_template.py +206 -0
  83. agentrun/sandbox/api/__init__.py +17 -0
  84. agentrun/sandbox/api/__sandbox_data_async_template.py +100 -0
  85. agentrun/sandbox/api/browser_data.py +172 -0
  86. agentrun/sandbox/api/code_interpreter_data.py +396 -0
  87. agentrun/sandbox/api/control.py +1051 -0
  88. agentrun/sandbox/api/playwright_async.py +492 -0
  89. agentrun/sandbox/api/playwright_sync.py +492 -0
  90. agentrun/sandbox/api/sandbox_data.py +140 -0
  91. agentrun/sandbox/browser_sandbox.py +191 -0
  92. agentrun/sandbox/client.py +878 -0
  93. agentrun/sandbox/code_interpreter_sandbox.py +829 -0
  94. agentrun/sandbox/model.py +269 -0
  95. agentrun/sandbox/sandbox.py +737 -0
  96. agentrun/sandbox/template.py +215 -0
  97. agentrun/server/__init__.py +82 -0
  98. agentrun/server/invoker.py +131 -0
  99. agentrun/server/model.py +225 -0
  100. agentrun/server/openai_protocol.py +798 -0
  101. agentrun/server/protocol.py +96 -0
  102. agentrun/server/server.py +192 -0
  103. agentrun/toolset/__client_async_template.py +62 -0
  104. agentrun/toolset/__init__.py +51 -0
  105. agentrun/toolset/__toolset_async_template.py +204 -0
  106. agentrun/toolset/api/__init__.py +17 -0
  107. agentrun/toolset/api/control.py +262 -0
  108. agentrun/toolset/api/mcp.py +100 -0
  109. agentrun/toolset/api/openapi.py +1184 -0
  110. agentrun/toolset/client.py +102 -0
  111. agentrun/toolset/model.py +160 -0
  112. agentrun/toolset/toolset.py +271 -0
  113. agentrun/utils/__data_api_async_template.py +715 -0
  114. agentrun/utils/__init__.py +5 -0
  115. agentrun/utils/__resource_async_template.py +158 -0
  116. agentrun/utils/config.py +258 -0
  117. agentrun/utils/control_api.py +78 -0
  118. agentrun/utils/data_api.py +1110 -0
  119. agentrun/utils/exception.py +149 -0
  120. agentrun/utils/helper.py +34 -0
  121. agentrun/utils/log.py +77 -0
  122. agentrun/utils/model.py +168 -0
  123. agentrun/utils/resource.py +291 -0
  124. agentrun_sdk-0.0.4.dist-info/METADATA +262 -0
  125. agentrun_sdk-0.0.4.dist-info/RECORD +128 -0
  126. agentrun_sdk-0.0.4.dist-info/WHEEL +5 -0
  127. agentrun_sdk-0.0.4.dist-info/licenses/LICENSE +201 -0
  128. agentrun_sdk-0.0.4.dist-info/top_level.txt +1 -0
@@ -0,0 +1,269 @@
1
+ """Sandbox 模型定义 / Sandbox Model Definitions
2
+
3
+ 定义沙箱相关的数据模型和枚举。
4
+ Defines data models and enumerations related to sandboxes.
5
+ """
6
+
7
+ from enum import Enum
8
+ from typing import Dict, List, Optional, TYPE_CHECKING
9
+ import uuid
10
+
11
+ from pydantic import model_validator
12
+
13
+ from agentrun.utils.model import BaseModel
14
+
15
+ if TYPE_CHECKING:
16
+ from agentrun.sandbox.sandbox import Sandbox
17
+
18
+
19
+ class TemplateOSSPermission(str, Enum):
20
+ """Agent Runtime 网络访问模式 / Agent Runtime Network Access Mode"""
21
+
22
+ READ_WRITE = "READ_WRITE"
23
+ """读写模式 / Read-Write Mode"""
24
+ READ_ONLY = "READ_ONLY"
25
+ """只读模式 / Read-Only Mode"""
26
+
27
+
28
+ class TemplateType(str, Enum):
29
+ """沙箱模板类型 / Sandbox Template Type"""
30
+
31
+ CODE_INTERPRETER = "CodeInterpreter"
32
+ """代码解释器 / Code Interpreter"""
33
+ BROWSER = "Browser"
34
+ """浏览器 / Browser"""
35
+
36
+
37
+ class TemplateNetworkMode(str, Enum):
38
+ """Agent Runtime 网络访问模式 / Agent Runtime Network Access Mode"""
39
+
40
+ PUBLIC = "PUBLIC"
41
+ """公网模式 / Public Mode"""
42
+ PRIVATE = "PRIVATE"
43
+ """私网模式 / Private Mode"""
44
+ PUBLIC_AND_PRIVATE = "PUBLIC_AND_PRIVATE"
45
+ """公私网模式 / Public and Private Mode"""
46
+
47
+
48
+ class CodeLanguage(str, Enum):
49
+ """Code Interpreter 代码语言 / Code Interpreter Programming Language"""
50
+
51
+ PYTHON = "python"
52
+
53
+
54
+ class TemplateNetworkConfiguration(BaseModel):
55
+ """沙箱模板网络配置 / Sandbox Template Network Configuration"""
56
+
57
+ network_mode: TemplateNetworkMode = TemplateNetworkMode.PUBLIC
58
+ """网络访问模式 / Network Access Mode"""
59
+ security_group_id: Optional[str] = None
60
+ """安全组 ID / Security Group ID"""
61
+ vpc_id: Optional[str] = None
62
+ """私有网络 ID / VPC ID"""
63
+ vswitch_ids: Optional[List[str]] = None
64
+ """私有网络交换机 ID 列表 / VSwitch ID List"""
65
+
66
+
67
+ class TemplateOssConfiguration(BaseModel):
68
+ """沙箱模板 OSS 配置 / Sandbox Template OSS Configuration"""
69
+
70
+ bucket_name: str
71
+ """OSS 存储桶名称 / OSS Bucket Name"""
72
+ mount_point: str
73
+ """OSS 挂载点 / OSS Mount Point"""
74
+ permission: Optional[TemplateOSSPermission] = (
75
+ TemplateOSSPermission.READ_WRITE
76
+ )
77
+ """OSS 权限 / OSS Permission"""
78
+ prefix: str
79
+ """OSS 对象前缀/路径 / OSS Object Prefix/Path"""
80
+ region: str
81
+ """OSS 区域"""
82
+
83
+
84
+ class TemplateLogConfiguration(BaseModel):
85
+ """沙箱模板日志配置 / Sandbox Template Log Configuration"""
86
+
87
+ project: Optional[str] = None
88
+ """SLS 日志项目 / SLS Log Project"""
89
+ logstore: Optional[str] = None
90
+ """SLS 日志库 / SLS Logstore"""
91
+
92
+
93
+ class TemplateCredentialConfiguration(BaseModel):
94
+ """沙箱模板凭证配置 / Sandbox Template Credential Configuration"""
95
+
96
+ credential_name: Optional[str] = None
97
+ """凭证名称 / Credential Name"""
98
+
99
+
100
+ class TemplateArmsConfiguration(BaseModel):
101
+ """沙箱模板 ARMS 监控配置 / Sandbox Template ARMS Monitoring Configuration"""
102
+
103
+ arms_license_key: Optional[str] = None
104
+ """ARMS 许可证密钥 / ARMS License Key"""
105
+
106
+ enable_arms: bool
107
+ """是否启用 ARMS 监控 / Whether to enable ARMS monitoring"""
108
+
109
+
110
+ class TemplateContainerConfiguration(BaseModel):
111
+ """沙箱模板容器配置 / Sandbox Template Container Configuration"""
112
+
113
+ image: Optional[str] = None
114
+ """容器镜像地址 / Container Image Address"""
115
+ command: Optional[List[str]] = None
116
+ """容器启动命令 / Container Start Command"""
117
+
118
+
119
+ class TemplateMcpOptions(BaseModel):
120
+ """沙箱模板 MCP 选项配置 / Sandbox Template MCP Options Configuration"""
121
+
122
+ enabled_tools: Optional[List[str]] = None
123
+
124
+ """启用的工具列表 / Enabled Tools List"""
125
+ transport: Optional[str] = None
126
+ """传输协议 / Transport Protocol"""
127
+
128
+
129
+ class TemplateMcpState(BaseModel):
130
+ """沙箱模板 MCP 状态 / Sandbox Template MCP State"""
131
+
132
+ access_endpoint: Optional[str] = None
133
+ """访问端点 / Access Endpoint"""
134
+ status: Optional[str] = None
135
+ """状态 / Status"""
136
+ status_reason: Optional[str] = None
137
+ """状态原因 / Status Reason"""
138
+
139
+
140
+ class TemplateInput(BaseModel):
141
+ """沙箱模板配置 / Sandbox Template Configuration"""
142
+
143
+ template_name: Optional[str] = f"sandbox_template_{uuid.uuid4()}"
144
+ """模板名称 / Template Name"""
145
+ template_type: TemplateType
146
+ """模板类型 / Template Type"""
147
+ cpu: Optional[float] = 2.0
148
+ """CPU 核数 / CPU Cores"""
149
+ memory: Optional[int] = 4096
150
+ """内存大小(MB) / Memory Size (MB)"""
151
+ execution_role_arn: Optional[str] = None
152
+ """执行角色 ARN / Execution Role ARN"""
153
+ sandbox_idle_timeout_in_seconds: Optional[int] = 1800
154
+ """沙箱空闲超时时间(秒) / Sandbox Idle Timeout (seconds)"""
155
+ sandbox_ttlin_seconds: Optional[int] = 21600
156
+ """沙箱存活时间(秒) / Sandbox TTL (seconds)"""
157
+ share_concurrency_limit_per_sandbox: Optional[int] = 200
158
+ """每个沙箱的最大并发会话数 / Max Concurrency Limit Per Sandbox"""
159
+ template_configuration: Optional[Dict] = None
160
+ """模板配置 / Template Configuration"""
161
+ description: Optional[str] = None
162
+ """描述 / Description"""
163
+ environment_variables: Optional[Dict] = None
164
+ """环境变量 / Environment Variables"""
165
+ network_configuration: Optional[TemplateNetworkConfiguration] = (
166
+ TemplateNetworkConfiguration(network_mode=TemplateNetworkMode.PUBLIC)
167
+ )
168
+ """网络配置 / Network Configuration"""
169
+ oss_configuration: Optional[List[TemplateOssConfiguration]] = None
170
+ """OSS 配置列表 / OSS Configuration List"""
171
+ log_configuration: Optional[TemplateLogConfiguration] = None
172
+ """日志配置 / Log Configuration"""
173
+ credential_configuration: Optional[TemplateCredentialConfiguration] = None
174
+ """凭证配置 / Credential Configuration"""
175
+ arms_configuration: Optional[TemplateArmsConfiguration] = None
176
+ """ARMS 监控配置 / ARMS Monitoring Configuration"""
177
+ container_configuration: Optional[TemplateContainerConfiguration] = None
178
+ """容器配置 / Container Configuration"""
179
+ disk_size: Optional[int] = None
180
+ """磁盘大小(GB) / Disk Size (GB)"""
181
+
182
+ @model_validator(mode="before")
183
+ @classmethod
184
+ def set_disk_size_default(cls, values):
185
+ """根据 template_type 设置 disk_size 的默认值 / Set default disk_size based on template_type"""
186
+ # 如果 disk_size 已经被显式设置,则不修改
187
+ if (
188
+ values.get("disk_size") is not None
189
+ or values.get("diskSize") is not None
190
+ ):
191
+ return values
192
+
193
+ # 获取 template_type(支持两种命名格式)
194
+ template_type = values.get("template_type") or values.get(
195
+ "templateType"
196
+ )
197
+
198
+ # 根据 template_type 设置默认值
199
+ if (
200
+ template_type == TemplateType.CODE_INTERPRETER
201
+ or template_type == "CodeInterpreter"
202
+ ):
203
+ values["disk_size"] = 512
204
+ elif (
205
+ template_type == TemplateType.BROWSER or template_type == "Browser"
206
+ ):
207
+ values["disk_size"] = 10240
208
+ else:
209
+ # 如果 template_type 未设置或为其他值,使用 512 作为默认值
210
+ values["disk_size"] = 512
211
+
212
+ return values
213
+
214
+ @model_validator(mode="after")
215
+ def validate_template_constraints(self):
216
+ if self.template_type == TemplateType.BROWSER:
217
+ if self.disk_size != 10240:
218
+ raise ValueError(
219
+ "when template_type is BROWSER,disk_size should be 10240,"
220
+ f"the current disk size is {self.disk_size}"
221
+ )
222
+
223
+ if self.template_type == TemplateType.CODE_INTERPRETER:
224
+ if (
225
+ self.network_configuration
226
+ and self.network_configuration.network_mode
227
+ == TemplateNetworkMode.PRIVATE
228
+ ):
229
+ raise ValueError(
230
+ "when template_type is CODE_INTERPRETER,"
231
+ "network_mode cannot be PRIVATE"
232
+ )
233
+ return self
234
+
235
+
236
+ class SandboxInput(BaseModel):
237
+ """Sandbox 创建配置 / Sandbox Creation Configuration"""
238
+
239
+ template_name: str
240
+ """模板名称 / Template Name"""
241
+ sandbox_idle_timeout_seconds: Optional[int] = 600
242
+ """沙箱空闲超时时间(秒) / Sandbox Idle Timeout (seconds)"""
243
+
244
+
245
+ class ListSandboxesInput(BaseModel):
246
+ """Sandbox 列表查询配置 / Sandbox List Query Configuration"""
247
+
248
+ max_results: Optional[int] = 10
249
+ next_token: Optional[str] = None
250
+ status: Optional[str] = None
251
+ template_name: Optional[str] = None
252
+ template_type: Optional[TemplateType] = None
253
+
254
+
255
+ class ListSandboxesOutput(BaseModel):
256
+ """Sandbox 列表查询结果 / Sandbox List Query Result"""
257
+
258
+ sandboxes: List["Sandbox"]
259
+ next_token: Optional[str] = None
260
+
261
+
262
+ class PageableInput(BaseModel):
263
+ """分页查询参数 / Pagination Query Parameters"""
264
+
265
+ page_number: Optional[int] = 1
266
+ """页码 / Page Number"""
267
+ page_size: Optional[int] = 10
268
+ """每页大小 / Page Size"""
269
+ template_type: Optional[TemplateType] = None