agent0-sdk 1.4.1__py3-none-any.whl → 1.5.0b1__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.
@@ -67,6 +67,12 @@ class SubgraphClient:
67
67
  logger.debug("Subgraph schema missing agentWallet fields; retrying query without them")
68
68
  q2 = query.replace("agentWalletChainId", "").replace("agentWallet", "")
69
69
  return _do_query(q2)
70
+ # Some deployments do not yet expose `hasOASF` on AgentRegistrationFile.
71
+ if (("has no field" in msg and "hasOASF" in msg) or ("Cannot query field" in msg and "hasOASF" in msg)) and (
72
+ "hasOASF" in query
73
+ ):
74
+ logger.debug("Subgraph schema missing hasOASF; retrying query without it")
75
+ return _do_query(query.replace("hasOASF", "oasfEndpoint"))
70
76
  raise
71
77
  except requests.exceptions.RequestException as e:
72
78
  raise ConnectionError(f"Failed to query subgraph: {e}")
@@ -167,6 +173,181 @@ class SubgraphClient:
167
173
  result = self.query(query)
168
174
  return result.get('agents', [])
169
175
 
176
+ # -------------------------------------------------------------------------
177
+ # V2 query helpers (variable-based where clauses; used by unified search)
178
+ # -------------------------------------------------------------------------
179
+
180
+ def get_agents_v2(
181
+ self,
182
+ where: Optional[Dict[str, Any]],
183
+ first: int,
184
+ skip: int,
185
+ order_by: str,
186
+ order_direction: str,
187
+ ) -> List[Dict[str, Any]]:
188
+ query = """
189
+ query SearchAgentsV2($where: Agent_filter, $first: Int!, $skip: Int!, $orderBy: Agent_orderBy!, $orderDirection: OrderDirection!) {
190
+ agents(where: $where, first: $first, skip: $skip, orderBy: $orderBy, orderDirection: $orderDirection) {
191
+ id
192
+ chainId
193
+ agentId
194
+ agentURI
195
+ agentURIType
196
+ owner
197
+ operators
198
+ agentWallet
199
+ totalFeedback
200
+ createdAt
201
+ updatedAt
202
+ lastActivity
203
+ registrationFile {
204
+ id
205
+ agentId
206
+ name
207
+ description
208
+ image
209
+ active
210
+ x402Support
211
+ supportedTrusts
212
+ mcpEndpoint
213
+ mcpVersion
214
+ a2aEndpoint
215
+ a2aVersion
216
+ webEndpoint
217
+ emailEndpoint
218
+ hasOASF
219
+ oasfSkills
220
+ oasfDomains
221
+ ens
222
+ did
223
+ mcpTools
224
+ mcpPrompts
225
+ mcpResources
226
+ a2aSkills
227
+ createdAt
228
+ }
229
+ }
230
+ }
231
+ """
232
+ variables = {
233
+ "where": where,
234
+ "first": first,
235
+ "skip": skip,
236
+ "orderBy": order_by,
237
+ "orderDirection": order_direction,
238
+ }
239
+ try:
240
+ data = self.query(query, variables)
241
+ return data.get("agents", [])
242
+ except ValueError as e:
243
+ # Compatibility: some deployments do not support AgentRegistrationFile.hasOASF in the *filter input*.
244
+ # Retry by translating registrationFile_.hasOASF => oasfEndpoint existence checks.
245
+ msg = str(e)
246
+ if where and "hasOASF" in msg and ("AgentRegistrationFile" in msg or "AgentRegistrationFile_filter" in msg):
247
+ def rewrite(node: Any) -> Any:
248
+ if isinstance(node, list):
249
+ return [rewrite(x) for x in node]
250
+ if not isinstance(node, dict):
251
+ return node
252
+ out: Dict[str, Any] = {}
253
+ for k, v in node.items():
254
+ if k == "registrationFile_" and isinstance(v, dict):
255
+ rf = dict(v)
256
+ if "hasOASF" in rf:
257
+ want = bool(rf.get("hasOASF"))
258
+ rf.pop("hasOASF", None)
259
+ if want:
260
+ rf["oasfEndpoint_not"] = None
261
+ else:
262
+ rf["oasfEndpoint"] = None
263
+ out[k] = rewrite(rf)
264
+ else:
265
+ out[k] = rewrite(v)
266
+ return out
267
+
268
+ variables2 = dict(variables)
269
+ variables2["where"] = rewrite(where)
270
+ data2 = self.query(query, variables2)
271
+ return data2.get("agents", [])
272
+ raise
273
+
274
+ def query_agent_metadatas(self, where: Dict[str, Any], first: int, skip: int) -> List[Dict[str, Any]]:
275
+ query = """
276
+ query AgentMetadatas($where: AgentMetadata_filter, $first: Int!, $skip: Int!) {
277
+ agentMetadatas(where: $where, first: $first, skip: $skip) {
278
+ id
279
+ key
280
+ value
281
+ updatedAt
282
+ agent { id }
283
+ }
284
+ }
285
+ """
286
+ try:
287
+ data = self.query(query, {"where": where, "first": first, "skip": skip})
288
+ return data.get("agentMetadatas", [])
289
+ except ValueError as e:
290
+ # Hosted subgraph compatibility: some deployments expose AgentMetadata list as `agentMetadata_collection`.
291
+ msg = str(e)
292
+ if ("has no field" in msg and "agentMetadatas" in msg) or ("Cannot query field" in msg and "agentMetadatas" in msg):
293
+ query2 = """
294
+ query AgentMetadataCollection($where: AgentMetadata_filter, $first: Int!, $skip: Int!) {
295
+ agentMetadata_collection(where: $where, first: $first, skip: $skip) {
296
+ id
297
+ key
298
+ value
299
+ updatedAt
300
+ agent { id }
301
+ }
302
+ }
303
+ """
304
+ data2 = self.query(query2, {"where": where, "first": first, "skip": skip})
305
+ return data2.get("agentMetadata_collection", [])
306
+ raise
307
+
308
+ def query_feedbacks_minimal(
309
+ self,
310
+ where: Dict[str, Any],
311
+ first: int,
312
+ skip: int,
313
+ order_by: str = "createdAt",
314
+ order_direction: str = "desc",
315
+ ) -> List[Dict[str, Any]]:
316
+ query = """
317
+ query Feedbacks($where: Feedback_filter, $first: Int!, $skip: Int!, $orderBy: Feedback_orderBy!, $orderDirection: OrderDirection!) {
318
+ feedbacks(where: $where, first: $first, skip: $skip, orderBy: $orderBy, orderDirection: $orderDirection) {
319
+ id
320
+ agent { id }
321
+ clientAddress
322
+ value
323
+ tag1
324
+ tag2
325
+ endpoint
326
+ isRevoked
327
+ createdAt
328
+ responses(first: 1) { id }
329
+ }
330
+ }
331
+ """
332
+ data = self.query(
333
+ query,
334
+ {"where": where, "first": first, "skip": skip, "orderBy": order_by, "orderDirection": order_direction},
335
+ )
336
+ return data.get("feedbacks", [])
337
+
338
+ def query_feedback_responses(self, where: Dict[str, Any], first: int, skip: int) -> List[Dict[str, Any]]:
339
+ query = """
340
+ query FeedbackResponses($where: FeedbackResponse_filter, $first: Int!, $skip: Int!) {
341
+ feedbackResponses(where: $where, first: $first, skip: $skip) {
342
+ id
343
+ feedback { id }
344
+ createdAt
345
+ }
346
+ }
347
+ """
348
+ data = self.query(query, {"where": where, "first": first, "skip": skip})
349
+ return data.get("feedbackResponses", [])
350
+
170
351
  def get_agent_by_id(self, agent_id: str, include_registration_file: bool = True) -> Optional[Dict[str, Any]]:
171
352
  """
172
353
  Get a specific agent by ID.
@@ -612,242 +793,4 @@ class SubgraphClient:
612
793
  result = self.query(query)
613
794
  return result.get('feedbacks', [])
614
795
 
615
- def search_agents_by_reputation(
616
- self,
617
- agents: Optional[List[str]] = None,
618
- tags: Optional[List[str]] = None,
619
- reviewers: Optional[List[str]] = None,
620
- capabilities: Optional[List[str]] = None,
621
- skills: Optional[List[str]] = None,
622
- tasks: Optional[List[str]] = None,
623
- names: Optional[List[str]] = None,
624
- minAverageValue: Optional[float] = None,
625
- includeRevoked: bool = False,
626
- first: int = 100,
627
- skip: int = 0,
628
- order_by: str = "createdAt",
629
- order_direction: str = "desc",
630
- ) -> List[Dict[str, Any]]:
631
- """
632
- Search agents filtered by reputation criteria.
633
-
634
- Args:
635
- agents: List of agent IDs to filter by
636
- tags: List of tags to filter feedback by
637
- reviewers: List of reviewer addresses to filter feedback by
638
- capabilities: List of capabilities to filter feedback by
639
- skills: List of skills to filter feedback by
640
- tasks: List of tasks to filter feedback by
641
- minAverageValue: Minimum average value for included agents
642
- includeRevoked: Whether to include revoked feedback in calculations
643
- first: Number of results to return
644
- skip: Number of results to skip
645
- order_by: Field to order by
646
- order_direction: Sort direction (asc/desc)
647
-
648
- Returns:
649
- List of agents with averageValue field calculated from filtered feedback
650
- """
651
- # Build feedback filter
652
- feedback_filters = []
653
-
654
- if not includeRevoked:
655
- feedback_filters.append('isRevoked: false')
656
-
657
- if tags is not None and len(tags) > 0:
658
- # Tags are now stored as human-readable strings in the subgraph
659
- tag_filter = []
660
- for tag in tags:
661
- tag_filter.append(f'{{or: [{{tag1: "{tag}"}}, {{tag2: "{tag}"}}]}}')
662
- feedback_filters.append(f'or: [{", ".join(tag_filter)}]')
663
-
664
- if reviewers is not None and len(reviewers) > 0:
665
- reviewers_list = [f'"{addr}"' for addr in reviewers]
666
- feedback_filters.append(f'clientAddress_in: [{", ".join(reviewers_list)}]')
667
-
668
- # Feedback file filters
669
- feedback_file_filters = []
670
-
671
- if capabilities is not None and len(capabilities) > 0:
672
- capabilities_list = [f'"{cap}"' for cap in capabilities]
673
- feedback_file_filters.append(f'capability_in: [{", ".join(capabilities_list)}]')
674
-
675
- if skills is not None and len(skills) > 0:
676
- skills_list = [f'"{skill}"' for skill in skills]
677
- feedback_file_filters.append(f'skill_in: [{", ".join(skills_list)}]')
678
-
679
- if tasks is not None and len(tasks) > 0:
680
- tasks_list = [f'"{task}"' for task in tasks]
681
- feedback_file_filters.append(f'task_in: [{", ".join(tasks_list)}]')
682
-
683
- if names is not None and len(names) > 0:
684
- names_list = [f'"{name}"' for name in names]
685
- feedback_file_filters.append(f'name_in: [{", ".join(names_list)}]')
686
-
687
- if feedback_file_filters:
688
- feedback_filters.append(f'feedbackFile_: {{ {", ".join(feedback_file_filters)} }}')
689
-
690
- # If we have feedback filters (tags, capabilities, skills, etc.), we need to first
691
- # query feedback to get agent IDs, then query those agents
692
- # Otherwise, query agents directly
693
- if tags or capabilities or skills or tasks or names or reviewers:
694
- # First, query feedback to get unique agent IDs that have matching feedback
695
- feedback_where = f"{{ {', '.join(feedback_filters)} }}" if feedback_filters else "{}"
696
-
697
- feedback_query = f"""
698
- {{
699
- feedbacks(
700
- where: {feedback_where}
701
- first: 1000
702
- skip: 0
703
- ) {{
704
- agent {{
705
- id
706
- }}
707
- }}
708
- }}
709
- """
710
-
711
- try:
712
- feedback_result = self.query(feedback_query)
713
- feedbacks_data = feedback_result.get('feedbacks', [])
714
-
715
- # Extract unique agent IDs
716
- agent_ids_set = set()
717
- for fb in feedbacks_data:
718
- agent = fb.get('agent', {})
719
- agent_id = agent.get('id')
720
- if agent_id:
721
- agent_ids_set.add(agent_id)
722
-
723
- if not agent_ids_set:
724
- # No agents have matching feedback
725
- return []
726
-
727
- # Now query only those agents
728
- agent_ids_list = list(agent_ids_set)
729
- # Apply any agent filters if specified
730
- if agents is not None and len(agents) > 0:
731
- agent_ids_list = [aid for aid in agent_ids_list if aid in agents]
732
- if not agent_ids_list:
733
- return []
734
-
735
- # Query agents (limit to first N based on pagination)
736
- agent_ids_str = ', '.join([f'"{aid}"' for aid in agent_ids_list])
737
- agent_where = f"where: {{ id_in: [{agent_ids_str}] }}"
738
- except Exception as e:
739
- logger.warning(f"Failed to query feedback for agent IDs: {e}")
740
- return []
741
- else:
742
- # No feedback filters - query agents directly
743
- # For reputation search, we want agents that have feedback
744
- # Filter by totalFeedback > 0 to only get agents with feedback
745
- agent_filters = ['totalFeedback_gt: 0'] # Only agents with feedback (BigInt comparison)
746
- if agents is not None and len(agents) > 0:
747
- agent_ids = [f'"{aid}"' for aid in agents]
748
- agent_filters.append(f'id_in: [{", ".join(agent_ids)}]')
749
-
750
- agent_where = f"where: {{ {', '.join(agent_filters)} }}"
751
-
752
- # Build feedback where for agent query (to calculate scores)
753
- feedback_where_for_agents = f"{{ {', '.join(feedback_filters)} }}" if feedback_filters else "{}"
754
-
755
- query = f"""
756
- {{
757
- agents(
758
- {agent_where}
759
- first: {first}
760
- skip: {skip}
761
- orderBy: {order_by}
762
- orderDirection: {order_direction}
763
- ) {{
764
- id
765
- chainId
766
- agentId
767
- agentURI
768
- agentURIType
769
- owner
770
- operators
771
- createdAt
772
- updatedAt
773
- totalFeedback
774
- lastActivity
775
- registrationFile {{
776
- id
777
- name
778
- description
779
- image
780
- active
781
- x402Support
782
- supportedTrusts
783
- mcpEndpoint
784
- mcpVersion
785
- a2aEndpoint
786
- a2aVersion
787
- ens
788
- did
789
- agentWallet
790
- agentWalletChainId
791
- mcpTools
792
- mcpPrompts
793
- mcpResources
794
- a2aSkills
795
- createdAt
796
- }}
797
- feedback(where: {feedback_where_for_agents}) {{
798
- value
799
- isRevoked
800
- feedbackFile {{
801
- capability
802
- skill
803
- task
804
- name
805
- }}
806
- }}
807
- }}
808
- }}
809
- """
810
-
811
- try:
812
- result = self.query(query)
813
-
814
- # Check for GraphQL errors
815
- if 'errors' in result:
816
- logger.error(f"GraphQL errors in search_agents_by_reputation: {result['errors']}")
817
- return []
818
-
819
- agents_result = result.get('agents', [])
820
-
821
- # Calculate average values
822
- for agent in agents_result:
823
- feedbacks = agent.get('feedback', [])
824
- if feedbacks:
825
- values = [float(fb["value"]) for fb in feedbacks if fb.get("value") is not None]
826
- agent["averageValue"] = (sum(values) / len(values)) if values else None
827
- else:
828
- agent["averageValue"] = None
829
-
830
- # Filter by minAverageValue
831
- if minAverageValue is not None:
832
- agents_result = [
833
- agent for agent in agents_result
834
- if agent.get("averageValue") is not None and agent["averageValue"] >= minAverageValue
835
- ]
836
-
837
- # For reputation search, filter logic:
838
- # - If specific agents were requested, return them even if averageValue is None
839
- # (the user explicitly asked for these agents, so return them)
840
- # - If general search (no specific agents), only return agents with reputation data
841
- if agents is None or len(agents) == 0:
842
- # General search - only return agents with reputation
843
- agents_result = [
844
- agent for agent in agents_result
845
- if agent.get("averageValue") is not None
846
- ]
847
- # else: specific agents requested - return all requested agents (even if averageValue is None)
848
-
849
- return agents_result
850
-
851
- except Exception as e:
852
- logger.warning(f"Subgraph reputation search failed: {e}")
853
- return []
796
+ # NOTE: `search_agents_by_reputation` was removed in favor of unified `SDK.searchAgents()` with `filters.feedback`.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agent0-sdk
3
- Version: 1.4.1
3
+ Version: 1.5.0b1
4
4
  Summary: Python SDK for agent portability, discovery and trust based on ERC-8004
5
5
  Author-email: Agent0 Team <team@ag0.xyz>
6
6
  License: MIT License
@@ -104,6 +104,12 @@ Agent0 SDK enables you to:
104
104
  pip install agent0-sdk
105
105
  ```
106
106
 
107
+ To install the **1.5.0 pre-release** explicitly:
108
+
109
+ ```bash
110
+ pip install --pre agent0-sdk==1.5.0b1
111
+ ```
112
+
107
113
  ### Install from Source
108
114
 
109
115
  ```bash
@@ -122,7 +128,7 @@ import os
122
128
 
123
129
  # Initialize SDK with IPFS and subgraph
124
130
  sdk = SDK(
125
- chainId=11155111, # Ethereum Sepolia testnet
131
+ chainId=11155111, # Ethereum Sepolia testnet (use 1 for Ethereum Mainnet)
126
132
  rpcUrl=os.getenv("RPC_URL"),
127
133
  signer=os.getenv("PRIVATE_KEY"),
128
134
  ipfs="pinata", # Options: "pinata", "filecoinPin", "node"
@@ -198,11 +204,15 @@ print(f"Updated: {update.agentURI}")
198
204
  ```python
199
205
  # Search by name, capabilities, or attributes
200
206
  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
207
+ filters={
208
+ "name": "AI", # substring
209
+ "mcpTools": ["code_generation"],
210
+ "a2aSkills": ["python"],
211
+ "active": True,
212
+ "x402support": True,
213
+ "feedback": {"minValue": 80, "tag": "enterprise", "includeRevoked": False},
214
+ },
215
+ options={"pageSize": 20, "sort": ["updatedAt:desc"]},
206
216
  )
207
217
 
208
218
  for agent in results['items']:
@@ -364,7 +374,7 @@ Browse these files to find appropriate skill and domain slugs. For more informat
364
374
 
365
375
  ## 🚀 Coming Soon
366
376
 
367
- - More chains (currently Ethereum Sepolia only)
377
+ - More chains (currently Ethereum Sepolia + Ethereum Mainnet)
368
378
  - Support for validations
369
379
  - Enhanced x402 payments
370
380
  - Semantic/Vectorial search
@@ -0,0 +1,22 @@
1
+ agent0_sdk/__init__.py,sha256=XAcKn73_sk5qlTtmT4w_LDMRvwYjPWbn1qppyWh82r4,1190
2
+ agent0_sdk/core/agent.py,sha256=P3AX7zm4G5qkWdTJcjOvR69cCyOovHefbRoKejj6QKY,48062
3
+ agent0_sdk/core/contracts.py,sha256=EVxtxc5z6hI7p40Va5ibu0Pssmi6Y6UEG1_wfO7TZ_U,22942
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=pCVrgWXVVJJMAu_ABs-nweAK9rZ-DR2uMSA51T7KaPY,102199
7
+ agent0_sdk/core/ipfs_client.py,sha256=17XXMpJgLWhcNUSkmduAZt409c8oJXlj9C_eTGVk-Io,14185
8
+ agent0_sdk/core/models.py,sha256=ssgMPzCv7ykalF9je9KqFLD4ep_lAYU_P9E8L8fl0Lw,14451
9
+ agent0_sdk/core/oasf_validator.py,sha256=ZOtYYzQd7cJj3eJegi7Ch5ydoapJEjaJSxMvwzKSp5o,2980
10
+ agent0_sdk/core/sdk.py,sha256=JjBEpDvnoOSEkZcr9vPqjzaDCUcrJobY43o3oICgiRY,27632
11
+ agent0_sdk/core/semantic_search_client.py,sha256=dMI9dT2MtgdlYE07ttPgOPV2yusdlD9C-DMHNEj7wrA,1837
12
+ agent0_sdk/core/subgraph_client.py,sha256=VBHSdMKIr-DLRKu0bGQMBC_fdxI8SgNMqVLpPWYuQc0,27374
13
+ agent0_sdk/core/transaction_handle.py,sha256=tKo6ny02m3eIeDGo0Wjikf-yUtl_8KYJy5YxFkPvyHo,1958
14
+ agent0_sdk/core/value_encoding.py,sha256=NQUUvjTRAr5Tqj8t4HUGlfhak8VDmB8E5WMlfAqJwVk,3311
15
+ agent0_sdk/core/web3_client.py,sha256=9w5ZgHILteCHSOisae3QluwuIsX3OD-VkoAc01koQWA,13786
16
+ agent0_sdk/taxonomies/all_domains.json,sha256=buM8_6mpY8_AMbBIPzM-gtu14Tl30QDmhuQxxrlJU4c,74625
17
+ agent0_sdk/taxonomies/all_skills.json,sha256=WVsutw3fqoj1jfDPru3CyWTr1kc1a5-EhBOWPfXnEi8,47483
18
+ agent0_sdk-1.5.0b1.dist-info/licenses/LICENSE,sha256=rhZZbZm_Ovz4Oa9LNQ-ms8a1tA36wWh90ZkC0OR7WMw,1072
19
+ agent0_sdk-1.5.0b1.dist-info/METADATA,sha256=-GtWe1NHrXnsAKDrEwM67K61yG-4Lr4hnRjkUJ_qoOU,15431
20
+ agent0_sdk-1.5.0b1.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
21
+ agent0_sdk-1.5.0b1.dist-info/top_level.txt,sha256=p4520WUKNfhU0lVWJgkrB_jdeUfvHSY3K18k4oYLNfI,11
22
+ agent0_sdk-1.5.0b1.dist-info/RECORD,,
@@ -1,21 +0,0 @@
1
- agent0_sdk/__init__.py,sha256=dz1Rxuq5FoLGuA6F-6O8sopQ8WVVmWjYHLJGwVvrKsY,1102
2
- agent0_sdk/core/agent.py,sha256=P3AX7zm4G5qkWdTJcjOvR69cCyOovHefbRoKejj6QKY,48062
3
- agent0_sdk/core/contracts.py,sha256=5AAY0_GCOkw8FL49_dDpGF6TwFk1OCwzFe8Je0jb7Oc,22787
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.1.dist-info/licenses/LICENSE,sha256=rhZZbZm_Ovz4Oa9LNQ-ms8a1tA36wWh90ZkC0OR7WMw,1072
18
- agent0_sdk-1.4.1.dist-info/METADATA,sha256=hUaaBL4JaACaiDuJQIc4UPLklW1aygaH0bo-dY_zbDQ,15179
19
- agent0_sdk-1.4.1.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
20
- agent0_sdk-1.4.1.dist-info/top_level.txt,sha256=p4520WUKNfhU0lVWJgkrB_jdeUfvHSY3K18k4oYLNfI,11
21
- agent0_sdk-1.4.1.dist-info/RECORD,,