meshcode 2.11.66__tar.gz → 2.11.67__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-2.11.66 → meshcode-2.11.67}/PKG-INFO +1 -1
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/__init__.py +1 -1
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/meshcode_mcp/server.py +24 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode.egg-info/PKG-INFO +1 -1
- {meshcode-2.11.66 → meshcode-2.11.67}/pyproject.toml +1 -1
- {meshcode-2.11.66 → meshcode-2.11.67}/README.md +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/__main__.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/_stop_hook_template.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/atomic_push.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/claude_update.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/cli.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/compat.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/daemon.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/date_parse.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/doctor.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/error_hints.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/exceptions.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/hostd.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/invites.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/launcher.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/meshcode_mcp/sleep_signals.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/meshcode_mcp/test_boot_timing.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/meshcode_mcp/test_install_guard.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/meshcode_mcp/test_prefs_claude_version.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/preferences.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/protocol_handler.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/quickstart.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/rpc_allowlist.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/run_agent.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/scripts/check_secrets.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/scripts/race_rate_harness.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/secrets.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/self_update.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/supervisor.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/up.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode/upload.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode.egg-info/SOURCES.txt +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode.egg-info/dependency_links.txt +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode.egg-info/entry_points.txt +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode.egg-info/requires.txt +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/meshcode.egg-info/top_level.txt +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/setup.cfg +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/tests/test_auto_update_hardening.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/tests/test_autonomous_closegap_1.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/tests/test_autonomous_closegap_2.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/tests/test_autonomous_closegap_3.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/tests/test_autonomous_prompt_inject.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/tests/test_boot_bug_regression.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/tests/test_color_truecolor.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/tests/test_core.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/tests/test_date_parse.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/tests/test_doctor.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/tests/test_epistemic_v1_python_sdk.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/tests/test_epistemic_v1_stop_conditions.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/tests/test_exceptions.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/tests/test_file_upload.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/tests/test_init_device_code.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/tests/test_install_guard.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/tests/test_lease_sigterm_release.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/tests/test_marketplace_ratings.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/tests/test_rpc_grants.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/tests/test_run_agent_dry_run.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/tests/test_run_agent_no_server_import.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/tests/test_self_update_user_site.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/tests/test_sentinel.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/tests/test_setup_path.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/tests/test_sleep_signals.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/tests/test_stay_on_loop_hook.py +0 -0
- {meshcode-2.11.66 → meshcode-2.11.67}/tests/test_wait_open_tasks_contradiction.py +0 -0
|
@@ -6487,6 +6487,30 @@ def meshcode_request_approval(
|
|
|
6487
6487
|
"hint": "still pending; re-check with the panel or call again"}
|
|
6488
6488
|
|
|
6489
6489
|
|
|
6490
|
+
@mcp.tool()
|
|
6491
|
+
@with_working_status
|
|
6492
|
+
def meshcode_resolve_approval(approval_id: str, decision: str) -> Dict[str, Any]:
|
|
6493
|
+
"""Resolve a COMMANDER-tier pending approval (commander agents only). For the project's
|
|
6494
|
+
commander to clear GO/no-go requests routed to it. HARD limits enforced server-side:
|
|
6495
|
+
only the project's commander agent can resolve; you CANNOT resolve your own request;
|
|
6496
|
+
HUMAN-tier approvals (destructive / high / critical) are NOT resolvable here — those
|
|
6497
|
+
escalate to the human owner in the dashboard panel.
|
|
6498
|
+
|
|
6499
|
+
Args:
|
|
6500
|
+
approval_id: the approval to resolve.
|
|
6501
|
+
decision: 'approved' or 'rejected'.
|
|
6502
|
+
"""
|
|
6503
|
+
if not approval_id or not str(approval_id).strip():
|
|
6504
|
+
return {"ok": False, "error": "approval_id is required"}
|
|
6505
|
+
if decision not in ("approved", "rejected"):
|
|
6506
|
+
return {"ok": False, "error": "decision must be 'approved' or 'rejected'"}
|
|
6507
|
+
return be.sb_rpc("mc_approval_resolve_commander", {
|
|
6508
|
+
"p_api_key": _get_api_key(),
|
|
6509
|
+
"p_approval_id": str(approval_id).strip(),
|
|
6510
|
+
"p_decision": decision,
|
|
6511
|
+
})
|
|
6512
|
+
|
|
6513
|
+
|
|
6490
6514
|
@mcp.tool()
|
|
6491
6515
|
@with_working_status
|
|
6492
6516
|
def meshcode_seed_fixture(
|
|
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
|
|
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
|
|
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
|
|
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
|
|
File without changes
|