meshcode 2.11.43__tar.gz → 2.11.44__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.43 → meshcode-2.11.44}/PKG-INFO +1 -1
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/__init__.py +1 -1
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/comms_v4.py +51 -2
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/setup_clients.py +37 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode.egg-info/PKG-INFO +1 -1
- {meshcode-2.11.43 → meshcode-2.11.44}/pyproject.toml +1 -1
- {meshcode-2.11.43 → meshcode-2.11.44}/README.md +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/__main__.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/_stop_hook_template.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/atomic_push.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/cli.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/compat.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/daemon.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/date_parse.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/doctor.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/error_hints.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/exceptions.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/invites.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/launcher.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/meshcode_mcp/sleep_signals.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/meshcode_mcp/test_boot_timing.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/meshcode_mcp/test_install_guard.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/meshcode_mcp/test_prefs_claude_version.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/preferences.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/protocol_handler.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/quickstart.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/rpc_allowlist.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/run_agent.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/scripts/check_secrets.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/scripts/race_rate_harness.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/secrets.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/self_update.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/supervisor.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/upload.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/comms_v4.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/__init__.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/cli.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/compat.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/error_hints.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/exceptions.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/invites.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/launcher.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/preferences.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/quickstart.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/run_agent.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/secrets.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/self_update.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/supervisor.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/upload.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/scripts/sentinel.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/tests/test_core.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/tests/test_exceptions.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/tests/test_sentinel.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/__init__.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/cli.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/compat.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/error_hints.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/exceptions.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/invites.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/launcher.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/preferences.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/quickstart.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/run_agent.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/secrets.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/self_update.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/supervisor.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/upload.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/comms_v4.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/__init__.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/cli.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/compat.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/error_hints.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/exceptions.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/invites.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/launcher.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/preferences.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/quickstart.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/run_agent.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/secrets.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/self_update.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/supervisor.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/upload.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/scripts/sentinel.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/tests/test_core.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/tests/test_exceptions.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/tests/test_sentinel.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/comms_v4.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/__init__.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/ascii_art.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/cli.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/comms_v4.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/compat.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/error_hints.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/exceptions.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/invites.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/launcher.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/launcher_install.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/preferences.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/protocol_v2.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/quickstart.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/run_agent.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/secrets.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/self_update.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/setup_clients.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/supervisor.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/upload.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/scripts/sentinel.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/tests/test_core.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/tests/test_exceptions.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/tests/test_sentinel.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode.egg-info/PKG-INFO 2 +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode.egg-info/SOURCES 2.txt +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode.egg-info/SOURCES.txt +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode.egg-info/dependency_links 2.txt +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode.egg-info/dependency_links.txt +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode.egg-info/entry_points 2.txt +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode.egg-info/entry_points.txt +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode.egg-info/requires 2.txt +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode.egg-info/requires.txt +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode.egg-info/top_level 2.txt +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/meshcode.egg-info/top_level.txt +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/setup.cfg +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_auto_update_hardening.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_boot_bug_regression.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_color_truecolor.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_core.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_date_parse.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_doctor.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_epistemic_v1_python_sdk.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_epistemic_v1_stop_conditions.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_exceptions.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_init_device_code.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_install_guard.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_lease_sigterm_release.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_migration_integrity.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_rpc_grants.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_run_agent_dry_run.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_run_agent_no_server_import.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_security_regressions.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_self_update_user_site.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_sentinel.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_setup_path.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_sleep_signals.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_stay_on_loop_hook.py +0 -0
- {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_wait_open_tasks_contradiction.py +0 -0
|
@@ -1602,13 +1602,23 @@ def show_status(project=None):
|
|
|
1602
1602
|
continue
|
|
1603
1603
|
|
|
1604
1604
|
print(f"\n [{proj['name']}]")
|
|
1605
|
+
_autonomous_count = 0
|
|
1605
1606
|
for a in agents:
|
|
1606
1607
|
# Count pending
|
|
1607
1608
|
pending = sb_select("mc_messages",
|
|
1608
1609
|
f"project_id=eq.{proj['id']}&to_agent=eq.{quote(a['name'])}&read=eq.false&type=neq.ack")
|
|
1609
1610
|
pcount = len(pending)
|
|
1610
1611
|
icon = "●" if pcount > 0 else "○"
|
|
1611
|
-
|
|
1612
|
+
_auto_marker = " 🔆" if a.get("autonomous_mode") else ""
|
|
1613
|
+
if a.get("autonomous_mode"):
|
|
1614
|
+
_autonomous_count += 1
|
|
1615
|
+
print(f" {icon} {a['name']:<14} {a.get('role',''):<25} pending: {pcount}{_auto_marker}")
|
|
1616
|
+
# AUTONOMOUS-MODE-UNIVERSAL P8 (task f57aa2d2): if multi-agent mesh
|
|
1617
|
+
# has 0% autonomous adoption, surface a 1-line hint so users see the
|
|
1618
|
+
# bottleneck without reading a memo. Hint hidden when single-agent
|
|
1619
|
+
# mesh or any agent is already autonomous (signal-only, no noise).
|
|
1620
|
+
if len(agents) >= 2 and _autonomous_count == 0:
|
|
1621
|
+
print(f" 💡 0/{len(agents)} agents autonomous. Re-run each with `--autonomous` (or `export MESHCODE_AUTONOMOUS=1`) to enable parallel self-driven work.")
|
|
1612
1622
|
print()
|
|
1613
1623
|
|
|
1614
1624
|
|
|
@@ -3038,6 +3048,45 @@ if __name__ == "__main__":
|
|
|
3038
3048
|
proj = sys.argv[2] if len(sys.argv) > 2 else None
|
|
3039
3049
|
show_status(proj)
|
|
3040
3050
|
|
|
3051
|
+
elif cmd in ("wake-all", "wakeall"):
|
|
3052
|
+
# AUTONOMOUS-MODE-UNIVERSAL P9 (task f57aa2d2): print copy-paste
|
|
3053
|
+
# launch commands for every offline agent in a meshwork. No process
|
|
3054
|
+
# control (those terminals are gone); just frictionless bootstrap.
|
|
3055
|
+
proj = sys.argv[2] if len(sys.argv) > 2 else None
|
|
3056
|
+
if not proj:
|
|
3057
|
+
print("Usage: meshcode wake-all <project>")
|
|
3058
|
+
sys.exit(1)
|
|
3059
|
+
api_key = _load_api_key_for_cli()
|
|
3060
|
+
if not api_key:
|
|
3061
|
+
print("[meshcode] Not logged in. Run: meshcode login <api_key>")
|
|
3062
|
+
sys.exit(1)
|
|
3063
|
+
_projs = sb_rpc("mc_list_user_projects", {"p_api_key": api_key})
|
|
3064
|
+
_agents = []
|
|
3065
|
+
if isinstance(_projs, dict) and _projs.get("projects"):
|
|
3066
|
+
for _p in _projs["projects"]:
|
|
3067
|
+
if _p.get("name") == proj:
|
|
3068
|
+
_agents = _p.get("agents") or []
|
|
3069
|
+
break
|
|
3070
|
+
if not _agents:
|
|
3071
|
+
print(f"[meshcode] No agents found in meshwork '{proj}'. Check the name with `meshcode projects`.")
|
|
3072
|
+
sys.exit(1)
|
|
3073
|
+
_offline = [a for a in _agents if a.get("status") in ("offline", "sleeping", None)]
|
|
3074
|
+
_online = [a for a in _agents if a not in _offline]
|
|
3075
|
+
print(f"[meshcode] meshwork '{proj}': {len(_online)} online, {len(_offline)} offline.")
|
|
3076
|
+
if not _offline:
|
|
3077
|
+
print(f"[meshcode] ✓ All agents already online. Nothing to wake.")
|
|
3078
|
+
sys.exit(0)
|
|
3079
|
+
print(f"[meshcode]")
|
|
3080
|
+
print(f"[meshcode] Copy-paste these into separate terminal panes to wake the offline agents")
|
|
3081
|
+
print(f"[meshcode] in autonomous mode (so they self-progress without per-step prompting):")
|
|
3082
|
+
print(f"[meshcode]")
|
|
3083
|
+
for a in _offline:
|
|
3084
|
+
print(f" meshcode run {proj}/{a.get('name', '?')} --autonomous")
|
|
3085
|
+
print(f"[meshcode]")
|
|
3086
|
+
print(f"[meshcode] Tip: `export MESHCODE_AUTONOMOUS=1` once in your shell rc, then you")
|
|
3087
|
+
print(f"[meshcode] can drop the `--autonomous` flag for the rest of the session.")
|
|
3088
|
+
sys.exit(0)
|
|
3089
|
+
|
|
3041
3090
|
elif cmd in ("projects", "list", "ls"):
|
|
3042
3091
|
list_projects()
|
|
3043
3092
|
|
|
@@ -3743,7 +3792,7 @@ if __name__ == "__main__":
|
|
|
3743
3792
|
"setup", "run", "go", "invite", "join", "invites", "members",
|
|
3744
3793
|
"revoke-invite", "revoke-member", "login", "prefs", "launcher",
|
|
3745
3794
|
"help", "init", "doctor", "compat", "upgrade", "profile", "validate-sessions", "wake-headless",
|
|
3746
|
-
"supervisor", "upload", "quickstart", "patch-hooks",
|
|
3795
|
+
"supervisor", "upload", "quickstart", "patch-hooks", "wake-all",
|
|
3747
3796
|
]
|
|
3748
3797
|
# Simple fuzzy: prefix match + Levenshtein-like best match
|
|
3749
3798
|
suggestions = [c for c in known_cmds if c.startswith(cmd)]
|
|
@@ -1372,6 +1372,43 @@ Call `meshcode_wait` now.
|
|
|
1372
1372
|
print(f"[meshcode]")
|
|
1373
1373
|
print(f"[meshcode] Closing the editor window flips this agent offline.")
|
|
1374
1374
|
print(f"[meshcode] Other agents stay independent — no cross-window pollution.")
|
|
1375
|
+
|
|
1376
|
+
# AUTONOMOUS-MODE-UNIVERSAL P6 (task f57aa2d2): if this agent makes the
|
|
1377
|
+
# 2nd+ in the meshwork AND no agent has autonomous_mode=true AND the
|
|
1378
|
+
# user didn't already opt in via env var, surface a one-line nudge.
|
|
1379
|
+
# Best-effort — never block setup on telemetry failure.
|
|
1380
|
+
if os.environ.get("MESHCODE_AUTONOMOUS", "").strip().lower() not in ("1", "true", "yes", "on"):
|
|
1381
|
+
try:
|
|
1382
|
+
from urllib.request import Request as _Req, urlopen as _urlopen
|
|
1383
|
+
_body = json.dumps({
|
|
1384
|
+
"p_api_key": api_key,
|
|
1385
|
+
"p_project_id": project_id,
|
|
1386
|
+
"p_agent_name": None,
|
|
1387
|
+
"p_select": "name,autonomous_mode",
|
|
1388
|
+
"p_limit": 50,
|
|
1389
|
+
}).encode()
|
|
1390
|
+
_req = _Req(
|
|
1391
|
+
f"{sb['SUPABASE_URL']}/rest/v1/rpc/mc_get_agents",
|
|
1392
|
+
data=_body, method="POST",
|
|
1393
|
+
headers={
|
|
1394
|
+
"apikey": sb["SUPABASE_KEY"],
|
|
1395
|
+
"Authorization": f"Bearer {sb['SUPABASE_KEY']}",
|
|
1396
|
+
"Content-Type": "application/json",
|
|
1397
|
+
},
|
|
1398
|
+
)
|
|
1399
|
+
with _urlopen(_req, timeout=5) as _resp:
|
|
1400
|
+
_data = json.loads(_resp.read().decode())
|
|
1401
|
+
_all = (_data or {}).get("agents") or []
|
|
1402
|
+
_n = len(_all)
|
|
1403
|
+
_auto = sum(1 for a in _all if a.get("autonomous_mode"))
|
|
1404
|
+
if _n >= 2 and _auto == 0:
|
|
1405
|
+
print(f"[meshcode]")
|
|
1406
|
+
print(f"[meshcode] 💡 Tip: this meshwork now has {_n} agents. Consider autonomous mode:")
|
|
1407
|
+
print(f"[meshcode] meshcode run {agent} --autonomous")
|
|
1408
|
+
print(f"[meshcode] or set once for your shell: export MESHCODE_AUTONOMOUS=1")
|
|
1409
|
+
print(f"[meshcode] Autonomous agents self-progress without per-step prompting.")
|
|
1410
|
+
except Exception:
|
|
1411
|
+
pass # best-effort hint; never fail setup on this
|
|
1375
1412
|
return 0
|
|
1376
1413
|
|
|
1377
1414
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/meshcode_mcp/test_backend.py
RENAMED
|
File without changes
|
{meshcode-2.11.43 → meshcode-2.11.44}/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.43 → meshcode-2.11.44}/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.43 → meshcode-2.11.44}/meshcode-backend-wt/tests/test_realtime_event_freshness.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/tests/test_security_regressions.py
RENAMED
|
File without changes
|
|
File without changes
|
{meshcode-2.11.43 → meshcode-2.11.44}/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.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/launcher_install.py
RENAMED
|
File without changes
|
{meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__init__.py
RENAMED
|
File without changes
|
{meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__main__.py
RENAMED
|
File without changes
|
{meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/backend.py
RENAMED
|
File without changes
|
{meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/realtime.py
RENAMED
|
File without changes
|
{meshcode-2.11.43 → meshcode-2.11.44}/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.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/meshcode_mcp/test_backend.py
RENAMED
|
File without changes
|
{meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/meshcode_mcp/test_realtime.py
RENAMED
|
File without changes
|
{meshcode-2.11.43 → meshcode-2.11.44}/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.43 → meshcode-2.11.44}/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.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_backend.py
RENAMED
|
File without changes
|
{meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_realtime.py
RENAMED
|
File without changes
|
{meshcode-2.11.43 → meshcode-2.11.44}/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.43 → meshcode-2.11.44}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|