meshagent-cli 0.35.0__tar.gz → 0.35.3__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.
Files changed (81) hide show
  1. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/PKG-INFO +13 -13
  2. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/image.py +18 -5
  3. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/image_test.py +163 -0
  4. meshagent_cli-0.35.3/meshagent/cli/version.py +1 -0
  5. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent_cli.egg-info/PKG-INFO +13 -13
  6. meshagent_cli-0.35.3/meshagent_cli.egg-info/requires.txt +29 -0
  7. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/pyproject.toml +12 -12
  8. meshagent_cli-0.35.0/meshagent/cli/version.py +0 -1
  9. meshagent_cli-0.35.0/meshagent_cli.egg-info/requires.txt +0 -29
  10. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/README.md +0 -0
  11. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/__init__.py +0 -0
  12. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/agent.py +0 -0
  13. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/api_keys.py +0 -0
  14. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/async_typer.py +0 -0
  15. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/auth.py +0 -0
  16. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/auth_async.py +0 -0
  17. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/call.py +0 -0
  18. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/chatbot.py +0 -0
  19. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/cli.py +0 -0
  20. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/cli_mcp.py +0 -0
  21. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/cli_secrets.py +0 -0
  22. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/cli_test.py +0 -0
  23. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/codex.py +0 -0
  24. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/common_options.py +0 -0
  25. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/containers.py +0 -0
  26. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/containers_test.py +0 -0
  27. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/database.py +0 -0
  28. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/developer.py +0 -0
  29. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/developer_test.py +0 -0
  30. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/helper.py +0 -0
  31. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/helper_test.py +0 -0
  32. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/helpers.py +0 -0
  33. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/host.py +0 -0
  34. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/mailbot.py +0 -0
  35. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/mailboxes.py +0 -0
  36. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/meeting_transcriber.py +0 -0
  37. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/memory.py +0 -0
  38. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/memory_test.py +0 -0
  39. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/messaging.py +0 -0
  40. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/multi.py +0 -0
  41. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/oauth2.py +0 -0
  42. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/oci_archive.py +0 -0
  43. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/oci_archive_test.py +0 -0
  44. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/participant_token.py +0 -0
  45. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/port.py +0 -0
  46. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/port_test.py +0 -0
  47. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/process.py +0 -0
  48. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/process_test.py +0 -0
  49. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/projects.py +0 -0
  50. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/queue.py +0 -0
  51. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/queue_test.py +0 -0
  52. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/room.py +0 -0
  53. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/room_services.py +0 -0
  54. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/rooms.py +0 -0
  55. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/routes.py +0 -0
  56. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/scheduled_tasks.py +0 -0
  57. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/scheduled_tasks_test.py +0 -0
  58. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/services.py +0 -0
  59. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/services_test.py +0 -0
  60. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/sessions.py +0 -0
  61. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/sessions_test.py +0 -0
  62. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/storage.py +0 -0
  63. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/storage_test.py +0 -0
  64. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/sync.py +0 -0
  65. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/sync_test.py +0 -0
  66. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/task_runner.py +0 -0
  67. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/test.py +0 -0
  68. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/tui/__init__.py +0 -0
  69. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/tui/setup.py +0 -0
  70. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/tui/setup_splash_frames.py +0 -0
  71. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/tui/setup_test.py +0 -0
  72. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/voicebot.py +0 -0
  73. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/webhook.py +0 -0
  74. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/webserver.py +0 -0
  75. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/webserver_test.py +0 -0
  76. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent/cli/worker.py +0 -0
  77. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent_cli.egg-info/SOURCES.txt +0 -0
  78. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent_cli.egg-info/dependency_links.txt +0 -0
  79. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent_cli.egg-info/entry_points.txt +0 -0
  80. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/meshagent_cli.egg-info/top_level.txt +0 -0
  81. {meshagent_cli-0.35.0 → meshagent_cli-0.35.3}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meshagent-cli
3
- Version: 0.35.0
3
+ Version: 0.35.3
4
4
  Summary: CLI for Meshagent
5
5
  License-Expression: Apache-2.0
6
6
  Project-URL: Documentation, https://docs.meshagent.com
@@ -19,21 +19,21 @@ Requires-Dist: rich~=14.3.0
19
19
  Requires-Dist: textual<2.0,>=0.50
20
20
  Requires-Dist: prompt-toolkit~=3.0.52
21
21
  Provides-Extra: all
22
- Requires-Dist: meshagent-agents[all]~=0.35.0; extra == "all"
23
- Requires-Dist: meshagent-api[all]~=0.35.0; extra == "all"
24
- Requires-Dist: meshagent-computers~=0.35.0; extra == "all"
25
- Requires-Dist: meshagent-openai~=0.35.0; extra == "all"
26
- Requires-Dist: meshagent-anthropic~=0.35.0; extra == "all"
27
- Requires-Dist: meshagent-codex~=0.35.0; extra == "all"
28
- Requires-Dist: meshagent-mcp~=0.35.0; extra == "all"
29
- Requires-Dist: meshagent-tools~=0.35.0; extra == "all"
22
+ Requires-Dist: meshagent-agents[all]~=0.35.3; extra == "all"
23
+ Requires-Dist: meshagent-api[all]~=0.35.3; extra == "all"
24
+ Requires-Dist: meshagent-computers~=0.35.3; extra == "all"
25
+ Requires-Dist: meshagent-openai~=0.35.3; extra == "all"
26
+ Requires-Dist: meshagent-anthropic~=0.35.3; extra == "all"
27
+ Requires-Dist: meshagent-codex~=0.35.3; extra == "all"
28
+ Requires-Dist: meshagent-mcp~=0.35.3; extra == "all"
29
+ Requires-Dist: meshagent-tools~=0.35.3; extra == "all"
30
30
  Requires-Dist: supabase-auth~=2.28.0; extra == "all"
31
31
  Requires-Dist: prompt-toolkit~=3.0.52; extra == "all"
32
32
  Provides-Extra: mcp-service
33
- Requires-Dist: meshagent-agents[all]~=0.35.0; extra == "mcp-service"
34
- Requires-Dist: meshagent-api~=0.35.0; extra == "mcp-service"
35
- Requires-Dist: meshagent-mcp~=0.35.0; extra == "mcp-service"
36
- Requires-Dist: meshagent-tools~=0.35.0; extra == "mcp-service"
33
+ Requires-Dist: meshagent-agents[all]~=0.35.3; extra == "mcp-service"
34
+ Requires-Dist: meshagent-api~=0.35.3; extra == "mcp-service"
35
+ Requires-Dist: meshagent-mcp~=0.35.3; extra == "mcp-service"
36
+ Requires-Dist: meshagent-tools~=0.35.3; extra == "mcp-service"
37
37
  Requires-Dist: supabase-auth~=2.28.0; extra == "mcp-service"
38
38
 
39
39
  # [Meshagent](https://www.meshagent.com)
@@ -124,6 +124,12 @@ class _RoomRouteTarget:
124
124
  port: str
125
125
 
126
126
 
127
+ @dataclass(frozen=True)
128
+ class _RoomServiceUpsertResult:
129
+ service_id: str
130
+ created: bool
131
+
132
+
127
133
  class _StreamingArchiveOutput:
128
134
  def __init__(self, *, output_path: Path | None = None) -> None:
129
135
  self._output_path = output_path
@@ -744,7 +750,7 @@ async def _upsert_room_service(
744
750
  project_id: str,
745
751
  room_name: str,
746
752
  service_spec: ServiceSpec,
747
- ) -> str:
753
+ ) -> _RoomServiceUpsertResult:
748
754
  existing_service = await _find_room_service_by_name(
749
755
  account_client=account_client,
750
756
  project_id=project_id,
@@ -752,11 +758,12 @@ async def _upsert_room_service(
752
758
  service_name=service_spec.metadata.name,
753
759
  )
754
760
  if existing_service is None:
755
- return await account_client.create_room_service(
761
+ service_id = await account_client.create_room_service(
756
762
  project_id=project_id,
757
763
  room_name=room_name,
758
764
  service=service_spec,
759
765
  )
766
+ return _RoomServiceUpsertResult(service_id=service_id, created=True)
760
767
 
761
768
  if existing_service.id is None or existing_service.id == "":
762
769
  raise typer.BadParameter(
@@ -769,7 +776,7 @@ async def _upsert_room_service(
769
776
  service_id=existing_service.id,
770
777
  service=service_spec,
771
778
  )
772
- return existing_service.id
779
+ return _RoomServiceUpsertResult(service_id=existing_service.id, created=False)
773
780
 
774
781
 
775
782
  async def _upsert_domain_route(
@@ -1210,7 +1217,7 @@ async def build_image(
1210
1217
  if domain is not None
1211
1218
  else None
1212
1219
  )
1213
- service_id = await _upsert_room_service(
1220
+ deploy_result = await _upsert_room_service(
1214
1221
  account_client=account_client,
1215
1222
  project_id=resolved_project_id,
1216
1223
  room_name=resolved_room,
@@ -1218,8 +1225,14 @@ async def build_image(
1218
1225
  )
1219
1226
  print(
1220
1227
  f"[green]Deployed service:[/] {deploy_plan.spec.metadata.name} "
1221
- f"({service_id})"
1228
+ f"({deploy_result.service_id})"
1222
1229
  )
1230
+ if not deploy_result.created:
1231
+ await client.services.restart(service_id=deploy_result.service_id)
1232
+ print(
1233
+ f"[green]Restarted service:[/] {deploy_plan.spec.metadata.name} "
1234
+ f"({deploy_result.service_id})"
1235
+ )
1223
1236
  if domain is not None and route_target is not None:
1224
1237
  await _upsert_domain_route(
1225
1238
  account_client=account_client,
@@ -6,6 +6,7 @@ import pytest
6
6
  import typer
7
7
 
8
8
  from meshagent.cli import image
9
+ from meshagent.api.specs.service import ContainerSpec, ServiceMetadata, ServiceSpec
9
10
 
10
11
 
11
12
  def test_resolve_room_archive_path_uses_output_name_for_directory_targets() -> None:
@@ -506,6 +507,10 @@ async def test_build_image_pack_uploads_archive_and_defaults_context_path(
506
507
  def __init__(self) -> None:
507
508
  self.containers = _FakeContainers()
508
509
  self.storage = _FakeStorage()
510
+ self.services = SimpleNamespace(restart=self._restart)
511
+
512
+ async def _restart(self, *, service_id: str) -> None:
513
+ captured["restarted_service_id"] = service_id
509
514
 
510
515
  async def __aexit__(self, exc_type, exc, tb) -> None:
511
516
  del exc_type, exc, tb
@@ -1148,6 +1153,164 @@ async def test_build_image_deploy_creates_room_service_and_route_from_packed_doc
1148
1153
  "8080",
1149
1154
  {image.ANNOTATION_SERVICE_ID: "website-pack"},
1150
1155
  )
1156
+ assert "restarted_service_id" not in captured
1157
+ assert captured["deleted_path"] == "/temp/build/packs/pack-123"
1158
+ assert captured["room_client_closed"] is True
1159
+ assert captured["account_client_closed"] is True
1160
+
1161
+
1162
+ @pytest.mark.asyncio
1163
+ async def test_build_image_deploy_restarts_updated_room_service(
1164
+ monkeypatch: pytest.MonkeyPatch,
1165
+ tmp_path: Path,
1166
+ ) -> None:
1167
+ captured: dict[str, object] = {}
1168
+ source_dir = tmp_path / "website"
1169
+ source_dir.mkdir()
1170
+ (source_dir / "Dockerfile").write_text(
1171
+ "FROM scratch\nEXPOSE 8080\n",
1172
+ encoding="utf-8",
1173
+ )
1174
+ existing_service = ServiceSpec(
1175
+ version="v1",
1176
+ kind="Service",
1177
+ id="service-1",
1178
+ metadata=ServiceMetadata(
1179
+ name="website-pack",
1180
+ annotations={image.ANNOTATION_SERVICE_ID: "website-pack"},
1181
+ ),
1182
+ container=ContainerSpec(image="room.meshagent.com/website-pack:old"),
1183
+ )
1184
+
1185
+ class _FakeContainers:
1186
+ async def build(self, **kwargs) -> str:
1187
+ captured["build_kwargs"] = kwargs
1188
+ return "build-1"
1189
+
1190
+ class _FakeStorage:
1191
+ async def delete(self, path: str) -> None:
1192
+ captured["deleted_path"] = path
1193
+
1194
+ class _FakeRoomClient:
1195
+ def __init__(self) -> None:
1196
+ self.containers = _FakeContainers()
1197
+ self.storage = _FakeStorage()
1198
+ self.services = SimpleNamespace(restart=self._restart)
1199
+
1200
+ async def _restart(self, *, service_id: str) -> None:
1201
+ captured["restarted_service_id"] = service_id
1202
+
1203
+ async def __aexit__(self, exc_type, exc, tb) -> None:
1204
+ del exc_type, exc, tb
1205
+ captured["room_client_closed"] = True
1206
+
1207
+ class _FakeAccountClient:
1208
+ async def list_room_services(self, *, project_id: str, room_name: str):
1209
+ captured.setdefault("list_room_services", []).append(
1210
+ (project_id, room_name)
1211
+ )
1212
+ return [existing_service]
1213
+
1214
+ async def update_room_service(
1215
+ self,
1216
+ *,
1217
+ project_id: str,
1218
+ room_name: str,
1219
+ service_id: str,
1220
+ service,
1221
+ ) -> None:
1222
+ captured["updated_service"] = (
1223
+ project_id,
1224
+ room_name,
1225
+ service_id,
1226
+ service,
1227
+ )
1228
+
1229
+ async def close(self) -> None:
1230
+ captured["account_client_closed"] = True
1231
+
1232
+ async def _fake_with_client(*, project_id, room):
1233
+ captured["project_id"] = project_id
1234
+ captured["room"] = room
1235
+ return _FakeAccountClient(), _FakeRoomClient()
1236
+
1237
+ async def _fake_stream_build_job_logs_and_wait_for_exit(
1238
+ *,
1239
+ client,
1240
+ build_id: str,
1241
+ ) -> int:
1242
+ captured["wait_client"] = client
1243
+ captured["build_id"] = build_id
1244
+ return 0
1245
+
1246
+ async def _fake_upload_oci_archive_to_room(**kwargs) -> SimpleNamespace:
1247
+ captured["upload_kwargs"] = kwargs
1248
+ return SimpleNamespace(
1249
+ packed_archive=SimpleNamespace(
1250
+ output_path=Path("/tmp/ignored.tar"),
1251
+ ref_name="room.meshagent.com/temp/build/packs/pack-123:latest",
1252
+ ),
1253
+ remote_path="/temp/build/packs/pack-123",
1254
+ )
1255
+
1256
+ monkeypatch.setattr(image, "_with_client", _fake_with_client)
1257
+ monkeypatch.setattr(image, "resolve_room", lambda room: room)
1258
+
1259
+ async def _fake_resolve_project_id(*, project_id):
1260
+ del project_id
1261
+ return "project-1"
1262
+
1263
+ monkeypatch.setattr(image, "resolve_project_id", _fake_resolve_project_id)
1264
+ monkeypatch.setattr(
1265
+ image,
1266
+ "_upload_oci_archive_to_room",
1267
+ _fake_upload_oci_archive_to_room,
1268
+ )
1269
+ monkeypatch.setattr(image, "_parse_creds", lambda values: [])
1270
+ monkeypatch.setattr(
1271
+ image,
1272
+ "_stream_build_job_logs_and_wait_for_exit",
1273
+ _fake_stream_build_job_logs_and_wait_for_exit,
1274
+ )
1275
+ monkeypatch.setattr(
1276
+ image,
1277
+ "_deploy_ports_are_public",
1278
+ lambda *, private: True,
1279
+ )
1280
+ monkeypatch.setattr(
1281
+ image.uuid,
1282
+ "uuid4",
1283
+ lambda: SimpleNamespace(hex="pack-123"),
1284
+ )
1285
+ monkeypatch.setattr(image, "print", lambda *args, **kwargs: None)
1286
+
1287
+ await image.build_image(
1288
+ project_id="project-1",
1289
+ room="room-1",
1290
+ tag="room.meshagent.com/website-pack",
1291
+ context_path=None,
1292
+ dockerfile_path=None,
1293
+ pack=str(source_dir),
1294
+ arch="amd64",
1295
+ pack_room_path=None,
1296
+ mount_room_path=[],
1297
+ mount_project_path=[],
1298
+ mount_image=[],
1299
+ deploy=True,
1300
+ domain=None,
1301
+ private=False,
1302
+ cred=[],
1303
+ )
1304
+
1305
+ updated_service = captured["updated_service"]
1306
+ assert isinstance(updated_service, tuple)
1307
+ assert updated_service[0] == "project-1"
1308
+ assert updated_service[1] == "room-1"
1309
+ assert updated_service[2] == "service-1"
1310
+ updated_spec = updated_service[3]
1311
+ assert updated_spec.container is not None
1312
+ assert updated_spec.container.image == "room.meshagent.com/website-pack"
1313
+ assert captured["restarted_service_id"] == "service-1"
1151
1314
  assert captured["deleted_path"] == "/temp/build/packs/pack-123"
1152
1315
  assert captured["room_client_closed"] is True
1153
1316
  assert captured["account_client_closed"] is True
@@ -0,0 +1 @@
1
+ __version__ = "0.35.3"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meshagent-cli
3
- Version: 0.35.0
3
+ Version: 0.35.3
4
4
  Summary: CLI for Meshagent
5
5
  License-Expression: Apache-2.0
6
6
  Project-URL: Documentation, https://docs.meshagent.com
@@ -19,21 +19,21 @@ Requires-Dist: rich~=14.3.0
19
19
  Requires-Dist: textual<2.0,>=0.50
20
20
  Requires-Dist: prompt-toolkit~=3.0.52
21
21
  Provides-Extra: all
22
- Requires-Dist: meshagent-agents[all]~=0.35.0; extra == "all"
23
- Requires-Dist: meshagent-api[all]~=0.35.0; extra == "all"
24
- Requires-Dist: meshagent-computers~=0.35.0; extra == "all"
25
- Requires-Dist: meshagent-openai~=0.35.0; extra == "all"
26
- Requires-Dist: meshagent-anthropic~=0.35.0; extra == "all"
27
- Requires-Dist: meshagent-codex~=0.35.0; extra == "all"
28
- Requires-Dist: meshagent-mcp~=0.35.0; extra == "all"
29
- Requires-Dist: meshagent-tools~=0.35.0; extra == "all"
22
+ Requires-Dist: meshagent-agents[all]~=0.35.3; extra == "all"
23
+ Requires-Dist: meshagent-api[all]~=0.35.3; extra == "all"
24
+ Requires-Dist: meshagent-computers~=0.35.3; extra == "all"
25
+ Requires-Dist: meshagent-openai~=0.35.3; extra == "all"
26
+ Requires-Dist: meshagent-anthropic~=0.35.3; extra == "all"
27
+ Requires-Dist: meshagent-codex~=0.35.3; extra == "all"
28
+ Requires-Dist: meshagent-mcp~=0.35.3; extra == "all"
29
+ Requires-Dist: meshagent-tools~=0.35.3; extra == "all"
30
30
  Requires-Dist: supabase-auth~=2.28.0; extra == "all"
31
31
  Requires-Dist: prompt-toolkit~=3.0.52; extra == "all"
32
32
  Provides-Extra: mcp-service
33
- Requires-Dist: meshagent-agents[all]~=0.35.0; extra == "mcp-service"
34
- Requires-Dist: meshagent-api~=0.35.0; extra == "mcp-service"
35
- Requires-Dist: meshagent-mcp~=0.35.0; extra == "mcp-service"
36
- Requires-Dist: meshagent-tools~=0.35.0; extra == "mcp-service"
33
+ Requires-Dist: meshagent-agents[all]~=0.35.3; extra == "mcp-service"
34
+ Requires-Dist: meshagent-api~=0.35.3; extra == "mcp-service"
35
+ Requires-Dist: meshagent-mcp~=0.35.3; extra == "mcp-service"
36
+ Requires-Dist: meshagent-tools~=0.35.3; extra == "mcp-service"
37
37
  Requires-Dist: supabase-auth~=2.28.0; extra == "mcp-service"
38
38
 
39
39
  # [Meshagent](https://www.meshagent.com)
@@ -0,0 +1,29 @@
1
+ typer~=0.21
2
+ fastmcp~=2.8
3
+ opentelemetry-distro~=0.59b0
4
+ opentelemetry-exporter-otlp-proto-http~=1.33
5
+ art~=6.5
6
+ pydantic-yaml~=1.5
7
+ pathspec~=0.12.1
8
+ rich~=14.3.0
9
+ textual<2.0,>=0.50
10
+ prompt-toolkit~=3.0.52
11
+
12
+ [all]
13
+ meshagent-agents[all]~=0.35.3
14
+ meshagent-api[all]~=0.35.3
15
+ meshagent-computers~=0.35.3
16
+ meshagent-openai~=0.35.3
17
+ meshagent-anthropic~=0.35.3
18
+ meshagent-codex~=0.35.3
19
+ meshagent-mcp~=0.35.3
20
+ meshagent-tools~=0.35.3
21
+ supabase-auth~=2.28.0
22
+ prompt-toolkit~=3.0.52
23
+
24
+ [mcp-service]
25
+ meshagent-agents[all]~=0.35.3
26
+ meshagent-api~=0.35.3
27
+ meshagent-mcp~=0.35.3
28
+ meshagent-tools~=0.35.3
29
+ supabase-auth~=2.28.0
@@ -26,23 +26,23 @@ dynamic = ["version", "readme"]
26
26
  [project.optional-dependencies]
27
27
 
28
28
  all = [
29
- "meshagent-agents[all]~=0.35.0",
30
- "meshagent-api[all]~=0.35.0",
31
- "meshagent-computers~=0.35.0",
32
- "meshagent-openai~=0.35.0",
33
- "meshagent-anthropic~=0.35.0",
34
- "meshagent-codex~=0.35.0",
35
- "meshagent-mcp~=0.35.0",
36
- "meshagent-tools~=0.35.0",
29
+ "meshagent-agents[all]~=0.35.3",
30
+ "meshagent-api[all]~=0.35.3",
31
+ "meshagent-computers~=0.35.3",
32
+ "meshagent-openai~=0.35.3",
33
+ "meshagent-anthropic~=0.35.3",
34
+ "meshagent-codex~=0.35.3",
35
+ "meshagent-mcp~=0.35.3",
36
+ "meshagent-tools~=0.35.3",
37
37
  "supabase-auth~=2.28.0",
38
38
  "prompt-toolkit~=3.0.52"
39
39
  ]
40
40
 
41
41
  mcp-service = [
42
- "meshagent-agents[all]~=0.35.0",
43
- "meshagent-api~=0.35.0",
44
- "meshagent-mcp~=0.35.0",
45
- "meshagent-tools~=0.35.0",
42
+ "meshagent-agents[all]~=0.35.3",
43
+ "meshagent-api~=0.35.3",
44
+ "meshagent-mcp~=0.35.3",
45
+ "meshagent-tools~=0.35.3",
46
46
  "supabase-auth~=2.28.0"
47
47
  ]
48
48
 
@@ -1 +0,0 @@
1
- __version__ = "0.35.0"
@@ -1,29 +0,0 @@
1
- typer~=0.21
2
- fastmcp~=2.8
3
- opentelemetry-distro~=0.59b0
4
- opentelemetry-exporter-otlp-proto-http~=1.33
5
- art~=6.5
6
- pydantic-yaml~=1.5
7
- pathspec~=0.12.1
8
- rich~=14.3.0
9
- textual<2.0,>=0.50
10
- prompt-toolkit~=3.0.52
11
-
12
- [all]
13
- meshagent-agents[all]~=0.35.0
14
- meshagent-api[all]~=0.35.0
15
- meshagent-computers~=0.35.0
16
- meshagent-openai~=0.35.0
17
- meshagent-anthropic~=0.35.0
18
- meshagent-codex~=0.35.0
19
- meshagent-mcp~=0.35.0
20
- meshagent-tools~=0.35.0
21
- supabase-auth~=2.28.0
22
- prompt-toolkit~=3.0.52
23
-
24
- [mcp-service]
25
- meshagent-agents[all]~=0.35.0
26
- meshagent-api~=0.35.0
27
- meshagent-mcp~=0.35.0
28
- meshagent-tools~=0.35.0
29
- supabase-auth~=2.28.0
File without changes
File without changes