meshcode 1.7.0__tar.gz → 1.8.0__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.
- {meshcode-1.7.0 → meshcode-1.8.0}/PKG-INFO +1 -1
- {meshcode-1.7.0 → meshcode-1.8.0}/meshcode/__init__.py +1 -1
- {meshcode-1.7.0 → meshcode-1.8.0}/meshcode/meshcode_mcp/backend.py +3 -1
- {meshcode-1.7.0 → meshcode-1.8.0}/meshcode/meshcode_mcp/server.py +18 -2
- {meshcode-1.7.0 → meshcode-1.8.0}/meshcode.egg-info/PKG-INFO +1 -1
- {meshcode-1.7.0 → meshcode-1.8.0}/pyproject.toml +1 -1
- {meshcode-1.7.0 → meshcode-1.8.0}/README.md +0 -0
- {meshcode-1.7.0 → meshcode-1.8.0}/meshcode/cli.py +0 -0
- {meshcode-1.7.0 → meshcode-1.8.0}/meshcode/comms_v4.py +0 -0
- {meshcode-1.7.0 → meshcode-1.8.0}/meshcode/invites.py +0 -0
- {meshcode-1.7.0 → meshcode-1.8.0}/meshcode/launcher.py +0 -0
- {meshcode-1.7.0 → meshcode-1.8.0}/meshcode/launcher_install.py +0 -0
- {meshcode-1.7.0 → meshcode-1.8.0}/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-1.7.0 → meshcode-1.8.0}/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-1.7.0 → meshcode-1.8.0}/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-1.7.0 → meshcode-1.8.0}/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-1.7.0 → meshcode-1.8.0}/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-1.7.0 → meshcode-1.8.0}/meshcode/protocol_v2.py +0 -0
- {meshcode-1.7.0 → meshcode-1.8.0}/meshcode/run_agent.py +0 -0
- {meshcode-1.7.0 → meshcode-1.8.0}/meshcode/secrets.py +0 -0
- {meshcode-1.7.0 → meshcode-1.8.0}/meshcode/setup_clients.py +0 -0
- {meshcode-1.7.0 → meshcode-1.8.0}/meshcode.egg-info/SOURCES.txt +0 -0
- {meshcode-1.7.0 → meshcode-1.8.0}/meshcode.egg-info/dependency_links.txt +0 -0
- {meshcode-1.7.0 → meshcode-1.8.0}/meshcode.egg-info/entry_points.txt +0 -0
- {meshcode-1.7.0 → meshcode-1.8.0}/meshcode.egg-info/requires.txt +0 -0
- {meshcode-1.7.0 → meshcode-1.8.0}/meshcode.egg-info/top_level.txt +0 -0
- {meshcode-1.7.0 → meshcode-1.8.0}/setup.cfg +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"""MeshCode — Real-time communication between AI agents."""
|
|
2
|
-
__version__ = "1.
|
|
2
|
+
__version__ = "1.8.0"
|
|
@@ -164,7 +164,7 @@ def register_agent(project: str, name: str, role: str = "") -> Dict:
|
|
|
164
164
|
}
|
|
165
165
|
|
|
166
166
|
|
|
167
|
-
def send_message(project_id: str, from_agent: str, to_agent: str, payload: Any, msg_type: str = "msg", parent_msg_id: Optional[str] = None) -> Dict:
|
|
167
|
+
def send_message(project_id: str, from_agent: str, to_agent: str, payload: Any, msg_type: str = "msg", parent_msg_id: Optional[str] = None, sensitive: bool = False) -> Dict:
|
|
168
168
|
if not isinstance(payload, dict):
|
|
169
169
|
payload = {"text": str(payload)}
|
|
170
170
|
msg = {
|
|
@@ -177,6 +177,8 @@ def send_message(project_id: str, from_agent: str, to_agent: str, payload: Any,
|
|
|
177
177
|
}
|
|
178
178
|
if parent_msg_id:
|
|
179
179
|
msg["parent_msg_id"] = parent_msg_id
|
|
180
|
+
if sensitive:
|
|
181
|
+
msg["is_sensitive"] = True
|
|
180
182
|
result = sb_insert("mc_messages", msg)
|
|
181
183
|
if isinstance(result, dict) and result.get("_error"):
|
|
182
184
|
return {"error": result["_error"]}
|
|
@@ -363,6 +363,14 @@ meshcode_wait / meshcode_check / meshcode_read now includes an `id` field
|
|
|
363
363
|
(use it for in_reply_to) and a `parent_id` field (so you can see whether
|
|
364
364
|
the message you received is itself a reply to something).
|
|
365
365
|
|
|
366
|
+
SENSITIVE DATA: when sharing API keys, credentials, customer data, personal
|
|
367
|
+
information, secrets, or anything that should not be in a public log, set
|
|
368
|
+
sensitive=True in your meshcode_send call. Sensitive messages are NEVER
|
|
369
|
+
included in public meshwork exports, even if the meshwork owner publishes
|
|
370
|
+
the meshwork. The flag is enforced at the database level — there is no way
|
|
371
|
+
for a public viewer to read sensitive messages. Use this liberally — false
|
|
372
|
+
positives are harmless, false negatives are a privacy leak.
|
|
373
|
+
|
|
366
374
|
LOOP-SAFETY RULES (IMPORTANT — prevent token-burning ping-pong):
|
|
367
375
|
- Do NOT reply "Done" / "OK" / "Got it" to every message. If a message
|
|
368
376
|
is a status update or pure ack, just process it and call meshcode_wait
|
|
@@ -505,7 +513,8 @@ except Exception:
|
|
|
505
513
|
# ----------------- TOOLS -----------------
|
|
506
514
|
|
|
507
515
|
@mcp.tool()
|
|
508
|
-
def meshcode_send(to: str, message: Any, in_reply_to: Optional[str] = None
|
|
516
|
+
def meshcode_send(to: str, message: Any, in_reply_to: Optional[str] = None,
|
|
517
|
+
sensitive: bool = False) -> Dict[str, Any]:
|
|
509
518
|
"""Send a message to another agent in the meshwork.
|
|
510
519
|
|
|
511
520
|
If you only have plain text, just pass it as a string and it will be
|
|
@@ -520,6 +529,13 @@ def meshcode_send(to: str, message: Any, in_reply_to: Optional[str] = None) -> D
|
|
|
520
529
|
message is a threaded reply — the dashboard renders it under the
|
|
521
530
|
original. Use this especially when replying to one of several
|
|
522
531
|
outstanding broadcasts so humans can tell which is which.
|
|
532
|
+
sensitive: If True, this message will NEVER appear in a public meshwork
|
|
533
|
+
export, regardless of whether the meshwork is published. ALWAYS
|
|
534
|
+
set this to True when sharing API keys, credentials, customer
|
|
535
|
+
data, secrets, personal information, or anything that should not
|
|
536
|
+
be visible to anyone outside the meshwork. The owner can publish
|
|
537
|
+
the meshwork without leaking sensitive messages, because the
|
|
538
|
+
sensitive flag is enforced at the database level.
|
|
523
539
|
"""
|
|
524
540
|
if isinstance(message, str):
|
|
525
541
|
payload: Dict[str, Any] = {"text": message}
|
|
@@ -528,7 +544,7 @@ def meshcode_send(to: str, message: Any, in_reply_to: Optional[str] = None) -> D
|
|
|
528
544
|
else:
|
|
529
545
|
payload = {"text": str(message)}
|
|
530
546
|
return be.send_message(_PROJECT_ID, AGENT_NAME, to, payload, msg_type="msg",
|
|
531
|
-
parent_msg_id=in_reply_to)
|
|
547
|
+
parent_msg_id=in_reply_to, sensitive=sensitive)
|
|
532
548
|
|
|
533
549
|
|
|
534
550
|
@mcp.tool()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|