meshagent-cli 0.4.1__py3-none-any.whl → 0.5.0__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-cli might be problematic. Click here for more details.

meshagent/cli/api_keys.py CHANGED
@@ -6,7 +6,7 @@ from meshagent.cli import async_typer
6
6
  from meshagent.cli.helper import get_client, print_json_table
7
7
  from meshagent.cli.helper import resolve_project_id, set_active_api_key
8
8
 
9
- app = async_typer.AsyncTyper()
9
+ app = async_typer.AsyncTyper(help="Manage or activate api-keys for your project")
10
10
 
11
11
 
12
12
  @app.async_command("list")
meshagent/cli/auth.py CHANGED
@@ -4,7 +4,7 @@ from meshagent.cli import async_typer
4
4
  from meshagent.cli import auth_async
5
5
  from meshagent.cli.helper import get_active_project
6
6
 
7
- app = async_typer.AsyncTyper()
7
+ app = async_typer.AsyncTyper(help="Authenticate to meshagent")
8
8
 
9
9
 
10
10
  @app.async_command("login")
meshagent/cli/chatbot.py CHANGED
@@ -27,7 +27,7 @@ from pathlib import Path
27
27
  from meshagent.openai.tools.responses_adapter import WebSearchTool
28
28
  from meshagent.api import RequiredToolkit, RequiredSchema
29
29
 
30
- app = async_typer.AsyncTyper()
30
+ app = async_typer.AsyncTyper(help="Join a chatbot to a room")
31
31
 
32
32
 
33
33
  def build_chatbot(
meshagent/cli/cli.py CHANGED
@@ -23,6 +23,7 @@ from meshagent.cli import chatbot
23
23
  from meshagent.cli import voicebot
24
24
  from meshagent.cli import mailbot
25
25
  from meshagent.cli.exec import register as register_exec
26
+ from meshagent.cli.version import __version__
26
27
 
27
28
  from meshagent.cli import otel
28
29
 
@@ -133,9 +134,17 @@ SHELL_RENDERERS = {
133
134
  }
134
135
 
135
136
 
137
+ @app.command(
138
+ "version",
139
+ help="Print the version",
140
+ )
141
+ def version():
142
+ print(__version__)
143
+
144
+
136
145
  @app.command(
137
146
  "env",
138
- help="Generate commands to set meshagent environment variables.",
147
+ help="Generate shell commands to set meshagent environment variables.",
139
148
  )
140
149
  def env(
141
150
  shell: Optional[str] = typer.Option(
meshagent/cli/mailbot.py CHANGED
@@ -1,6 +1,7 @@
1
1
  from meshagent.agents.mail import MailWorker
2
2
 
3
3
  import typer
4
+ from meshagent.api import ParticipantToken
4
5
  from rich import print
5
6
  from typing import Annotated, Optional
6
7
  from meshagent.tools import Toolkit
@@ -25,7 +26,7 @@ from pathlib import Path
25
26
  from meshagent.api import RequiredToolkit, RequiredSchema
26
27
  from meshagent.openai.tools.responses_adapter import WebSearchTool
27
28
 
28
- app = async_typer.AsyncTyper()
29
+ app = async_typer.AsyncTyper(help="Join a mailbot to a room")
29
30
 
30
31
 
31
32
  def build_mailbot(
@@ -76,6 +77,15 @@ def build_mailbot(
76
77
  rules=rule if len(rule) > 0 else None,
77
78
  )
78
79
 
80
+ async def start(self, *, room: RoomClient):
81
+ parsed_token = ParticipantToken.from_jwt(
82
+ room.protocol.token, validate=False
83
+ )
84
+ print(
85
+ f"[bold green]Send an email interact with your mailbot: {room_address(project_id=parsed_token.project_id, room_name=room.room_name)}[/bold green]"
86
+ )
87
+ return await super().start(room=room)
88
+
79
89
  async def get_thread_toolkits(self, *, thread_context):
80
90
  toolkits = await super().get_thread_toolkits(thread_context=thread_context)
81
91
 
@@ -182,7 +192,6 @@ async def make_call(
182
192
  await bot.start(room=client)
183
193
  try:
184
194
  print(
185
- f"[bold green]Send an email interact with your agent: {room_address(project_id=project_id, room_name=room)}[/bold green]",
186
195
  flush=True,
187
196
  )
188
197
  await client.protocol.wait_for_close()
meshagent/cli/projects.py CHANGED
@@ -9,7 +9,7 @@ from meshagent.cli.helper import (
9
9
  get_active_project,
10
10
  )
11
11
 
12
- app = async_typer.AsyncTyper()
12
+ app = async_typer.AsyncTyper(help="Manage or activate your meshagent projects")
13
13
 
14
14
 
15
15
  @app.async_command("create")
meshagent/cli/queue.py CHANGED
@@ -14,7 +14,7 @@ from meshagent.cli.helper import resolve_project_id, resolve_api_key
14
14
  from meshagent.cli import async_typer
15
15
  from meshagent.cli.helper import get_client
16
16
 
17
- app = async_typer.AsyncTyper()
17
+ app = async_typer.AsyncTyper(help="Use queues in a room")
18
18
 
19
19
 
20
20
  @app.async_command("send")
meshagent/cli/services.py CHANGED
@@ -10,7 +10,9 @@ from pydantic import PositiveInt
10
10
  import pydantic
11
11
  from typing import Literal
12
12
  from meshagent.cli import async_typer
13
- from pydantic import BaseModel
13
+ from meshagent.api.specs.service import ServiceSpec
14
+
15
+
14
16
  from meshagent.cli.helper import (
15
17
  get_client,
16
18
  print_json_table,
@@ -28,10 +30,9 @@ from meshagent.api import (
28
30
  from pydantic_yaml import parse_yaml_raw_as
29
31
 
30
32
  # Pydantic basemodels
31
- from meshagent.api.accounts_client import Service, Port, Services, Endpoint
32
-
33
+ from meshagent.api.accounts_client import Service, Port, Services
33
34
 
34
- app = async_typer.AsyncTyper()
35
+ app = async_typer.AsyncTyper(help="Manage services for your project")
35
36
 
36
37
  # ---------------------------------------------------------------------------
37
38
  # Utilities
@@ -56,7 +57,7 @@ class PortSpec(pydantic.BaseModel):
56
57
  --port num=8080 type=webserver liveness=/health path=/agent participant_name=myname
57
58
  """
58
59
 
59
- num: PositiveInt
60
+ num: PositiveInt | Literal["*"]
60
61
  type: Literal["mcp.sse", "meshagent.callable", "http", "tcp"]
61
62
  liveness: str | None = None
62
63
  participant_name: str | None = None
@@ -328,67 +329,6 @@ async def service_update(
328
329
  await client.close()
329
330
 
330
331
 
331
- class ServicePortEndpointSpec(pydantic.BaseModel):
332
- path: str
333
- identity: str
334
- type: Optional[Literal["mcp.sse", "meshagent.callable", "http", "tcp"]] = None
335
-
336
-
337
- class ServicePortSpec(pydantic.BaseModel):
338
- num: PositiveInt
339
- type: Literal["mcp.sse", "meshagent.callable", "http", "tcp"]
340
- endpoints: list[ServicePortEndpointSpec] = []
341
- liveness: Optional[str] = None
342
-
343
-
344
- class ServiceSpec(BaseModel):
345
- version: Literal["v1"]
346
- kind: Literal["Service"]
347
- id: Optional[str] = None
348
- name: str
349
- command: Optional[str] = None
350
- image: str
351
- ports: Optional[list[ServicePortSpec]] = []
352
- role: Optional[Literal["user", "tool", "agent"]] = None
353
- environment: Optional[dict[str, str]] = {}
354
- secrets: list[str] = []
355
- pull_secret: Optional[str] = None
356
- room_storage_path: Optional[str] = None
357
- room_storage_subpath: Optional[str] = None
358
-
359
- def to_service(self):
360
- ports = {}
361
- for p in self.ports:
362
- port = Port(liveness_path=p.liveness, type=p.type, endpoints=[])
363
- for endpoint in p.endpoints:
364
- type = port.type
365
- if endpoint.type is not None:
366
- type = endpoint.type
367
-
368
- port.endpoints.append(
369
- Endpoint(
370
- type=type,
371
- participant_name=endpoint.identity,
372
- path=endpoint.path,
373
- )
374
- )
375
- ports[p.num] = port
376
- return Service(
377
- id="",
378
- created_at=datetime.now(timezone.utc).isoformat(),
379
- name=self.name,
380
- command=self.command,
381
- image=self.image,
382
- ports=ports,
383
- role=self.role,
384
- environment=self.environment,
385
- environment_secrets=self.secrets,
386
- pull_secret=self.pull_secret,
387
- room_storage_path=self.room_storage_path,
388
- room_storage_subpath=self.room_storage_subpath,
389
- )
390
-
391
-
392
332
  @app.async_command("test")
393
333
  async def service_test(
394
334
  *,
meshagent/cli/storage.py CHANGED
@@ -18,7 +18,7 @@ from meshagent.cli.helper import (
18
18
  )
19
19
  from meshagent.cli.helper import resolve_room
20
20
 
21
- app = async_typer.AsyncTyper()
21
+ app = async_typer.AsyncTyper(help="Manage storage for a room")
22
22
 
23
23
 
24
24
  def parse_path(path: str):
meshagent/cli/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "0.4.1"
1
+ __version__ = "0.5.0"
meshagent/cli/voicebot.py CHANGED
@@ -29,7 +29,7 @@ except ImportError:
29
29
  )
30
30
 
31
31
 
32
- app = async_typer.AsyncTyper()
32
+ app = async_typer.AsyncTyper(help="Join a voicebot to a room")
33
33
 
34
34
 
35
35
  @app.async_command("join")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meshagent-cli
3
- Version: 0.4.1
3
+ Version: 0.5.0
4
4
  Summary: CLI for Meshagent
5
5
  License-Expression: Apache-2.0
6
6
  Project-URL: Documentation, https://docs.meshagent.com
@@ -10,12 +10,12 @@ Requires-Python: >=3.12
10
10
  Description-Content-Type: text/markdown
11
11
  Requires-Dist: typer~=0.15
12
12
  Requires-Dist: pydantic-yaml~=1.4
13
- Requires-Dist: meshagent-api~=0.4.1
14
- Requires-Dist: meshagent-agents~=0.4.1
15
- Requires-Dist: meshagent-computers~=0.4.1
16
- Requires-Dist: meshagent-openai~=0.4.1
17
- Requires-Dist: meshagent-tools~=0.4.1
18
- Requires-Dist: meshagent-mcp~=0.4.1
13
+ Requires-Dist: meshagent-api~=0.5.0
14
+ Requires-Dist: meshagent-agents~=0.5.0
15
+ Requires-Dist: meshagent-computers~=0.5.0
16
+ Requires-Dist: meshagent-openai~=0.5.0
17
+ Requires-Dist: meshagent-tools~=0.5.0
18
+ Requires-Dist: meshagent-mcp~=0.5.0
19
19
  Requires-Dist: supabase~=2.15
20
20
  Requires-Dist: fastmcp~=2.8
21
21
  Requires-Dist: opentelemetry-distro~=0.54b1
@@ -23,6 +23,8 @@ Requires-Dist: opentelemetry-exporter-otlp-proto-http~=1.33
23
23
  Requires-Dist: art~=6.5
24
24
  Requires-Dist: pydantic-yaml~=1.5
25
25
 
26
+ # [Meshagent](https://www.meshagent.com)
27
+
26
28
  ## MeshAgent CLI
27
29
 
28
30
  The ``meshagent.cli`` package installs everything you need to streamline room and agent management from your terminal. The CLI assembles submodules for authentication, projects, API keys, participant tokens, messaging, storage, agents, webhooks, and more.
@@ -1,31 +1,31 @@
1
1
  meshagent/cli/__init__.py,sha256=X78Z4yEg5XfkNKH0HiIdG4k1q5ktB-ampTuXHLNFrAw,58
2
2
  meshagent/cli/agent.py,sha256=bKumeTB87aICqCQwqvAf7ES5WcSZ9Tkp1RpZxMluIlE,10591
3
- meshagent/cli/api_keys.py,sha256=4mBqyh_WAogaMIYhRBQOCjfsSSp1RY9BqiI_6DaGLmk,4963
3
+ meshagent/cli/api_keys.py,sha256=msUkUymQv2Yk9kPtneuuxaLiLKbgT7JhMoOg9hykbeE,5014
4
4
  meshagent/cli/async_typer.py,sha256=GCeSefBDbpd-V4V8LrvHGUTBMth3HspVMfFa-HUZ0cg,898
5
- meshagent/cli/auth.py,sha256=tPipbOtHnsrvJ-OUOE-lyfvvIhkTIGYlkgS81hLdyB8,783
5
+ meshagent/cli/auth.py,sha256=wpGTomrFH0uvbwv262sTqK0DgB4ltAuurEmI9tYedIs,815
6
6
  meshagent/cli/auth_async.py,sha256=mi2-u949M412PAMN-PCdHEiF9hGf0W3m1RAseZX07-w,4058
7
7
  meshagent/cli/call.py,sha256=aVRs-7QDZWxK8jYc71oACNIkHuoDe1KUyfl8EtUbj-0,5306
8
- meshagent/cli/chatbot.py,sha256=eeQsO_94x34WyWER1H8LnutH6p4xnm3XL6SCeuoV1K0,8888
9
- meshagent/cli/cli.py,sha256=vxAIGcc_XF9X07PQYxgBK3vtHpWBUvILVEmZhCSbEns,6524
8
+ meshagent/cli/chatbot.py,sha256=KPHw88DJPfgdESihCeAenn17WwEe2SHlAM7x2it10Bw,8919
9
+ meshagent/cli/cli.py,sha256=a3wOL1uZVQqb8wE1fzL1-PCkDQxd5XZ06m-7oenR20Q,6677
10
10
  meshagent/cli/cli_mcp.py,sha256=BTTAMn3u4i1uTDItFxmxMTsSAvFaWtdI3YdZngHz11g,10641
11
11
  meshagent/cli/cli_secrets.py,sha256=lkfR8tVjOA5KdynAhKCg5Z2EJkgrHFTX43pdB60YiU4,13767
12
12
  meshagent/cli/developer.py,sha256=JWz-qcduCbFopQ1DNGbwrknzFt59KBLIXx8DyD6PxZM,3081
13
13
  meshagent/cli/exec.py,sha256=H5_AOu5vic7ijFmRFotGj0WHf5t3jbEjZRCAp2-S3WQ,11551
14
14
  meshagent/cli/helper.py,sha256=gbd6Tvlp7CObPp3srWm-mbAe7tBD0iacg6PitGWJdtw,4874
15
- meshagent/cli/mailbot.py,sha256=cWB68ZXBeSJVTft7LgJ1qSftPnS7SE4rNp3XvBHUoKE,7826
15
+ meshagent/cli/mailbot.py,sha256=ZZCKZoZH3RXwk3UOUj3P6QrBN2E5_pUxLEEMxP1hCn0,8176
16
16
  meshagent/cli/messaging.py,sha256=cr-oVAu_s8uEPUm3GELSq8yaVDnEWlt02D5V4KbA6wc,6437
17
17
  meshagent/cli/otel.py,sha256=1yoMGivskLV9f7M_LqCLKbttTTAPmFY5yhWXqFzvRN8,4066
18
18
  meshagent/cli/participant_token.py,sha256=N07hblRjj0zDKxl5CQXJjIMmft5s9mWgKZKz-VZyhKw,1400
19
- meshagent/cli/projects.py,sha256=yr2nPyUBepR4V52nInOyVsbsFMflHCiyoKq_JoFgMhc,3564
20
- meshagent/cli/queue.py,sha256=iCbFOFRvX5opeCL0YMk2d3l-4vDWIsi1joe0r2gQeMM,3820
21
- meshagent/cli/services.py,sha256=1afeMH41Kj0-1uAKB72buWnPFcgaqT4xFVO4FEpTPC0,19308
19
+ meshagent/cli/projects.py,sha256=EO3uaX_p3mk4MduBrfPcLD4eEgLOt1gQtpWC-JxGyk8,3613
20
+ meshagent/cli/queue.py,sha256=_dgWKipeXNHIHm7bi-fZgNUHg8chveVMzFN1T-pXkLs,3847
21
+ meshagent/cli/services.py,sha256=YFWp2_blv-Bt3tCqBr793ekisIAQ-vwisMrpYQzmRSE,17398
22
22
  meshagent/cli/sessions.py,sha256=MP7XhrtkUrealdpl8IKrTR3u9sjF15sG175-Y_m7nps,800
23
- meshagent/cli/storage.py,sha256=wtLKYFyfsErCePxCG962Xb--moCN-zj9uVCtRPhIpfA,35572
24
- meshagent/cli/version.py,sha256=pMtTmSUht-XtbR_7Doz6bsQqopJJd8rZ8I8zy2HwwoA,22
25
- meshagent/cli/voicebot.py,sha256=eTPaw4yEIBgNclZxlH8aXv0GquKcUTpqBH9WUuKRwsg,5691
23
+ meshagent/cli/storage.py,sha256=ryraz_I-MBIXQ4g3nV-L3ZgWeAM0L9gBnGv7EN3T-Ts,35604
24
+ meshagent/cli/version.py,sha256=LBK46heutvn3KmsCrKIYu8RQikbfnjZaj2xFrXaeCzQ,22
25
+ meshagent/cli/voicebot.py,sha256=eP4f3UinjlSDXHbrwaPVfvb2syHf6Hn2gJW2WJPCaRs,5723
26
26
  meshagent/cli/webhook.py,sha256=r5zct-UBQYSq3BWmnZRrHVOEHVlkY0j8uDxGVn3Pbxo,2902
27
- meshagent_cli-0.4.1.dist-info/METADATA,sha256=Cz1CvoRkxOCLe4SENejQN8j4BotktW6c5MU-cddOfWY,1448
28
- meshagent_cli-0.4.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
29
- meshagent_cli-0.4.1.dist-info/entry_points.txt,sha256=WRcGGN4vMtvC5Pgl3uRFqsJiQXNoHuLLa-TCSY3gAhQ,52
30
- meshagent_cli-0.4.1.dist-info/top_level.txt,sha256=GlcXnHtRP6m7zlG3Df04M35OsHtNXy_DY09oFwWrH74,10
31
- meshagent_cli-0.4.1.dist-info/RECORD,,
27
+ meshagent_cli-0.5.0.dist-info/METADATA,sha256=-te09MbfHtdZZnRy9DsiPvRhgzD7YwtBC-37vX_dWdc,1490
28
+ meshagent_cli-0.5.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
29
+ meshagent_cli-0.5.0.dist-info/entry_points.txt,sha256=WRcGGN4vMtvC5Pgl3uRFqsJiQXNoHuLLa-TCSY3gAhQ,52
30
+ meshagent_cli-0.5.0.dist-info/top_level.txt,sha256=GlcXnHtRP6m7zlG3Df04M35OsHtNXy_DY09oFwWrH74,10
31
+ meshagent_cli-0.5.0.dist-info/RECORD,,