uagents-core 0.3.4__tar.gz → 0.3.5__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.
- {uagents_core-0.3.4 → uagents_core-0.3.5}/PKG-INFO +1 -1
- {uagents_core-0.3.4 → uagents_core-0.3.5}/pyproject.toml +1 -1
- {uagents_core-0.3.4 → uagents_core-0.3.5}/uagents_core/types.py +29 -0
- {uagents_core-0.3.4 → uagents_core-0.3.5}/uagents_core/utils/messages.py +9 -5
- {uagents_core-0.3.4 → uagents_core-0.3.5}/uagents_core/utils/resolver.py +18 -0
- {uagents_core-0.3.4 → uagents_core-0.3.5}/README.md +0 -0
- {uagents_core-0.3.4 → uagents_core-0.3.5}/uagents_core/__init__.py +0 -0
- {uagents_core-0.3.4 → uagents_core-0.3.5}/uagents_core/config.py +0 -0
- {uagents_core-0.3.4 → uagents_core-0.3.5}/uagents_core/contrib/__init__.py +0 -0
- {uagents_core-0.3.4 → uagents_core-0.3.5}/uagents_core/contrib/protocols/__init__.py +0 -0
- {uagents_core-0.3.4 → uagents_core-0.3.5}/uagents_core/contrib/protocols/chat/__init__.py +0 -0
- {uagents_core-0.3.4 → uagents_core-0.3.5}/uagents_core/contrib/protocols/subscriptions/__init__.py +0 -0
- {uagents_core-0.3.4 → uagents_core-0.3.5}/uagents_core/envelope.py +0 -0
- {uagents_core-0.3.4 → uagents_core-0.3.5}/uagents_core/helpers.py +0 -0
- {uagents_core-0.3.4 → uagents_core-0.3.5}/uagents_core/identity.py +0 -0
- {uagents_core-0.3.4 → uagents_core-0.3.5}/uagents_core/logger.py +0 -0
- {uagents_core-0.3.4 → uagents_core-0.3.5}/uagents_core/models.py +0 -0
- {uagents_core-0.3.4 → uagents_core-0.3.5}/uagents_core/protocol.py +0 -0
- {uagents_core-0.3.4 → uagents_core-0.3.5}/uagents_core/registration.py +0 -0
- {uagents_core-0.3.4 → uagents_core-0.3.5}/uagents_core/storage.py +0 -0
- {uagents_core-0.3.4 → uagents_core-0.3.5}/uagents_core/utils/__init__.py +0 -0
- {uagents_core-0.3.4 → uagents_core-0.3.5}/uagents_core/utils/registration.py +0 -0
- {uagents_core-0.3.4 → uagents_core-0.3.5}/uagents_core/utils/subscriptions.py +0 -0
@@ -1,4 +1,5 @@
|
|
1
1
|
import uuid
|
2
|
+
from abc import ABC, abstractmethod
|
2
3
|
from enum import Enum
|
3
4
|
from typing import Any, Literal
|
4
5
|
|
@@ -48,3 +49,31 @@ class MsgStatus(BaseModel):
|
|
48
49
|
destination: str
|
49
50
|
endpoint: str
|
50
51
|
session: uuid.UUID | None = None
|
52
|
+
|
53
|
+
|
54
|
+
class Resolver(ABC):
|
55
|
+
@abstractmethod
|
56
|
+
async def resolve(self, destination: str) -> tuple[str | None, list[str]]:
|
57
|
+
"""
|
58
|
+
Resolve the destination to an address and endpoint.
|
59
|
+
|
60
|
+
Args:
|
61
|
+
destination (str): The destination name or address to resolve.
|
62
|
+
|
63
|
+
Returns:
|
64
|
+
tuple[str | None, list[str]]: The address (if available) and resolved endpoints.
|
65
|
+
"""
|
66
|
+
raise NotImplementedError
|
67
|
+
|
68
|
+
@abstractmethod
|
69
|
+
def sync_resolve(self, destination: str) -> list[str]:
|
70
|
+
"""
|
71
|
+
Resolve the destination to a list of endpoints.
|
72
|
+
|
73
|
+
Args:
|
74
|
+
destination (str): The destination name or address to resolve.
|
75
|
+
|
76
|
+
Returns:
|
77
|
+
list[str]: The resolved endpoints.
|
78
|
+
"""
|
79
|
+
raise NotImplementedError
|
@@ -14,8 +14,8 @@ from uagents_core.helpers import weighted_random_sample
|
|
14
14
|
from uagents_core.identity import Identity
|
15
15
|
from uagents_core.logger import get_logger
|
16
16
|
from uagents_core.models import Model
|
17
|
-
from uagents_core.types import DeliveryStatus, MsgStatus
|
18
|
-
from uagents_core.utils.resolver import
|
17
|
+
from uagents_core.types import DeliveryStatus, MsgStatus, Resolver
|
18
|
+
from uagents_core.utils.resolver import AlmanacResolver
|
19
19
|
|
20
20
|
logger = get_logger("uagents_core.utils.messages")
|
21
21
|
|
@@ -89,6 +89,7 @@ def send_message_to_agent(
|
|
89
89
|
session_id: UUID | None = None,
|
90
90
|
strategy: Literal["first", "random", "all"] = "first",
|
91
91
|
agentverse_config: AgentverseConfig | None = None,
|
92
|
+
resolver: Resolver | None = None,
|
92
93
|
) -> list[MsgStatus]:
|
93
94
|
"""
|
94
95
|
Send a message to an agent with default settings.
|
@@ -103,9 +104,12 @@ def send_message_to_agent(
|
|
103
104
|
agentverse_config (AgentverseConfig, optional): The configuration for the agentverse.
|
104
105
|
"""
|
105
106
|
agentverse_config = agentverse_config or AgentverseConfig()
|
106
|
-
|
107
|
-
|
108
|
-
|
107
|
+
|
108
|
+
if not resolver:
|
109
|
+
resolver = AlmanacResolver(
|
110
|
+
agentverse_config=agentverse_config,
|
111
|
+
)
|
112
|
+
endpoints = resolver.sync_resolve(destination)
|
109
113
|
if not endpoints:
|
110
114
|
logger.error("No endpoints found for agent", extra={"destination": destination})
|
111
115
|
return []
|
@@ -14,6 +14,7 @@ from uagents_core.config import (
|
|
14
14
|
from uagents_core.helpers import weighted_random_sample
|
15
15
|
from uagents_core.identity import parse_identifier
|
16
16
|
from uagents_core.logger import get_logger
|
17
|
+
from uagents_core.types import Resolver
|
17
18
|
|
18
19
|
logger = get_logger("uagents_core.utils.resolver")
|
19
20
|
|
@@ -71,3 +72,20 @@ def lookup_endpoint_for_agent(
|
|
71
72
|
)
|
72
73
|
|
73
74
|
return []
|
75
|
+
|
76
|
+
|
77
|
+
class AlmanacResolver(Resolver):
|
78
|
+
def __init__(self, agentverse_config: AgentverseConfig | None = None):
|
79
|
+
self.agentverse_config = agentverse_config or AgentverseConfig()
|
80
|
+
|
81
|
+
async def resolve(self, destination: str) -> tuple[str | None, list[str]]:
|
82
|
+
endpoints = lookup_endpoint_for_agent(
|
83
|
+
agent_identifier=destination, agentverse_config=self.agentverse_config
|
84
|
+
)
|
85
|
+
return None, endpoints
|
86
|
+
|
87
|
+
def sync_resolve(self, destination: str) -> list[str]:
|
88
|
+
endpoints = lookup_endpoint_for_agent(
|
89
|
+
agent_identifier=destination, agentverse_config=self.agentverse_config
|
90
|
+
)
|
91
|
+
return endpoints
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{uagents_core-0.3.4 → uagents_core-0.3.5}/uagents_core/contrib/protocols/subscriptions/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|