meshcode 2.10.87__tar.gz → 2.10.88__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 (200) hide show
  1. {meshcode-2.10.87 → meshcode-2.10.88}/PKG-INFO +1 -1
  2. meshcode-2.10.88/meshcode/__init__.py +82 -0
  3. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode/meshcode_mcp/server.py +33 -0
  4. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode.egg-info/PKG-INFO +1 -1
  5. {meshcode-2.10.87 → meshcode-2.10.88}/pyproject.toml +1 -1
  6. meshcode-2.10.87/meshcode/__init__.py +0 -82
  7. {meshcode-2.10.87 → meshcode-2.10.88}/README.md +0 -0
  8. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode/ascii_art.py +0 -0
  9. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode/cli.py +0 -0
  10. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode/comms_v4.py +0 -0
  11. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode/compat.py +0 -0
  12. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode/error_hints.py +0 -0
  13. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode/exceptions.py +0 -0
  14. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode/invites.py +0 -0
  15. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode/launcher.py +0 -0
  16. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode/launcher_install.py +0 -0
  17. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode/meshcode_mcp/__init__.py +0 -0
  18. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode/meshcode_mcp/__main__.py +0 -0
  19. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode/meshcode_mcp/backend.py +0 -0
  20. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode/meshcode_mcp/realtime.py +0 -0
  21. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode/meshcode_mcp/test_backend.py +0 -0
  22. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode/meshcode_mcp/test_realtime.py +0 -0
  23. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
  24. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode/preferences.py +0 -0
  25. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode/protocol_v2.py +0 -0
  26. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode/quickstart.py +0 -0
  27. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode/run_agent.py +0 -0
  28. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode/secrets.py +0 -0
  29. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode/self_update.py +0 -0
  30. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode/setup_clients.py +0 -0
  31. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode/supervisor.py +0 -0
  32. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode/upload.py +0 -0
  33. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/comms_v4.py +0 -0
  34. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/meshcode/__init__.py +0 -0
  35. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/meshcode/ascii_art.py +0 -0
  36. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/meshcode/cli.py +0 -0
  37. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/meshcode/comms_v4.py +0 -0
  38. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/meshcode/compat.py +0 -0
  39. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/meshcode/error_hints.py +0 -0
  40. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/meshcode/exceptions.py +0 -0
  41. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/meshcode/invites.py +0 -0
  42. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/meshcode/launcher.py +0 -0
  43. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/meshcode/launcher_install.py +0 -0
  44. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/meshcode/meshcode_mcp/__init__.py +0 -0
  45. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/meshcode/meshcode_mcp/__main__.py +0 -0
  46. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/meshcode/meshcode_mcp/backend.py +0 -0
  47. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/meshcode/meshcode_mcp/realtime.py +0 -0
  48. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/meshcode/meshcode_mcp/server.py +0 -0
  49. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
  50. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
  51. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
  52. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/meshcode/preferences.py +0 -0
  53. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/meshcode/protocol_v2.py +0 -0
  54. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/meshcode/quickstart.py +0 -0
  55. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/meshcode/run_agent.py +0 -0
  56. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/meshcode/secrets.py +0 -0
  57. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/meshcode/self_update.py +0 -0
  58. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/meshcode/setup_clients.py +0 -0
  59. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/meshcode/supervisor.py +0 -0
  60. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/meshcode/upload.py +0 -0
  61. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/scripts/sentinel.py +0 -0
  62. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/tests/test_core.py +0 -0
  63. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/tests/test_cross_agent_messaging.py +0 -0
  64. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/tests/test_esc_deaf_state.py +0 -0
  65. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/tests/test_exceptions.py +0 -0
  66. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/tests/test_mark_read_batch.py +0 -0
  67. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/tests/test_migration_integrity.py +0 -0
  68. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/tests/test_realtime_event_freshness.py +0 -0
  69. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/tests/test_rls_cross_tenant.py +0 -0
  70. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/tests/test_rpc_migrations.py +0 -0
  71. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/tests/test_security_regressions.py +0 -0
  72. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/tests/test_sentinel.py +0 -0
  73. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-backend-wt/tests/test_status_enum_coverage.py +0 -0
  74. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/build/lib/meshcode/__init__.py +0 -0
  75. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/build/lib/meshcode/ascii_art.py +0 -0
  76. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/build/lib/meshcode/cli.py +0 -0
  77. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/build/lib/meshcode/comms_v4.py +0 -0
  78. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/build/lib/meshcode/compat.py +0 -0
  79. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/build/lib/meshcode/error_hints.py +0 -0
  80. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/build/lib/meshcode/exceptions.py +0 -0
  81. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/build/lib/meshcode/invites.py +0 -0
  82. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/build/lib/meshcode/launcher.py +0 -0
  83. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/build/lib/meshcode/launcher_install.py +0 -0
  84. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__init__.py +0 -0
  85. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/__main__.py +0 -0
  86. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/backend.py +0 -0
  87. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/realtime.py +0 -0
  88. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/server.py +0 -0
  89. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_backend.py +0 -0
  90. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_realtime.py +0 -0
  91. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/build/lib/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
  92. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/build/lib/meshcode/preferences.py +0 -0
  93. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/build/lib/meshcode/protocol_v2.py +0 -0
  94. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/build/lib/meshcode/quickstart.py +0 -0
  95. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/build/lib/meshcode/run_agent.py +0 -0
  96. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/build/lib/meshcode/secrets.py +0 -0
  97. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/build/lib/meshcode/self_update.py +0 -0
  98. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/build/lib/meshcode/setup_clients.py +0 -0
  99. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/build/lib/meshcode/supervisor.py +0 -0
  100. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/build/lib/meshcode/upload.py +0 -0
  101. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/comms_v4.py +0 -0
  102. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/meshcode/__init__.py +0 -0
  103. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/meshcode/ascii_art.py +0 -0
  104. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/meshcode/cli.py +0 -0
  105. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/meshcode/comms_v4.py +0 -0
  106. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/meshcode/compat.py +0 -0
  107. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/meshcode/error_hints.py +0 -0
  108. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/meshcode/exceptions.py +0 -0
  109. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/meshcode/invites.py +0 -0
  110. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/meshcode/launcher.py +0 -0
  111. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/meshcode/launcher_install.py +0 -0
  112. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/meshcode/meshcode_mcp/__init__.py +0 -0
  113. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/meshcode/meshcode_mcp/__main__.py +0 -0
  114. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/meshcode/meshcode_mcp/backend.py +0 -0
  115. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/meshcode/meshcode_mcp/realtime.py +0 -0
  116. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/meshcode/meshcode_mcp/server.py +0 -0
  117. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
  118. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
  119. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
  120. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/meshcode/preferences.py +0 -0
  121. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/meshcode/protocol_v2.py +0 -0
  122. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/meshcode/quickstart.py +0 -0
  123. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/meshcode/run_agent.py +0 -0
  124. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/meshcode/secrets.py +0 -0
  125. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/meshcode/self_update.py +0 -0
  126. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/meshcode/setup_clients.py +0 -0
  127. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/meshcode/supervisor.py +0 -0
  128. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/meshcode/upload.py +0 -0
  129. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/scripts/sentinel.py +0 -0
  130. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/tests/test_core.py +0 -0
  131. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/tests/test_cross_agent_messaging.py +0 -0
  132. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/tests/test_esc_deaf_state.py +0 -0
  133. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/tests/test_exceptions.py +0 -0
  134. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/tests/test_mark_read_batch.py +0 -0
  135. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/tests/test_migration_integrity.py +0 -0
  136. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/tests/test_realtime_event_freshness.py +0 -0
  137. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/tests/test_rls_cross_tenant.py +0 -0
  138. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/tests/test_rpc_migrations.py +0 -0
  139. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/tests/test_security_regressions.py +0 -0
  140. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/tests/test_sentinel.py +0 -0
  141. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-noun-wt/tests/test_status_enum_coverage.py +0 -0
  142. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/comms_v4.py +0 -0
  143. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/meshcode/__init__.py +0 -0
  144. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/meshcode/ascii_art.py +0 -0
  145. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/meshcode/cli.py +0 -0
  146. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/meshcode/comms_v4.py +0 -0
  147. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/meshcode/compat.py +0 -0
  148. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/meshcode/error_hints.py +0 -0
  149. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/meshcode/exceptions.py +0 -0
  150. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/meshcode/invites.py +0 -0
  151. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/meshcode/launcher.py +0 -0
  152. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/meshcode/launcher_install.py +0 -0
  153. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/meshcode/meshcode_mcp/__init__.py +0 -0
  154. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/meshcode/meshcode_mcp/__main__.py +0 -0
  155. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/meshcode/meshcode_mcp/backend.py +0 -0
  156. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/meshcode/meshcode_mcp/realtime.py +0 -0
  157. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/meshcode/meshcode_mcp/server.py +0 -0
  158. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_backend.py +0 -0
  159. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_realtime.py +0 -0
  160. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/meshcode/meshcode_mcp/test_server_wrapper.py +0 -0
  161. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/meshcode/preferences.py +0 -0
  162. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/meshcode/protocol_v2.py +0 -0
  163. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/meshcode/quickstart.py +0 -0
  164. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/meshcode/run_agent.py +0 -0
  165. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/meshcode/secrets.py +0 -0
  166. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/meshcode/self_update.py +0 -0
  167. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/meshcode/setup_clients.py +0 -0
  168. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/meshcode/supervisor.py +0 -0
  169. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/meshcode/upload.py +0 -0
  170. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/scripts/sentinel.py +0 -0
  171. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/tests/test_core.py +0 -0
  172. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/tests/test_cross_agent_messaging.py +0 -0
  173. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/tests/test_esc_deaf_state.py +0 -0
  174. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/tests/test_exceptions.py +0 -0
  175. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/tests/test_mark_read_batch.py +0 -0
  176. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/tests/test_migration_integrity.py +0 -0
  177. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/tests/test_realtime_event_freshness.py +0 -0
  178. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/tests/test_rls_cross_tenant.py +0 -0
  179. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/tests/test_rpc_migrations.py +0 -0
  180. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/tests/test_security_regressions.py +0 -0
  181. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/tests/test_sentinel.py +0 -0
  182. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode-tasks-wt/tests/test_status_enum_coverage.py +0 -0
  183. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode.egg-info/SOURCES.txt +0 -0
  184. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode.egg-info/dependency_links.txt +0 -0
  185. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode.egg-info/entry_points.txt +0 -0
  186. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode.egg-info/requires.txt +0 -0
  187. {meshcode-2.10.87 → meshcode-2.10.88}/meshcode.egg-info/top_level.txt +0 -0
  188. {meshcode-2.10.87 → meshcode-2.10.88}/setup.cfg +0 -0
  189. {meshcode-2.10.87 → meshcode-2.10.88}/tests/test_core.py +0 -0
  190. {meshcode-2.10.87 → meshcode-2.10.88}/tests/test_cross_agent_messaging.py +0 -0
  191. {meshcode-2.10.87 → meshcode-2.10.88}/tests/test_esc_deaf_state.py +0 -0
  192. {meshcode-2.10.87 → meshcode-2.10.88}/tests/test_exceptions.py +0 -0
  193. {meshcode-2.10.87 → meshcode-2.10.88}/tests/test_mark_read_batch.py +0 -0
  194. {meshcode-2.10.87 → meshcode-2.10.88}/tests/test_migration_integrity.py +0 -0
  195. {meshcode-2.10.87 → meshcode-2.10.88}/tests/test_realtime_event_freshness.py +0 -0
  196. {meshcode-2.10.87 → meshcode-2.10.88}/tests/test_rls_cross_tenant.py +0 -0
  197. {meshcode-2.10.87 → meshcode-2.10.88}/tests/test_rpc_migrations.py +0 -0
  198. {meshcode-2.10.87 → meshcode-2.10.88}/tests/test_security_regressions.py +0 -0
  199. {meshcode-2.10.87 → meshcode-2.10.88}/tests/test_sentinel.py +0 -0
  200. {meshcode-2.10.87 → meshcode-2.10.88}/tests/test_status_enum_coverage.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meshcode
3
- Version: 2.10.87
3
+ Version: 2.10.88
4
4
  Summary: Real-time communication between AI agents — Supabase-backed CLI
5
5
  Author-email: MeshCode <hello@meshcode.io>
6
6
  License: MIT
@@ -0,0 +1,82 @@
1
+ """MeshCode — Real-time communication between AI agents."""
2
+ __version__ = "2.10.88"
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
+ ]
@@ -783,6 +783,13 @@ _INSTANCE_ID = f"mcp-{_uuid.uuid4().hex[:12]}"
783
783
  # launch via launchd/systemd) the orphan check is a no-op and we never
784
784
  # false-terminate a legitimately-detached process.
785
785
  _BOOT_PPID = os.getppid()
786
+ # Boot-context bundle (S1-2.F2): mc_agent_boot_context result cached at
787
+ # lifespan startup so the first 30s of tool calls can short-circuit
788
+ # repeated queries. Tools that read this fall back to live RPCs after the
789
+ # cache TTL.
790
+ _BOOT_CONTEXT_BUNDLE: Optional[Dict[str, Any]] = None
791
+ _BOOT_CONTEXT_AT: float = 0.0
792
+ _BOOT_CONTEXT_TTL_SECONDS: float = 30.0
786
793
 
787
794
  def _acquire_lease() -> bool:
788
795
  api_key = _get_api_key()
@@ -1633,6 +1640,32 @@ async def lifespan(_app):
1633
1640
  log.warning(f"initial heartbeat attempt {_attempt+1} failed: {e}")
1634
1641
  import time; time.sleep(2)
1635
1642
 
1643
+ # Boot-context bundle (S1-2.F2 / mig 217): single RPC returns last_seen
1644
+ # + recent msgs + open tasks + relevant memories + peer state. Cached on
1645
+ # the module global so the first ~30s of tool calls can short-circuit.
1646
+ # Soft-fail: if the RPC isn't deployed (older project) or errors, log
1647
+ # warn + continue with the legacy lazy-load path.
1648
+ global _BOOT_CONTEXT_BUNDLE, _BOOT_CONTEXT_AT
1649
+ try:
1650
+ _ctx = be.sb_rpc("mc_agent_boot_context", {
1651
+ "p_api_key": _get_api_key(),
1652
+ "p_project_id": _PROJECT_ID,
1653
+ "p_agent_name": AGENT_NAME,
1654
+ })
1655
+ if isinstance(_ctx, dict) and _ctx.get("ok"):
1656
+ _BOOT_CONTEXT_BUNDLE = _ctx
1657
+ _BOOT_CONTEXT_AT = _time.time()
1658
+ log.info(
1659
+ f"[meshcode] boot_context: "
1660
+ f"{len(_ctx.get('recent_msgs', []))} unread, "
1661
+ f"{len(_ctx.get('open_tasks', []))} open tasks, "
1662
+ f"{len(_ctx.get('relevant_memories', []))} memories surfaced"
1663
+ )
1664
+ else:
1665
+ log.warning(f"boot_context returned non-ok: {_ctx} — continuing legacy boot")
1666
+ except Exception as e:
1667
+ log.warning(f"boot_context RPC unavailable ({e}) — continuing legacy boot")
1668
+
1636
1669
  # Heartbeat in daemon thread — independent of asyncio event loop.
1637
1670
  _heartbeat_stop.clear()
1638
1671
  hb_thread = _threading.Thread(target=_heartbeat_thread_fn, daemon=True, name="meshcode-heartbeat")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meshcode
3
- Version: 2.10.87
3
+ Version: 2.10.88
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.10.87"
7
+ version = "2.10.88"
8
8
  description = "Real-time communication between AI agents — Supabase-backed CLI"
9
9
  readme = "README.md"
10
10
  license = {text = "MIT"}
@@ -1,82 +0,0 @@
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
- ]
File without changes
File without changes
File without changes