meshcode 2.10.85__tar.gz → 2.10.87__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.10.85 → meshcode-2.10.87}/PKG-INFO +1 -1
- meshcode-2.10.87/meshcode/__init__.py +82 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode/meshcode_mcp/server.py +151 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode.egg-info/PKG-INFO +1 -1
- {meshcode-2.10.85 → meshcode-2.10.87}/pyproject.toml +1 -1
- meshcode-2.10.85/meshcode/__init__.py +0 -82
- {meshcode-2.10.85 → meshcode-2.10.87}/README.md +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode/ascii_art.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode/cli.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode/comms_v4.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode/compat.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode/error_hints.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode/exceptions.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode/invites.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode/launcher.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode/launcher_install.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode/preferences.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode/protocol_v2.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode/quickstart.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode/run_agent.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode/secrets.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode/self_update.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode/setup_clients.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode/supervisor.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode/upload.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/comms_v4.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/meshcode/__init__.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/meshcode/ascii_art.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/meshcode/cli.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/meshcode/comms_v4.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/meshcode/compat.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/meshcode/error_hints.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/meshcode/exceptions.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/meshcode/invites.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/meshcode/launcher.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/meshcode/launcher_install.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/meshcode/preferences.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/meshcode/protocol_v2.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/meshcode/quickstart.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/meshcode/run_agent.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/meshcode/secrets.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/meshcode/self_update.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/meshcode/setup_clients.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/meshcode/supervisor.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/meshcode/upload.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/scripts/sentinel.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/tests/test_core.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/tests/test_exceptions.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/tests/test_migration_integrity.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/tests/test_security_regressions.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/tests/test_sentinel.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/build/lib/meshcode/__init__.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/build/lib/meshcode/ascii_art.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/build/lib/meshcode/cli.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/build/lib/meshcode/comms_v4.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/build/lib/meshcode/compat.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/build/lib/meshcode/error_hints.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/build/lib/meshcode/exceptions.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/build/lib/meshcode/invites.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/build/lib/meshcode/launcher.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/build/lib/meshcode/launcher_install.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/build/lib/meshcode/preferences.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/build/lib/meshcode/protocol_v2.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/build/lib/meshcode/quickstart.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/build/lib/meshcode/run_agent.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/build/lib/meshcode/secrets.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/build/lib/meshcode/self_update.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/build/lib/meshcode/setup_clients.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/build/lib/meshcode/supervisor.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/build/lib/meshcode/upload.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/comms_v4.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/meshcode/__init__.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/meshcode/ascii_art.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/meshcode/cli.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/meshcode/comms_v4.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/meshcode/compat.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/meshcode/error_hints.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/meshcode/exceptions.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/meshcode/invites.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/meshcode/launcher.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/meshcode/launcher_install.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/meshcode/preferences.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/meshcode/protocol_v2.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/meshcode/quickstart.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/meshcode/run_agent.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/meshcode/secrets.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/meshcode/self_update.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/meshcode/setup_clients.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/meshcode/supervisor.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/meshcode/upload.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/scripts/sentinel.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/tests/test_core.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/tests/test_exceptions.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/tests/test_migration_integrity.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/tests/test_security_regressions.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/tests/test_sentinel.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/comms_v4.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/meshcode/__init__.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/meshcode/ascii_art.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/meshcode/cli.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/meshcode/comms_v4.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/meshcode/compat.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/meshcode/error_hints.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/meshcode/exceptions.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/meshcode/invites.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/meshcode/launcher.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/meshcode/launcher_install.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/meshcode/meshcode_mcp/__init__.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/meshcode/meshcode_mcp/__main__.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/meshcode/meshcode_mcp/backend.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/meshcode/meshcode_mcp/realtime.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/meshcode/meshcode_mcp/server.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/meshcode/preferences.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/meshcode/protocol_v2.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/meshcode/quickstart.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/meshcode/run_agent.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/meshcode/secrets.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/meshcode/self_update.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/meshcode/setup_clients.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/meshcode/supervisor.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/meshcode/upload.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/scripts/sentinel.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/tests/test_core.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/tests/test_exceptions.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/tests/test_migration_integrity.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/tests/test_security_regressions.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/tests/test_sentinel.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/tests/test_status_enum_coverage.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode.egg-info/SOURCES.txt +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode.egg-info/dependency_links.txt +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode.egg-info/entry_points.txt +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode.egg-info/requires.txt +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/meshcode.egg-info/top_level.txt +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/setup.cfg +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/tests/test_core.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/tests/test_cross_agent_messaging.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/tests/test_esc_deaf_state.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/tests/test_exceptions.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/tests/test_mark_read_batch.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/tests/test_migration_integrity.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/tests/test_realtime_event_freshness.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/tests/test_rls_cross_tenant.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/tests/test_rpc_migrations.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/tests/test_security_regressions.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/tests/test_sentinel.py +0 -0
- {meshcode-2.10.85 → meshcode-2.10.87}/tests/test_status_enum_coverage.py +0 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"""MeshCode — Real-time communication between AI agents."""
|
|
2
|
+
__version__ = "2.10.87"
|
|
3
|
+
|
|
4
|
+
# Exception hierarchy — eagerly imported (lightweight, no deps)
|
|
5
|
+
from meshcode.exceptions import ( # noqa: F401
|
|
6
|
+
MeshCodeError,
|
|
7
|
+
AuthError,
|
|
8
|
+
RPCError,
|
|
9
|
+
MeshCodeTimeoutError,
|
|
10
|
+
MeshCodeConnectionError,
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
# Public API — lazy imports to avoid heavy deps at import time
|
|
14
|
+
def __getattr__(name):
|
|
15
|
+
if name == "backend":
|
|
16
|
+
from meshcode.meshcode_mcp import backend
|
|
17
|
+
return backend
|
|
18
|
+
if name in _BACKEND_EXPORTS:
|
|
19
|
+
from meshcode.meshcode_mcp import backend
|
|
20
|
+
return getattr(backend, name)
|
|
21
|
+
if name in _SECRETS_EXPORTS:
|
|
22
|
+
from meshcode import secrets
|
|
23
|
+
return getattr(secrets, name)
|
|
24
|
+
raise AttributeError(f"module 'meshcode' has no attribute {name!r}")
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
# Backend: core messaging & agent management
|
|
28
|
+
_BACKEND_EXPORTS = {
|
|
29
|
+
"send_message",
|
|
30
|
+
"read_inbox",
|
|
31
|
+
"count_pending",
|
|
32
|
+
"get_board",
|
|
33
|
+
"heartbeat",
|
|
34
|
+
"set_status",
|
|
35
|
+
"register_agent",
|
|
36
|
+
"get_project_id",
|
|
37
|
+
"sb_rpc",
|
|
38
|
+
"task_create",
|
|
39
|
+
"task_list",
|
|
40
|
+
"encrypt_payload",
|
|
41
|
+
"decrypt_payload",
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
# Secrets: credential management
|
|
45
|
+
_SECRETS_EXPORTS = {
|
|
46
|
+
"get_api_key",
|
|
47
|
+
"set_api_key",
|
|
48
|
+
"list_profiles",
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
__all__ = [
|
|
52
|
+
"__version__",
|
|
53
|
+
"backend",
|
|
54
|
+
# Exceptions
|
|
55
|
+
"MeshCodeError",
|
|
56
|
+
"AuthError",
|
|
57
|
+
"RPCError",
|
|
58
|
+
"MeshCodeTimeoutError",
|
|
59
|
+
"MeshCodeConnectionError",
|
|
60
|
+
# Messaging
|
|
61
|
+
"send_message",
|
|
62
|
+
"read_inbox",
|
|
63
|
+
"count_pending",
|
|
64
|
+
# Agent management
|
|
65
|
+
"register_agent",
|
|
66
|
+
"get_project_id",
|
|
67
|
+
"get_board",
|
|
68
|
+
"heartbeat",
|
|
69
|
+
"set_status",
|
|
70
|
+
# Tasks
|
|
71
|
+
"task_create",
|
|
72
|
+
"task_list",
|
|
73
|
+
# Low-level
|
|
74
|
+
"sb_rpc",
|
|
75
|
+
# Encryption
|
|
76
|
+
"encrypt_payload",
|
|
77
|
+
"decrypt_payload",
|
|
78
|
+
# Credentials
|
|
79
|
+
"get_api_key",
|
|
80
|
+
"set_api_key",
|
|
81
|
+
"list_profiles",
|
|
82
|
+
]
|
|
@@ -2914,9 +2914,160 @@ def meshcode_task_complete(task_id: str, summary: str = "", force: bool = False)
|
|
|
2914
2914
|
result = be.task_complete(api_key, _PROJECT_ID, task_id, AGENT_NAME, summary=summary)
|
|
2915
2915
|
# Task data persists in the task system — do NOT duplicate to memory.
|
|
2916
2916
|
# Samuel: "los tasks no deben guardarse en memoria, para eso salen en tasks"
|
|
2917
|
+
# Propose-on-complete nudge (S0-2): keep the infinite-improvement loop fed
|
|
2918
|
+
# without the commander hand-generating ideas. Soft hint only — no refuse.
|
|
2919
|
+
if isinstance(result, dict) and result.get("ok"):
|
|
2920
|
+
result.setdefault(
|
|
2921
|
+
"propose_hint",
|
|
2922
|
+
"Before your next wait, call meshcode_propose with 1-3 follow-up ideas "
|
|
2923
|
+
"(parent_task_id, idea, impact=VH|H|MH|M|L, eta_hours=int, "
|
|
2924
|
+
"risk=low|med|high). The team's backlog stays fed without the "
|
|
2925
|
+
"commander manually generating ideas."
|
|
2926
|
+
)
|
|
2917
2927
|
return result
|
|
2918
2928
|
|
|
2919
2929
|
|
|
2930
|
+
@mcp.tool()
|
|
2931
|
+
@with_working_status
|
|
2932
|
+
def meshcode_propose(
|
|
2933
|
+
idea: str,
|
|
2934
|
+
impact: str = "M",
|
|
2935
|
+
eta_hours: int = 4,
|
|
2936
|
+
risk: str = "low",
|
|
2937
|
+
parent_task_id: Optional[str] = None,
|
|
2938
|
+
) -> Dict[str, Any]:
|
|
2939
|
+
"""Propose a follow-up task to the commander.
|
|
2940
|
+
|
|
2941
|
+
Loop-spine for the infinite self-improvement initiative: after any
|
|
2942
|
+
meshcode_task_complete, the SDK nudges the agent to propose 1-3
|
|
2943
|
+
follow-ups. Commander reviews via the Proposals queue and converts the
|
|
2944
|
+
best into real tasks.
|
|
2945
|
+
|
|
2946
|
+
Args:
|
|
2947
|
+
idea: Markdown description of the proposed work.
|
|
2948
|
+
impact: One of VH (very high), H, MH (medium-high), M, L.
|
|
2949
|
+
eta_hours: Rough estimate in hours.
|
|
2950
|
+
risk: low | med | high.
|
|
2951
|
+
parent_task_id: Optional parent task that prompted this proposal.
|
|
2952
|
+
|
|
2953
|
+
Falls back gracefully if the mc_propose_task RPC is not yet deployed
|
|
2954
|
+
(rollout window per memory feedback_never_break_backward_compat_rls):
|
|
2955
|
+
returns a stub response so callers know the proposal was attempted.
|
|
2956
|
+
"""
|
|
2957
|
+
valid_impact = ("VH", "H", "MH", "M", "L")
|
|
2958
|
+
valid_risk = ("low", "med", "high")
|
|
2959
|
+
if impact not in valid_impact:
|
|
2960
|
+
return {"error": f"impact must be one of {valid_impact}"}
|
|
2961
|
+
if risk not in valid_risk:
|
|
2962
|
+
return {"error": f"risk must be one of {valid_risk}"}
|
|
2963
|
+
api_key = _get_api_key()
|
|
2964
|
+
resp = be.sb_rpc("mc_propose_task", {
|
|
2965
|
+
"p_api_key": api_key,
|
|
2966
|
+
"p_project_id": _PROJECT_ID,
|
|
2967
|
+
"p_agent_name": AGENT_NAME,
|
|
2968
|
+
"p_parent_task_id": parent_task_id,
|
|
2969
|
+
"p_idea": idea,
|
|
2970
|
+
"p_impact": impact,
|
|
2971
|
+
"p_eta_hours": eta_hours,
|
|
2972
|
+
"p_risk": risk,
|
|
2973
|
+
})
|
|
2974
|
+
if isinstance(resp, dict) and resp.get("error_code") == "PGRST202":
|
|
2975
|
+
# Function not deployed yet — soft-fail so callers don't crash.
|
|
2976
|
+
return {
|
|
2977
|
+
"ok": False,
|
|
2978
|
+
"deferred": True,
|
|
2979
|
+
"reason": "mc_propose_task RPC not deployed yet — proposal queued in agent log only",
|
|
2980
|
+
"idea": idea[:200],
|
|
2981
|
+
}
|
|
2982
|
+
return resp
|
|
2983
|
+
|
|
2984
|
+
|
|
2985
|
+
@mcp.tool()
|
|
2986
|
+
@with_working_status
|
|
2987
|
+
def meshcode_proposals_review(
|
|
2988
|
+
status_filter: str = "pending",
|
|
2989
|
+
limit: int = 50,
|
|
2990
|
+
) -> Dict[str, Any]:
|
|
2991
|
+
"""List proposals for commander review.
|
|
2992
|
+
|
|
2993
|
+
Args:
|
|
2994
|
+
status_filter: pending | converted | rejected | redraft | all
|
|
2995
|
+
limit: max rows to return.
|
|
2996
|
+
|
|
2997
|
+
Owner / commander only on the server side. Returns a list of
|
|
2998
|
+
{id, agent_name, idea, impact, eta_hours, risk, status,
|
|
2999
|
+
parent_task_id, converted_task_id, commander_review,
|
|
3000
|
+
created_at, reviewed_at}.
|
|
3001
|
+
"""
|
|
3002
|
+
api_key = _get_api_key()
|
|
3003
|
+
return be.sb_rpc("mc_proposals_review", {
|
|
3004
|
+
"p_api_key": api_key,
|
|
3005
|
+
"p_project_id": _PROJECT_ID,
|
|
3006
|
+
"p_status": None if status_filter == "all" else status_filter,
|
|
3007
|
+
"p_limit": limit,
|
|
3008
|
+
})
|
|
3009
|
+
|
|
3010
|
+
|
|
3011
|
+
@mcp.tool()
|
|
3012
|
+
@with_working_status
|
|
3013
|
+
def meshcode_proposal_convert(
|
|
3014
|
+
proposal_id: str,
|
|
3015
|
+
assignee: str,
|
|
3016
|
+
priority: str = "normal",
|
|
3017
|
+
) -> Dict[str, Any]:
|
|
3018
|
+
"""Convert a pending proposal into an mc_task assigned to `assignee`.
|
|
3019
|
+
|
|
3020
|
+
Args:
|
|
3021
|
+
proposal_id: UUID of the proposal.
|
|
3022
|
+
assignee: agent name to claim on creation (or '*' for any).
|
|
3023
|
+
priority: low | normal | high | urgent.
|
|
3024
|
+
"""
|
|
3025
|
+
api_key = _get_api_key()
|
|
3026
|
+
return be.sb_rpc("mc_proposal_convert", {
|
|
3027
|
+
"p_api_key": api_key,
|
|
3028
|
+
"p_project_id": _PROJECT_ID,
|
|
3029
|
+
"p_proposal_id": proposal_id,
|
|
3030
|
+
"p_assignee": assignee,
|
|
3031
|
+
"p_priority": priority,
|
|
3032
|
+
})
|
|
3033
|
+
|
|
3034
|
+
|
|
3035
|
+
@mcp.tool()
|
|
3036
|
+
@with_working_status
|
|
3037
|
+
def meshcode_proposal_reject(
|
|
3038
|
+
proposal_id: str,
|
|
3039
|
+
reason: str,
|
|
3040
|
+
) -> Dict[str, Any]:
|
|
3041
|
+
"""Reject a proposal with a reason. The reason becomes commander_review."""
|
|
3042
|
+
api_key = _get_api_key()
|
|
3043
|
+
return be.sb_rpc("mc_proposal_reject", {
|
|
3044
|
+
"p_api_key": api_key,
|
|
3045
|
+
"p_project_id": _PROJECT_ID,
|
|
3046
|
+
"p_proposal_id": proposal_id,
|
|
3047
|
+
"p_reason": reason,
|
|
3048
|
+
})
|
|
3049
|
+
|
|
3050
|
+
|
|
3051
|
+
@mcp.tool()
|
|
3052
|
+
@with_working_status
|
|
3053
|
+
def meshcode_proposal_link(
|
|
3054
|
+
proposal_id: str,
|
|
3055
|
+
task_id: str,
|
|
3056
|
+
) -> Dict[str, Any]:
|
|
3057
|
+
"""Mark a pending proposal as converted to an already-existing task.
|
|
3058
|
+
|
|
3059
|
+
Used when the commander files the task manually before linking, so a
|
|
3060
|
+
subsequent meshcode_proposal_convert wouldn't double-create.
|
|
3061
|
+
"""
|
|
3062
|
+
api_key = _get_api_key()
|
|
3063
|
+
return be.sb_rpc("mc_proposal_link", {
|
|
3064
|
+
"p_api_key": api_key,
|
|
3065
|
+
"p_project_id": _PROJECT_ID,
|
|
3066
|
+
"p_proposal_id": proposal_id,
|
|
3067
|
+
"p_task_id": task_id,
|
|
3068
|
+
})
|
|
3069
|
+
|
|
3070
|
+
|
|
2920
3071
|
@mcp.tool()
|
|
2921
3072
|
@with_working_status
|
|
2922
3073
|
def meshcode_task_approve(task_id: str) -> Dict[str, Any]:
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
"""MeshCode — Real-time communication between AI agents."""
|
|
2
|
-
__version__ = "2.10.85"
|
|
3
|
-
|
|
4
|
-
# Exception hierarchy — eagerly imported (lightweight, no deps)
|
|
5
|
-
from meshcode.exceptions import ( # noqa: F401
|
|
6
|
-
MeshCodeError,
|
|
7
|
-
AuthError,
|
|
8
|
-
RPCError,
|
|
9
|
-
MeshCodeTimeoutError,
|
|
10
|
-
MeshCodeConnectionError,
|
|
11
|
-
)
|
|
12
|
-
|
|
13
|
-
# Public API — lazy imports to avoid heavy deps at import time
|
|
14
|
-
def __getattr__(name):
|
|
15
|
-
if name == "backend":
|
|
16
|
-
from meshcode.meshcode_mcp import backend
|
|
17
|
-
return backend
|
|
18
|
-
if name in _BACKEND_EXPORTS:
|
|
19
|
-
from meshcode.meshcode_mcp import backend
|
|
20
|
-
return getattr(backend, name)
|
|
21
|
-
if name in _SECRETS_EXPORTS:
|
|
22
|
-
from meshcode import secrets
|
|
23
|
-
return getattr(secrets, name)
|
|
24
|
-
raise AttributeError(f"module 'meshcode' has no attribute {name!r}")
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
# Backend: core messaging & agent management
|
|
28
|
-
_BACKEND_EXPORTS = {
|
|
29
|
-
"send_message",
|
|
30
|
-
"read_inbox",
|
|
31
|
-
"count_pending",
|
|
32
|
-
"get_board",
|
|
33
|
-
"heartbeat",
|
|
34
|
-
"set_status",
|
|
35
|
-
"register_agent",
|
|
36
|
-
"get_project_id",
|
|
37
|
-
"sb_rpc",
|
|
38
|
-
"task_create",
|
|
39
|
-
"task_list",
|
|
40
|
-
"encrypt_payload",
|
|
41
|
-
"decrypt_payload",
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
# Secrets: credential management
|
|
45
|
-
_SECRETS_EXPORTS = {
|
|
46
|
-
"get_api_key",
|
|
47
|
-
"set_api_key",
|
|
48
|
-
"list_profiles",
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
__all__ = [
|
|
52
|
-
"__version__",
|
|
53
|
-
"backend",
|
|
54
|
-
# Exceptions
|
|
55
|
-
"MeshCodeError",
|
|
56
|
-
"AuthError",
|
|
57
|
-
"RPCError",
|
|
58
|
-
"MeshCodeTimeoutError",
|
|
59
|
-
"MeshCodeConnectionError",
|
|
60
|
-
# Messaging
|
|
61
|
-
"send_message",
|
|
62
|
-
"read_inbox",
|
|
63
|
-
"count_pending",
|
|
64
|
-
# Agent management
|
|
65
|
-
"register_agent",
|
|
66
|
-
"get_project_id",
|
|
67
|
-
"get_board",
|
|
68
|
-
"heartbeat",
|
|
69
|
-
"set_status",
|
|
70
|
-
# Tasks
|
|
71
|
-
"task_create",
|
|
72
|
-
"task_list",
|
|
73
|
-
# Low-level
|
|
74
|
-
"sb_rpc",
|
|
75
|
-
# Encryption
|
|
76
|
-
"encrypt_payload",
|
|
77
|
-
"decrypt_payload",
|
|
78
|
-
# Credentials
|
|
79
|
-
"get_api_key",
|
|
80
|
-
"set_api_key",
|
|
81
|
-
"list_profiles",
|
|
82
|
-
]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.10.85 → meshcode-2.10.87}/meshcode-backend-wt/meshcode/meshcode_mcp/test_backend.py
RENAMED
|
File without changes
|
{meshcode-2.10.85 → meshcode-2.10.87}/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.10.85 → meshcode-2.10.87}/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.10.85 → meshcode-2.10.87}/meshcode-backend-wt/tests/test_realtime_event_freshness.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{meshcode-2.10.85 → meshcode-2.10.87}/meshcode-backend-wt/tests/test_security_regressions.py
RENAMED
|
File without changes
|
|
File without changes
|
{meshcode-2.10.85 → meshcode-2.10.87}/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.10.85 → meshcode-2.10.87}/meshcode-noun-wt/build/lib/meshcode/launcher_install.py
RENAMED
|
File without changes
|
{meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__init__.py
RENAMED
|
File without changes
|
{meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__main__.py
RENAMED
|
File without changes
|
{meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/backend.py
RENAMED
|
File without changes
|
{meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/realtime.py
RENAMED
|
File without changes
|
{meshcode-2.10.85 → meshcode-2.10.87}/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.10.85 → meshcode-2.10.87}/meshcode-noun-wt/meshcode/meshcode_mcp/test_backend.py
RENAMED
|
File without changes
|
{meshcode-2.10.85 → meshcode-2.10.87}/meshcode-noun-wt/meshcode/meshcode_mcp/test_realtime.py
RENAMED
|
File without changes
|
{meshcode-2.10.85 → meshcode-2.10.87}/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.10.85 → meshcode-2.10.87}/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.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_backend.py
RENAMED
|
File without changes
|
{meshcode-2.10.85 → meshcode-2.10.87}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_realtime.py
RENAMED
|
File without changes
|
{meshcode-2.10.85 → meshcode-2.10.87}/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.10.85 → meshcode-2.10.87}/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
|