meshagent-agents 0.0.30__tar.gz → 0.0.32__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 (39) hide show
  1. {meshagent_agents-0.0.30 → meshagent_agents-0.0.32}/CHANGELOG.md +8 -2
  2. {meshagent_agents-0.0.30/meshagent_agents.egg-info → meshagent_agents-0.0.32}/PKG-INFO +7 -6
  3. {meshagent_agents-0.0.30 → meshagent_agents-0.0.32}/meshagent/agents/agent.py +22 -14
  4. meshagent_agents-0.0.32/meshagent/agents/chat.py +614 -0
  5. {meshagent_agents-0.0.30 → meshagent_agents-0.0.32}/meshagent/agents/hosting.py +2 -1
  6. meshagent_agents-0.0.32/meshagent/agents/version.py +1 -0
  7. {meshagent_agents-0.0.30 → meshagent_agents-0.0.32/meshagent_agents.egg-info}/PKG-INFO +7 -6
  8. {meshagent_agents-0.0.30 → meshagent_agents-0.0.32}/meshagent_agents.egg-info/requires.txt +6 -5
  9. {meshagent_agents-0.0.30 → meshagent_agents-0.0.32}/pyproject.toml +6 -5
  10. meshagent_agents-0.0.30/meshagent/agents/chat.py +0 -462
  11. meshagent_agents-0.0.30/meshagent/agents/version.py +0 -1
  12. {meshagent_agents-0.0.30 → meshagent_agents-0.0.32}/LICENSE +0 -0
  13. {meshagent_agents-0.0.30 → meshagent_agents-0.0.32}/MANIFEST.in +0 -0
  14. {meshagent_agents-0.0.30 → meshagent_agents-0.0.32}/README.md +0 -0
  15. {meshagent_agents-0.0.30 → meshagent_agents-0.0.32}/meshagent/agents/__init__.py +0 -0
  16. {meshagent_agents-0.0.30 → meshagent_agents-0.0.32}/meshagent/agents/adapter.py +0 -0
  17. {meshagent_agents-0.0.30 → meshagent_agents-0.0.32}/meshagent/agents/context.py +0 -0
  18. {meshagent_agents-0.0.30 → meshagent_agents-0.0.32}/meshagent/agents/development.py +0 -0
  19. {meshagent_agents-0.0.30 → meshagent_agents-0.0.32}/meshagent/agents/indexer.py +0 -0
  20. {meshagent_agents-0.0.30 → meshagent_agents-0.0.32}/meshagent/agents/listener.py +0 -0
  21. {meshagent_agents-0.0.30 → meshagent_agents-0.0.32}/meshagent/agents/mail.py +0 -0
  22. {meshagent_agents-0.0.30 → meshagent_agents-0.0.32}/meshagent/agents/planning.py +0 -0
  23. {meshagent_agents-0.0.30 → meshagent_agents-0.0.32}/meshagent/agents/prompt.py +0 -0
  24. {meshagent_agents-0.0.30 → meshagent_agents-0.0.32}/meshagent/agents/pydantic.py +0 -0
  25. {meshagent_agents-0.0.30 → meshagent_agents-0.0.32}/meshagent/agents/schemas/__init__.py +0 -0
  26. {meshagent_agents-0.0.30 → meshagent_agents-0.0.32}/meshagent/agents/schemas/document.py +0 -0
  27. {meshagent_agents-0.0.30 → meshagent_agents-0.0.32}/meshagent/agents/schemas/gallery.py +0 -0
  28. {meshagent_agents-0.0.30 → meshagent_agents-0.0.32}/meshagent/agents/schemas/presentation.py +0 -0
  29. {meshagent_agents-0.0.30 → meshagent_agents-0.0.32}/meshagent/agents/schemas/schema.py +0 -0
  30. {meshagent_agents-0.0.30 → meshagent_agents-0.0.32}/meshagent/agents/schemas/super_editor_document.py +0 -0
  31. {meshagent_agents-0.0.30 → meshagent_agents-0.0.32}/meshagent/agents/single_shot_writer.py +0 -0
  32. {meshagent_agents-0.0.30 → meshagent_agents-0.0.32}/meshagent/agents/thread_schema.py +0 -0
  33. {meshagent_agents-0.0.30 → meshagent_agents-0.0.32}/meshagent/agents/utils.py +0 -0
  34. {meshagent_agents-0.0.30 → meshagent_agents-0.0.32}/meshagent/agents/worker.py +0 -0
  35. {meshagent_agents-0.0.30 → meshagent_agents-0.0.32}/meshagent/agents/writer.py +0 -0
  36. {meshagent_agents-0.0.30 → meshagent_agents-0.0.32}/meshagent_agents.egg-info/SOURCES.txt +0 -0
  37. {meshagent_agents-0.0.30 → meshagent_agents-0.0.32}/meshagent_agents.egg-info/dependency_links.txt +0 -0
  38. {meshagent_agents-0.0.30 → meshagent_agents-0.0.32}/meshagent_agents.egg-info/top_level.txt +0 -0
  39. {meshagent_agents-0.0.30 → meshagent_agents-0.0.32}/setup.cfg +0 -0
@@ -1,4 +1,10 @@
1
- ## [0.0.30]
1
+ ## [0.0.32]
2
+ - Stability
3
+
4
+ ## [0.0.31]
5
+ - Stability
6
+
7
+ ## [0.0.31]
2
8
  - Stability
3
9
 
4
10
  ## [0.0.29]
@@ -73,4 +79,4 @@
73
79
  - Fix chatbox initialization
74
80
 
75
81
  ## [0.0.4]
76
- - Streaming support
82
+ - Streaming support
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meshagent-agents
3
- Version: 0.0.30
3
+ Version: 0.0.32
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,20 @@ License-File: LICENSE
12
12
  Requires-Dist: pyjwt~=2.10.1
13
13
  Requires-Dist: pytest~=8.3.5
14
14
  Requires-Dist: pytest-asyncio~=0.26.0
15
- Requires-Dist: meshagent-api~=0.0.30
16
- Requires-Dist: meshagent-tools~=0.0.30
17
- Requires-Dist: meshagent-openai~=0.0.30
15
+ Requires-Dist: meshagent-api~=0.0.32
16
+ Requires-Dist: meshagent-tools~=0.0.32
17
+ Requires-Dist: meshagent-openai~=0.0.32
18
18
  Requires-Dist: pydantic~=2.11.1
19
19
  Requires-Dist: pydantic-ai~=0.0.48
20
+ Requires-Dist: opentelemetry-distro~=0.54b1
20
21
  Provides-Extra: all
21
- Requires-Dist: meshagent-api[all]~=0.0.30; extra == "all"
22
+ Requires-Dist: meshagent-api[all]~=0.0.32; extra == "all"
22
23
  Requires-Dist: chonkie~=0.5.1; extra == "all"
23
24
  Requires-Dist: chonkie[semantic]~=0.5.1; extra == "all"
24
25
  Requires-Dist: chonkie[openai]~=0.5.1; extra == "all"
25
26
  Requires-Dist: aiosmtplib~=4.0.1; extra == "all"
26
27
  Provides-Extra: sync
27
- Requires-Dist: meshagent-api[sync]~=0.0.30; extra == "sync"
28
+ Requires-Dist: meshagent-api[sync]~=0.0.32; extra == "sync"
28
29
  Provides-Extra: mail
29
30
  Requires-Dist: aiosmtplib~=4.0.1; extra == "mail"
30
31
  Provides-Extra: rag
@@ -3,6 +3,7 @@ from copy import deepcopy
3
3
 
4
4
  from typing import Optional
5
5
 
6
+ from meshagent.api.messaging import unpack_message, pack_message
6
7
  from meshagent.api.room_server_client import RoomException, RequiredToolkit, Requirement, RequiredSchema
7
8
  from meshagent.api import WebSocketClientProtocol, ToolDescription, ToolkitDescription, Participant, RemoteParticipant, meshagent_base_url, StorageEntry, JsonResponse
8
9
  from meshagent.api.protocol import Protocol
@@ -161,7 +162,7 @@ class SingleRoomAgent(Agent):
161
162
 
162
163
  if requirement.name.startswith("https://"):
163
164
  url = requirement.name
164
- else:
165
+ else:
165
166
  url = f"{meshagent_base_url()}/toolkits/{requirement.name}"
166
167
 
167
168
  await self._room.agents.make_call(url=url, name=requirement.name, arguments={})
@@ -169,17 +170,24 @@ class SingleRoomAgent(Agent):
169
170
  elif isinstance(requirement, RequiredSchema):
170
171
 
171
172
  if requirement.name not in schemas_by_name:
172
-
173
+
173
174
  installed = True
174
175
 
175
- logger.info(f"Installing required tool {requirement.name}")
176
-
177
- if requirement.name.startswith("https://"):
178
- url = requirement.name
179
- else:
180
- url = f"{meshagent_base_url()}/schemas/{requirement.name}"
176
+ schema_path = f".schemas/{requirement.name}.json"
181
177
 
182
- await self._room.agents.make_call(url=url, name=requirement.name, arguments={})
178
+
179
+ if await self._room.storage.exists(path=schema_path):
180
+ # Schema is already in the room
181
+ pass
182
+ else:
183
+ logger.info(f"Installing required tool {requirement.name}")
184
+
185
+ if requirement.name.startswith("https://"):
186
+ url = requirement.name
187
+ else:
188
+ url = f"{meshagent_base_url()}/schemas/{requirement.name}"
189
+
190
+ await self._room.agents.make_call(url=url, name=requirement.name, arguments={})
183
191
 
184
192
  else:
185
193
  raise RoomException("unsupported requirement")
@@ -376,7 +384,7 @@ class TaskRunner(SingleRoomAgent):
376
384
 
377
385
  async def worker():
378
386
  # Decode and parse the message
379
- message = json.loads(data.decode('utf-8'))
387
+ message, _ = unpack_message(data)
380
388
  logger.info("agent got message %s", message)
381
389
  args = message["arguments"]
382
390
  task_id = message["task_id"]
@@ -456,7 +464,7 @@ class TaskRunner(SingleRoomAgent):
456
464
 
457
465
  response = await self.ask(context=context, arguments=args)
458
466
 
459
- await protocol.send(type="agent.ask_response", data=json.dumps({
467
+ await protocol.send(type="agent.ask_response", data=pack_message({
460
468
  "task_id" : task_id,
461
469
  "answer" : response,
462
470
  "caller_context" : {
@@ -468,7 +476,7 @@ class TaskRunner(SingleRoomAgent):
468
476
  logger.error("Task runner failed to complete task", exc_info=e)
469
477
  if chat_context != None:
470
478
 
471
- await protocol.send(type="agent.ask_response", data=json.dumps({
479
+ await protocol.send(type="agent.ask_response", data=pack_message({
472
480
  "task_id" : task_id,
473
481
  "error" : str(e),
474
482
  "caller_context" : {
@@ -476,7 +484,7 @@ class TaskRunner(SingleRoomAgent):
476
484
  }
477
485
  }))
478
486
  else:
479
- await protocol.send(type="agent.ask_response", data=json.dumps({
487
+ await protocol.send(type="agent.ask_response", data=pack_message({
480
488
  "task_id" : task_id,
481
489
  "error" : str(e),
482
490
  }))
@@ -522,4 +530,4 @@ async def make_run_task_tool(context: ToolContext, toolkit: RequiredToolkit):
522
530
  tools=tools
523
531
  )
524
532
 
525
- register_toolkit_factory("agents", make_run_task_tool)
533
+ register_toolkit_factory("agents", make_run_task_tool)