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.
Files changed (237) hide show
  1. {meshcode-2.11.43 → meshcode-2.11.44}/PKG-INFO +1 -1
  2. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/__init__.py +1 -1
  3. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/comms_v4.py +51 -2
  4. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/setup_clients.py +37 -0
  5. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode.egg-info/PKG-INFO +1 -1
  6. {meshcode-2.11.43 → meshcode-2.11.44}/pyproject.toml +1 -1
  7. {meshcode-2.11.43 → meshcode-2.11.44}/README.md +0 -0
  8. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/__main__.py +0 -0
  9. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/_stop_hook_template.py +0 -0
  10. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/ascii_art.py +0 -0
  11. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/atomic_push.py +0 -0
  12. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/cli.py +0 -0
  13. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/compat.py +0 -0
  14. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/daemon.py +0 -0
  15. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/date_parse.py +0 -0
  16. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/doctor.py +0 -0
  17. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/error_hints.py +0 -0
  18. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/exceptions.py +0 -0
  19. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/invites.py +0 -0
  20. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/launcher.py +0 -0
  21. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/launcher_install.py +0 -0
  22. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/meshcode_mcp/__init__.py +0 -0
  23. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/meshcode_mcp/__main__.py +0 -0
  24. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/meshcode_mcp/backend.py +0 -0
  25. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/meshcode_mcp/realtime.py +0 -0
  26. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/meshcode_mcp/server.py +0 -0
  27. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/meshcode_mcp/sleep_signals.py +0 -0
  28. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/meshcode_mcp/test_backend.py +0 -0
  29. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/meshcode_mcp/test_boot_timing.py +0 -0
  30. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/meshcode_mcp/test_install_guard.py +0 -0
  31. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/meshcode_mcp/test_prefs_claude_version.py +0 -0
  32. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/meshcode_mcp/test_realtime.py +0 -0
  33. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
  34. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/preferences.py +0 -0
  35. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/protocol_handler.py +0 -0
  36. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/protocol_v2.py +0 -0
  37. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/quickstart.py +0 -0
  38. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/rpc_allowlist.py +0 -0
  39. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/run_agent.py +0 -0
  40. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/scripts/check_secrets.py +0 -0
  41. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/scripts/race_rate_harness.py +0 -0
  42. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/secrets.py +0 -0
  43. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/self_update.py +0 -0
  44. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/supervisor.py +0 -0
  45. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode/upload.py +0 -0
  46. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/comms_v4.py +0 -0
  47. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/__init__.py +0 -0
  48. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/ascii_art.py +0 -0
  49. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/cli.py +0 -0
  50. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/comms_v4.py +0 -0
  51. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/compat.py +0 -0
  52. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/error_hints.py +0 -0
  53. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/exceptions.py +0 -0
  54. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/invites.py +0 -0
  55. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/launcher.py +0 -0
  56. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/launcher_install.py +0 -0
  57. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/meshcode_mcp/__init__.py +0 -0
  58. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/meshcode_mcp/__main__.py +0 -0
  59. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/meshcode_mcp/backend.py +0 -0
  60. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/meshcode_mcp/realtime.py +0 -0
  61. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/meshcode_mcp/server.py +0 -0
  62. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
  63. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
  64. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
  65. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/preferences.py +0 -0
  66. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/protocol_v2.py +0 -0
  67. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/quickstart.py +0 -0
  68. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/run_agent.py +0 -0
  69. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/secrets.py +0 -0
  70. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/self_update.py +0 -0
  71. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/setup_clients.py +0 -0
  72. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/supervisor.py +0 -0
  73. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/meshcode/upload.py +0 -0
  74. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/scripts/sentinel.py +0 -0
  75. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/tests/test_core.py +0 -0
  76. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/tests/test_cross_agent_messaging.py +0 -0
  77. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/tests/test_esc_deaf_state.py +0 -0
  78. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/tests/test_exceptions.py +0 -0
  79. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/tests/test_mark_read_batch.py +0 -0
  80. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/tests/test_migration_integrity.py +0 -0
  81. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/tests/test_realtime_event_freshness.py +0 -0
  82. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/tests/test_rls_cross_tenant.py +0 -0
  83. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/tests/test_rpc_migrations.py +0 -0
  84. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/tests/test_security_regressions.py +0 -0
  85. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/tests/test_sentinel.py +0 -0
  86. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-backend-wt/tests/test_status_enum_coverage.py +0 -0
  87. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/__init__.py +0 -0
  88. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/ascii_art.py +0 -0
  89. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/cli.py +0 -0
  90. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/comms_v4.py +0 -0
  91. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/compat.py +0 -0
  92. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/error_hints.py +0 -0
  93. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/exceptions.py +0 -0
  94. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/invites.py +0 -0
  95. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/launcher.py +0 -0
  96. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/launcher_install.py +0 -0
  97. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__init__.py +0 -0
  98. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__main__.py +0 -0
  99. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/backend.py +0 -0
  100. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/realtime.py +0 -0
  101. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/server.py +0 -0
  102. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_backend.py +0 -0
  103. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_realtime.py +0 -0
  104. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
  105. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/preferences.py +0 -0
  106. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/protocol_v2.py +0 -0
  107. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/quickstart.py +0 -0
  108. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/run_agent.py +0 -0
  109. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/secrets.py +0 -0
  110. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/self_update.py +0 -0
  111. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/setup_clients.py +0 -0
  112. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/supervisor.py +0 -0
  113. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/build/lib/meshcode/upload.py +0 -0
  114. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/comms_v4.py +0 -0
  115. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/__init__.py +0 -0
  116. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/ascii_art.py +0 -0
  117. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/cli.py +0 -0
  118. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/comms_v4.py +0 -0
  119. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/compat.py +0 -0
  120. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/error_hints.py +0 -0
  121. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/exceptions.py +0 -0
  122. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/invites.py +0 -0
  123. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/launcher.py +0 -0
  124. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/launcher_install.py +0 -0
  125. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/meshcode_mcp/__init__.py +0 -0
  126. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/meshcode_mcp/__main__.py +0 -0
  127. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/meshcode_mcp/backend.py +0 -0
  128. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/meshcode_mcp/realtime.py +0 -0
  129. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/meshcode_mcp/server.py +0 -0
  130. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
  131. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
  132. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
  133. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/preferences.py +0 -0
  134. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/protocol_v2.py +0 -0
  135. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/quickstart.py +0 -0
  136. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/run_agent.py +0 -0
  137. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/secrets.py +0 -0
  138. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/self_update.py +0 -0
  139. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/setup_clients.py +0 -0
  140. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/supervisor.py +0 -0
  141. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/meshcode/upload.py +0 -0
  142. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/scripts/sentinel.py +0 -0
  143. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/tests/test_core.py +0 -0
  144. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/tests/test_cross_agent_messaging.py +0 -0
  145. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/tests/test_esc_deaf_state.py +0 -0
  146. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/tests/test_exceptions.py +0 -0
  147. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/tests/test_mark_read_batch.py +0 -0
  148. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/tests/test_migration_integrity.py +0 -0
  149. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/tests/test_realtime_event_freshness.py +0 -0
  150. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/tests/test_rls_cross_tenant.py +0 -0
  151. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/tests/test_rpc_migrations.py +0 -0
  152. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/tests/test_security_regressions.py +0 -0
  153. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/tests/test_sentinel.py +0 -0
  154. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-noun-wt/tests/test_status_enum_coverage.py +0 -0
  155. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/comms_v4.py +0 -0
  156. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/__init__.py +0 -0
  157. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/ascii_art.py +0 -0
  158. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/cli.py +0 -0
  159. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/comms_v4.py +0 -0
  160. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/compat.py +0 -0
  161. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/error_hints.py +0 -0
  162. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/exceptions.py +0 -0
  163. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/invites.py +0 -0
  164. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/launcher.py +0 -0
  165. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/launcher_install.py +0 -0
  166. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/meshcode_mcp/__init__.py +0 -0
  167. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/meshcode_mcp/__main__.py +0 -0
  168. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/meshcode_mcp/backend.py +0 -0
  169. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/meshcode_mcp/realtime.py +0 -0
  170. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/meshcode_mcp/server.py +0 -0
  171. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
  172. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
  173. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
  174. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/preferences.py +0 -0
  175. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/protocol_v2.py +0 -0
  176. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/quickstart.py +0 -0
  177. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/run_agent.py +0 -0
  178. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/secrets.py +0 -0
  179. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/self_update.py +0 -0
  180. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/setup_clients.py +0 -0
  181. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/supervisor.py +0 -0
  182. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/meshcode/upload.py +0 -0
  183. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/scripts/sentinel.py +0 -0
  184. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/tests/test_core.py +0 -0
  185. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/tests/test_cross_agent_messaging.py +0 -0
  186. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/tests/test_esc_deaf_state.py +0 -0
  187. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/tests/test_exceptions.py +0 -0
  188. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/tests/test_mark_read_batch.py +0 -0
  189. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/tests/test_migration_integrity.py +0 -0
  190. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/tests/test_realtime_event_freshness.py +0 -0
  191. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/tests/test_rls_cross_tenant.py +0 -0
  192. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/tests/test_rpc_migrations.py +0 -0
  193. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/tests/test_security_regressions.py +0 -0
  194. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/tests/test_sentinel.py +0 -0
  195. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode-tasks-wt/tests/test_status_enum_coverage.py +0 -0
  196. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode.egg-info/PKG-INFO 2 +0 -0
  197. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode.egg-info/SOURCES 2.txt +0 -0
  198. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode.egg-info/SOURCES.txt +0 -0
  199. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode.egg-info/dependency_links 2.txt +0 -0
  200. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode.egg-info/dependency_links.txt +0 -0
  201. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode.egg-info/entry_points 2.txt +0 -0
  202. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode.egg-info/entry_points.txt +0 -0
  203. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode.egg-info/requires 2.txt +0 -0
  204. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode.egg-info/requires.txt +0 -0
  205. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode.egg-info/top_level 2.txt +0 -0
  206. {meshcode-2.11.43 → meshcode-2.11.44}/meshcode.egg-info/top_level.txt +0 -0
  207. {meshcode-2.11.43 → meshcode-2.11.44}/setup.cfg +0 -0
  208. {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_auto_update_hardening.py +0 -0
  209. {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_boot_bug_regression.py +0 -0
  210. {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_color_truecolor.py +0 -0
  211. {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_core.py +0 -0
  212. {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_cross_agent_messaging.py +0 -0
  213. {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_date_parse.py +0 -0
  214. {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_doctor.py +0 -0
  215. {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_epistemic_v1_python_sdk.py +0 -0
  216. {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_epistemic_v1_stop_conditions.py +0 -0
  217. {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_esc_deaf_state.py +0 -0
  218. {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_exceptions.py +0 -0
  219. {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_init_device_code.py +0 -0
  220. {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_install_guard.py +0 -0
  221. {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_lease_sigterm_release.py +0 -0
  222. {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_mark_read_batch.py +0 -0
  223. {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_migration_integrity.py +0 -0
  224. {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_realtime_event_freshness.py +0 -0
  225. {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_rls_cross_tenant.py +0 -0
  226. {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_rpc_grants.py +0 -0
  227. {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_rpc_migrations.py +0 -0
  228. {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_run_agent_dry_run.py +0 -0
  229. {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_run_agent_no_server_import.py +0 -0
  230. {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_security_regressions.py +0 -0
  231. {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_self_update_user_site.py +0 -0
  232. {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_sentinel.py +0 -0
  233. {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_setup_path.py +0 -0
  234. {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_sleep_signals.py +0 -0
  235. {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_status_enum_coverage.py +0 -0
  236. {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_stay_on_loop_hook.py +0 -0
  237. {meshcode-2.11.43 → meshcode-2.11.44}/tests/test_wait_open_tasks_contradiction.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meshcode
3
- Version: 2.11.43
3
+ Version: 2.11.44
4
4
  Summary: Real-time communication between AI agents — Supabase-backed CLI
5
5
  Author-email: MeshCode <hello@meshcode.io>
6
6
  License: MIT
@@ -1,5 +1,5 @@
1
1
  """MeshCode — Real-time communication between AI agents."""
2
- __version__ = "2.11.43"
2
+ __version__ = "2.11.44"
3
3
 
4
4
  # Exception hierarchy — eagerly imported (lightweight, no deps)
5
5
  from meshcode.exceptions import ( # noqa: F401
@@ -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
- print(f" {icon} {a['name']:<14} {a.get('role',''):<25} pending: {pcount}")
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
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meshcode
3
- Version: 2.11.43
3
+ Version: 2.11.44
4
4
  Summary: Real-time communication between AI agents — Supabase-backed CLI
5
5
  Author-email: MeshCode <hello@meshcode.io>
6
6
  License: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "meshcode"
7
- version = "2.11.43"
7
+ version = "2.11.44"
8
8
  description = "Real-time communication between AI agents — Supabase-backed CLI"
9
9
  readme = "README.md"
10
10
  license = {text = "MIT"}
File without changes
File without changes
File without changes