meshcode 2.11.39__tar.gz → 2.11.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.
- {meshcode-2.11.39 → meshcode-2.11.40}/PKG-INFO +1 -1
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/__init__.py +1 -1
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/meshcode_mcp/server.py +48 -5
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode.egg-info/PKG-INFO +1 -1
- {meshcode-2.11.39 → meshcode-2.11.40}/pyproject.toml +1 -1
- {meshcode-2.11.39 → meshcode-2.11.40}/README.md +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/__main__.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/_stop_hook_template.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/atomic_push.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/cli.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/compat.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/daemon.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/date_parse.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/doctor.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/error_hints.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/exceptions.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/invites.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/launcher.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/meshcode_mcp/sleep_signals.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/meshcode_mcp/test_boot_timing.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/meshcode_mcp/test_install_guard.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/meshcode_mcp/test_prefs_claude_version.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/preferences.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/protocol_handler.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/quickstart.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/rpc_allowlist.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/run_agent.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/scripts/check_secrets.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/scripts/race_rate_harness.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/secrets.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/self_update.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/supervisor.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode/upload.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/comms_v4.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/meshcode/__init__.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/meshcode/cli.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/meshcode/compat.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/meshcode/error_hints.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/meshcode/exceptions.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/meshcode/invites.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/meshcode/launcher.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/meshcode/preferences.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/meshcode/quickstart.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/meshcode/run_agent.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/meshcode/secrets.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/meshcode/self_update.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/meshcode/supervisor.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/meshcode/upload.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/scripts/sentinel.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/tests/test_core.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/tests/test_exceptions.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/tests/test_sentinel.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/build/lib/meshcode/__init__.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/build/lib/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/build/lib/meshcode/cli.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/build/lib/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/build/lib/meshcode/compat.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/build/lib/meshcode/error_hints.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/build/lib/meshcode/exceptions.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/build/lib/meshcode/invites.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/build/lib/meshcode/launcher.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/build/lib/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/build/lib/meshcode/preferences.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/build/lib/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/build/lib/meshcode/quickstart.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/build/lib/meshcode/run_agent.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/build/lib/meshcode/secrets.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/build/lib/meshcode/self_update.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/build/lib/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/build/lib/meshcode/supervisor.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/build/lib/meshcode/upload.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/comms_v4.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/meshcode/__init__.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/meshcode/cli.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/meshcode/compat.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/meshcode/error_hints.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/meshcode/exceptions.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/meshcode/invites.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/meshcode/launcher.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/meshcode/preferences.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/meshcode/quickstart.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/meshcode/run_agent.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/meshcode/secrets.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/meshcode/self_update.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/meshcode/supervisor.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/meshcode/upload.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/scripts/sentinel.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/tests/test_core.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/tests/test_exceptions.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/tests/test_sentinel.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/comms_v4.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/meshcode/__init__.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/meshcode/cli.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/meshcode/compat.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/meshcode/error_hints.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/meshcode/exceptions.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/meshcode/invites.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/meshcode/launcher.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/meshcode/preferences.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/meshcode/quickstart.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/meshcode/run_agent.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/meshcode/secrets.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/meshcode/self_update.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/meshcode/supervisor.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/meshcode/upload.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/scripts/sentinel.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/tests/test_core.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/tests/test_exceptions.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/tests/test_sentinel.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode.egg-info/SOURCES.txt +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode.egg-info/dependency_links.txt +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode.egg-info/entry_points.txt +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode.egg-info/requires.txt +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/meshcode.egg-info/top_level.txt +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/setup.cfg +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/tests/test_auto_update_hardening.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/tests/test_boot_bug_regression.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/tests/test_color_truecolor.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/tests/test_core.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/tests/test_date_parse.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/tests/test_doctor.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/tests/test_epistemic_v1_python_sdk.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/tests/test_epistemic_v1_stop_conditions.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/tests/test_exceptions.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/tests/test_init_device_code.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/tests/test_install_guard.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/tests/test_lease_sigterm_release.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/tests/test_rpc_grants.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/tests/test_run_agent_dry_run.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/tests/test_run_agent_no_server_import.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/tests/test_self_update_user_site.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/tests/test_sentinel.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/tests/test_setup_path.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/tests/test_sleep_signals.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/tests/test_stay_on_loop_hook.py +0 -0
- {meshcode-2.11.39 → meshcode-2.11.40}/tests/test_wait_open_tasks_contradiction.py +0 -0
|
@@ -3349,6 +3349,36 @@ def _try_auto_claim_task() -> Optional[Dict[str, str]]:
|
|
|
3349
3349
|
_LAST_ROSTER_SNAPSHOT: Optional[List[Dict[str, Any]]] = None
|
|
3350
3350
|
_LAST_ROSTER_SNAPSHOT_TS: float = 0.0
|
|
3351
3351
|
|
|
3352
|
+
# AUTONOMOUS-MODE-1-RUNTIME (mig 354 backend slice already live): cache the
|
|
3353
|
+
# autonomous_mode flag so the wait loop modulation is cheap. Refresh every
|
|
3354
|
+
# 15s — short enough to react to dashboard toggle within ~1 wait cycle,
|
|
3355
|
+
# long enough to avoid hammering the RPC.
|
|
3356
|
+
_AUTONOMOUS_MODE_CACHE: Optional[bool] = None
|
|
3357
|
+
_AUTONOMOUS_MODE_CACHE_TS: float = 0.0
|
|
3358
|
+
|
|
3359
|
+
|
|
3360
|
+
def _get_autonomous_mode(max_age_s: float = 15.0) -> bool:
|
|
3361
|
+
global _AUTONOMOUS_MODE_CACHE, _AUTONOMOUS_MODE_CACHE_TS
|
|
3362
|
+
now_ts = _time.monotonic()
|
|
3363
|
+
if _AUTONOMOUS_MODE_CACHE is not None and (now_ts - _AUTONOMOUS_MODE_CACHE_TS) < max_age_s:
|
|
3364
|
+
return _AUTONOMOUS_MODE_CACHE
|
|
3365
|
+
try:
|
|
3366
|
+
api_key = _get_api_key()
|
|
3367
|
+
if not api_key:
|
|
3368
|
+
return False
|
|
3369
|
+
resp = be.sb_rpc("mc_agent_get_autonomous", {
|
|
3370
|
+
"p_api_key": api_key,
|
|
3371
|
+
"p_project_id": _PROJECT_ID,
|
|
3372
|
+
"p_agent_name": AGENT_NAME,
|
|
3373
|
+
})
|
|
3374
|
+
flag = bool(isinstance(resp, dict) and resp.get("ok") and resp.get("autonomous_mode"))
|
|
3375
|
+
_AUTONOMOUS_MODE_CACHE = flag
|
|
3376
|
+
_AUTONOMOUS_MODE_CACHE_TS = now_ts
|
|
3377
|
+
return flag
|
|
3378
|
+
except Exception as e:
|
|
3379
|
+
log.debug(f"[meshcode] autonomous_mode fetch failed: {e}")
|
|
3380
|
+
return False
|
|
3381
|
+
|
|
3352
3382
|
|
|
3353
3383
|
def _get_mesh_online_snapshot(max_age_s: float = 10.0) -> Optional[List[Dict[str, Any]]]:
|
|
3354
3384
|
global _LAST_ROSTER_SNAPSHOT, _LAST_ROSTER_SNAPSHOT_TS
|
|
@@ -3466,7 +3496,14 @@ async def meshcode_wait(timeout_seconds: int = 20, include_acks: bool = False) -
|
|
|
3466
3496
|
|
|
3467
3497
|
_IN_WAIT = True
|
|
3468
3498
|
_set_state("waiting", "listening for messages")
|
|
3469
|
-
|
|
3499
|
+
# AUTONOMOUS-MODE-1-RUNTIME: when the agent is in autonomous mode,
|
|
3500
|
+
# tighten the wait timeout so the loop reacts to mesh activity faster
|
|
3501
|
+
# and reaches the proactive auto-claim path sooner.
|
|
3502
|
+
_autonomous = _get_autonomous_mode()
|
|
3503
|
+
if _autonomous:
|
|
3504
|
+
capped_timeout = min(max(1, int(timeout_seconds)), 5)
|
|
3505
|
+
else:
|
|
3506
|
+
capped_timeout = min(max(1, int(timeout_seconds)), 20)
|
|
3470
3507
|
try:
|
|
3471
3508
|
# ── INTERNAL LOOP ──────────────────────────────────────────
|
|
3472
3509
|
# Keep polling until something actionable arrives.
|
|
@@ -3498,10 +3535,12 @@ async def meshcode_wait(timeout_seconds: int = 20, include_acks: bool = False) -
|
|
|
3498
3535
|
result["pending_tasks"] = pending_tasks
|
|
3499
3536
|
break # Return so agent can work tasks
|
|
3500
3537
|
|
|
3501
|
-
# Auto-claim: when idle >30s
|
|
3502
|
-
#
|
|
3503
|
-
#
|
|
3504
|
-
|
|
3538
|
+
# Auto-claim: when idle >30s (or >10s in autonomous mode)
|
|
3539
|
+
# with no assigned tasks, try to claim the oldest open
|
|
3540
|
+
# wildcard task. Autonomous agents react faster to make
|
|
3541
|
+
# the mesh feel proactive.
|
|
3542
|
+
_auto_claim_threshold = 10 if _autonomous else 30
|
|
3543
|
+
if _CONSECUTIVE_IDLE_SECONDS >= _auto_claim_threshold and not _is_leader_agent():
|
|
3505
3544
|
claimed = _try_auto_claim_task()
|
|
3506
3545
|
if claimed:
|
|
3507
3546
|
result["auto_claimed"] = claimed
|
|
@@ -3576,6 +3615,10 @@ async def meshcode_wait(timeout_seconds: int = 20, include_acks: bool = False) -
|
|
|
3576
3615
|
_snapshot = _get_mesh_online_snapshot()
|
|
3577
3616
|
if _snapshot is not None:
|
|
3578
3617
|
result["mesh_online_snapshot"] = _snapshot
|
|
3618
|
+
# AUTONOMOUS-MODE-1-RUNTIME: surface the flag so the LLM knows
|
|
3619
|
+
# whether to operate proactively.
|
|
3620
|
+
if isinstance(result, dict):
|
|
3621
|
+
result["autonomous_mode"] = _autonomous
|
|
3579
3622
|
return result
|
|
3580
3623
|
finally:
|
|
3581
3624
|
_IN_WAIT = False
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.39 → meshcode-2.11.40}/meshcode-backend-wt/meshcode/meshcode_mcp/test_backend.py
RENAMED
|
File without changes
|
{meshcode-2.11.39 → meshcode-2.11.40}/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.39 → meshcode-2.11.40}/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.39 → meshcode-2.11.40}/meshcode-backend-wt/tests/test_realtime_event_freshness.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{meshcode-2.11.39 → meshcode-2.11.40}/meshcode-backend-wt/tests/test_security_regressions.py
RENAMED
|
File without changes
|
|
File without changes
|
{meshcode-2.11.39 → meshcode-2.11.40}/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.39 → meshcode-2.11.40}/meshcode-noun-wt/build/lib/meshcode/launcher_install.py
RENAMED
|
File without changes
|
{meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__init__.py
RENAMED
|
File without changes
|
{meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__main__.py
RENAMED
|
File without changes
|
{meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/backend.py
RENAMED
|
File without changes
|
{meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/realtime.py
RENAMED
|
File without changes
|
{meshcode-2.11.39 → meshcode-2.11.40}/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.39 → meshcode-2.11.40}/meshcode-noun-wt/meshcode/meshcode_mcp/test_backend.py
RENAMED
|
File without changes
|
{meshcode-2.11.39 → meshcode-2.11.40}/meshcode-noun-wt/meshcode/meshcode_mcp/test_realtime.py
RENAMED
|
File without changes
|
{meshcode-2.11.39 → meshcode-2.11.40}/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.39 → meshcode-2.11.40}/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.39 → meshcode-2.11.40}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_backend.py
RENAMED
|
File without changes
|
{meshcode-2.11.39 → meshcode-2.11.40}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_realtime.py
RENAMED
|
File without changes
|
{meshcode-2.11.39 → meshcode-2.11.40}/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.39 → meshcode-2.11.40}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|