meshcode 2.11.21__tar.gz → 2.11.22__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.21 → meshcode-2.11.22}/PKG-INFO +1 -1
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/__init__.py +1 -1
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/meshcode_mcp/server.py +27 -2
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/rpc_allowlist.py +1 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode.egg-info/PKG-INFO +1 -1
- {meshcode-2.11.21 → meshcode-2.11.22}/pyproject.toml +1 -1
- {meshcode-2.11.21 → meshcode-2.11.22}/README.md +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/__main__.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/_stop_hook_template.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/atomic_push.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/cli.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/compat.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/daemon.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/date_parse.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/doctor.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/error_hints.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/exceptions.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/invites.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/launcher.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/meshcode_mcp/sleep_signals.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/meshcode_mcp/test_boot_timing.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/meshcode_mcp/test_install_guard.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/meshcode_mcp/test_prefs_claude_version.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/preferences.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/protocol_handler.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/quickstart.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/run_agent.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/scripts/check_secrets.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/scripts/race_rate_harness.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/secrets.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/self_update.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/supervisor.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode/upload.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/comms_v4.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/meshcode/__init__.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/meshcode/cli.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/meshcode/compat.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/meshcode/error_hints.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/meshcode/exceptions.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/meshcode/invites.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/meshcode/launcher.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/meshcode/preferences.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/meshcode/quickstart.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/meshcode/run_agent.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/meshcode/secrets.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/meshcode/self_update.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/meshcode/supervisor.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/meshcode/upload.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/scripts/sentinel.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/tests/test_core.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/tests/test_exceptions.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/tests/test_sentinel.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/build/lib/meshcode/__init__.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/build/lib/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/build/lib/meshcode/cli.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/build/lib/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/build/lib/meshcode/compat.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/build/lib/meshcode/error_hints.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/build/lib/meshcode/exceptions.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/build/lib/meshcode/invites.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/build/lib/meshcode/launcher.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/build/lib/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/build/lib/meshcode/preferences.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/build/lib/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/build/lib/meshcode/quickstart.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/build/lib/meshcode/run_agent.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/build/lib/meshcode/secrets.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/build/lib/meshcode/self_update.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/build/lib/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/build/lib/meshcode/supervisor.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/build/lib/meshcode/upload.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/comms_v4.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/meshcode/__init__.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/meshcode/cli.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/meshcode/compat.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/meshcode/error_hints.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/meshcode/exceptions.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/meshcode/invites.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/meshcode/launcher.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/meshcode/preferences.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/meshcode/quickstart.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/meshcode/run_agent.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/meshcode/secrets.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/meshcode/self_update.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/meshcode/supervisor.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/meshcode/upload.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/scripts/sentinel.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/tests/test_core.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/tests/test_exceptions.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/tests/test_sentinel.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/comms_v4.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/meshcode/__init__.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/meshcode/cli.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/meshcode/compat.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/meshcode/error_hints.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/meshcode/exceptions.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/meshcode/invites.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/meshcode/launcher.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/meshcode/preferences.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/meshcode/quickstart.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/meshcode/run_agent.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/meshcode/secrets.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/meshcode/self_update.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/meshcode/supervisor.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/meshcode/upload.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/scripts/sentinel.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/tests/test_core.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/tests/test_exceptions.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/tests/test_sentinel.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode.egg-info/SOURCES.txt +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode.egg-info/dependency_links.txt +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode.egg-info/entry_points.txt +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode.egg-info/requires.txt +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/meshcode.egg-info/top_level.txt +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/setup.cfg +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/tests/test_auto_update_hardening.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/tests/test_boot_bug_regression.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/tests/test_color_truecolor.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/tests/test_core.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/tests/test_date_parse.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/tests/test_doctor.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/tests/test_epistemic_v1_python_sdk.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/tests/test_epistemic_v1_stop_conditions.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/tests/test_exceptions.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/tests/test_init_device_code.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/tests/test_install_guard.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/tests/test_lease_sigterm_release.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/tests/test_rpc_grants.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/tests/test_sentinel.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/tests/test_setup_path.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/tests/test_sleep_signals.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/tests/test_stay_on_loop_hook.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.22}/tests/test_wait_open_tasks_contradiction.py +0 -0
|
@@ -5633,8 +5633,30 @@ def meshcode_decide(
|
|
|
5633
5633
|
"""
|
|
5634
5634
|
if not decision or not decision.strip():
|
|
5635
5635
|
return {"ok": False, "error": "decision required"}
|
|
5636
|
-
|
|
5637
|
-
|
|
5636
|
+
# MESH-IMPROVE-9 soft-gate: warn if a prior trace is missing its outcome
|
|
5637
|
+
# >24h. v1 = warning only (continues). v2 followup tightens to refuse.
|
|
5638
|
+
api_key = _get_api_key()
|
|
5639
|
+
warning = None
|
|
5640
|
+
try:
|
|
5641
|
+
_gate = be.sb_rpc("mc_check_unwritten_outcome", {
|
|
5642
|
+
"p_api_key": api_key,
|
|
5643
|
+
"p_project_id": _PROJECT_ID,
|
|
5644
|
+
"p_agent_name": AGENT_NAME,
|
|
5645
|
+
"p_age_hours": 24,
|
|
5646
|
+
})
|
|
5647
|
+
if isinstance(_gate, dict) and _gate.get("ok") and _gate.get("has_unwritten"):
|
|
5648
|
+
warning = {
|
|
5649
|
+
"type": "unwritten_outcome",
|
|
5650
|
+
"open_trace_id": _gate.get("oldest_trace_id"),
|
|
5651
|
+
"open_trace_decision": _gate.get("decision"),
|
|
5652
|
+
"open_trace_age_seconds": _gate.get("age_seconds"),
|
|
5653
|
+
"hint": _gate.get("hint"),
|
|
5654
|
+
"note": "soft-gate v1: this WARNS but does not block. v2 will refuse. Close prior trace with meshcode_outcome().",
|
|
5655
|
+
}
|
|
5656
|
+
except Exception:
|
|
5657
|
+
pass # Soft-fail when mig 340 not yet deployed
|
|
5658
|
+
result = be.sb_rpc("mc_decide", {
|
|
5659
|
+
"p_api_key": api_key,
|
|
5638
5660
|
"p_project_id": _PROJECT_ID,
|
|
5639
5661
|
"p_agent_name": AGENT_NAME,
|
|
5640
5662
|
"p_decision": decision.strip(),
|
|
@@ -5642,6 +5664,9 @@ def meshcode_decide(
|
|
|
5642
5664
|
"p_evidence_refs": json.dumps(evidence_refs or []),
|
|
5643
5665
|
"p_tier": tier,
|
|
5644
5666
|
})
|
|
5667
|
+
if warning and isinstance(result, dict):
|
|
5668
|
+
result["outcome_gate_warning"] = warning
|
|
5669
|
+
return result
|
|
5645
5670
|
|
|
5646
5671
|
|
|
5647
5672
|
@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
|
|
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
|
{meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/meshcode/meshcode_mcp/test_backend.py
RENAMED
|
File without changes
|
{meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/meshcode/meshcode_mcp/test_realtime.py
RENAMED
|
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
|
{meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/tests/test_cross_agent_messaging.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/tests/test_realtime_event_freshness.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/tests/test_security_regressions.py
RENAMED
|
File without changes
|
|
File without changes
|
{meshcode-2.11.21 → meshcode-2.11.22}/meshcode-backend-wt/tests/test_status_enum_coverage.py
RENAMED
|
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
|
{meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/build/lib/meshcode/launcher_install.py
RENAMED
|
File without changes
|
{meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__init__.py
RENAMED
|
File without changes
|
{meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__main__.py
RENAMED
|
File without changes
|
{meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/backend.py
RENAMED
|
File without changes
|
{meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/realtime.py
RENAMED
|
File without changes
|
{meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/server.py
RENAMED
|
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
|
{meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/meshcode/meshcode_mcp/test_backend.py
RENAMED
|
File without changes
|
{meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/meshcode/meshcode_mcp/test_realtime.py
RENAMED
|
File without changes
|
{meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/meshcode/meshcode_mcp/test_server_wrapper.py
RENAMED
|
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
|
{meshcode-2.11.21 → meshcode-2.11.22}/meshcode-noun-wt/tests/test_realtime_event_freshness.py
RENAMED
|
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
|
{meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_backend.py
RENAMED
|
File without changes
|
{meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_realtime.py
RENAMED
|
File without changes
|
{meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_server_wrapper.py
RENAMED
|
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
|
{meshcode-2.11.21 → meshcode-2.11.22}/meshcode-tasks-wt/tests/test_realtime_event_freshness.py
RENAMED
|
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
|