meshagent-agents 0.0.37__py3-none-any.whl → 0.0.38__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.

Potentially problematic release.


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

@@ -1,6 +1,6 @@
1
1
  from .agent import SingleRoomAgent
2
2
  from meshagent.api.chan import Chan
3
- from meshagent.api import RoomMessage, RoomException, RoomClient, RemoteParticipant
3
+ from meshagent.api import RoomMessage, RoomClient
4
4
  from meshagent.agents import AgentChatContext
5
5
  from meshagent.tools import Toolkit
6
6
  from .adapter import LLMAdapter, ToolResponseAdapter
@@ -14,7 +14,19 @@ logger = logging.getLogger("chat")
14
14
 
15
15
 
16
16
  class Worker(SingleRoomAgent):
17
- def __init__(self, *, queue: str, name, title = None, description = None, requires = None, llm_adapter: LLMAdapter, tool_adapter: Optional[ToolResponseAdapter] = None, toolkits: Optional[list[Toolkit]] = None, rules : Optional[list[str]] = None):
17
+ def __init__(
18
+ self,
19
+ *,
20
+ queue: str,
21
+ name,
22
+ title=None,
23
+ description=None,
24
+ requires=None,
25
+ llm_adapter: LLMAdapter,
26
+ tool_adapter: Optional[ToolResponseAdapter] = None,
27
+ toolkits: Optional[list[Toolkit]] = None,
28
+ rules: Optional[list[str]] = None,
29
+ ):
18
30
  super().__init__(
19
31
  name=name,
20
32
  title=title,
@@ -24,7 +36,7 @@ class Worker(SingleRoomAgent):
24
36
 
25
37
  self._queue = queue
26
38
 
27
- if toolkits == None:
39
+ if toolkits is None:
28
40
  toolkits = []
29
41
 
30
42
  self._llm_adapter = llm_adapter
@@ -32,38 +44,42 @@ class Worker(SingleRoomAgent):
32
44
 
33
45
  self._message_channel = Chan[RoomMessage]()
34
46
 
35
- self._room : RoomClient | None = None
47
+ self._room: RoomClient | None = None
36
48
  self._toolkits = toolkits
37
49
 
38
- if rules == None:
50
+ if rules is None:
39
51
  rules = []
40
52
 
41
53
  self._rules = rules
42
54
  self._done = False
43
-
44
55
 
45
56
  async def start(self, *, room: RoomClient):
46
57
  self._done = False
47
58
 
48
59
  await super().start(room=room)
49
60
 
50
-
51
61
  self._main_task = asyncio.create_task(self.run(room=room))
52
62
 
53
63
  async def stop(self):
54
-
55
64
  self._done = True
56
65
 
57
66
  await asyncio.gather(self._main_task)
58
67
 
59
68
  await super().stop()
60
69
 
61
-
62
- async def append_message_context(self, *, room: RoomClient, message: dict, chat_context: AgentChatContext):
70
+ async def append_message_context(
71
+ self, *, room: RoomClient, message: dict, chat_context: AgentChatContext
72
+ ):
63
73
  chat_context.append_user_message(message=json.dumps(message))
64
-
65
- async def process_message(self, *, chat_context: AgentChatContext, room: RoomClient, message: dict, toolkits: list[Toolkit]):
66
74
 
75
+ async def process_message(
76
+ self,
77
+ *,
78
+ chat_context: AgentChatContext,
79
+ room: RoomClient,
80
+ message: dict,
81
+ toolkits: list[Toolkit],
82
+ ):
67
83
  return await self._llm_adapter.next(
68
84
  context=chat_context,
69
85
  room=room,
@@ -71,22 +87,21 @@ class Worker(SingleRoomAgent):
71
87
  tool_adapter=self._tool_adapter,
72
88
  )
73
89
 
74
-
75
90
  async def run(self, *, room: RoomClient):
76
-
77
91
  toolkits = [
78
- *await self.get_required_toolkits(ToolContext(room=room, caller=room.local_participant)),
79
- *self._toolkits
92
+ *await self.get_required_toolkits(
93
+ ToolContext(room=room, caller=room.local_participant)
94
+ ),
95
+ *self._toolkits,
80
96
  ]
81
-
82
- while not self._done:
83
97
 
84
- message = await room.queues.receive(name=self._queue, create=True, wait=True)
85
- if message != None:
86
-
98
+ while not self._done:
99
+ message = await room.queues.receive(
100
+ name=self._queue, create=True, wait=True
101
+ )
102
+ if message is not None:
87
103
  logger.info(f"received message on worker queue {message}")
88
104
  try:
89
-
90
105
  chat_context = await self.init_chat_context()
91
106
 
92
107
  chat_context.append_rules(
@@ -94,12 +109,17 @@ class Worker(SingleRoomAgent):
94
109
  *self._rules,
95
110
  ]
96
111
  )
97
-
98
- await self.append_message_context(room=room, message=message, chat_context=chat_context)
99
-
100
112
 
101
- await self.process_message(chat_context=chat_context, room=room, message=message, toolkits=toolkits)
102
-
103
- except Exception as e:
113
+ await self.append_message_context(
114
+ room=room, message=message, chat_context=chat_context
115
+ )
104
116
 
117
+ await self.process_message(
118
+ chat_context=chat_context,
119
+ room=room,
120
+ message=message,
121
+ toolkits=toolkits,
122
+ )
123
+
124
+ except Exception as e:
105
125
  logger.error(f"Failed to process a message {message}", exc_info=e)
@@ -1,8 +1,9 @@
1
- from meshagent.agents.agent import AgentCallContext
1
+ from meshagent.agents.agent import AgentCallContext
2
2
  from meshagent.api.room_server_client import RoomClient
3
3
  from meshagent.api.schema_document import Document
4
- from meshagent.api import RoomClient, RequiredToolkit, RequiredSchema, Requirement
5
- #from meshagent.tools.document_tools import DocumentToolkit
4
+ from meshagent.api import Requirement
5
+
6
+ # from meshagent.tools.document_tools import DocumentToolkit
6
7
  from typing import Optional
7
8
  import asyncio
8
9
  import logging
@@ -12,32 +13,48 @@ logger = logging.getLogger("writer_agent")
12
13
 
13
14
 
14
15
  class WriterContext:
15
- def __init__(self, room: RoomClient, document: Document, call_context: AgentCallContext, path: str):
16
+ def __init__(
17
+ self,
18
+ room: RoomClient,
19
+ document: Document,
20
+ call_context: AgentCallContext,
21
+ path: str,
22
+ ):
16
23
  self._room = room
17
24
  self._document = document
18
- self._call_context = call_context
25
+ self._call_context = call_context
19
26
  self._path = path
20
27
 
21
28
  @property
22
29
  def room(self) -> RoomClient:
23
30
  return self._room
24
-
31
+
25
32
  @property
26
33
  def path(self) -> str:
27
34
  return self._path
28
-
35
+
29
36
  @property
30
37
  def document(self) -> Document:
31
38
  return self._document
32
-
39
+
33
40
  @property
34
41
  def call_context(self) -> AgentCallContext:
35
42
  return self._call_context
36
-
43
+
37
44
 
38
45
  # writes to a path, the document must already exist, optionally create the document if it does not exist
39
46
  class Writer(TaskRunner):
40
- def __init__(self, name: str, input_schema:dict, output_schema:dict, create: bool = True, title: Optional[str] = None, description: Optional[str] = None, requires: Optional[list[Requirement]] = None, supports_tools: Optional[bool] = None):
47
+ def __init__(
48
+ self,
49
+ name: str,
50
+ input_schema: dict,
51
+ output_schema: dict,
52
+ create: bool = True,
53
+ title: Optional[str] = None,
54
+ description: Optional[str] = None,
55
+ requires: Optional[list[Requirement]] = None,
56
+ supports_tools: Optional[bool] = None,
57
+ ):
41
58
  super().__init__(
42
59
  name=name,
43
60
  input_schema=input_schema,
@@ -45,37 +62,33 @@ class Writer(TaskRunner):
45
62
  description=description,
46
63
  title=title,
47
64
  requires=requires,
48
- supports_tools=supports_tools
65
+ supports_tools=supports_tools,
49
66
  )
50
-
67
+
51
68
  self._create = create
52
69
 
53
70
  if "path" not in input_schema["properties"]:
54
71
  raise Exception("input schema must include a 'path' property")
55
-
72
+
56
73
  def pop_path(self, arguments: dict):
57
74
  return arguments["path"]
58
-
75
+
59
76
  async def write(self, writer_context: WriterContext, arguments: dict) -> dict:
60
77
  pass
61
-
78
+
62
79
  async def ask(self, *, context: AgentCallContext, arguments: dict):
63
-
64
80
  path = arguments["path"]
65
-
81
+
66
82
  client = context.room
67
83
  document = await client.sync.open(path=path, create=self._create)
68
84
 
69
85
  writer_context = WriterContext(
70
- room=client,
71
- document=document,
72
- call_context=context,
73
- path=path
86
+ room=client, document=document, call_context=context, path=path
74
87
  )
75
-
88
+
76
89
  try:
77
90
  return await self.write(writer_context, arguments)
78
91
  finally:
79
92
  # TODO: need a way to wait for changes to be synchronized
80
93
  await asyncio.sleep(1)
81
- await client.sync.close(path=path)
94
+ await client.sync.close(path=path)
@@ -0,0 +1,64 @@
1
+ Metadata-Version: 2.4
2
+ Name: meshagent-agents
3
+ Version: 0.0.38
4
+ Summary: Agent Building Blocks for Meshagent
5
+ License-Expression: Apache-2.0
6
+ Project-URL: Documentation, https://docs.meshagent.com
7
+ Project-URL: Website, https://www.meshagent.com
8
+ Project-URL: Source, https://www.meshagent.com
9
+ Requires-Python: >=3.12
10
+ Description-Content-Type: text/markdown
11
+ License-File: LICENSE
12
+ Requires-Dist: pyjwt~=2.10
13
+ Requires-Dist: pytest~=8.4
14
+ Requires-Dist: pytest-asyncio~=0.26
15
+ Requires-Dist: meshagent-api~=0.0.38
16
+ Requires-Dist: meshagent-tools~=0.0.38
17
+ Requires-Dist: meshagent-openai~=0.0.38
18
+ Requires-Dist: pydantic~=2.11
19
+ Requires-Dist: opentelemetry-distro~=0.54b1
20
+ Provides-Extra: all
21
+ Requires-Dist: meshagent-api[all]~=0.0.38; extra == "all"
22
+ Requires-Dist: chonkie~=0.5.1; extra == "all"
23
+ Requires-Dist: chonkie[semantic]~=0.5.1; extra == "all"
24
+ Requires-Dist: chonkie[openai]~=0.5.1; extra == "all"
25
+ Requires-Dist: aiosmtplib~=4.0.1; extra == "all"
26
+ Provides-Extra: sync
27
+ Requires-Dist: meshagent-api[sync]~=0.0.38; extra == "sync"
28
+ Provides-Extra: mail
29
+ Requires-Dist: aiosmtplib~=4.0.1; extra == "mail"
30
+ Provides-Extra: rag
31
+ Requires-Dist: chonkie~=0.5.1; extra == "rag"
32
+ Requires-Dist: chonkie[semantic]~=0.5.1; extra == "rag"
33
+ Requires-Dist: chonkie[openai]~=0.5.1; extra == "rag"
34
+ Dynamic: license-file
35
+
36
+ ### MeshAgent Agents
37
+
38
+ The ``meshagent.agents`` package provides higher-level agent classes that orchestrate tools and tasks. The primary agents you will build will use the ``TaskRunner``, ``Worker``, and ``ChatBot`` agent types. These agents extend the base ``Agent`` and ``SingleRoomAgent`` classes which setup the fundamentals for working with Agents in MeshAgent Rooms.
39
+
40
+ Note that agents use LLMAdapters and ToolResponseAdapters to translate between language model calls and tool executions. They also use the ServiceHost to run.
41
+
42
+ ### Agent
43
+ The ``Agent`` base class handles static info such as the agent name, description, and requirements. This class is not used directly, but is the foundation for specialized agents.
44
+
45
+ ### SingleRoomAgent
46
+ The ``SingleRoomAgent``extends the ``Agent`` class, connects to a ``RoomClient``, and installs any declared schemas or toolkits when the agent starts up. All other MeshAgent Agent types extend the ``SingleRoomAgent`` class with additional functionality.
47
+
48
+ ### TaskRunner
49
+ The ``TaskRunner`` agent is useful when you want to invoke an agent with a well-defined JSON schemas for input and output. This is important for running agents-as-tools or running remote tasks. Often you will define a ``TaskRunner`` and pass it to a ``ChatBot`` or ``VoiceBot`` as a tool for that agent to use.
50
+
51
+ ### Worker
52
+ The ``Worker`` is a queue-based ``SingleRoomAgent`` that processes queued messages with an LLM and optional tools. This is particularly helpful for running asynchronous jobs. With the ``Worker`` agent you can create a set of tasks that need to run in a Room and the ``Worker`` will execute all of the tasks in the queue.
53
+
54
+ ### ChatBot
55
+ The ``ChatBot`` is a conversational agent derived from the ``SingleRoomAgent``. It wires an LLMAdapter, optoinal tools, and manages chat threads for each user. This means multiple users can be in the same room interacting with a chat agent, but each user will have private messages with the agent. Check out the [Build and Deploy a Chat Agent](https://docs.meshagent.com/agents/standard/buildanddeploychatbot) example to learn how to create a simple Chat Agent without tools then add built-in MeshAgent tools and custom tools to the agent.
56
+
57
+ ---
58
+ ### Learn more about MeshAgent on our website or check out the docs for additional examples!
59
+
60
+ **Website**: [www.meshagent.com](https://www.meshagent.com/)
61
+
62
+ **Documentation**: [docs.meshagent.com](https://docs.meshagent.com/)
63
+
64
+ ---
@@ -0,0 +1,30 @@
1
+ meshagent/agents/__init__.py,sha256=d2cplyLH8xqDWqP_GoPQ8ApHzuv8Iiq4rz-vYBlGMTw,706
2
+ meshagent/agents/adapter.py,sha256=CZgVzUTTY8dyPBYA7O_Kaawb40maxAbUUhBFk1YjbsI,1386
3
+ meshagent/agents/agent.py,sha256=bBEMlI2E0P97gkP93J68o9XvIxtTB_bEiFXSrRH3iyk,20623
4
+ meshagent/agents/chat.py,sha256=SPcD0FTBcs5H-e0s53FofoWPHvfAYF_OMeQEr-tWaSs,28954
5
+ meshagent/agents/context.py,sha256=6txCXA22aHQaikvIKED6YjPyasM_bPqGqCE4HGj04_E,4035
6
+ meshagent/agents/development.py,sha256=AEBkkycNZDRLYIdmX2LkrVZv715ALswiwSR9CiV3HE4,894
7
+ meshagent/agents/hosting.py,sha256=tCcswAweEhlMxGaBR_m2YvUkwZiaHbTBT64urRHfK7I,5446
8
+ meshagent/agents/indexer.py,sha256=xFEzAmwAxhKu9xHppnxFUFlzeRHMfVk6MatRyka0ZW8,19367
9
+ meshagent/agents/listener.py,sha256=q5z216FMVW-a7FBs706u3IuB81VArfucxEHaHvPFHEo,5139
10
+ meshagent/agents/mail.py,sha256=jFr9YBTzYc14adOAAl9rYC9bOmEVYTj6NAOKvtLsfVo,11038
11
+ meshagent/agents/planning.py,sha256=QRDDC8VLmlS1rbRETT1EdJo8LYLfIcuOe_wiAyO_6LU,22242
12
+ meshagent/agents/prompt.py,sha256=OSSqbzaugyQtuvYxTY5UcZQWyeV73e3GUJz_iC5xZkA,1883
13
+ meshagent/agents/pydantic.py,sha256=RrdOESZg-n_FyxbfkOBwRPVxV39IOjxK2unsyAGn9as,6278
14
+ meshagent/agents/single_shot_writer.py,sha256=4-anwnE5Prpi9vqF9YInGDBgezQVDYzxhmRTNUcrqXw,3370
15
+ meshagent/agents/thread_schema.py,sha256=c6KuLhcBxjxcz8M5NQzmmlyJLqv8RB7W491uWOu6Z34,3485
16
+ meshagent/agents/utils.py,sha256=6D9GXpYu9xx5XlfD3DiGFdyOwq46e5-sTYOF_FYep1o,1446
17
+ meshagent/agents/version.py,sha256=R5QxTjVaID7odO0eBWpOnyCjNQxBZ7cpyruM_NMOoDc,23
18
+ meshagent/agents/worker.py,sha256=6-SDWm-4aqlx9G8321g1lS0caZUybBpJRhrg5jxqTy8,3500
19
+ meshagent/agents/writer.py,sha256=dXglYgHwBrBJIaapMqBDyD3kmwSyi94tOdHH44itODc,2682
20
+ meshagent/agents/schemas/__init__.py,sha256=TqLbKu8AWahYaXYGQf0qK1CdcYCtjm7PuMEFlQLAyvA,295
21
+ meshagent/agents/schemas/document.py,sha256=H-aolubkRHdTAH-rLI2SJ8y3JKwXvpNsR3ZCqghwAWI,1515
22
+ meshagent/agents/schemas/gallery.py,sha256=65IsrH2wiFIR-DNo8est-nCOC72i1Aa5EmVNUHtVnK0,1091
23
+ meshagent/agents/schemas/presentation.py,sha256=aaMzkFQryurbHd1fbzTQPdN7v8QIhsjXuvbE8ZiuXNY,1589
24
+ meshagent/agents/schemas/schema.py,sha256=8OXGCLVouoPg6eHBU9mgf1pTGTMvVZqiKNq15wkQJe0,5310
25
+ meshagent/agents/schemas/super_editor_document.py,sha256=iRv4Q-DE_5kUdsAD5Rm4GwHek8L_7ZEpxIZ1x2dWjdg,1813
26
+ meshagent_agents-0.0.38.dist-info/licenses/LICENSE,sha256=eTt0SPW-sVNdkZe9PS_S8WfCIyLjRXRl7sUBWdlteFg,10254
27
+ meshagent_agents-0.0.38.dist-info/METADATA,sha256=bojAeYseNHLxvu5X5z0i3DPKqsVfWK7TzuxYB5uH_-E,3737
28
+ meshagent_agents-0.0.38.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
29
+ meshagent_agents-0.0.38.dist-info/top_level.txt,sha256=GlcXnHtRP6m7zlG3Df04M35OsHtNXy_DY09oFwWrH74,10
30
+ meshagent_agents-0.0.38.dist-info/RECORD,,
@@ -1,36 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: meshagent-agents
3
- Version: 0.0.37
4
- Summary: Agent Building Blocks for Meshagent
5
- License-Expression: Apache-2.0
6
- Project-URL: Documentation, https://docs.meshagent.com
7
- Project-URL: Website, https://www.meshagent.com
8
- Project-URL: Source, https://www.meshagent.com
9
- Requires-Python: >=3.12
10
- Description-Content-Type: text/markdown
11
- License-File: LICENSE
12
- Requires-Dist: pyjwt~=2.10
13
- Requires-Dist: pytest~=8.3
14
- Requires-Dist: pytest-asyncio~=0.26
15
- Requires-Dist: meshagent-api~=0.0.37
16
- Requires-Dist: meshagent-tools~=0.0.37
17
- Requires-Dist: meshagent-openai~=0.0.37
18
- Requires-Dist: pydantic~=2.11
19
- Requires-Dist: opentelemetry-distro~=0.54b1
20
- Provides-Extra: all
21
- Requires-Dist: meshagent-api[all]~=0.0.37; extra == "all"
22
- Requires-Dist: chonkie~=0.5.1; extra == "all"
23
- Requires-Dist: chonkie[semantic]~=0.5.1; extra == "all"
24
- Requires-Dist: chonkie[openai]~=0.5.1; extra == "all"
25
- Requires-Dist: aiosmtplib~=4.0.1; extra == "all"
26
- Provides-Extra: sync
27
- Requires-Dist: meshagent-api[sync]~=0.0.37; extra == "sync"
28
- Provides-Extra: mail
29
- Requires-Dist: aiosmtplib~=4.0.1; extra == "mail"
30
- Provides-Extra: rag
31
- Requires-Dist: chonkie~=0.5.1; extra == "rag"
32
- Requires-Dist: chonkie[semantic]~=0.5.1; extra == "rag"
33
- Requires-Dist: chonkie[openai]~=0.5.1; extra == "rag"
34
- Dynamic: license-file
35
-
36
- ### Meshagent Agents
@@ -1,30 +0,0 @@
1
- meshagent/agents/__init__.py,sha256=S83622vDM9hWErcgfwZg8lJT2ncu00OEgnxoIbY3VcM,376
2
- meshagent/agents/adapter.py,sha256=_83Q2XiA8e6Xh37xYnJ9z75AbDWskR-mmKH-LLq6mpA,1318
3
- meshagent/agents/agent.py,sha256=b41t1XLG5QYxjlWrkf7EbR7ecVfwcTtXMe8p3N9_32Y,19419
4
- meshagent/agents/chat.py,sha256=tNwHYEA-_tLoB2_9DNZ9mXpU1n--l6t_q5Q0XgPKVj0,26059
5
- meshagent/agents/context.py,sha256=6eFK7wizjzZmZyhbqwazlT_E_e_Cpb17Qa3tBk2BJzw,3804
6
- meshagent/agents/development.py,sha256=04VYL1Q_BWUTQeVuiVOpyjcs8bzUIX1eQ4VyTtjc5s0,926
7
- meshagent/agents/hosting.py,sha256=1vzr6aV_HPJGzGPkQdLgt4CqvDAgpHdBEmSym_0r3j8,4982
8
- meshagent/agents/indexer.py,sha256=Lz7hJvC7hbvnmiFQLEzmakw_1OPh93pp96iSwIv1fQc,19410
9
- meshagent/agents/listener.py,sha256=39u20ZwTNUVR0CRUOi4CTgBreg2ZPbrHQOohwjsfijg,5359
10
- meshagent/agents/mail.py,sha256=bDQdJphKJr0Sl1_XiVhdd1J7E2DBqbjvxvnIVxGt5UU,10951
11
- meshagent/agents/planning.py,sha256=NtXzYiwykeYdQghWjwsChy4f9OgIsQZWiIstpZvtGtU,21811
12
- meshagent/agents/prompt.py,sha256=sidiyLLC6Lr9KO3cUTKttd2oROlcizle_4iKoaNrfhA,1864
13
- meshagent/agents/pydantic.py,sha256=My9sv1A56unA0qVoPSH-mYtxcgl0AKyxFgyOM70pjLM,6062
14
- meshagent/agents/single_shot_writer.py,sha256=QsGvTIw1qtp8nGLfzuJwdZj6ucY4cW9rdecqNwv83FA,3355
15
- meshagent/agents/thread_schema.py,sha256=-KGAMNxQsVuXpvc0avV-OYHe2LMXpjTu5PyQ-1nBnyE,2667
16
- meshagent/agents/utils.py,sha256=upMbvG4KODZijeTO3IdW4GgzFPz4jXTzNhZBDmtroic,1431
17
- meshagent/agents/version.py,sha256=JaGEpJ5xP3R4j7pGgCziGajlIRjy1_NJdv_OaXPQius,22
18
- meshagent/agents/worker.py,sha256=G2Q3UpUCQQ8GtPK5_LW4q8uDOyuJXJM_zdRPsx4puck,3260
19
- meshagent/agents/writer.py,sha256=2Nk52JcjdRz3EnGBO4EHnv49QzByWiije1LKMNuCAIo,2687
20
- meshagent/agents/schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
- meshagent/agents/schemas/document.py,sha256=GrHkyJ6ZsImqL33FnGKqjBmBpX4u2lAsUMLW4AzDHEM,1318
22
- meshagent/agents/schemas/gallery.py,sha256=fzAdlDrn_dJz4FDPkSTH9ir7QmRpV8wFjj6RTOyVwmA,902
23
- meshagent/agents/schemas/presentation.py,sha256=DreBXAU7Lx92NBPTlEOZq1gdaRs0OkZrJgPT5N7fYH4,1265
24
- meshagent/agents/schemas/schema.py,sha256=O52T5nUGRNQ8AsamZ_W_IQ8WRDqSBo3vWFDSQcC7Lcg,4473
25
- meshagent/agents/schemas/super_editor_document.py,sha256=lFpbZn_s_6hchimddzpnGneJ7LaB6dTN_AnLZsx2r9c,1469
26
- meshagent_agents-0.0.37.dist-info/licenses/LICENSE,sha256=eTt0SPW-sVNdkZe9PS_S8WfCIyLjRXRl7sUBWdlteFg,10254
27
- meshagent_agents-0.0.37.dist-info/METADATA,sha256=g8JilzX9cTv6vvA_bcAfDLpP3JGyIAE61SJxnxRsplg,1308
28
- meshagent_agents-0.0.37.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
29
- meshagent_agents-0.0.37.dist-info/top_level.txt,sha256=GlcXnHtRP6m7zlG3Df04M35OsHtNXy_DY09oFwWrH74,10
30
- meshagent_agents-0.0.37.dist-info/RECORD,,