meshcode 2.11.21__tar.gz → 2.11.23__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.23}/PKG-INFO +1 -1
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/__init__.py +1 -1
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/meshcode_mcp/server.py +49 -2
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/rpc_allowlist.py +2 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode.egg-info/PKG-INFO +1 -1
- {meshcode-2.11.21 → meshcode-2.11.23}/pyproject.toml +1 -1
- {meshcode-2.11.21 → meshcode-2.11.23}/README.md +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/__main__.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/_stop_hook_template.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/atomic_push.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/cli.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/compat.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/daemon.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/date_parse.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/doctor.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/error_hints.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/exceptions.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/invites.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/launcher.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/meshcode_mcp/sleep_signals.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/meshcode_mcp/test_boot_timing.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/meshcode_mcp/test_install_guard.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/meshcode_mcp/test_prefs_claude_version.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/preferences.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/protocol_handler.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/quickstart.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/run_agent.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/scripts/check_secrets.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/scripts/race_rate_harness.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/secrets.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/self_update.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/supervisor.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode/upload.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/comms_v4.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/meshcode/__init__.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/meshcode/cli.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/meshcode/compat.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/meshcode/error_hints.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/meshcode/exceptions.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/meshcode/invites.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/meshcode/launcher.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/meshcode/preferences.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/meshcode/quickstart.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/meshcode/run_agent.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/meshcode/secrets.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/meshcode/self_update.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/meshcode/supervisor.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/meshcode/upload.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/scripts/sentinel.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/tests/test_core.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/tests/test_exceptions.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/tests/test_sentinel.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-backend-wt/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/build/lib/meshcode/__init__.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/build/lib/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/build/lib/meshcode/cli.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/build/lib/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/build/lib/meshcode/compat.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/build/lib/meshcode/error_hints.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/build/lib/meshcode/exceptions.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/build/lib/meshcode/invites.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/build/lib/meshcode/launcher.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/build/lib/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/build/lib/meshcode/preferences.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/build/lib/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/build/lib/meshcode/quickstart.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/build/lib/meshcode/run_agent.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/build/lib/meshcode/secrets.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/build/lib/meshcode/self_update.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/build/lib/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/build/lib/meshcode/supervisor.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/build/lib/meshcode/upload.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/comms_v4.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/meshcode/__init__.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/meshcode/cli.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/meshcode/compat.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/meshcode/error_hints.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/meshcode/exceptions.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/meshcode/invites.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/meshcode/launcher.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/meshcode/preferences.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/meshcode/quickstart.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/meshcode/run_agent.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/meshcode/secrets.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/meshcode/self_update.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/meshcode/supervisor.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/meshcode/upload.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/scripts/sentinel.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/tests/test_core.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/tests/test_exceptions.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/tests/test_sentinel.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/comms_v4.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/meshcode/__init__.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/meshcode/cli.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/meshcode/compat.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/meshcode/error_hints.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/meshcode/exceptions.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/meshcode/invites.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/meshcode/launcher.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/meshcode/preferences.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/meshcode/quickstart.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/meshcode/run_agent.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/meshcode/secrets.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/meshcode/self_update.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/meshcode/supervisor.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/meshcode/upload.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/scripts/sentinel.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/tests/test_core.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/tests/test_exceptions.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/tests/test_sentinel.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode.egg-info/SOURCES.txt +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode.egg-info/dependency_links.txt +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode.egg-info/entry_points.txt +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode.egg-info/requires.txt +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/meshcode.egg-info/top_level.txt +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/setup.cfg +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/tests/test_auto_update_hardening.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/tests/test_boot_bug_regression.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/tests/test_color_truecolor.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/tests/test_core.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/tests/test_date_parse.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/tests/test_doctor.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/tests/test_epistemic_v1_python_sdk.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/tests/test_epistemic_v1_stop_conditions.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/tests/test_exceptions.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/tests/test_init_device_code.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/tests/test_install_guard.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/tests/test_lease_sigterm_release.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/tests/test_rpc_grants.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/tests/test_sentinel.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/tests/test_setup_path.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/tests/test_sleep_signals.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/tests/test_stay_on_loop_hook.py +0 -0
- {meshcode-2.11.21 → meshcode-2.11.23}/tests/test_wait_open_tasks_contradiction.py +0 -0
|
@@ -5439,6 +5439,28 @@ def meshcode_atomic_push(
|
|
|
5439
5439
|
return {"error": str(e), "error_type": type(e).__name__}
|
|
5440
5440
|
|
|
5441
5441
|
|
|
5442
|
+
@mcp.tool()
|
|
5443
|
+
@with_working_status
|
|
5444
|
+
def meshcode_commander_brief(
|
|
5445
|
+
ships_window_hours: int = 2,
|
|
5446
|
+
directives_limit: int = 5,
|
|
5447
|
+
) -> Dict[str, Any]:
|
|
5448
|
+
"""Project-wide synthesis for commander-class agents.
|
|
5449
|
+
MESH-IMPROVE-5 (mig 341). Single roundtrip = open-tasks-by-lane +
|
|
5450
|
+
recent ships + recent Samuel directives + prose summary.
|
|
5451
|
+
|
|
5452
|
+
Args:
|
|
5453
|
+
ships_window_hours: look back N hours for ship-mentioning msgs (default 2)
|
|
5454
|
+
directives_limit: max recent human directives to surface (default 5)
|
|
5455
|
+
"""
|
|
5456
|
+
return be.sb_rpc("mc_commander_brief", {
|
|
5457
|
+
"p_api_key": _get_api_key(),
|
|
5458
|
+
"p_project_id": _PROJECT_ID,
|
|
5459
|
+
"p_ships_window_hours": ships_window_hours,
|
|
5460
|
+
"p_directives_limit": directives_limit,
|
|
5461
|
+
})
|
|
5462
|
+
|
|
5463
|
+
|
|
5442
5464
|
@mcp.tool()
|
|
5443
5465
|
@with_working_status
|
|
5444
5466
|
def meshcode_context_budget() -> Dict[str, Any]:
|
|
@@ -5633,8 +5655,30 @@ def meshcode_decide(
|
|
|
5633
5655
|
"""
|
|
5634
5656
|
if not decision or not decision.strip():
|
|
5635
5657
|
return {"ok": False, "error": "decision required"}
|
|
5636
|
-
|
|
5637
|
-
|
|
5658
|
+
# MESH-IMPROVE-9 soft-gate: warn if a prior trace is missing its outcome
|
|
5659
|
+
# >24h. v1 = warning only (continues). v2 followup tightens to refuse.
|
|
5660
|
+
api_key = _get_api_key()
|
|
5661
|
+
warning = None
|
|
5662
|
+
try:
|
|
5663
|
+
_gate = be.sb_rpc("mc_check_unwritten_outcome", {
|
|
5664
|
+
"p_api_key": api_key,
|
|
5665
|
+
"p_project_id": _PROJECT_ID,
|
|
5666
|
+
"p_agent_name": AGENT_NAME,
|
|
5667
|
+
"p_age_hours": 24,
|
|
5668
|
+
})
|
|
5669
|
+
if isinstance(_gate, dict) and _gate.get("ok") and _gate.get("has_unwritten"):
|
|
5670
|
+
warning = {
|
|
5671
|
+
"type": "unwritten_outcome",
|
|
5672
|
+
"open_trace_id": _gate.get("oldest_trace_id"),
|
|
5673
|
+
"open_trace_decision": _gate.get("decision"),
|
|
5674
|
+
"open_trace_age_seconds": _gate.get("age_seconds"),
|
|
5675
|
+
"hint": _gate.get("hint"),
|
|
5676
|
+
"note": "soft-gate v1: this WARNS but does not block. v2 will refuse. Close prior trace with meshcode_outcome().",
|
|
5677
|
+
}
|
|
5678
|
+
except Exception:
|
|
5679
|
+
pass # Soft-fail when mig 340 not yet deployed
|
|
5680
|
+
result = be.sb_rpc("mc_decide", {
|
|
5681
|
+
"p_api_key": api_key,
|
|
5638
5682
|
"p_project_id": _PROJECT_ID,
|
|
5639
5683
|
"p_agent_name": AGENT_NAME,
|
|
5640
5684
|
"p_decision": decision.strip(),
|
|
@@ -5642,6 +5686,9 @@ def meshcode_decide(
|
|
|
5642
5686
|
"p_evidence_refs": json.dumps(evidence_refs or []),
|
|
5643
5687
|
"p_tier": tier,
|
|
5644
5688
|
})
|
|
5689
|
+
if warning and isinstance(result, dict):
|
|
5690
|
+
result["outcome_gate_warning"] = warning
|
|
5691
|
+
return result
|
|
5645
5692
|
|
|
5646
5693
|
|
|
5647
5694
|
@mcp.tool()
|
|
@@ -74,6 +74,7 @@ AGENT_CALLABLE_RPCS = [
|
|
|
74
74
|
|
|
75
75
|
# ── Decisions / outcomes
|
|
76
76
|
"mc_has_open_decision",
|
|
77
|
+
"mc_check_unwritten_outcome", # mig 340
|
|
77
78
|
"mc_decide",
|
|
78
79
|
"mc_outcome",
|
|
79
80
|
"mc_explain",
|
|
@@ -102,6 +103,7 @@ AGENT_CALLABLE_RPCS = [
|
|
|
102
103
|
|
|
103
104
|
# ── Misc agent-callable
|
|
104
105
|
"mc_list_user_projects",
|
|
106
|
+
"mc_commander_brief", # mig 341
|
|
105
107
|
]
|
|
106
108
|
|
|
107
109
|
|
|
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.23}/meshcode-backend-wt/meshcode/meshcode_mcp/test_backend.py
RENAMED
|
File without changes
|
{meshcode-2.11.21 → meshcode-2.11.23}/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.23}/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.23}/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.23}/meshcode-backend-wt/tests/test_security_regressions.py
RENAMED
|
File without changes
|
|
File without changes
|
{meshcode-2.11.21 → meshcode-2.11.23}/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.23}/meshcode-noun-wt/build/lib/meshcode/launcher_install.py
RENAMED
|
File without changes
|
{meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__init__.py
RENAMED
|
File without changes
|
{meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__main__.py
RENAMED
|
File without changes
|
{meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/backend.py
RENAMED
|
File without changes
|
{meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/realtime.py
RENAMED
|
File without changes
|
{meshcode-2.11.21 → meshcode-2.11.23}/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.23}/meshcode-noun-wt/meshcode/meshcode_mcp/test_backend.py
RENAMED
|
File without changes
|
{meshcode-2.11.21 → meshcode-2.11.23}/meshcode-noun-wt/meshcode/meshcode_mcp/test_realtime.py
RENAMED
|
File without changes
|
{meshcode-2.11.21 → meshcode-2.11.23}/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.23}/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.23}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_backend.py
RENAMED
|
File without changes
|
{meshcode-2.11.21 → meshcode-2.11.23}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_realtime.py
RENAMED
|
File without changes
|
{meshcode-2.11.21 → meshcode-2.11.23}/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.23}/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
|