controlmesh 0.40.2__tar.gz → 0.40.3__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 (611) hide show
  1. {controlmesh-0.40.2 → controlmesh-0.40.3}/PKG-INFO +1 -1
  2. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/__init__.py +1 -1
  3. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/config.py +34 -0
  4. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/bot.py +157 -9
  5. {controlmesh-0.40.2 → controlmesh-0.40.3}/docs/README.md +1 -0
  6. {controlmesh-0.40.2 → controlmesh-0.40.3}/pyproject.toml +1 -1
  7. {controlmesh-0.40.2 → controlmesh-0.40.3}/.gitignore +0 -0
  8. {controlmesh-0.40.2 → controlmesh-0.40.3}/Dockerfile.sandbox +0 -0
  9. {controlmesh-0.40.2 → controlmesh-0.40.3}/LICENSE +0 -0
  10. {controlmesh-0.40.2 → controlmesh-0.40.3}/README.md +0 -0
  11. {controlmesh-0.40.2 → controlmesh-0.40.3}/config.example.json +0 -0
  12. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/__main__.py +0 -0
  13. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_banner.txt +0 -0
  14. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/RULES.md +0 -0
  15. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/config/RULES-all-clis.md +0 -0
  16. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/config/RULES-claude-only.md +0 -0
  17. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/config/RULES-codex-only.md +0 -0
  18. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/config/RULES-gemini-only.md +0 -0
  19. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/JOIN_NOTIFICATION.md +0 -0
  20. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/RULES.md +0 -0
  21. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/cron_tasks/RULES-all-clis.md +0 -0
  22. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/cron_tasks/RULES-claude-only.md +0 -0
  23. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/cron_tasks/RULES-codex-only.md +0 -0
  24. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/cron_tasks/RULES-gemini-only.md +0 -0
  25. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/cron_tasks/flow-triggered-template/TASK_DESCRIPTION.md +0 -0
  26. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/cron_tasks/release-ci-monitor-template/RULES-template.md +0 -0
  27. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/cron_tasks/release-ci-monitor-template/TASK_DESCRIPTION.md +0 -0
  28. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/cron_tasks/scheduled-recurring-template/TASK_DESCRIPTION.md +0 -0
  29. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/cron_tasks/webhook-triggered-template/TASK_DESCRIPTION.md +0 -0
  30. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/output_to_user/RULES.md +0 -0
  31. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/routing/activation_policies.yaml +0 -0
  32. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/routing/capabilities.yaml +0 -0
  33. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/skills/RULES.md +0 -0
  34. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/skills/skill-creator/LICENSE.txt +0 -0
  35. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/skills/skill-creator/SKILL.md +0 -0
  36. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/skills/skill-creator/references/output-patterns.md +0 -0
  37. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/skills/skill-creator/references/workflows.md +0 -0
  38. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/skills/skill-creator/scripts/init_skill.py +0 -0
  39. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/skills/skill-creator/scripts/package_skill.py +0 -0
  40. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/skills/skill-creator/scripts/quick_validate.py +0 -0
  41. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tasks/RULES.md +0 -0
  42. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/telegram_files/RULES.md +0 -0
  43. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/RULES.md +0 -0
  44. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/_tool_shared.py +0 -0
  45. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/agent_tools/RULES.md +0 -0
  46. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/agent_tools/ask_agent.py +0 -0
  47. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/agent_tools/ask_agent_async.py +0 -0
  48. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/agent_tools/create_agent.py +0 -0
  49. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/agent_tools/edit_shared_knowledge.py +0 -0
  50. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/agent_tools/list_agents.py +0 -0
  51. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/agent_tools/remove_agent.py +0 -0
  52. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/cron_tools/RULES-all-clis.md +0 -0
  53. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/cron_tools/RULES-claude-only.md +0 -0
  54. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/cron_tools/RULES-codex-only.md +0 -0
  55. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/cron_tools/RULES-gemini-only.md +0 -0
  56. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/cron_tools/_shared.py +0 -0
  57. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/cron_tools/cron_add.py +0 -0
  58. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/cron_tools/cron_edit.py +0 -0
  59. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/cron_tools/cron_list.py +0 -0
  60. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/cron_tools/cron_monitor.py +0 -0
  61. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/cron_tools/cron_remove.py +0 -0
  62. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/cron_tools/cron_time.py +0 -0
  63. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/media_tools/RULES.md +0 -0
  64. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/media_tools/file_info.py +0 -0
  65. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/media_tools/list_files.py +0 -0
  66. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/media_tools/process_video.py +0 -0
  67. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/media_tools/read_document.py +0 -0
  68. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/media_tools/transcribe_audio.py +0 -0
  69. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/task_tools/RULES.md +0 -0
  70. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/task_tools/_shared.py +0 -0
  71. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/task_tools/ask_parent.py +0 -0
  72. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/task_tools/attach_task.py +0 -0
  73. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/task_tools/cancel_task.py +0 -0
  74. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/task_tools/check_task_updates.py +0 -0
  75. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/task_tools/create_task.py +0 -0
  76. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/task_tools/delete_task.py +0 -0
  77. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/task_tools/list_tasks.py +0 -0
  78. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/task_tools/release_task.py +0 -0
  79. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/task_tools/resume_task.py +0 -0
  80. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/task_tools/route_task.py +0 -0
  81. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/task_tools/tell_task.py +0 -0
  82. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/user_tools/RULES.md +0 -0
  83. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/webhook_tools/RULES-all-clis.md +0 -0
  84. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/webhook_tools/RULES-claude-only.md +0 -0
  85. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/webhook_tools/RULES-codex-only.md +0 -0
  86. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/webhook_tools/RULES-gemini-only.md +0 -0
  87. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/webhook_tools/_shared.py +0 -0
  88. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/webhook_tools/setup_ci_failure_webhook.py +0 -0
  89. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/webhook_tools/webhook_add.py +0 -0
  90. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/webhook_tools/webhook_edit.py +0 -0
  91. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/webhook_tools/webhook_list.py +0 -0
  92. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/webhook_tools/webhook_remove.py +0 -0
  93. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/webhook_tools/webhook_rotate_token.py +0 -0
  94. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/webhook_tools/webhook_test.py +0 -0
  95. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/__init__.py +0 -0
  96. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/VENDORED_FROM.md +0 -0
  97. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/__init__.py +0 -0
  98. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/__init__.py +0 -0
  99. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/agent_runtime.py +0 -0
  100. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/app_registration.py +0 -0
  101. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/cardkit.py +0 -0
  102. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/claude_adapter.py +0 -0
  103. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/cli.py +0 -0
  104. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/client.py +0 -0
  105. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/device_flow.py +0 -0
  106. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/domains.py +0 -0
  107. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/message_context.py +0 -0
  108. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/models.py +0 -0
  109. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/native_agent_tools.py +0 -0
  110. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/native_contract.py +0 -0
  111. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/orchestration.py +0 -0
  112. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/owner_policy.py +0 -0
  113. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/probe.py +0 -0
  114. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/runtime_cards.py +0 -0
  115. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/scopes.py +0 -0
  116. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/token_store.py +0 -0
  117. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/runner.py +0 -0
  118. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/agents_runtime/__init__.py +0 -0
  119. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/agents_runtime/context.py +0 -0
  120. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/agents_runtime/manager.py +0 -0
  121. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/agents_runtime/progress.py +0 -0
  122. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/agents_runtime/results.py +0 -0
  123. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/agents_runtime/tools.py +0 -0
  124. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/api/__init__.py +0 -0
  125. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/api/admin_read.py +0 -0
  126. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/api/catalog_http.py +0 -0
  127. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/api/crypto.py +0 -0
  128. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/api/server.py +0 -0
  129. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/background/__init__.py +0 -0
  130. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/background/models.py +0 -0
  131. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/background/observer.py +0 -0
  132. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/bus/__init__.py +0 -0
  133. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/bus/adapters.py +0 -0
  134. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/bus/bus.py +0 -0
  135. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/bus/cron_sanitize.py +0 -0
  136. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/bus/envelope.py +0 -0
  137. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/bus/lock_pool.py +0 -0
  138. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/case_pack/__init__.py +0 -0
  139. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/case_pack/__main__.py +0 -0
  140. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/case_pack/io.py +0 -0
  141. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/case_pack/lint.py +0 -0
  142. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/case_pack/models.py +0 -0
  143. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/case_pack/render.py +0 -0
  144. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cleanup/__init__.py +0 -0
  145. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cleanup/observer.py +0 -0
  146. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/__init__.py +0 -0
  147. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/auth.py +0 -0
  148. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/base.py +0 -0
  149. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/claude_provider.py +0 -0
  150. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/claw_provider.py +0 -0
  151. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/coalescer.py +0 -0
  152. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/codex_cache.py +0 -0
  153. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/codex_cache_observer.py +0 -0
  154. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/codex_discovery.py +0 -0
  155. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/codex_events.py +0 -0
  156. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/codex_hooks.py +0 -0
  157. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/codex_provider.py +0 -0
  158. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/diagnostics.py +0 -0
  159. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/events.py +0 -0
  160. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/executor.py +0 -0
  161. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/factory.py +0 -0
  162. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/gemini_cache.py +0 -0
  163. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/gemini_cache_observer.py +0 -0
  164. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/gemini_events.py +0 -0
  165. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/gemini_provider.py +0 -0
  166. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/gemini_utils.py +0 -0
  167. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/init_wizard.py +0 -0
  168. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/introspection.py +0 -0
  169. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/liveness.py +0 -0
  170. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/model_cache.py +0 -0
  171. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/openai_agents_provider.py +0 -0
  172. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/opencode_discovery.py +0 -0
  173. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/opencode_provider.py +0 -0
  174. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/param_resolver.py +0 -0
  175. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/process_registry.py +0 -0
  176. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/service.py +0 -0
  177. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/stream_events.py +0 -0
  178. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/supervisor.py +0 -0
  179. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/timeout_controller.py +0 -0
  180. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/types.py +0 -0
  181. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli_commands/__init__.py +0 -0
  182. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli_commands/agents.py +0 -0
  183. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli_commands/api_cmd.py +0 -0
  184. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli_commands/auth.py +0 -0
  185. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli_commands/cron.py +0 -0
  186. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli_commands/docker.py +0 -0
  187. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli_commands/feishu.py +0 -0
  188. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli_commands/install.py +0 -0
  189. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli_commands/lifecycle.py +0 -0
  190. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli_commands/runtime.py +0 -0
  191. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli_commands/service.py +0 -0
  192. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli_commands/status.py +0 -0
  193. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli_commands/tasks.py +0 -0
  194. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/command_registry.py +0 -0
  195. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/commands.py +0 -0
  196. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/config_reload.py +0 -0
  197. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cron/__init__.py +0 -0
  198. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cron/dependency_queue.py +0 -0
  199. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cron/execution.py +0 -0
  200. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cron/manager.py +0 -0
  201. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cron/observer.py +0 -0
  202. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cron/policy.py +0 -0
  203. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/errors.py +0 -0
  204. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/files/__init__.py +0 -0
  205. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/files/allowed_roots.py +0 -0
  206. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/files/browser.py +0 -0
  207. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/files/image_processor.py +0 -0
  208. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/files/prompt.py +0 -0
  209. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/files/storage.py +0 -0
  210. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/files/tags.py +0 -0
  211. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/gateways/__init__.py +0 -0
  212. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/gateways/config.py +0 -0
  213. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/gateways/types.py +0 -0
  214. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/heartbeat/__init__.py +0 -0
  215. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/heartbeat/observer.py +0 -0
  216. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/history/__init__.py +0 -0
  217. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/history/catalog.py +0 -0
  218. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/history/index.py +0 -0
  219. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/history/models.py +0 -0
  220. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/history/store.py +0 -0
  221. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/__init__.py +0 -0
  222. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/de/chat.toml +0 -0
  223. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/de/cli.toml +0 -0
  224. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/de/commands.toml +0 -0
  225. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/de/wizard.toml +0 -0
  226. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/en/chat.toml +0 -0
  227. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/en/cli.toml +0 -0
  228. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/en/commands.toml +0 -0
  229. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/en/wizard.toml +0 -0
  230. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/es/chat.toml +0 -0
  231. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/es/cli.toml +0 -0
  232. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/es/commands.toml +0 -0
  233. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/es/wizard.toml +0 -0
  234. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/fr/chat.toml +0 -0
  235. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/fr/cli.toml +0 -0
  236. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/fr/commands.toml +0 -0
  237. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/fr/wizard.toml +0 -0
  238. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/loader.py +0 -0
  239. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/nl/chat.toml +0 -0
  240. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/nl/cli.toml +0 -0
  241. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/nl/commands.toml +0 -0
  242. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/nl/wizard.toml +0 -0
  243. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/pt/chat.toml +0 -0
  244. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/pt/cli.toml +0 -0
  245. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/pt/commands.toml +0 -0
  246. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/pt/wizard.toml +0 -0
  247. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/ru/chat.toml +0 -0
  248. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/ru/cli.toml +0 -0
  249. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/ru/commands.toml +0 -0
  250. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/ru/wizard.toml +0 -0
  251. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/zh/chat.toml +0 -0
  252. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/zh/cli.toml +0 -0
  253. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/zh/commands.toml +0 -0
  254. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/zh/wizard.toml +0 -0
  255. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/__init__.py +0 -0
  256. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/atomic_io.py +0 -0
  257. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/base_observer.py +0 -0
  258. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/base_task_observer.py +0 -0
  259. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/boot_id.py +0 -0
  260. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/docker.py +0 -0
  261. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/docker_extras.py +0 -0
  262. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/env_secrets.py +0 -0
  263. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/file_watcher.py +0 -0
  264. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/fs.py +0 -0
  265. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/inflight.py +0 -0
  266. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/install.py +0 -0
  267. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/json_store.py +0 -0
  268. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/pidlock.py +0 -0
  269. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/platform.py +0 -0
  270. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/process_tree.py +0 -0
  271. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/recovery.py +0 -0
  272. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/restart.py +0 -0
  273. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/service.py +0 -0
  274. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/service_base.py +0 -0
  275. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/service_linux.py +0 -0
  276. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/service_logs.py +0 -0
  277. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/service_macos.py +0 -0
  278. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/service_windows.py +0 -0
  279. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/startup_state.py +0 -0
  280. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/task_runner.py +0 -0
  281. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/updater.py +0 -0
  282. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/version.py +0 -0
  283. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/integrations/__init__.py +0 -0
  284. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/integrations/feishu_auth_kit.py +0 -0
  285. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/log_context.py +0 -0
  286. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/logging_config.py +0 -0
  287. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/memory/__init__.py +0 -0
  288. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/memory/capture.py +0 -0
  289. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/memory/commands.py +0 -0
  290. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/memory/dreaming.py +0 -0
  291. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/memory/events.py +0 -0
  292. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/memory/frequency.py +0 -0
  293. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/memory/models.py +0 -0
  294. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/memory/promotion.py +0 -0
  295. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/memory/runtime_capture.py +0 -0
  296. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/memory/search.py +0 -0
  297. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/memory/semantic.py +0 -0
  298. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/memory/store.py +0 -0
  299. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/__init__.py +0 -0
  300. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/address.py +0 -0
  301. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/callback_router.py +0 -0
  302. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/capabilities.py +0 -0
  303. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/commands.py +0 -0
  304. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/__init__.py +0 -0
  305. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/auth/__init__.py +0 -0
  306. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/auth/app_info.py +0 -0
  307. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/auth/auth_cards.py +0 -0
  308. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/auth/brand.py +0 -0
  309. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/auth/card_auth.py +0 -0
  310. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/auth/card_auth_context.py +0 -0
  311. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/auth/card_auth_runner.py +0 -0
  312. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/auth/device_flow.py +0 -0
  313. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/auth/errors.py +0 -0
  314. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/auth/feishu_card_sender.py +0 -0
  315. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/auth/native_auth_all_runner.py +0 -0
  316. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/auth/native_auth_useful_runner.py +0 -0
  317. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/auth/orchestration_runner.py +0 -0
  318. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/auth/runtime_auth.py +0 -0
  319. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/auth/runtime_continuation.py +0 -0
  320. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/auth/token_store.py +0 -0
  321. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/auth/uat_client.py +0 -0
  322. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/bundled_runtime.py +0 -0
  323. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/card_action_payload.py +0 -0
  324. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/card_stream.py +0 -0
  325. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/command_center_card.py +0 -0
  326. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/id_map.py +0 -0
  327. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/inbound.py +0 -0
  328. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/long_connection.py +0 -0
  329. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/media.py +0 -0
  330. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/media_meta.py +0 -0
  331. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/message_context.py +0 -0
  332. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/native_tools/__init__.py +0 -0
  333. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/native_tools/agent_runtime.py +0 -0
  334. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/native_tools/client.py +0 -0
  335. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/native_tools/executor.py +0 -0
  336. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/progress_preview.py +0 -0
  337. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/runtime_state.py +0 -0
  338. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/sender.py +0 -0
  339. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/settings_card.py +0 -0
  340. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/startup.py +0 -0
  341. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/tool_auth.py +0 -0
  342. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/transport.py +0 -0
  343. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/matrix/__init__.py +0 -0
  344. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/matrix/bot.py +0 -0
  345. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/matrix/buttons.py +0 -0
  346. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/matrix/credentials.py +0 -0
  347. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/matrix/file_browser.py +0 -0
  348. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/matrix/formatting.py +0 -0
  349. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/matrix/id_map.py +0 -0
  350. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/matrix/media.py +0 -0
  351. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/matrix/sender.py +0 -0
  352. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/matrix/startup.py +0 -0
  353. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/matrix/streaming.py +0 -0
  354. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/matrix/streaming_mode.py +0 -0
  355. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/matrix/transport.py +0 -0
  356. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/matrix/typing.py +0 -0
  357. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/multi.py +0 -0
  358. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/notifications.py +0 -0
  359. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/protocol.py +0 -0
  360. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/qqbot/__init__.py +0 -0
  361. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/qqbot/api.py +0 -0
  362. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/qqbot/bot.py +0 -0
  363. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/qqbot/gateway.py +0 -0
  364. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/qqbot/inbound.py +0 -0
  365. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/qqbot/known_targets.py +0 -0
  366. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/qqbot/media.py +0 -0
  367. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/qqbot/outbound.py +0 -0
  368. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/qqbot/ref_index.py +0 -0
  369. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/qqbot/session_store.py +0 -0
  370. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/qqbot/target.py +0 -0
  371. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/qqbot/token_manager.py +0 -0
  372. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/qqbot/transport.py +0 -0
  373. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/qqbot/types.py +0 -0
  374. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/qqbot/typing_keepalive.py +0 -0
  375. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/registry.py +0 -0
  376. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/send_opts.py +0 -0
  377. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/__init__.py +0 -0
  378. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/abort.py +0 -0
  379. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/app.py +0 -0
  380. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/buttons.py +0 -0
  381. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/callbacks.py +0 -0
  382. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/chat_tracker.py +0 -0
  383. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/controlmesh_images/logo_text.png +0 -0
  384. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/controlmesh_images/welcome.png +0 -0
  385. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/dedup.py +0 -0
  386. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/edit_streaming.py +0 -0
  387. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/file_browser.py +0 -0
  388. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/formatting.py +0 -0
  389. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/handlers.py +0 -0
  390. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/inbound_spool.py +0 -0
  391. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/lane_state.py +0 -0
  392. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/media.py +0 -0
  393. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/message_dispatch.py +0 -0
  394. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/middleware.py +0 -0
  395. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/runtime_state.py +0 -0
  396. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/sender.py +0 -0
  397. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/startup.py +0 -0
  398. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/streaming.py +0 -0
  399. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/topic.py +0 -0
  400. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/transport.py +0 -0
  401. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/typing.py +0 -0
  402. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/upgrade_handler.py +0 -0
  403. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/welcome.py +0 -0
  404. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/weixin/__init__.py +0 -0
  405. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/weixin/api.py +0 -0
  406. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/weixin/auth_state.py +0 -0
  407. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/weixin/auth_store.py +0 -0
  408. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/weixin/bot.py +0 -0
  409. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/weixin/id_map.py +0 -0
  410. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/weixin/inbound_spool.py +0 -0
  411. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/weixin/runtime.py +0 -0
  412. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/weixin/runtime_state.py +0 -0
  413. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/weixin/transport.py +0 -0
  414. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/multiagent/__init__.py +0 -0
  415. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/multiagent/approval_intent.py +0 -0
  416. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/multiagent/bus.py +0 -0
  417. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/multiagent/commands.py +0 -0
  418. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/multiagent/health.py +0 -0
  419. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/multiagent/internal_api.py +0 -0
  420. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/multiagent/models.py +0 -0
  421. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/multiagent/plan_review_loop.py +0 -0
  422. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/multiagent/registry.py +0 -0
  423. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/multiagent/release_gate.py +0 -0
  424. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/multiagent/shared_knowledge.py +0 -0
  425. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/multiagent/stack.py +0 -0
  426. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/multiagent/supervisor.py +0 -0
  427. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/native_commands/__init__.py +0 -0
  428. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/native_commands/fallbacks.py +0 -0
  429. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/native_commands/render.py +0 -0
  430. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/__init__.py +0 -0
  431. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/commands.py +0 -0
  432. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/core.py +0 -0
  433. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/directives.py +0 -0
  434. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/flows.py +0 -0
  435. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/hooks.py +0 -0
  436. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/injection.py +0 -0
  437. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/lifecycle.py +0 -0
  438. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/observers.py +0 -0
  439. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/presentation.py +0 -0
  440. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/providers.py +0 -0
  441. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/registry.py +0 -0
  442. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/selectors/__init__.py +0 -0
  443. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/selectors/agent_router.py +0 -0
  444. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/selectors/capability_registry.py +0 -0
  445. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/selectors/cron_selector.py +0 -0
  446. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/selectors/model_selector.py +0 -0
  447. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/selectors/models.py +0 -0
  448. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/selectors/session_selector.py +0 -0
  449. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/selectors/settings_selector.py +0 -0
  450. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/selectors/task_selector.py +0 -0
  451. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/selectors/utils.py +0 -0
  452. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/planning_files.py +0 -0
  453. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/provider_binding.py +0 -0
  454. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/provider_health.py +0 -0
  455. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/routing/__init__.py +0 -0
  456. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/routing/activation.py +0 -0
  457. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/routing/capabilities.py +0 -0
  458. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/routing/policy.py +0 -0
  459. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/routing/router.py +0 -0
  460. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/routing/score_events.py +0 -0
  461. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/routing/scorer.py +0 -0
  462. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/routing/workunit.py +0 -0
  463. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/run.py +0 -0
  464. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/runtime/__init__.py +0 -0
  465. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/runtime/agent_inbox.py +0 -0
  466. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/runtime/host_jobs.py +0 -0
  467. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/runtime/models.py +0 -0
  468. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/runtime/registry.py +0 -0
  469. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/runtime/store.py +0 -0
  470. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/security/__init__.py +0 -0
  471. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/security/content.py +0 -0
  472. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/security/paths.py +0 -0
  473. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/session/__init__.py +0 -0
  474. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/session/key.py +0 -0
  475. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/session/manager.py +0 -0
  476. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/session/named.py +0 -0
  477. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/tasks/__init__.py +0 -0
  478. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/tasks/evaluator.py +0 -0
  479. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/tasks/evidence.py +0 -0
  480. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/tasks/host_execution.py +0 -0
  481. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/tasks/hub.py +0 -0
  482. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/tasks/models.py +0 -0
  483. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/tasks/registry.py +0 -0
  484. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/tasks/task_policy.py +0 -0
  485. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/__init__.py +0 -0
  486. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/api.py +0 -0
  487. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/contracts.py +0 -0
  488. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/execution.py +0 -0
  489. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/live.py +0 -0
  490. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/models.py +0 -0
  491. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/orchestrator.py +0 -0
  492. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/phases.py +0 -0
  493. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/presentation.py +0 -0
  494. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/runtime_attachment.py +0 -0
  495. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/runtime_control.py +0 -0
  496. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/state/__init__.py +0 -0
  497. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/state/base.py +0 -0
  498. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/state/dispatch.py +0 -0
  499. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/state/events.py +0 -0
  500. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/state/mailbox.py +0 -0
  501. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/state/manifest.py +0 -0
  502. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/state/phase.py +0 -0
  503. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/state/recovery.py +0 -0
  504. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/state/runtime.py +0 -0
  505. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/state/snapshot.py +0 -0
  506. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/state/store.py +0 -0
  507. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/state/tasks.py +0 -0
  508. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/text/__init__.py +0 -0
  509. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/text/frontstage_delivery.py +0 -0
  510. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/text/response_format.py +0 -0
  511. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/text/tool_event_format.py +0 -0
  512. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/utils/__init__.py +0 -0
  513. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/utils/quiet_hours.py +0 -0
  514. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/webhook/__init__.py +0 -0
  515. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/webhook/auth.py +0 -0
  516. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/webhook/manager.py +0 -0
  517. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/webhook/models.py +0 -0
  518. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/webhook/observer.py +0 -0
  519. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/webhook/server.py +0 -0
  520. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/workspace/__init__.py +0 -0
  521. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/workspace/cron_tasks.py +0 -0
  522. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/workspace/init.py +0 -0
  523. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/workspace/loader.py +0 -0
  524. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/workspace/paths.py +0 -0
  525. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/workspace/rules_selector.py +0 -0
  526. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/workspace/skill_sync.py +0 -0
  527. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/__init__.py +0 -0
  528. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/autonomous_runtime_loop.py +0 -0
  529. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/canonical_section_writer.py +0 -0
  530. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/contracts.py +0 -0
  531. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/engine.py +0 -0
  532. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/events.py +0 -0
  533. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/evidence_identity.py +0 -0
  534. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/execution_event_shape.md +0 -0
  535. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/execution_evidence_replay_query.py +0 -0
  536. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/execution_evidence_replay_query_boundary.md +0 -0
  537. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/execution_payload_seam.md +0 -0
  538. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/execution_payloads.py +0 -0
  539. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/execution_read_surface.py +0 -0
  540. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/execution_runtime_events.py +0 -0
  541. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/execution_wiring_boundary.md +0 -0
  542. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/file_backed_primary_boundary.md +0 -0
  543. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/first_engine_boundary.md +0 -0
  544. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/first_engine_contract_surface.md +0 -0
  545. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/first_engine_test_matrix.md +0 -0
  546. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/first_engine_trace_examples.md +0 -0
  547. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/orchestrator_boundary.md +0 -0
  548. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/promotion_bridge.py +0 -0
  549. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/promotion_controller.py +0 -0
  550. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/promotion_receipt.py +0 -0
  551. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/py.typed +0 -0
  552. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/records.py +0 -0
  553. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/recovery/__init__.py +0 -0
  554. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/recovery/contracts.py +0 -0
  555. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/recovery/execution.py +0 -0
  556. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/recovery/policy.py +0 -0
  557. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/recovery_execution_boundary.md +0 -0
  558. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/recovery_thin_loop.py +0 -0
  559. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/review.py +0 -0
  560. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/review_handoff_packet.py +0 -0
  561. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/review_query_read_surface_boundary.md +0 -0
  562. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/runtime.py +0 -0
  563. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/runtime_execution_checkpoint.py +0 -0
  564. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/runtime_message_api.py +0 -0
  565. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/serde.py +0 -0
  566. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/store.py +0 -0
  567. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/summary/__init__.py +0 -0
  568. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/summary/contracts.py +0 -0
  569. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/summary/policy.py +0 -0
  570. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/summary/runtime.py +0 -0
  571. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/summary_trigger_landing_boundary.md +0 -0
  572. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/task_packet.py +0 -0
  573. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/thin_orchestrator.py +0 -0
  574. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/thin_runtime_loop.py +0 -0
  575. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/tracing.py +0 -0
  576. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/worker_controller.py +0 -0
  577. {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/worker_state.py +0 -0
  578. {controlmesh-0.40.2 → controlmesh-0.40.3}/docs/case-pack/README.md +0 -0
  579. {controlmesh-0.40.2 → controlmesh-0.40.3}/examples/case-pack/README.md +0 -0
  580. {controlmesh-0.40.2 → controlmesh-0.40.3}/plans/README.md +0 -0
  581. {controlmesh-0.40.2 → controlmesh-0.40.3}/plans/tasks/README.md +0 -0
  582. {controlmesh-0.40.2 → controlmesh-0.40.3}/plans/tasks/_template/artifacts/README.md +0 -0
  583. {controlmesh-0.40.2 → controlmesh-0.40.3}/plans/tasks/_template/logs/README.md +0 -0
  584. {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/__init__.py +0 -0
  585. {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/summary/__init__.py +0 -0
  586. {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/summary/test_contracts.py +0 -0
  587. {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/summary/test_policy.py +0 -0
  588. {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/summary/test_runtime.py +0 -0
  589. {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_autonomous_runtime_loop.py +0 -0
  590. {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_events.py +0 -0
  591. {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_execution_evidence_replay_query.py +0 -0
  592. {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_execution_evidence_store.py +0 -0
  593. {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_execution_payloads.py +0 -0
  594. {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_execution_read_surface.py +0 -0
  595. {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_execution_runtime_events.py +0 -0
  596. {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_first_engine.py +0 -0
  597. {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_promotion_bridge.py +0 -0
  598. {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_recovery_contracts.py +0 -0
  599. {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_recovery_execution.py +0 -0
  600. {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_recovery_policy.py +0 -0
  601. {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_recovery_thin_loop.py +0 -0
  602. {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_review.py +0 -0
  603. {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_review_handoff_packet.py +0 -0
  604. {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_runtime_execution_checkpoint.py +0 -0
  605. {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_runtime_message_api.py +0 -0
  606. {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_store.py +0 -0
  607. {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_task_packet.py +0 -0
  608. {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_thin_orchestrator.py +0 -0
  609. {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_thin_runtime_loop.py +0 -0
  610. {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_worker_controller.py +0 -0
  611. {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_worker_state.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: controlmesh
3
- Version: 0.40.2
3
+ Version: 0.40.3
4
4
  Summary: ControlMesh brings official coding CLIs into Telegram, Matrix, and Feishu with persistent workspaces, long-running jobs, and production-friendly bot operations.
5
5
  Project-URL: Homepage, https://github.com/muqiao215/ControlMesh
6
6
  Project-URL: Repository, https://github.com/muqiao215/ControlMesh
@@ -1,3 +1,3 @@
1
1
  """ControlMesh public package and CLI entrypoint surface."""
2
2
 
3
- __version__ = "0.40.2"
3
+ __version__ = "0.40.3"
@@ -207,6 +207,40 @@ class FeishuGroupConfig(BaseModel):
207
207
  default_factory=list,
208
208
  validation_alias=AliasChoices("allow_from_users", "allowFromUsers"),
209
209
  )
210
+ agent_roster: list[str] = Field(
211
+ default_factory=list,
212
+ validation_alias=AliasChoices("agent_roster", "agentRoster"),
213
+ )
214
+ default_agent: str = Field(
215
+ default="",
216
+ validation_alias=AliasChoices("default_agent", "defaultAgent"),
217
+ )
218
+ allow_interagent_handoff: bool = Field(
219
+ default=False,
220
+ validation_alias=AliasChoices("allow_interagent_handoff", "allowInteragentHandoff"),
221
+ )
222
+ max_handoff_depth: int = Field(
223
+ default=1,
224
+ validation_alias=AliasChoices("max_handoff_depth", "maxHandoffDepth"),
225
+ )
226
+
227
+ @field_validator("agent_roster")
228
+ @classmethod
229
+ def _validate_agent_roster(cls, value: list[str]) -> list[str]:
230
+ return [item.strip() for item in value if item.strip()]
231
+
232
+ @field_validator("default_agent")
233
+ @classmethod
234
+ def _validate_default_agent(cls, value: str) -> str:
235
+ return value.strip()
236
+
237
+ @field_validator("max_handoff_depth")
238
+ @classmethod
239
+ def _validate_max_handoff_depth(cls, value: int) -> int:
240
+ if value < 0:
241
+ msg = "Feishu group max_handoff_depth must be >= 0"
242
+ raise ValueError(msg)
243
+ return value
210
244
 
211
245
 
212
246
  class FeishuConfig(BaseModel):
@@ -118,6 +118,24 @@ _TextStreamCallback = Callable[[str], Awaitable[None]]
118
118
  _StatusStreamCallback = Callable[[str | None], Awaitable[None]]
119
119
  _ToolEventStreamCallback = Callable[[ToolUseEvent | ToolResultEvent], Awaitable[None]]
120
120
  _FEISHU_COMMAND_GUIDE_VERSION = 3
121
+ _FEISHU_AGENT_TARGET_PREFIXES = ("agent:", "agent=", "@agent:")
122
+
123
+
124
+ @dataclass(frozen=True, slots=True)
125
+ class FeishuAgentRoute:
126
+ """Resolved Feishu group routing target."""
127
+
128
+ agent: str
129
+ text: str
130
+ via_default: bool = False
131
+
132
+
133
+ @dataclass(frozen=True, slots=True)
134
+ class SimpleTextResult:
135
+ """Small result adapter for Feishu delivery paths."""
136
+
137
+ text: str
138
+ status: str = "completed"
121
139
 
122
140
 
123
141
  def _stream_callbacks_for_output_mode(
@@ -472,12 +490,20 @@ class FeishuBot:
472
490
  progress.start()
473
491
  if content_key:
474
492
  self._inflight_content_keys.add(content_key)
475
- auth_routed, result = await self._run_streaming_turn(
476
- message,
477
- chat_id=chat_id,
478
- topic_id=topic_id,
479
- progress=progress,
480
- )
493
+ route = self._resolve_group_agent_route(message)
494
+ if route is not None:
495
+ result = await self._run_group_agent_route(
496
+ message,
497
+ route=route,
498
+ )
499
+ auth_routed = False
500
+ else:
501
+ auth_routed, result = await self._run_streaming_turn(
502
+ message,
503
+ chat_id=chat_id,
504
+ topic_id=topic_id,
505
+ progress=progress,
506
+ )
481
507
  except Exception as exc:
482
508
  await progress.finish_failure(str(exc))
483
509
  raise
@@ -1033,6 +1059,131 @@ class FeishuBot:
1033
1059
  return True, None
1034
1060
  return False, result
1035
1061
 
1062
+ async def _run_group_agent_route(
1063
+ self,
1064
+ message: FeishuIncomingText,
1065
+ *,
1066
+ route: FeishuAgentRoute,
1067
+ ) -> Any:
1068
+ bus = self._interagent_bus()
1069
+ if bus is None:
1070
+ return SimpleTextResult(
1071
+ text="Agent handoff is unavailable: multi-agent runtime is not active.",
1072
+ status="failed",
1073
+ )
1074
+ prompt = self._build_group_agent_handoff_prompt(message, route=route)
1075
+ response = await bus.send(
1076
+ sender=self._agent_name,
1077
+ recipient=route.agent,
1078
+ message=prompt,
1079
+ new_session=False,
1080
+ )
1081
+ if not response.success:
1082
+ error = response.error or f"Agent `{route.agent}` did not return a result."
1083
+ return SimpleTextResult(text=error, status="failed")
1084
+ visible = f"[{route.agent}]\n{response.text.strip()}" if response.text.strip() else ""
1085
+ return SimpleTextResult(text=visible, status="completed")
1086
+
1087
+ def _interagent_bus(self) -> Any | None:
1088
+ if self._orchestrator is None:
1089
+ return None
1090
+ supervisor = getattr(self._orchestrator, "supervisor", None)
1091
+ return getattr(supervisor, "bus", None)
1092
+
1093
+ def _resolve_group_agent_route(self, message: FeishuIncomingText) -> FeishuAgentRoute | None:
1094
+ if not self._is_group_message(message):
1095
+ return None
1096
+ overrides = self._group_overrides_for_message(message)
1097
+ if overrides is None:
1098
+ return None
1099
+ roster = self._group_agent_roster_for_message(message)
1100
+ if not roster:
1101
+ return None
1102
+
1103
+ explicit = self._extract_explicit_agent_target(message.text, roster)
1104
+ if explicit is not None:
1105
+ agent, routed_text = explicit
1106
+ if agent == self._agent_name:
1107
+ return None
1108
+ return FeishuAgentRoute(agent=agent, text=routed_text)
1109
+
1110
+ default_agent = overrides.default_agent
1111
+ if default_agent and default_agent in roster and default_agent != self._agent_name:
1112
+ return FeishuAgentRoute(agent=default_agent, text=message.text.strip(), via_default=True)
1113
+ return None
1114
+
1115
+ def _group_agent_roster_for_message(self, message: FeishuIncomingText) -> list[str]:
1116
+ overrides = self._group_overrides_for_message(message)
1117
+ if overrides is None:
1118
+ return []
1119
+ return [name for name in overrides.agent_roster if name != self._agent_name]
1120
+
1121
+ def _extract_explicit_agent_target(
1122
+ self,
1123
+ text: str,
1124
+ roster: list[str],
1125
+ ) -> tuple[str, str] | None:
1126
+ stripped = text.strip()
1127
+ if not stripped:
1128
+ return None
1129
+ words = stripped.split(maxsplit=1)
1130
+ first = words[0]
1131
+ rest = words[1].strip() if len(words) > 1 else ""
1132
+ for prefix in _FEISHU_AGENT_TARGET_PREFIXES:
1133
+ if first.lower().startswith(prefix):
1134
+ candidate = first[len(prefix) :].strip()
1135
+ if candidate in roster:
1136
+ return candidate, rest
1137
+ if first.startswith("@"):
1138
+ candidate = first[1:].strip()
1139
+ if candidate in roster:
1140
+ return candidate, rest
1141
+ return None
1142
+
1143
+ def _build_group_agent_handoff_prompt(
1144
+ self,
1145
+ message: FeishuIncomingText,
1146
+ *,
1147
+ route: FeishuAgentRoute,
1148
+ ) -> str:
1149
+ overrides = self._group_overrides_for_message(message)
1150
+ allow_handoff = bool(overrides and overrides.allow_interagent_handoff)
1151
+ configured_depth = overrides.max_handoff_depth if allow_handoff and overrides else 0
1152
+ handoff_depth_used = 1 if allow_handoff and configured_depth > 0 else 0
1153
+ remaining_depth = max(configured_depth - handoff_depth_used, 0)
1154
+
1155
+ routed_message = FeishuIncomingText(
1156
+ sender_id=message.sender_id,
1157
+ chat_id=message.chat_id,
1158
+ message_id=message.message_id,
1159
+ text=route.text or message.text,
1160
+ thread_id=message.thread_id,
1161
+ create_time_ms=message.create_time_ms,
1162
+ message_type=message.message_type,
1163
+ root_id=message.root_id,
1164
+ parent_id=message.parent_id,
1165
+ quote_summary=message.quote_summary,
1166
+ post_title=message.post_title,
1167
+ chat_type=message.chat_type,
1168
+ mentions_bot=message.mentions_bot,
1169
+ replies_to_bot=message.replies_to_bot,
1170
+ )
1171
+ user_text = build_feishu_agent_input(routed_message)
1172
+ return (
1173
+ "[Feishu controlled group handoff]\n"
1174
+ f"source_agent={self._agent_name}\n"
1175
+ f"target_agent={route.agent}\n"
1176
+ f"chat_id={message.chat_id}\n"
1177
+ f"thread_id={message.thread_id or ''}\n"
1178
+ f"reply_target=original_feishu_group_thread\n"
1179
+ f"handoff_allowed={'true' if allow_handoff else 'false'}\n"
1180
+ f"remaining_handoff_depth={remaining_depth}\n"
1181
+ "Do not start a free bot-to-bot conversation. Answer this delegated request and "
1182
+ "return the final answer here.\n"
1183
+ "[/Feishu controlled group handoff]\n\n"
1184
+ f"{user_text}"
1185
+ )
1186
+
1036
1187
  def _should_use_bundled_native_runtime(self) -> bool:
1037
1188
  if self._config.feishu.runtime_mode != "native" or self._orchestrator is None:
1038
1189
  return False
@@ -2079,9 +2230,6 @@ class FeishuBot:
2079
2230
  open_id = mention_id.get("open_id")
2080
2231
  if isinstance(open_id, str) and open_id and open_id == bot_sender_id:
2081
2232
  return True
2082
- key = item.get("key")
2083
- if isinstance(key, str) and key.lower() == "@all":
2084
- return True
2085
2233
  return False
2086
2234
 
2087
2235
  def _message_replies_to_bot(self, message: dict[str, Any]) -> bool:
@@ -73,6 +73,7 @@ Runtime behavior notes:
73
73
  - [Telegram Setup](telegram-setup.md)
74
74
  - [WeChat / Weixin Setup](weixin-setup.md)
75
75
  - [QQ Bot Official Pivot](qqbot-official-pivot.md)
76
+ - [v0.40.3 Release Note](release-note-v0.40.3.md)
76
77
  - [v0.40.2 Release Note](release-note-v0.40.2.md)
77
78
  - [v0.40.1 Release Note](release-note-v0.40.1.md)
78
79
  - [v0.40.0 Release Note](release-note-v0.40.0.md)
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "controlmesh"
7
- version = "0.40.2"
7
+ version = "0.40.3"
8
8
  description = "ControlMesh brings official coding CLIs into Telegram, Matrix, and Feishu with persistent workspaces, long-running jobs, and production-friendly bot operations."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
File without changes
File without changes
File without changes