agent0-sdk 1.5.0b1__py3-none-any.whl → 1.5.1b1__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.
agent0_sdk/__init__.py CHANGED
@@ -35,7 +35,7 @@ except ImportError:
35
35
  TransactionMined = None
36
36
  _sdk_available = False
37
37
 
38
- __version__ = "1.5.0b1"
38
+ __version__ = "1.5.1b1"
39
39
  __all__ = [
40
40
  "SDK",
41
41
  "Agent",
@@ -422,8 +422,6 @@ class FeedbackManager:
422
422
  minValue: Optional[float] = None,
423
423
  maxValue: Optional[float] = None,
424
424
  include_revoked: bool = False,
425
- first: int = 100,
426
- skip: int = 0,
427
425
  agents: Optional[List[AgentId]] = None,
428
426
  ) -> List[Feedback]:
429
427
  """Search feedback.
@@ -451,8 +449,6 @@ class FeedbackManager:
451
449
  minValue,
452
450
  maxValue,
453
451
  include_revoked,
454
- first,
455
- skip,
456
452
  agents=agents,
457
453
  )
458
454
 
@@ -469,8 +465,6 @@ class FeedbackManager:
469
465
  minValue,
470
466
  maxValue,
471
467
  include_revoked,
472
- first,
473
- skip,
474
468
  agents=agents,
475
469
  )
476
470
 
@@ -558,8 +552,6 @@ class FeedbackManager:
558
552
  minValue: Optional[float],
559
553
  maxValue: Optional[float],
560
554
  include_revoked: bool,
561
- first: int,
562
- skip: int,
563
555
  agents: Optional[List[AgentId]] = None,
564
556
  ) -> List[Feedback]:
565
557
  """Search feedback using subgraph."""
@@ -583,79 +575,84 @@ class FeedbackManager:
583
575
  includeRevoked=include_revoked
584
576
  )
585
577
 
586
- # Query subgraph
587
- feedbacks_data = self.subgraph_client.search_feedback(
588
- params=params,
589
- first=first,
590
- skip=skip,
591
- order_by="createdAt",
592
- order_direction="desc"
593
- )
594
-
595
- # Map to Feedback objects
596
578
  feedbacks = []
597
- for fb_data in feedbacks_data:
598
- feedback_file = fb_data.get('feedbackFile') or {}
599
- if not isinstance(feedback_file, dict):
600
- feedback_file = {}
601
-
602
- # Map responses
603
- responses_data = fb_data.get('responses', [])
604
- answers = []
605
- for resp in responses_data:
606
- answers.append({
607
- 'responder': resp.get('responder'),
608
- 'responseUri': resp.get('responseUri'),
609
- 'responseHash': resp.get('responseHash'),
610
- 'createdAt': resp.get('createdAt')
611
- })
612
-
613
- # Map tags: rely on whatever the subgraph returns (may be legacy bytes/hash-like values)
614
- tags_list: List[str] = []
615
- tag1 = fb_data.get('tag1') or feedback_file.get('tag1')
616
- tag2 = fb_data.get('tag2') or feedback_file.get('tag2')
617
- if isinstance(tag1, str) and tag1:
579
+ batch = 1000
580
+ skip = 0
581
+ while True:
582
+ feedbacks_data = self.subgraph_client.search_feedback(
583
+ params=params,
584
+ first=batch,
585
+ skip=skip,
586
+ order_by="createdAt",
587
+ order_direction="desc",
588
+ )
589
+
590
+ for fb_data in feedbacks_data:
591
+ feedback_file = fb_data.get('feedbackFile') or {}
592
+ if not isinstance(feedback_file, dict):
593
+ feedback_file = {}
594
+
595
+ # Map responses
596
+ responses_data = fb_data.get('responses', [])
597
+ answers = []
598
+ for resp in responses_data:
599
+ answers.append({
600
+ 'responder': resp.get('responder'),
601
+ 'responseUri': resp.get('responseUri'),
602
+ 'responseHash': resp.get('responseHash'),
603
+ 'createdAt': resp.get('createdAt')
604
+ })
605
+
606
+ # Map tags: rely on whatever the subgraph returns (may be legacy bytes/hash-like values)
607
+ tags_list: List[str] = []
608
+ tag1 = fb_data.get('tag1') or feedback_file.get('tag1')
609
+ tag2 = fb_data.get('tag2') or feedback_file.get('tag2')
610
+ if isinstance(tag1, str) and tag1:
618
611
  tags_list.append(tag1)
619
- if isinstance(tag2, str) and tag2:
612
+ if isinstance(tag2, str) and tag2:
620
613
  tags_list.append(tag2)
621
-
622
- # Parse agentId from feedback ID
623
- feedback_id = fb_data['id']
624
- parts = feedback_id.split(':')
625
- if len(parts) >= 2:
626
- agent_id_str = f"{parts[0]}:{parts[1]}"
627
- client_addr = parts[2] if len(parts) > 2 else ""
628
- feedback_idx = int(parts[3]) if len(parts) > 3 else 1
629
- else:
630
- agent_id_str = feedback_id
631
- client_addr = ""
632
- feedback_idx = 1
633
-
634
- feedback = Feedback(
635
- id=Feedback.create_id(agent_id_str, client_addr, feedback_idx),
636
- agentId=agent_id_str,
637
- reviewer=client_addr,
638
- value=float(fb_data.get("value")) if fb_data.get("value") is not None else None,
639
- tags=tags_list,
640
- text=feedback_file.get('text'),
641
- capability=feedback_file.get('capability'),
642
- context=feedback_file.get('context'),
643
- proofOfPayment={
644
- 'fromAddress': feedback_file.get('proofOfPaymentFromAddress'),
645
- 'toAddress': feedback_file.get('proofOfPaymentToAddress'),
646
- 'chainId': feedback_file.get('proofOfPaymentChainId'),
647
- 'txHash': feedback_file.get('proofOfPaymentTxHash'),
648
- } if feedback_file.get('proofOfPaymentFromAddress') else None,
649
- fileURI=fb_data.get('feedbackURI') or fb_data.get('feedbackUri'), # Handle both old and new field names
650
- endpoint=fb_data.get('endpoint'),
651
- createdAt=fb_data.get('createdAt', int(time.time())),
652
- answers=answers,
653
- isRevoked=fb_data.get('isRevoked', False),
654
- name=feedback_file.get('name'),
655
- skill=feedback_file.get('skill'),
656
- task=feedback_file.get('task'),
657
- )
658
- feedbacks.append(feedback)
614
+
615
+ # Parse agentId from feedback ID
616
+ feedback_id = fb_data['id']
617
+ parts = feedback_id.split(':')
618
+ if len(parts) >= 2:
619
+ agent_id_str = f"{parts[0]}:{parts[1]}"
620
+ client_addr = parts[2] if len(parts) > 2 else ""
621
+ feedback_idx = int(parts[3]) if len(parts) > 3 else 1
622
+ else:
623
+ agent_id_str = feedback_id
624
+ client_addr = ""
625
+ feedback_idx = 1
626
+
627
+ feedback = Feedback(
628
+ id=Feedback.create_id(agent_id_str, client_addr, feedback_idx),
629
+ agentId=agent_id_str,
630
+ reviewer=client_addr,
631
+ value=float(fb_data.get("value")) if fb_data.get("value") is not None else None,
632
+ tags=tags_list,
633
+ text=feedback_file.get('text'),
634
+ capability=feedback_file.get('capability'),
635
+ context=feedback_file.get('context'),
636
+ proofOfPayment={
637
+ 'fromAddress': feedback_file.get('proofOfPaymentFromAddress'),
638
+ 'toAddress': feedback_file.get('proofOfPaymentToAddress'),
639
+ 'chainId': feedback_file.get('proofOfPaymentChainId'),
640
+ 'txHash': feedback_file.get('proofOfPaymentTxHash'),
641
+ } if feedback_file.get('proofOfPaymentFromAddress') else None,
642
+ fileURI=fb_data.get('feedbackURI') or fb_data.get('feedbackUri'), # Handle both old and new field names
643
+ endpoint=fb_data.get('endpoint'),
644
+ createdAt=fb_data.get('createdAt', int(time.time())),
645
+ answers=answers,
646
+ isRevoked=fb_data.get('isRevoked', False),
647
+ name=feedback_file.get('name'),
648
+ skill=feedback_file.get('skill'),
649
+ task=feedback_file.get('task'),
650
+ )
651
+ feedbacks.append(feedback)
652
+
653
+ if len(feedbacks_data) < batch:
654
+ break
655
+ skip += batch
659
656
 
660
657
  return feedbacks
661
658