meshcode 2.10.38__tar.gz → 2.10.40__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 (32) hide show
  1. {meshcode-2.10.38 → meshcode-2.10.40}/PKG-INFO +1 -1
  2. {meshcode-2.10.38 → meshcode-2.10.40}/meshcode/__init__.py +1 -1
  3. {meshcode-2.10.38 → meshcode-2.10.40}/meshcode/meshcode_mcp/server.py +49 -3
  4. {meshcode-2.10.38 → meshcode-2.10.40}/meshcode.egg-info/PKG-INFO +1 -1
  5. {meshcode-2.10.38 → meshcode-2.10.40}/pyproject.toml +1 -1
  6. {meshcode-2.10.38 → meshcode-2.10.40}/README.md +0 -0
  7. {meshcode-2.10.38 → meshcode-2.10.40}/meshcode/ascii_art.py +0 -0
  8. {meshcode-2.10.38 → meshcode-2.10.40}/meshcode/cli.py +0 -0
  9. {meshcode-2.10.38 → meshcode-2.10.40}/meshcode/comms_v4.py +0 -0
  10. {meshcode-2.10.38 → meshcode-2.10.40}/meshcode/invites.py +0 -0
  11. {meshcode-2.10.38 → meshcode-2.10.40}/meshcode/launcher.py +0 -0
  12. {meshcode-2.10.38 → meshcode-2.10.40}/meshcode/launcher_install.py +0 -0
  13. {meshcode-2.10.38 → meshcode-2.10.40}/meshcode/meshcode_mcp/__init__.py +0 -0
  14. {meshcode-2.10.38 → meshcode-2.10.40}/meshcode/meshcode_mcp/__main__.py +0 -0
  15. {meshcode-2.10.38 → meshcode-2.10.40}/meshcode/meshcode_mcp/backend.py +0 -0
  16. {meshcode-2.10.38 → meshcode-2.10.40}/meshcode/meshcode_mcp/realtime.py +0 -0
  17. {meshcode-2.10.38 → meshcode-2.10.40}/meshcode/meshcode_mcp/test_backend.py +0 -0
  18. {meshcode-2.10.38 → meshcode-2.10.40}/meshcode/meshcode_mcp/test_realtime.py +0 -0
  19. {meshcode-2.10.38 → meshcode-2.10.40}/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
  20. {meshcode-2.10.38 → meshcode-2.10.40}/meshcode/preferences.py +0 -0
  21. {meshcode-2.10.38 → meshcode-2.10.40}/meshcode/protocol_v2.py +0 -0
  22. {meshcode-2.10.38 → meshcode-2.10.40}/meshcode/run_agent.py +0 -0
  23. {meshcode-2.10.38 → meshcode-2.10.40}/meshcode/secrets.py +0 -0
  24. {meshcode-2.10.38 → meshcode-2.10.40}/meshcode/self_update.py +0 -0
  25. {meshcode-2.10.38 → meshcode-2.10.40}/meshcode/setup_clients.py +0 -0
  26. {meshcode-2.10.38 → meshcode-2.10.40}/meshcode.egg-info/SOURCES.txt +0 -0
  27. {meshcode-2.10.38 → meshcode-2.10.40}/meshcode.egg-info/dependency_links.txt +0 -0
  28. {meshcode-2.10.38 → meshcode-2.10.40}/meshcode.egg-info/entry_points.txt +0 -0
  29. {meshcode-2.10.38 → meshcode-2.10.40}/meshcode.egg-info/requires.txt +0 -0
  30. {meshcode-2.10.38 → meshcode-2.10.40}/meshcode.egg-info/top_level.txt +0 -0
  31. {meshcode-2.10.38 → meshcode-2.10.40}/setup.cfg +0 -0
  32. {meshcode-2.10.38 → meshcode-2.10.40}/tests/test_status_enum_coverage.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meshcode
3
- Version: 2.10.38
3
+ Version: 2.10.40
4
4
  Summary: Real-time communication between AI agents — Supabase-backed CLI
5
5
  Author-email: MeshCode <hello@meshcode.io>
6
6
  License: MIT
@@ -1,2 +1,2 @@
1
1
  """MeshCode — Real-time communication between AI agents."""
2
- __version__ = "2.10.38"
2
+ __version__ = "2.10.40"
@@ -2394,6 +2394,37 @@ def meshcode_schedule_list() -> Dict[str, Any]:
2394
2394
  })
2395
2395
 
2396
2396
 
2397
+ # ----------------- TEMPLATES -----------------
2398
+
2399
+ @mcp.tool()
2400
+ @with_working_status
2401
+ def meshcode_publish_template(slug: str, name: str, description: str = "",
2402
+ category: str = "Custom", tags: Optional[List[str]] = None) -> Dict[str, Any]:
2403
+ """Publish this meshwork as a reusable template others can fork.
2404
+
2405
+ Args:
2406
+ slug: URL-safe identifier (e.g. "my-saas-team"). Must be unique.
2407
+ name: Human-readable template name.
2408
+ description: What this template is for.
2409
+ category: Template category (Development, DevOps, Research, etc).
2410
+ tags: Searchable tags.
2411
+ """
2412
+ if not slug or not slug.strip():
2413
+ return {"error": "slug cannot be empty"}
2414
+ if not name or not name.strip():
2415
+ return {"error": "name cannot be empty"}
2416
+ api_key = _get_api_key()
2417
+ return be.sb_rpc("mc_template_publish", {
2418
+ "p_api_key": api_key,
2419
+ "p_project_id": _PROJECT_ID,
2420
+ "p_slug": slug.strip(),
2421
+ "p_name": name.strip(),
2422
+ "p_description": description,
2423
+ "p_category": category,
2424
+ "p_tags": tags or [],
2425
+ })
2426
+
2427
+
2397
2428
  # ----------------- PROACTIVE HEALTH SCAN -----------------
2398
2429
 
2399
2430
  @mcp.tool()
@@ -2613,21 +2644,36 @@ def meshcode_add_agent(name: str, role: str = "") -> Dict[str, Any]:
2613
2644
  @mcp.tool()
2614
2645
  @with_working_status
2615
2646
  def meshcode_edit_agent(name: str, role: Optional[str] = None, launch_prompt: Optional[str] = None) -> Dict[str, Any]:
2616
- """Update an agent's role or launch prompt.
2647
+ """Update an agent's role or launch prompt. Notifies the running agent to reload.
2617
2648
 
2618
2649
  Args:
2619
2650
  name: Agent name to edit.
2620
2651
  role: New role description.
2621
2652
  launch_prompt: New launch prompt (injected into agent's system context).
2622
2653
  """
2623
- return be.sb_rpc("mc_agent_update_profile", {
2654
+ result = be.sb_rpc("mc_agent_update_profile", {
2624
2655
  "p_project_id": _PROJECT_ID,
2625
2656
  "p_agent_name": name,
2626
2657
  "p_color": None,
2627
2658
  "p_display_name": None,
2628
2659
  "p_role_description": role,
2629
2660
  "p_launch_prompt": launch_prompt,
2630
- }) or {"error": "failed to update agent"}
2661
+ })
2662
+ if not result:
2663
+ return {"error": "failed to update agent"}
2664
+
2665
+ # Hot-swap: notify the running agent to reload its prompt
2666
+ if name != AGENT_NAME:
2667
+ try:
2668
+ be.send_message(_PROJECT_ID, AGENT_NAME, name, {
2669
+ "type": "prompt_update",
2670
+ "text": f"Your {'role' if role else 'launch prompt'} was updated by {AGENT_NAME}. Changes take effect on next boot or meshcode_check.",
2671
+ "updated_fields": {"role": role, "launch_prompt": launch_prompt is not None},
2672
+ }, msg_type="system", api_key=_get_api_key())
2673
+ except Exception:
2674
+ pass # best-effort notification
2675
+
2676
+ return result
2631
2677
 
2632
2678
 
2633
2679
  @mcp.tool()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meshcode
3
- Version: 2.10.38
3
+ Version: 2.10.40
4
4
  Summary: Real-time communication between AI agents — Supabase-backed CLI
5
5
  Author-email: MeshCode <hello@meshcode.io>
6
6
  License: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "meshcode"
7
- version = "2.10.38"
7
+ version = "2.10.40"
8
8
  description = "Real-time communication between AI agents — Supabase-backed CLI"
9
9
  readme = "README.md"
10
10
  license = {text = "MIT"}
File without changes
File without changes
File without changes