meshagent-agents 0.3.1__tar.gz → 0.4.1__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.

Potentially problematic release.


This version of meshagent-agents might be problematic. Click here for more details.

Files changed (38) hide show
  1. {meshagent_agents-0.3.1 → meshagent_agents-0.4.1}/CHANGELOG.md +6 -0
  2. {meshagent_agents-0.3.1/meshagent_agents.egg-info → meshagent_agents-0.4.1}/PKG-INFO +6 -6
  3. {meshagent_agents-0.3.1 → meshagent_agents-0.4.1}/meshagent/agents/mail.py +47 -7
  4. meshagent_agents-0.4.1/meshagent/agents/version.py +1 -0
  5. {meshagent_agents-0.3.1 → meshagent_agents-0.4.1/meshagent_agents.egg-info}/PKG-INFO +6 -6
  6. {meshagent_agents-0.3.1 → meshagent_agents-0.4.1}/meshagent_agents.egg-info/requires.txt +5 -5
  7. {meshagent_agents-0.3.1 → meshagent_agents-0.4.1}/pyproject.toml +5 -5
  8. meshagent_agents-0.3.1/meshagent/agents/version.py +0 -1
  9. {meshagent_agents-0.3.1 → meshagent_agents-0.4.1}/LICENSE +0 -0
  10. {meshagent_agents-0.3.1 → meshagent_agents-0.4.1}/MANIFEST.in +0 -0
  11. {meshagent_agents-0.3.1 → meshagent_agents-0.4.1}/README.md +0 -0
  12. {meshagent_agents-0.3.1 → meshagent_agents-0.4.1}/meshagent/agents/__init__.py +0 -0
  13. {meshagent_agents-0.3.1 → meshagent_agents-0.4.1}/meshagent/agents/adapter.py +0 -0
  14. {meshagent_agents-0.3.1 → meshagent_agents-0.4.1}/meshagent/agents/agent.py +0 -0
  15. {meshagent_agents-0.3.1 → meshagent_agents-0.4.1}/meshagent/agents/chat.py +0 -0
  16. {meshagent_agents-0.3.1 → meshagent_agents-0.4.1}/meshagent/agents/context.py +0 -0
  17. {meshagent_agents-0.3.1 → meshagent_agents-0.4.1}/meshagent/agents/development.py +0 -0
  18. {meshagent_agents-0.3.1 → meshagent_agents-0.4.1}/meshagent/agents/hosting.py +0 -0
  19. {meshagent_agents-0.3.1 → meshagent_agents-0.4.1}/meshagent/agents/indexer.py +0 -0
  20. {meshagent_agents-0.3.1 → meshagent_agents-0.4.1}/meshagent/agents/listener.py +0 -0
  21. {meshagent_agents-0.3.1 → meshagent_agents-0.4.1}/meshagent/agents/planning.py +0 -0
  22. {meshagent_agents-0.3.1 → meshagent_agents-0.4.1}/meshagent/agents/prompt.py +0 -0
  23. {meshagent_agents-0.3.1 → meshagent_agents-0.4.1}/meshagent/agents/pydantic.py +0 -0
  24. {meshagent_agents-0.3.1 → meshagent_agents-0.4.1}/meshagent/agents/schemas/__init__.py +0 -0
  25. {meshagent_agents-0.3.1 → meshagent_agents-0.4.1}/meshagent/agents/schemas/document.py +0 -0
  26. {meshagent_agents-0.3.1 → meshagent_agents-0.4.1}/meshagent/agents/schemas/gallery.py +0 -0
  27. {meshagent_agents-0.3.1 → meshagent_agents-0.4.1}/meshagent/agents/schemas/presentation.py +0 -0
  28. {meshagent_agents-0.3.1 → meshagent_agents-0.4.1}/meshagent/agents/schemas/schema.py +0 -0
  29. {meshagent_agents-0.3.1 → meshagent_agents-0.4.1}/meshagent/agents/schemas/super_editor_document.py +0 -0
  30. {meshagent_agents-0.3.1 → meshagent_agents-0.4.1}/meshagent/agents/single_shot_writer.py +0 -0
  31. {meshagent_agents-0.3.1 → meshagent_agents-0.4.1}/meshagent/agents/thread_schema.py +0 -0
  32. {meshagent_agents-0.3.1 → meshagent_agents-0.4.1}/meshagent/agents/utils.py +0 -0
  33. {meshagent_agents-0.3.1 → meshagent_agents-0.4.1}/meshagent/agents/worker.py +0 -0
  34. {meshagent_agents-0.3.1 → meshagent_agents-0.4.1}/meshagent/agents/writer.py +0 -0
  35. {meshagent_agents-0.3.1 → meshagent_agents-0.4.1}/meshagent_agents.egg-info/SOURCES.txt +0 -0
  36. {meshagent_agents-0.3.1 → meshagent_agents-0.4.1}/meshagent_agents.egg-info/dependency_links.txt +0 -0
  37. {meshagent_agents-0.3.1 → meshagent_agents-0.4.1}/meshagent_agents.egg-info/top_level.txt +0 -0
  38. {meshagent_agents-0.3.1 → meshagent_agents-0.4.1}/setup.cfg +0 -0
@@ -1,3 +1,9 @@
1
+ ## [0.4.1]
2
+ - Stability
3
+
4
+ ## [0.4.0]
5
+ - Stability
6
+
1
7
  ## [0.3.1]
2
8
  - Stability
3
9
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meshagent-agents
3
- Version: 0.3.1
3
+ Version: 0.4.1
4
4
  Summary: Agent Building Blocks for Meshagent
5
5
  License-Expression: Apache-2.0
6
6
  Project-URL: Documentation, https://docs.meshagent.com
@@ -12,19 +12,19 @@ License-File: LICENSE
12
12
  Requires-Dist: pyjwt~=2.10
13
13
  Requires-Dist: pytest~=8.4
14
14
  Requires-Dist: pytest-asyncio~=0.26
15
- Requires-Dist: meshagent-api~=0.3.1
16
- Requires-Dist: meshagent-tools~=0.3.1
17
- Requires-Dist: meshagent-openai~=0.3.1
15
+ Requires-Dist: meshagent-api~=0.4.1
16
+ Requires-Dist: meshagent-tools~=0.4.1
17
+ Requires-Dist: meshagent-openai~=0.4.1
18
18
  Requires-Dist: pydantic~=2.11
19
19
  Requires-Dist: opentelemetry-distro~=0.54b1
20
20
  Provides-Extra: all
21
- Requires-Dist: meshagent-api[all]~=0.3.1; extra == "all"
21
+ Requires-Dist: meshagent-api[all]~=0.4.1; extra == "all"
22
22
  Requires-Dist: chonkie~=0.5.1; extra == "all"
23
23
  Requires-Dist: chonkie[semantic]~=0.5.1; extra == "all"
24
24
  Requires-Dist: chonkie[openai]~=0.5.1; extra == "all"
25
25
  Requires-Dist: aiosmtplib~=4.0.1; extra == "all"
26
26
  Provides-Extra: sync
27
- Requires-Dist: meshagent-api[sync]~=0.3.1; extra == "sync"
27
+ Requires-Dist: meshagent-api[sync]~=0.4.1; extra == "sync"
28
28
  Provides-Extra: mail
29
29
  Requires-Dist: aiosmtplib~=4.0.1; extra == "mail"
30
30
  Provides-Extra: rag
@@ -3,11 +3,11 @@ from meshagent.api.room_server_client import TextDataType
3
3
  from email import message_from_bytes
4
4
  from email.message import EmailMessage
5
5
  from email.policy import default
6
+ from meshagent.tools import ToolContext, Toolkit
6
7
  import email.utils
7
8
  from meshagent.api import ParticipantToken
8
-
9
9
  from meshagent.api import RoomClient
10
-
10
+ from meshagent.agents import AgentChatContext
11
11
  from datetime import datetime, timezone
12
12
 
13
13
  import secrets
@@ -26,6 +26,12 @@ logger = logging.getLogger("mail")
26
26
  type MessageRole = Literal["user", "agent"]
27
27
 
28
28
 
29
+ class MailThreadContext:
30
+ def __init__(self, *, chat: AgentChatContext, room_address: str):
31
+ self.chat = chat
32
+ self.room_address = room_address
33
+
34
+
29
35
  def create_reply_email_message(
30
36
  *, message: dict, from_address: str, body: str
31
37
  ) -> EmailMessage:
@@ -277,13 +283,24 @@ class MailWorker(Worker):
277
283
  )
278
284
 
279
285
  async def process_message(self, *, chat_context, room, message, toolkits):
286
+ thread_context = MailThreadContext(chat=chat_context, room_address=message)
287
+ toolkits = [
288
+ *toolkits,
289
+ *await self.get_thread_toolkits(thread_context=thread_context),
290
+ ]
291
+
280
292
  logger.info(f"processing message {message}")
281
- body = await super().process_message(
282
- chat_context=chat_context, room=room, message=message, toolkits=toolkits
293
+ reply = await super().process_message(
294
+ chat_context=thread_context.chat,
295
+ room=room,
296
+ message=message,
297
+ toolkits=toolkits,
283
298
  )
299
+ return await self.send_reply_message(room=room, message=message, reply=reply)
284
300
 
301
+ async def send_reply_message(self, *, room: RoomClient, message: dict, reply: str):
285
302
  msg = create_reply_email_message(
286
- message=message, from_address=self._email_address, body=body
303
+ message=message, from_address=self._email_address, body=reply
287
304
  )
288
305
 
289
306
  reply_msg_dict = await save_email_message(
@@ -300,14 +317,37 @@ class MailWorker(Worker):
300
317
  if password is None:
301
318
  password = self.room.protocol.token
302
319
 
320
+ hostname = self._smtp.hostname
321
+ if hostname is None:
322
+ hostname = self._domain
323
+
324
+ port = self._smtp.port
325
+
326
+ logger.info(f"using smtp {username}@{hostname}:{port}")
327
+
303
328
  await aiosmtplib.send(
304
329
  msg,
305
- hostname=self._smtp.hostname,
306
- port=self._smtp.port,
330
+ hostname=hostname,
331
+ port=port,
307
332
  username=username,
308
333
  password=password,
309
334
  )
310
335
 
336
+ async def get_thread_toolkits(
337
+ self,
338
+ *,
339
+ thread_context: MailThreadContext,
340
+ ) -> list[Toolkit]:
341
+ toolkits = await self.get_required_toolkits(
342
+ context=ToolContext(
343
+ room=self.room,
344
+ caller=self.room.local_participant,
345
+ caller_context={"chat": thread_context.chat.to_json()},
346
+ )
347
+ )
348
+
349
+ return [*self._toolkits, *toolkits]
350
+
311
351
 
312
352
  def base36encode(number: int):
313
353
  if not isinstance(number, int):
@@ -0,0 +1 @@
1
+ __version__ = "0.4.1"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meshagent-agents
3
- Version: 0.3.1
3
+ Version: 0.4.1
4
4
  Summary: Agent Building Blocks for Meshagent
5
5
  License-Expression: Apache-2.0
6
6
  Project-URL: Documentation, https://docs.meshagent.com
@@ -12,19 +12,19 @@ License-File: LICENSE
12
12
  Requires-Dist: pyjwt~=2.10
13
13
  Requires-Dist: pytest~=8.4
14
14
  Requires-Dist: pytest-asyncio~=0.26
15
- Requires-Dist: meshagent-api~=0.3.1
16
- Requires-Dist: meshagent-tools~=0.3.1
17
- Requires-Dist: meshagent-openai~=0.3.1
15
+ Requires-Dist: meshagent-api~=0.4.1
16
+ Requires-Dist: meshagent-tools~=0.4.1
17
+ Requires-Dist: meshagent-openai~=0.4.1
18
18
  Requires-Dist: pydantic~=2.11
19
19
  Requires-Dist: opentelemetry-distro~=0.54b1
20
20
  Provides-Extra: all
21
- Requires-Dist: meshagent-api[all]~=0.3.1; extra == "all"
21
+ Requires-Dist: meshagent-api[all]~=0.4.1; extra == "all"
22
22
  Requires-Dist: chonkie~=0.5.1; extra == "all"
23
23
  Requires-Dist: chonkie[semantic]~=0.5.1; extra == "all"
24
24
  Requires-Dist: chonkie[openai]~=0.5.1; extra == "all"
25
25
  Requires-Dist: aiosmtplib~=4.0.1; extra == "all"
26
26
  Provides-Extra: sync
27
- Requires-Dist: meshagent-api[sync]~=0.3.1; extra == "sync"
27
+ Requires-Dist: meshagent-api[sync]~=0.4.1; extra == "sync"
28
28
  Provides-Extra: mail
29
29
  Requires-Dist: aiosmtplib~=4.0.1; extra == "mail"
30
30
  Provides-Extra: rag
@@ -1,14 +1,14 @@
1
1
  pyjwt~=2.10
2
2
  pytest~=8.4
3
3
  pytest-asyncio~=0.26
4
- meshagent-api~=0.3.1
5
- meshagent-tools~=0.3.1
6
- meshagent-openai~=0.3.1
4
+ meshagent-api~=0.4.1
5
+ meshagent-tools~=0.4.1
6
+ meshagent-openai~=0.4.1
7
7
  pydantic~=2.11
8
8
  opentelemetry-distro~=0.54b1
9
9
 
10
10
  [all]
11
- meshagent-api[all]~=0.3.1
11
+ meshagent-api[all]~=0.4.1
12
12
  chonkie~=0.5.1
13
13
  chonkie[semantic]~=0.5.1
14
14
  chonkie[openai]~=0.5.1
@@ -23,4 +23,4 @@ chonkie[semantic]~=0.5.1
23
23
  chonkie[openai]~=0.5.1
24
24
 
25
25
  [sync]
26
- meshagent-api[sync]~=0.3.1
26
+ meshagent-api[sync]~=0.4.1
@@ -17,16 +17,16 @@ dependencies = [
17
17
  "pyjwt~=2.10",
18
18
  "pytest~=8.4",
19
19
  "pytest-asyncio~=0.26",
20
- "meshagent-api~=0.3.1",
21
- "meshagent-tools~=0.3.1",
22
- "meshagent-openai~=0.3.1",
20
+ "meshagent-api~=0.4.1",
21
+ "meshagent-tools~=0.4.1",
22
+ "meshagent-openai~=0.4.1",
23
23
  "pydantic~=2.11",
24
24
  "opentelemetry-distro~=0.54b1"
25
25
  ]
26
26
 
27
27
  [project.optional-dependencies]
28
28
  all = [
29
- "meshagent-api[all]~=0.3.1",
29
+ "meshagent-api[all]~=0.4.1",
30
30
  "chonkie~=0.5.1",
31
31
  "chonkie[semantic]~=0.5.1",
32
32
  "chonkie[openai]~=0.5.1",
@@ -34,7 +34,7 @@ all = [
34
34
  ]
35
35
 
36
36
  sync = [
37
- "meshagent-api[sync]~=0.3.1",
37
+ "meshagent-api[sync]~=0.4.1",
38
38
  ]
39
39
 
40
40
  mail = [
@@ -1 +0,0 @@
1
- __version__ = "0.3.1"