agent0-sdk 1.4.0__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.
@@ -0,0 +1,403 @@
1
+ Metadata-Version: 2.4
2
+ Name: agent0-sdk
3
+ Version: 1.4.0
4
+ Summary: Python SDK for agent portability, discovery and trust based on ERC-8004
5
+ Author-email: Agent0 Team <team@ag0.xyz>
6
+ License: MIT License
7
+
8
+ Copyright (c) 2025 Marco De Rossi
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in all
18
+ copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
+ SOFTWARE.
27
+
28
+
29
+ Project-URL: Homepage, https://sdk.ag0.xyz
30
+ Project-URL: Repository, https://github.com/agent0lab/agent0-py
31
+ Project-URL: Documentation, https://sdk.ag0.xyz
32
+ Project-URL: Source Code, https://github.com/agent0lab/agent0-py
33
+ Classifier: Development Status :: 3 - Alpha
34
+ Classifier: Intended Audience :: Developers
35
+ Classifier: License :: OSI Approved :: MIT License
36
+ Classifier: Programming Language :: Python :: 3
37
+ Classifier: Programming Language :: Python :: 3.8
38
+ Classifier: Programming Language :: Python :: 3.9
39
+ Classifier: Programming Language :: Python :: 3.10
40
+ Classifier: Programming Language :: Python :: 3.11
41
+ Classifier: Programming Language :: Python :: 3.12
42
+ Requires-Python: >=3.8
43
+ Description-Content-Type: text/markdown
44
+ License-File: LICENSE
45
+ Requires-Dist: web3>=6.0.0
46
+ Requires-Dist: eth-account>=0.8.0
47
+ Requires-Dist: requests>=2.28.0
48
+ Requires-Dist: pydantic>=2.0.0
49
+ Requires-Dist: ipfshttpclient>=0.8.0a2
50
+ Requires-Dist: aiohttp>=3.8.0
51
+ Requires-Dist: asyncio-throttle>=1.0.0
52
+ Requires-Dist: python-dotenv>=1.0.0
53
+ Requires-Dist: typing-extensions>=4.0.0
54
+ Provides-Extra: indexer
55
+ Requires-Dist: sentence-transformers>=2.2.0; extra == "indexer"
56
+ Provides-Extra: dev
57
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
58
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
59
+ Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
60
+ Requires-Dist: black>=22.0.0; extra == "dev"
61
+ Requires-Dist: isort>=5.10.0; extra == "dev"
62
+ Requires-Dist: mypy>=1.0.0; extra == "dev"
63
+ Requires-Dist: flake8>=5.0.0; extra == "dev"
64
+ Provides-Extra: test
65
+ Requires-Dist: pytest>=7.0.0; extra == "test"
66
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == "test"
67
+ Requires-Dist: pytest-cov>=4.0.0; extra == "test"
68
+ Requires-Dist: pytest-mock>=3.10.0; extra == "test"
69
+ Dynamic: license-file
70
+
71
+ # Agent0 SDK
72
+
73
+ Python SDK for agent portability, discovery and trust based on ERC-8004.
74
+
75
+ Agent0 is the SDK for agentic economies. It enables agents to register, advertise their capabilities and how to communicate with them, and give each other feedback and reputation signals. All this using blockchain infrastructure (ERC-8004) and decentralized storage, enabling permissionless discovery without relying on proprietary catalogues or intermediaries.
76
+
77
+ ## What Does Agent0 SDK Do?
78
+
79
+ Agent0 SDK enables you to:
80
+
81
+ - **Create and manage agent identities** - Register your AI agent on-chain with a unique identity, configure presentation fields (name, description, image), set wallet addresses, and manage trust models with x402 support
82
+ - **Advertise agent capabilities** - Publish MCP and A2A endpoints, with automated extraction of MCP tools and A2A skills from endpoints
83
+ - **OASF taxonomies** - Advertise standardized skills and domains using the Open Agentic Schema Framework (OASF) taxonomies for better discovery and interoperability
84
+ - **Enable permissionless discovery** - Make your agent discoverable by other agents and platforms using rich search by attributes, capabilities, skills, tools, tasks, and x402 support
85
+ - **Build reputation** - Give and receive feedback, retrieve feedback history, and search agents by reputation with cryptographic authentication
86
+ - **Cross-chain registration** - One-line registration with IPFS nodes, Pinata, Filecoin, or HTTP URIs
87
+ - **Public indexing** - Subgraph indexing both on-chain and IPFS data for fast search and retrieval
88
+
89
+ **Bug reports & feedback:** GitHub: [Report issues](https://github.com/agent0lab/agent0-py/issues) | Telegram: [Agent0 channel](https://t.me/agent0kitchen) | Email: team@ag0.xyz
90
+
91
+ ## Installation
92
+
93
+ ### Prerequisites
94
+
95
+ - Python 3.8 or higher
96
+ - pip package manager
97
+ - Private key for signing transactions (or run in read-only mode)
98
+ - Access to an Ethereum RPC endpoint (e.g., Alchemy, Infura)
99
+ - (Optional) IPFS provider account (Pinata, Filecoin, or local IPFS node)
100
+
101
+ ### Install from PyPI
102
+
103
+ ```bash
104
+ pip install agent0-sdk
105
+ ```
106
+
107
+ ### Install from Source
108
+
109
+ ```bash
110
+ git clone https://github.com/agent0lab/agent0-py.git
111
+ cd agent0-py
112
+ pip install -e .
113
+ ```
114
+
115
+ ## Quick Start
116
+
117
+ ### 1. Initialize SDK
118
+
119
+ ```python
120
+ from agent0_sdk import SDK
121
+ import os
122
+
123
+ # Initialize SDK with IPFS and subgraph
124
+ sdk = SDK(
125
+ chainId=11155111, # Ethereum Sepolia testnet
126
+ rpcUrl=os.getenv("RPC_URL"),
127
+ signer=os.getenv("PRIVATE_KEY"),
128
+ ipfs="pinata", # Options: "pinata", "filecoinPin", "node"
129
+ pinataJwt=os.getenv("PINATA_JWT") # For Pinata
130
+ # Subgraph URL auto-defaults from DEFAULT_SUBGRAPH_URLS
131
+ )
132
+ ```
133
+
134
+ ### 2. Create and Register Agent
135
+
136
+ ```python
137
+ # Create agent
138
+ agent = sdk.createAgent(
139
+ name="My AI Agent",
140
+ description="An intelligent assistant for various tasks. Skills: data analysis, code generation.",
141
+ image="https://example.com/agent-image.png"
142
+ )
143
+
144
+ # Configure endpoints (automatically extracts capabilities)
145
+ agent.setMCP("https://mcp.example.com/") # Extracts tools, prompts, resources
146
+ agent.setA2A("https://a2a.example.com/agent-card.json") # Extracts skills
147
+ agent.setENS("myagent.eth")
148
+
149
+ # Add OASF skills and domains (standardized taxonomies)
150
+ agent.addSkill("data_engineering/data_transformation_pipeline", validate_oasf=True)
151
+ agent.addSkill("natural_language_processing/natural_language_generation/summarization", validate_oasf=True)
152
+ agent.addDomain("finance_and_business/investment_services", validate_oasf=True)
153
+ agent.addDomain("technology/data_science/data_science", validate_oasf=True)
154
+
155
+ agent.setTrust(reputation=True, cryptoEconomic=True)
156
+
157
+ # Add metadata and set status
158
+ agent.setMetadata({"version": "1.0.0", "category": "ai-assistant"})
159
+ agent.setActive(True)
160
+
161
+ # Register on-chain with IPFS (submitted-by-default)
162
+ reg_tx = agent.registerIPFS()
163
+ reg = reg_tx.wait_confirmed(timeout=180).result
164
+ print(f"Agent registered: {reg.agentId}") # e.g., "11155111:123"
165
+ print(f"Agent URI: {reg.agentURI}") # e.g., "ipfs://Qm..."
166
+
167
+ # (Optional) Change the agent wallet after registration
168
+ # - On mint/registration, `agentWallet` defaults to the current owner address.
169
+ # - Call this only if you want a DIFFERENT wallet (or after a transfer, since the wallet resets to zero).
170
+ # - Transaction is sent by the SDK signer (agent owner), but the signature must be produced by the NEW wallet.
171
+ wallet_tx = agent.setWallet(
172
+ "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
173
+ chainId=11155111,
174
+ new_wallet_signer=os.getenv("NEW_WALLET_PRIVATE_KEY"),
175
+ )
176
+ if wallet_tx:
177
+ wallet_tx.wait_confirmed(timeout=180)
178
+ ```
179
+
180
+ ### 3. Load and Edit Agent
181
+
182
+ ```python
183
+ # Load existing agent for editing
184
+ agent = sdk.loadAgent("11155111:123") # Format: "chainId:agentId"
185
+
186
+ # Edit agent properties
187
+ agent.updateInfo(description="Updated description with new capabilities")
188
+ agent.setMCP("https://new-mcp.example.com/")
189
+
190
+ # Re-register to update on-chain
191
+ update_tx = agent.registerIPFS()
192
+ update = update_tx.wait_confirmed(timeout=180).result
193
+ print(f"Updated: {update.agentURI}")
194
+ ```
195
+
196
+ ### 4. Search Agents
197
+
198
+ ```python
199
+ # Search by name, capabilities, or attributes
200
+ results = sdk.searchAgents(
201
+ name="AI", # Substring search
202
+ mcpTools=["code_generation"], # Specific MCP tools
203
+ a2aSkills=["python"], # Specific A2A skills
204
+ active=True, # Only active agents
205
+ x402support=True # Payment support
206
+ )
207
+
208
+ for agent in results['items']:
209
+ print(f"{agent.name}: {agent.description}")
210
+ print(f" Tools: {agent.mcpTools}")
211
+ print(f" Skills: {agent.a2aSkills}")
212
+
213
+ # Get single agent (read-only, faster)
214
+ agent_summary = sdk.getAgent("11155111:123")
215
+ ```
216
+
217
+ ### 5. Give and Retrieve Feedback
218
+
219
+ ```python
220
+ # On-chain-only feedback (no off-chain upload, even if IPFS is configured)
221
+ tx = sdk.giveFeedback(
222
+ agentId="11155111:123",
223
+ value=85, # number|string
224
+ tag1="data_analyst", # Optional: tags are strings
225
+ tag2="finance",
226
+ endpoint="https://example.com/endpoint", # Optional: saved on-chain
227
+ )
228
+ feedback = tx.wait_confirmed(timeout=180).result
229
+
230
+ # Rich feedback (optional off-chain file + on-chain fields)
231
+ feedback_file = sdk.prepareFeedbackFile({
232
+ "capability": "tools", # Optional: MCP capability
233
+ "name": "code_generation", # Optional: MCP tool name
234
+ "skill": "python", # Optional: A2A skill
235
+ "text": "Great agent!", # Optional
236
+ })
237
+
238
+ tx = sdk.giveFeedback(
239
+ agentId="11155111:123",
240
+ value=85,
241
+ tag1="data_analyst",
242
+ tag2="finance",
243
+ endpoint="https://example.com/endpoint",
244
+ feedbackFile=feedback_file, # If provided, requires IPFS configured
245
+ )
246
+ feedback = tx.wait_confirmed(timeout=180).result
247
+
248
+ # Search feedback
249
+ results = sdk.searchFeedback(
250
+ agentId="11155111:123",
251
+ capabilities=["tools"],
252
+ minValue=80,
253
+ maxValue=100
254
+ )
255
+
256
+ # NEW: Search feedback given by a reviewer wallet (across all agents; subgraph required)
257
+ given = sdk.searchFeedback(
258
+ reviewers=["0x742d35cc6634c0532925a3b844bc9e7595f0beb7"]
259
+ )
260
+
261
+ # NEW: Search feedback across multiple agents at once
262
+ multi = sdk.searchFeedback(
263
+ agents=["11155111:123", "11155111:456", "11155111:789"]
264
+ )
265
+
266
+ # Get reputation summary
267
+ summary = sdk.getReputationSummary("11155111:123")
268
+ print(f"Average value: {summary['averageValue']}")
269
+ ```
270
+
271
+ ## IPFS Configuration Options
272
+
273
+ ```python
274
+ # Option 1: Filecoin Pin (free for ERC-8004 agents)
275
+ sdk = SDK(
276
+ chainId=11155111,
277
+ rpcUrl="...",
278
+ signer=private_key,
279
+ ipfs="filecoinPin",
280
+ filecoinPrivateKey="your-filecoin-private-key"
281
+ )
282
+
283
+ # Option 2: IPFS Node
284
+ sdk = SDK(
285
+ chainId=11155111,
286
+ rpcUrl="...",
287
+ signer=private_key,
288
+ ipfs="node",
289
+ ipfsNodeUrl="https://ipfs.infura.io:5001"
290
+ )
291
+
292
+ # Option 3: Pinata (free for ERC-8004 agents)
293
+ sdk = SDK(
294
+ chainId=11155111,
295
+ rpcUrl="...",
296
+ signer=private_key,
297
+ ipfs="pinata",
298
+ pinataJwt="your-pinata-jwt-token"
299
+ )
300
+
301
+ # Option 4: HTTP registration (no IPFS)
302
+ sdk = SDK(chainId=11155111, rpcUrl="...", signer=private_key)
303
+ agent.register("https://example.com/agent-registration.json")
304
+ ```
305
+
306
+ ## OASF Taxonomies
307
+
308
+ The SDK includes support for the **Open Agentic Schema Framework (OASF)** taxonomies, enabling agents to advertise standardized skills and domains. This improves discoverability and interoperability across agent platforms.
309
+
310
+ ### Adding Skills and Domains
311
+
312
+ ```python
313
+ # Add OASF skills (with optional validation)
314
+ agent.addSkill("advanced_reasoning_planning/strategic_planning", validate_oasf=True)
315
+ agent.addSkill("data_engineering/data_transformation_pipeline", validate_oasf=True)
316
+
317
+ # Add OASF domains (with optional validation)
318
+ agent.addDomain("finance_and_business/investment_services", validate_oasf=True)
319
+ agent.addDomain("technology/data_science/data_visualization", validate_oasf=True)
320
+
321
+ # Remove skills/domains
322
+ agent.removeSkill("old_skill")
323
+ agent.removeDomain("old_domain")
324
+ ```
325
+
326
+ ### OASF in Registration Files
327
+
328
+ OASF skills and domains appear in your agent's registration file:
329
+
330
+ ```json
331
+ {
332
+ "endpoints": [
333
+ {
334
+ "name": "OASF",
335
+ "endpoint": "https://github.com/agntcy/oasf/",
336
+ "version": "0.8",
337
+ "skills": [
338
+ "advanced_reasoning_planning/strategic_planning",
339
+ "data_engineering/data_transformation_pipeline"
340
+ ],
341
+ "domains": [
342
+ "finance_and_business/investment_services",
343
+ "technology/data_science/data_science"
344
+ ]
345
+ }
346
+ ]
347
+ }
348
+ ```
349
+
350
+ ### Taxonomy Files
351
+
352
+ The SDK includes complete OASF v0.8.0 taxonomy files:
353
+ - **Skills**: `agent0_sdk/taxonomies/all_skills.json` (136 skills)
354
+ - **Domains**: `agent0_sdk/taxonomies/all_domains.json` (204 domains)
355
+
356
+ Browse these files to find appropriate skill and domain slugs. For more information, see the [OASF specification](https://github.com/agntcy/oasf) and [Release Notes v0.31](RELEASE_NOTES_0.31.md).
357
+
358
+ ## Use Cases
359
+
360
+ - **Building agent marketplaces** - Create platforms where developers can discover, evaluate, and integrate agents based on their capabilities and reputation
361
+ - **Agent interoperability** - Discover agents by specific capabilities (skills, tools, tasks), evaluate them through reputation signals, and integrate them via standard protocols (MCP/A2A)
362
+ - **Managing agent reputation** - Track agent performance, collect feedback from users and other agents, and build trust signals for your agent ecosystem
363
+ - **Cross-chain agent operations** - Deploy and manage agents across multiple blockchain networks with consistent identity and reputation
364
+
365
+ ## 🚀 Coming Soon
366
+
367
+ - More chains (currently Ethereum Sepolia only)
368
+ - Support for validations
369
+ - Enhanced x402 payments
370
+ - Semantic/Vectorial search
371
+ - Advanced reputation aggregation
372
+ - Import/Export to centralized catalogues
373
+
374
+ ## Tests
375
+
376
+ Complete working examples are available in the `tests/` directory:
377
+
378
+ - `test_registration.py` - Agent registration with HTTP URI
379
+ - `test_registrationIpfs.py` - Agent registration with IPFS
380
+ - `test_feedback.py` - Complete feedback flow with IPFS storage
381
+ - `test_search.py` - Agent search and discovery
382
+ - `test_transfer.py` - Agent ownership transfer
383
+ - `test_oasf_management.py` - OASF skills/domains management (unit tests)
384
+ - `test_real_public_servers.py` - Endpoint crawler against real public MCP/A2A servers
385
+ - `test_multi_chain.py` - Multi-chain read-only operations (subgraph-based)
386
+
387
+ ## Documentation
388
+
389
+ Full documentation is available at [sdk.ag0.xyz](https://sdk.ag0.xyz), including:
390
+
391
+ - [Installation Guide](https://sdk.ag0.xyz/2-usage/2-1-install/)
392
+ - [Agent Configuration](https://sdk.ag0.xyz/2-usage/2-2-configure-agents/)
393
+ - [Registration](https://sdk.ag0.xyz/2-usage/2-3-registration-ipfs/)
394
+ - [Search](https://sdk.ag0.xyz/2-usage/2-5-search/)
395
+ - [Feedback](https://sdk.ag0.xyz/2-usage/2-6-use-feedback/)
396
+ - [Key Concepts](https://sdk.ag0.xyz/1-welcome/1-2-key-concepts/)
397
+ - [API Reference](https://sdk.ag0.xyz/5-reference/5-1-sdk/)
398
+
399
+ ## License
400
+
401
+ Agent0 SDK is MIT-licensed public good brought to you by Marco De Rossi in collaboration with Consensys, 🦊 MetaMask and Agent0, Inc. We are looking for co-maintainers. Please reach out if you want to help.
402
+
403
+ Thanks also to Edge & Node (The Graph), Protocol Labs and Pinata for their support.
@@ -0,0 +1,21 @@
1
+ agent0_sdk/__init__.py,sha256=9YgRWcbrfvTw21YnzWU9zT5cfkXbR6eLWEB6g_-mlg4,1102
2
+ agent0_sdk/core/agent.py,sha256=P3AX7zm4G5qkWdTJcjOvR69cCyOovHefbRoKejj6QKY,48062
3
+ agent0_sdk/core/contracts.py,sha256=oUqzosKMeCHRvIb4AIao103aHM8sa2zEBLYi1IoLKog,22402
4
+ agent0_sdk/core/endpoint_crawler.py,sha256=QBkFc3tBSQqHj6PtSTZ5D3_HVB00KJZJdxE3uYpI9po,13611
5
+ agent0_sdk/core/feedback_manager.py,sha256=gHCyBYK17Yc5HcxDcbhl_blXYqulYO-7oiEvoPQomms,42585
6
+ agent0_sdk/core/indexer.py,sha256=gz4DDQQcRbe1RQtFSgq4OZLLFwXHFIe4v2-CcpD077A,72661
7
+ agent0_sdk/core/ipfs_client.py,sha256=17XXMpJgLWhcNUSkmduAZt409c8oJXlj9C_eTGVk-Io,14185
8
+ agent0_sdk/core/models.py,sha256=kiCtRm_ORdBph-Ces0HStsY92jnevY5yCpITb0PZErw,12218
9
+ agent0_sdk/core/oasf_validator.py,sha256=ZOtYYzQd7cJj3eJegi7Ch5ydoapJEjaJSxMvwzKSp5o,2980
10
+ agent0_sdk/core/sdk.py,sha256=w1Q6oCrQoXnCd9fgFlz1rOM0P1JbLYWAB8gs1Upz4IU,39510
11
+ agent0_sdk/core/subgraph_client.py,sha256=seEisw__r9nqQl1CgXa5DiUb6EvZ2GG7qS4wQPLILWo,29854
12
+ agent0_sdk/core/transaction_handle.py,sha256=tKo6ny02m3eIeDGo0Wjikf-yUtl_8KYJy5YxFkPvyHo,1958
13
+ agent0_sdk/core/value_encoding.py,sha256=NQUUvjTRAr5Tqj8t4HUGlfhak8VDmB8E5WMlfAqJwVk,3311
14
+ agent0_sdk/core/web3_client.py,sha256=9w5ZgHILteCHSOisae3QluwuIsX3OD-VkoAc01koQWA,13786
15
+ agent0_sdk/taxonomies/all_domains.json,sha256=buM8_6mpY8_AMbBIPzM-gtu14Tl30QDmhuQxxrlJU4c,74625
16
+ agent0_sdk/taxonomies/all_skills.json,sha256=WVsutw3fqoj1jfDPru3CyWTr1kc1a5-EhBOWPfXnEi8,47483
17
+ agent0_sdk-1.4.0.dist-info/licenses/LICENSE,sha256=rhZZbZm_Ovz4Oa9LNQ-ms8a1tA36wWh90ZkC0OR7WMw,1072
18
+ agent0_sdk-1.4.0.dist-info/METADATA,sha256=HTLgCdx26mEw_7PB5--17p3_jHacbnE8roJE9qyQ7QM,15179
19
+ agent0_sdk-1.4.0.dist-info/WHEEL,sha256=qELbo2s1Yzl39ZmrAibXA2jjPLUYfnVhUNTlyF1rq0Y,92
20
+ agent0_sdk-1.4.0.dist-info/top_level.txt,sha256=p4520WUKNfhU0lVWJgkrB_jdeUfvHSY3K18k4oYLNfI,11
21
+ agent0_sdk-1.4.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.10.1)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,22 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Marco De Rossi
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
@@ -0,0 +1 @@
1
+ agent0_sdk