controlmesh 0.41.4__tar.gz → 0.41.7__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 (628) hide show
  1. {controlmesh-0.41.4 → controlmesh-0.41.7}/PKG-INFO +1 -1
  2. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/__init__.py +1 -1
  3. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/sender.py +150 -71
  4. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/terminal/enhanced_shell.py +2 -4
  5. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/terminal/help.py +4 -1
  6. {controlmesh-0.41.4 → controlmesh-0.41.7}/docs/README.md +1 -0
  7. {controlmesh-0.41.4 → controlmesh-0.41.7}/pyproject.toml +1 -1
  8. {controlmesh-0.41.4 → controlmesh-0.41.7}/.gitignore +0 -0
  9. {controlmesh-0.41.4 → controlmesh-0.41.7}/Dockerfile.sandbox +0 -0
  10. {controlmesh-0.41.4 → controlmesh-0.41.7}/LICENSE +0 -0
  11. {controlmesh-0.41.4 → controlmesh-0.41.7}/README.md +0 -0
  12. {controlmesh-0.41.4 → controlmesh-0.41.7}/config.example.json +0 -0
  13. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/__main__.py +0 -0
  14. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_banner.txt +0 -0
  15. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/RULES.md +0 -0
  16. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/config/RULES-all-clis.md +0 -0
  17. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/config/RULES-claude-only.md +0 -0
  18. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/config/RULES-codex-only.md +0 -0
  19. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/config/RULES-gemini-only.md +0 -0
  20. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/JOIN_NOTIFICATION.md +0 -0
  21. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/RULES.md +0 -0
  22. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/cron_tasks/RULES-all-clis.md +0 -0
  23. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/cron_tasks/RULES-claude-only.md +0 -0
  24. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/cron_tasks/RULES-codex-only.md +0 -0
  25. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/cron_tasks/RULES-gemini-only.md +0 -0
  26. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/cron_tasks/flow-triggered-template/TASK_DESCRIPTION.md +0 -0
  27. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/cron_tasks/release-ci-monitor-template/RULES-template.md +0 -0
  28. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/cron_tasks/release-ci-monitor-template/TASK_DESCRIPTION.md +0 -0
  29. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/cron_tasks/scheduled-recurring-template/TASK_DESCRIPTION.md +0 -0
  30. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/cron_tasks/webhook-triggered-template/TASK_DESCRIPTION.md +0 -0
  31. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/output_to_user/RULES.md +0 -0
  32. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/routing/activation_policies.yaml +0 -0
  33. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/routing/capabilities.yaml +0 -0
  34. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/skills/RULES.md +0 -0
  35. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/skills/skill-creator/LICENSE.txt +0 -0
  36. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/skills/skill-creator/SKILL.md +0 -0
  37. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/skills/skill-creator/references/output-patterns.md +0 -0
  38. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/skills/skill-creator/references/workflows.md +0 -0
  39. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/skills/skill-creator/scripts/init_skill.py +0 -0
  40. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/skills/skill-creator/scripts/package_skill.py +0 -0
  41. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/skills/skill-creator/scripts/quick_validate.py +0 -0
  42. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tasks/RULES.md +0 -0
  43. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/telegram_files/RULES.md +0 -0
  44. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/RULES.md +0 -0
  45. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/_tool_shared.py +0 -0
  46. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/agent_tools/RULES.md +0 -0
  47. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/agent_tools/ask_agent.py +0 -0
  48. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/agent_tools/ask_agent_async.py +0 -0
  49. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/agent_tools/create_agent.py +0 -0
  50. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/agent_tools/edit_shared_knowledge.py +0 -0
  51. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/agent_tools/list_agents.py +0 -0
  52. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/agent_tools/remove_agent.py +0 -0
  53. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/cron_tools/RULES-all-clis.md +0 -0
  54. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/cron_tools/RULES-claude-only.md +0 -0
  55. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/cron_tools/RULES-codex-only.md +0 -0
  56. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/cron_tools/RULES-gemini-only.md +0 -0
  57. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/cron_tools/_shared.py +0 -0
  58. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/cron_tools/cron_add.py +0 -0
  59. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/cron_tools/cron_edit.py +0 -0
  60. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/cron_tools/cron_list.py +0 -0
  61. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/cron_tools/cron_monitor.py +0 -0
  62. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/cron_tools/cron_remove.py +0 -0
  63. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/cron_tools/cron_time.py +0 -0
  64. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/media_tools/RULES.md +0 -0
  65. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/media_tools/file_info.py +0 -0
  66. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/media_tools/list_files.py +0 -0
  67. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/media_tools/process_video.py +0 -0
  68. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/media_tools/read_document.py +0 -0
  69. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/media_tools/transcribe_audio.py +0 -0
  70. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/task_tools/RULES.md +0 -0
  71. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/task_tools/_shared.py +0 -0
  72. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/task_tools/ask_parent.py +0 -0
  73. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/task_tools/attach_task.py +0 -0
  74. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/task_tools/cancel_task.py +0 -0
  75. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/task_tools/check_task_updates.py +0 -0
  76. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/task_tools/create_task.py +0 -0
  77. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/task_tools/delete_task.py +0 -0
  78. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/task_tools/list_tasks.py +0 -0
  79. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/task_tools/release_task.py +0 -0
  80. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/task_tools/resume_task.py +0 -0
  81. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/task_tools/route_task.py +0 -0
  82. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/task_tools/tell_task.py +0 -0
  83. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/user_tools/RULES.md +0 -0
  84. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/webhook_tools/RULES-all-clis.md +0 -0
  85. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/webhook_tools/RULES-claude-only.md +0 -0
  86. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/webhook_tools/RULES-codex-only.md +0 -0
  87. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/webhook_tools/RULES-gemini-only.md +0 -0
  88. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/webhook_tools/_shared.py +0 -0
  89. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/webhook_tools/setup_ci_failure_webhook.py +0 -0
  90. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/webhook_tools/webhook_add.py +0 -0
  91. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/webhook_tools/webhook_edit.py +0 -0
  92. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/webhook_tools/webhook_list.py +0 -0
  93. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/webhook_tools/webhook_remove.py +0 -0
  94. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/webhook_tools/webhook_rotate_token.py +0 -0
  95. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/webhook_tools/webhook_test.py +0 -0
  96. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/__init__.py +0 -0
  97. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/VENDORED_FROM.md +0 -0
  98. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/__init__.py +0 -0
  99. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/__init__.py +0 -0
  100. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/agent_runtime.py +0 -0
  101. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/app_registration.py +0 -0
  102. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/cardkit.py +0 -0
  103. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/claude_adapter.py +0 -0
  104. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/cli.py +0 -0
  105. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/client.py +0 -0
  106. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/device_flow.py +0 -0
  107. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/domains.py +0 -0
  108. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/message_context.py +0 -0
  109. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/models.py +0 -0
  110. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/native_agent_tools.py +0 -0
  111. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/native_contract.py +0 -0
  112. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/orchestration.py +0 -0
  113. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/owner_policy.py +0 -0
  114. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/probe.py +0 -0
  115. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/runtime_cards.py +0 -0
  116. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/scopes.py +0 -0
  117. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/token_store.py +0 -0
  118. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/runner.py +0 -0
  119. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/agents_runtime/__init__.py +0 -0
  120. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/agents_runtime/context.py +0 -0
  121. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/agents_runtime/manager.py +0 -0
  122. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/agents_runtime/progress.py +0 -0
  123. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/agents_runtime/results.py +0 -0
  124. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/agents_runtime/tools.py +0 -0
  125. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/api/__init__.py +0 -0
  126. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/api/admin_read.py +0 -0
  127. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/api/catalog_http.py +0 -0
  128. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/api/crypto.py +0 -0
  129. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/api/server.py +0 -0
  130. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/background/__init__.py +0 -0
  131. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/background/models.py +0 -0
  132. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/background/observer.py +0 -0
  133. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/bus/__init__.py +0 -0
  134. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/bus/adapters.py +0 -0
  135. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/bus/bus.py +0 -0
  136. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/bus/cron_sanitize.py +0 -0
  137. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/bus/envelope.py +0 -0
  138. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/bus/lock_pool.py +0 -0
  139. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/case_pack/__init__.py +0 -0
  140. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/case_pack/__main__.py +0 -0
  141. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/case_pack/io.py +0 -0
  142. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/case_pack/lint.py +0 -0
  143. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/case_pack/models.py +0 -0
  144. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/case_pack/render.py +0 -0
  145. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cleanup/__init__.py +0 -0
  146. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cleanup/observer.py +0 -0
  147. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/__init__.py +0 -0
  148. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/auth.py +0 -0
  149. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/base.py +0 -0
  150. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/claude_provider.py +0 -0
  151. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/claw_provider.py +0 -0
  152. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/coalescer.py +0 -0
  153. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/codex_cache.py +0 -0
  154. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/codex_cache_observer.py +0 -0
  155. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/codex_discovery.py +0 -0
  156. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/codex_events.py +0 -0
  157. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/codex_hooks.py +0 -0
  158. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/codex_provider.py +0 -0
  159. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/diagnostics.py +0 -0
  160. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/events.py +0 -0
  161. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/executor.py +0 -0
  162. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/factory.py +0 -0
  163. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/gemini_cache.py +0 -0
  164. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/gemini_cache_observer.py +0 -0
  165. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/gemini_events.py +0 -0
  166. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/gemini_provider.py +0 -0
  167. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/gemini_utils.py +0 -0
  168. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/init_wizard.py +0 -0
  169. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/introspection.py +0 -0
  170. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/liveness.py +0 -0
  171. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/model_cache.py +0 -0
  172. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/openai_agents_provider.py +0 -0
  173. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/opencode_discovery.py +0 -0
  174. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/opencode_provider.py +0 -0
  175. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/param_resolver.py +0 -0
  176. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/process_registry.py +0 -0
  177. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/service.py +0 -0
  178. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/stream_events.py +0 -0
  179. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/supervisor.py +0 -0
  180. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/timeout_controller.py +0 -0
  181. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/types.py +0 -0
  182. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli_commands/__init__.py +0 -0
  183. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli_commands/agents.py +0 -0
  184. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli_commands/api_cmd.py +0 -0
  185. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli_commands/auth.py +0 -0
  186. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli_commands/cron.py +0 -0
  187. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli_commands/docker.py +0 -0
  188. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli_commands/feishu.py +0 -0
  189. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli_commands/install.py +0 -0
  190. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli_commands/lifecycle.py +0 -0
  191. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli_commands/runtime.py +0 -0
  192. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli_commands/service.py +0 -0
  193. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli_commands/status.py +0 -0
  194. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli_commands/tasks.py +0 -0
  195. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli_commands/terminal.py +0 -0
  196. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/command_registry.py +0 -0
  197. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/commands.py +0 -0
  198. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/config.py +0 -0
  199. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/config_reload.py +0 -0
  200. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cron/__init__.py +0 -0
  201. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cron/dependency_queue.py +0 -0
  202. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cron/execution.py +0 -0
  203. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cron/manager.py +0 -0
  204. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cron/observer.py +0 -0
  205. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cron/policy.py +0 -0
  206. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/errors.py +0 -0
  207. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/files/__init__.py +0 -0
  208. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/files/allowed_roots.py +0 -0
  209. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/files/browser.py +0 -0
  210. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/files/image_processor.py +0 -0
  211. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/files/prompt.py +0 -0
  212. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/files/storage.py +0 -0
  213. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/files/tags.py +0 -0
  214. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/gateways/__init__.py +0 -0
  215. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/gateways/config.py +0 -0
  216. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/gateways/types.py +0 -0
  217. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/heartbeat/__init__.py +0 -0
  218. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/heartbeat/observer.py +0 -0
  219. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/history/__init__.py +0 -0
  220. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/history/catalog.py +0 -0
  221. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/history/index.py +0 -0
  222. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/history/models.py +0 -0
  223. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/history/store.py +0 -0
  224. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/__init__.py +0 -0
  225. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/de/chat.toml +0 -0
  226. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/de/cli.toml +0 -0
  227. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/de/commands.toml +0 -0
  228. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/de/wizard.toml +0 -0
  229. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/en/chat.toml +0 -0
  230. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/en/cli.toml +0 -0
  231. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/en/commands.toml +0 -0
  232. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/en/wizard.toml +0 -0
  233. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/es/chat.toml +0 -0
  234. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/es/cli.toml +0 -0
  235. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/es/commands.toml +0 -0
  236. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/es/wizard.toml +0 -0
  237. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/fr/chat.toml +0 -0
  238. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/fr/cli.toml +0 -0
  239. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/fr/commands.toml +0 -0
  240. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/fr/wizard.toml +0 -0
  241. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/loader.py +0 -0
  242. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/nl/chat.toml +0 -0
  243. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/nl/cli.toml +0 -0
  244. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/nl/commands.toml +0 -0
  245. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/nl/wizard.toml +0 -0
  246. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/pt/chat.toml +0 -0
  247. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/pt/cli.toml +0 -0
  248. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/pt/commands.toml +0 -0
  249. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/pt/wizard.toml +0 -0
  250. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/ru/chat.toml +0 -0
  251. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/ru/cli.toml +0 -0
  252. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/ru/commands.toml +0 -0
  253. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/ru/wizard.toml +0 -0
  254. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/zh/chat.toml +0 -0
  255. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/zh/cli.toml +0 -0
  256. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/zh/commands.toml +0 -0
  257. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/zh/wizard.toml +0 -0
  258. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/__init__.py +0 -0
  259. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/atomic_io.py +0 -0
  260. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/base_observer.py +0 -0
  261. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/base_task_observer.py +0 -0
  262. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/boot_id.py +0 -0
  263. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/docker.py +0 -0
  264. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/docker_extras.py +0 -0
  265. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/env_secrets.py +0 -0
  266. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/file_watcher.py +0 -0
  267. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/fs.py +0 -0
  268. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/inflight.py +0 -0
  269. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/install.py +0 -0
  270. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/json_store.py +0 -0
  271. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/pidlock.py +0 -0
  272. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/platform.py +0 -0
  273. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/process_tree.py +0 -0
  274. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/recovery.py +0 -0
  275. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/restart.py +0 -0
  276. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/service.py +0 -0
  277. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/service_base.py +0 -0
  278. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/service_linux.py +0 -0
  279. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/service_logs.py +0 -0
  280. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/service_macos.py +0 -0
  281. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/service_windows.py +0 -0
  282. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/startup_state.py +0 -0
  283. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/task_runner.py +0 -0
  284. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/updater.py +0 -0
  285. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/version.py +0 -0
  286. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/integrations/__init__.py +0 -0
  287. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/integrations/feishu_auth_kit.py +0 -0
  288. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/log_context.py +0 -0
  289. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/logging_config.py +0 -0
  290. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/memory/__init__.py +0 -0
  291. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/memory/capture.py +0 -0
  292. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/memory/commands.py +0 -0
  293. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/memory/dreaming.py +0 -0
  294. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/memory/events.py +0 -0
  295. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/memory/frequency.py +0 -0
  296. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/memory/models.py +0 -0
  297. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/memory/promotion.py +0 -0
  298. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/memory/runtime_capture.py +0 -0
  299. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/memory/search.py +0 -0
  300. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/memory/semantic.py +0 -0
  301. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/memory/store.py +0 -0
  302. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/__init__.py +0 -0
  303. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/address.py +0 -0
  304. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/callback_router.py +0 -0
  305. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/capabilities.py +0 -0
  306. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/commands.py +0 -0
  307. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/__init__.py +0 -0
  308. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/auth/__init__.py +0 -0
  309. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/auth/app_info.py +0 -0
  310. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/auth/auth_cards.py +0 -0
  311. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/auth/brand.py +0 -0
  312. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/auth/card_auth.py +0 -0
  313. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/auth/card_auth_context.py +0 -0
  314. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/auth/card_auth_runner.py +0 -0
  315. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/auth/device_flow.py +0 -0
  316. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/auth/errors.py +0 -0
  317. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/auth/feishu_card_sender.py +0 -0
  318. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/auth/native_auth_all_runner.py +0 -0
  319. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/auth/native_auth_useful_runner.py +0 -0
  320. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/auth/orchestration_runner.py +0 -0
  321. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/auth/runtime_auth.py +0 -0
  322. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/auth/runtime_continuation.py +0 -0
  323. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/auth/token_store.py +0 -0
  324. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/auth/uat_client.py +0 -0
  325. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/bot.py +0 -0
  326. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/bundled_runtime.py +0 -0
  327. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/card_action_payload.py +0 -0
  328. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/card_stream.py +0 -0
  329. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/command_center_card.py +0 -0
  330. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/id_map.py +0 -0
  331. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/inbound.py +0 -0
  332. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/long_connection.py +0 -0
  333. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/media.py +0 -0
  334. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/media_meta.py +0 -0
  335. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/message_context.py +0 -0
  336. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/native_tools/__init__.py +0 -0
  337. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/native_tools/agent_runtime.py +0 -0
  338. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/native_tools/client.py +0 -0
  339. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/native_tools/executor.py +0 -0
  340. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/progress_preview.py +0 -0
  341. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/runtime_state.py +0 -0
  342. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/sender.py +0 -0
  343. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/settings_card.py +0 -0
  344. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/startup.py +0 -0
  345. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/tool_auth.py +0 -0
  346. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/transport.py +0 -0
  347. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/matrix/__init__.py +0 -0
  348. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/matrix/bot.py +0 -0
  349. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/matrix/buttons.py +0 -0
  350. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/matrix/credentials.py +0 -0
  351. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/matrix/file_browser.py +0 -0
  352. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/matrix/formatting.py +0 -0
  353. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/matrix/id_map.py +0 -0
  354. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/matrix/media.py +0 -0
  355. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/matrix/sender.py +0 -0
  356. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/matrix/startup.py +0 -0
  357. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/matrix/streaming.py +0 -0
  358. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/matrix/streaming_mode.py +0 -0
  359. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/matrix/transport.py +0 -0
  360. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/matrix/typing.py +0 -0
  361. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/multi.py +0 -0
  362. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/notifications.py +0 -0
  363. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/protocol.py +0 -0
  364. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/qqbot/__init__.py +0 -0
  365. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/qqbot/api.py +0 -0
  366. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/qqbot/bot.py +0 -0
  367. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/qqbot/gateway.py +0 -0
  368. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/qqbot/inbound.py +0 -0
  369. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/qqbot/known_targets.py +0 -0
  370. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/qqbot/media.py +0 -0
  371. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/qqbot/outbound.py +0 -0
  372. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/qqbot/ref_index.py +0 -0
  373. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/qqbot/session_store.py +0 -0
  374. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/qqbot/target.py +0 -0
  375. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/qqbot/token_manager.py +0 -0
  376. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/qqbot/transport.py +0 -0
  377. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/qqbot/types.py +0 -0
  378. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/qqbot/typing_keepalive.py +0 -0
  379. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/registry.py +0 -0
  380. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/send_opts.py +0 -0
  381. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/__init__.py +0 -0
  382. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/abort.py +0 -0
  383. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/app.py +0 -0
  384. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/buttons.py +0 -0
  385. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/callbacks.py +0 -0
  386. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/chat_tracker.py +0 -0
  387. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/controlmesh_images/logo_text.png +0 -0
  388. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/controlmesh_images/welcome.png +0 -0
  389. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/dedup.py +0 -0
  390. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/edit_streaming.py +0 -0
  391. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/file_browser.py +0 -0
  392. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/formatting.py +0 -0
  393. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/handlers.py +0 -0
  394. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/inbound_spool.py +0 -0
  395. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/lane_state.py +0 -0
  396. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/media.py +0 -0
  397. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/message_dispatch.py +0 -0
  398. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/middleware.py +0 -0
  399. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/runtime_state.py +0 -0
  400. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/startup.py +0 -0
  401. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/streaming.py +0 -0
  402. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/topic.py +0 -0
  403. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/transport.py +0 -0
  404. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/typing.py +0 -0
  405. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/upgrade_handler.py +0 -0
  406. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/welcome.py +0 -0
  407. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/weixin/__init__.py +0 -0
  408. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/weixin/api.py +0 -0
  409. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/weixin/auth_state.py +0 -0
  410. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/weixin/auth_store.py +0 -0
  411. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/weixin/bot.py +0 -0
  412. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/weixin/id_map.py +0 -0
  413. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/weixin/inbound_spool.py +0 -0
  414. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/weixin/runtime.py +0 -0
  415. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/weixin/runtime_state.py +0 -0
  416. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/weixin/transport.py +0 -0
  417. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/multiagent/__init__.py +0 -0
  418. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/multiagent/approval_intent.py +0 -0
  419. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/multiagent/bus.py +0 -0
  420. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/multiagent/commands.py +0 -0
  421. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/multiagent/health.py +0 -0
  422. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/multiagent/internal_api.py +0 -0
  423. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/multiagent/models.py +0 -0
  424. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/multiagent/plan_review_loop.py +0 -0
  425. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/multiagent/registry.py +0 -0
  426. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/multiagent/release_gate.py +0 -0
  427. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/multiagent/shared_knowledge.py +0 -0
  428. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/multiagent/stack.py +0 -0
  429. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/multiagent/supervisor.py +0 -0
  430. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/native_commands/__init__.py +0 -0
  431. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/native_commands/fallbacks.py +0 -0
  432. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/native_commands/render.py +0 -0
  433. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/__init__.py +0 -0
  434. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/commands.py +0 -0
  435. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/core.py +0 -0
  436. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/directives.py +0 -0
  437. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/flows.py +0 -0
  438. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/hooks.py +0 -0
  439. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/injection.py +0 -0
  440. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/lifecycle.py +0 -0
  441. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/observers.py +0 -0
  442. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/presentation.py +0 -0
  443. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/providers.py +0 -0
  444. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/registry.py +0 -0
  445. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/selectors/__init__.py +0 -0
  446. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/selectors/agent_router.py +0 -0
  447. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/selectors/capability_registry.py +0 -0
  448. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/selectors/cron_selector.py +0 -0
  449. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/selectors/model_selector.py +0 -0
  450. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/selectors/models.py +0 -0
  451. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/selectors/session_selector.py +0 -0
  452. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/selectors/settings_selector.py +0 -0
  453. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/selectors/task_selector.py +0 -0
  454. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/selectors/utils.py +0 -0
  455. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/planning_files.py +0 -0
  456. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/provider_binding.py +0 -0
  457. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/provider_health.py +0 -0
  458. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/routing/__init__.py +0 -0
  459. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/routing/activation.py +0 -0
  460. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/routing/capabilities.py +0 -0
  461. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/routing/policy.py +0 -0
  462. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/routing/router.py +0 -0
  463. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/routing/score_events.py +0 -0
  464. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/routing/scorer.py +0 -0
  465. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/routing/workunit.py +0 -0
  466. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/run.py +0 -0
  467. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/runtime/__init__.py +0 -0
  468. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/runtime/agent_inbox.py +0 -0
  469. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/runtime/host_jobs.py +0 -0
  470. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/runtime/models.py +0 -0
  471. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/runtime/registry.py +0 -0
  472. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/runtime/store.py +0 -0
  473. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/security/__init__.py +0 -0
  474. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/security/content.py +0 -0
  475. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/security/paths.py +0 -0
  476. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/session/__init__.py +0 -0
  477. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/session/key.py +0 -0
  478. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/session/manager.py +0 -0
  479. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/session/named.py +0 -0
  480. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/tasks/__init__.py +0 -0
  481. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/tasks/evaluator.py +0 -0
  482. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/tasks/evidence.py +0 -0
  483. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/tasks/host_execution.py +0 -0
  484. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/tasks/hub.py +0 -0
  485. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/tasks/models.py +0 -0
  486. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/tasks/registry.py +0 -0
  487. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/tasks/task_policy.py +0 -0
  488. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/__init__.py +0 -0
  489. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/api.py +0 -0
  490. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/contracts.py +0 -0
  491. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/execution.py +0 -0
  492. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/live.py +0 -0
  493. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/models.py +0 -0
  494. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/orchestrator.py +0 -0
  495. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/phases.py +0 -0
  496. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/presentation.py +0 -0
  497. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/runtime_attachment.py +0 -0
  498. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/runtime_control.py +0 -0
  499. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/state/__init__.py +0 -0
  500. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/state/base.py +0 -0
  501. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/state/dispatch.py +0 -0
  502. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/state/events.py +0 -0
  503. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/state/mailbox.py +0 -0
  504. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/state/manifest.py +0 -0
  505. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/state/phase.py +0 -0
  506. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/state/recovery.py +0 -0
  507. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/state/runtime.py +0 -0
  508. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/state/snapshot.py +0 -0
  509. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/state/store.py +0 -0
  510. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/state/tasks.py +0 -0
  511. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/terminal/__init__.py +0 -0
  512. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/terminal/app.py +0 -0
  513. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/terminal/command_router.py +0 -0
  514. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/terminal/config.py +0 -0
  515. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/terminal/errors.py +0 -0
  516. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/terminal/inbox.py +0 -0
  517. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/terminal/memory_context.py +0 -0
  518. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/terminal/modes.py +0 -0
  519. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/terminal/native_pty.py +0 -0
  520. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/terminal/providers.py +0 -0
  521. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/terminal/rendering.py +0 -0
  522. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/terminal/runtime.py +0 -0
  523. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/terminal/session.py +0 -0
  524. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/terminal/tasks_view.py +0 -0
  525. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/text/__init__.py +0 -0
  526. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/text/frontstage_delivery.py +0 -0
  527. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/text/response_format.py +0 -0
  528. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/text/tool_event_format.py +0 -0
  529. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/utils/__init__.py +0 -0
  530. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/utils/quiet_hours.py +0 -0
  531. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/webhook/__init__.py +0 -0
  532. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/webhook/auth.py +0 -0
  533. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/webhook/manager.py +0 -0
  534. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/webhook/models.py +0 -0
  535. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/webhook/observer.py +0 -0
  536. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/webhook/server.py +0 -0
  537. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/workspace/__init__.py +0 -0
  538. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/workspace/cron_tasks.py +0 -0
  539. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/workspace/init.py +0 -0
  540. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/workspace/loader.py +0 -0
  541. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/workspace/paths.py +0 -0
  542. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/workspace/rules_selector.py +0 -0
  543. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/workspace/skill_sync.py +0 -0
  544. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/__init__.py +0 -0
  545. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/autonomous_runtime_loop.py +0 -0
  546. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/canonical_section_writer.py +0 -0
  547. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/contracts.py +0 -0
  548. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/engine.py +0 -0
  549. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/events.py +0 -0
  550. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/evidence_identity.py +0 -0
  551. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/execution_event_shape.md +0 -0
  552. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/execution_evidence_replay_query.py +0 -0
  553. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/execution_evidence_replay_query_boundary.md +0 -0
  554. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/execution_payload_seam.md +0 -0
  555. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/execution_payloads.py +0 -0
  556. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/execution_read_surface.py +0 -0
  557. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/execution_runtime_events.py +0 -0
  558. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/execution_wiring_boundary.md +0 -0
  559. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/file_backed_primary_boundary.md +0 -0
  560. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/first_engine_boundary.md +0 -0
  561. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/first_engine_contract_surface.md +0 -0
  562. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/first_engine_test_matrix.md +0 -0
  563. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/first_engine_trace_examples.md +0 -0
  564. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/orchestrator_boundary.md +0 -0
  565. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/promotion_bridge.py +0 -0
  566. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/promotion_controller.py +0 -0
  567. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/promotion_receipt.py +0 -0
  568. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/py.typed +0 -0
  569. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/records.py +0 -0
  570. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/recovery/__init__.py +0 -0
  571. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/recovery/contracts.py +0 -0
  572. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/recovery/execution.py +0 -0
  573. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/recovery/policy.py +0 -0
  574. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/recovery_execution_boundary.md +0 -0
  575. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/recovery_thin_loop.py +0 -0
  576. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/review.py +0 -0
  577. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/review_handoff_packet.py +0 -0
  578. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/review_query_read_surface_boundary.md +0 -0
  579. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/runtime.py +0 -0
  580. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/runtime_execution_checkpoint.py +0 -0
  581. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/runtime_message_api.py +0 -0
  582. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/serde.py +0 -0
  583. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/store.py +0 -0
  584. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/summary/__init__.py +0 -0
  585. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/summary/contracts.py +0 -0
  586. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/summary/policy.py +0 -0
  587. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/summary/runtime.py +0 -0
  588. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/summary_trigger_landing_boundary.md +0 -0
  589. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/task_packet.py +0 -0
  590. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/thin_orchestrator.py +0 -0
  591. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/thin_runtime_loop.py +0 -0
  592. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/tracing.py +0 -0
  593. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/worker_controller.py +0 -0
  594. {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/worker_state.py +0 -0
  595. {controlmesh-0.41.4 → controlmesh-0.41.7}/docs/case-pack/README.md +0 -0
  596. {controlmesh-0.41.4 → controlmesh-0.41.7}/examples/case-pack/README.md +0 -0
  597. {controlmesh-0.41.4 → controlmesh-0.41.7}/plans/README.md +0 -0
  598. {controlmesh-0.41.4 → controlmesh-0.41.7}/plans/tasks/README.md +0 -0
  599. {controlmesh-0.41.4 → controlmesh-0.41.7}/plans/tasks/_template/artifacts/README.md +0 -0
  600. {controlmesh-0.41.4 → controlmesh-0.41.7}/plans/tasks/_template/logs/README.md +0 -0
  601. {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/__init__.py +0 -0
  602. {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/summary/__init__.py +0 -0
  603. {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/summary/test_contracts.py +0 -0
  604. {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/summary/test_policy.py +0 -0
  605. {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/summary/test_runtime.py +0 -0
  606. {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_autonomous_runtime_loop.py +0 -0
  607. {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_events.py +0 -0
  608. {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_execution_evidence_replay_query.py +0 -0
  609. {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_execution_evidence_store.py +0 -0
  610. {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_execution_payloads.py +0 -0
  611. {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_execution_read_surface.py +0 -0
  612. {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_execution_runtime_events.py +0 -0
  613. {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_first_engine.py +0 -0
  614. {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_promotion_bridge.py +0 -0
  615. {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_recovery_contracts.py +0 -0
  616. {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_recovery_execution.py +0 -0
  617. {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_recovery_policy.py +0 -0
  618. {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_recovery_thin_loop.py +0 -0
  619. {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_review.py +0 -0
  620. {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_review_handoff_packet.py +0 -0
  621. {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_runtime_execution_checkpoint.py +0 -0
  622. {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_runtime_message_api.py +0 -0
  623. {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_store.py +0 -0
  624. {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_task_packet.py +0 -0
  625. {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_thin_orchestrator.py +0 -0
  626. {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_thin_runtime_loop.py +0 -0
  627. {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_worker_controller.py +0 -0
  628. {controlmesh-0.41.4 → controlmesh-0.41.7}/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.41.4
3
+ Version: 0.41.7
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.41.4"
3
+ __version__ = "0.41.7"
@@ -6,13 +6,13 @@ import asyncio
6
6
  import html as html_mod
7
7
  import logging
8
8
  import re
9
- from collections.abc import Sequence
9
+ from collections.abc import Awaitable, Callable, Sequence
10
10
  from dataclasses import dataclass
11
11
  from pathlib import Path
12
12
  from typing import TYPE_CHECKING
13
13
 
14
14
  from aiogram.enums import ParseMode
15
- from aiogram.exceptions import TelegramBadRequest, TelegramNetworkError
15
+ from aiogram.exceptions import TelegramBadRequest, TelegramNetworkError, TelegramRetryAfter
16
16
  from aiogram.types import FSInputFile, InlineKeyboardMarkup, ReplyParameters
17
17
 
18
18
  from controlmesh.files.tags import FILE_PATH_RE, extract_file_paths, guess_mime, path_from_file_tag
@@ -43,6 +43,56 @@ logger = logging.getLogger(__name__)
43
43
  _PHOTO_SUFFIXES = frozenset({".jpg", ".jpeg", ".png", ".gif", ".webp", ".bmp"})
44
44
  _VIDEO_SUFFIXES = frozenset({".mp4"})
45
45
  _AUDIO_SUFFIXES = frozenset({".mp3", ".m4a"})
46
+ _SEND_RETRY_DELAYS_SECONDS = (0.75, 2.0)
47
+
48
+
49
+ async def _with_telegram_send_retries(
50
+ operation: str,
51
+ func: Callable[[], Awaitable[Message | object]],
52
+ ) -> Message | object:
53
+ """Run one Telegram send/edit operation with short retry on transient transport errors."""
54
+ attempts = len(_SEND_RETRY_DELAYS_SECONDS) + 1
55
+ for attempt in range(1, attempts + 1):
56
+ try:
57
+ return await func()
58
+ except TelegramRetryAfter as exc:
59
+ delay = max(float(getattr(exc, "retry_after", 1.0)), 0.0)
60
+ if attempt >= attempts:
61
+ logger.warning(
62
+ "Telegram %s failed after retry-after attempts=%d",
63
+ operation,
64
+ attempts,
65
+ exc_info=True,
66
+ )
67
+ raise
68
+ logger.warning(
69
+ "Telegram %s rate limited; retrying in %.2fs attempt=%d/%d",
70
+ operation,
71
+ delay,
72
+ attempt + 1,
73
+ attempts,
74
+ )
75
+ await asyncio.sleep(delay)
76
+ except TelegramNetworkError:
77
+ if attempt >= attempts:
78
+ logger.warning(
79
+ "Telegram %s network error after attempts=%d",
80
+ operation,
81
+ attempts,
82
+ exc_info=True,
83
+ )
84
+ raise
85
+ delay = _SEND_RETRY_DELAYS_SECONDS[attempt - 1]
86
+ logger.warning(
87
+ "Telegram %s network error; retrying in %.2fs attempt=%d/%d",
88
+ operation,
89
+ delay,
90
+ attempt + 1,
91
+ attempts,
92
+ exc_info=True,
93
+ )
94
+ await asyncio.sleep(delay)
95
+ raise RuntimeError(f"Telegram {operation} retry loop exhausted unexpectedly")
46
96
 
47
97
 
48
98
  def build_outbound_message_key(chat_id: int, message_id: int) -> str:
@@ -82,10 +132,13 @@ def _select_telegram_upload_mode(path: Path, mime: str) -> str:
82
132
 
83
133
 
84
134
  async def _send_document(bot: Bot, chat_id: int, path: Path, thread_id: int | None) -> None:
85
- message = await bot.send_document(
86
- chat_id=chat_id,
87
- document=FSInputFile(path),
88
- message_thread_id=thread_id,
135
+ message = await _with_telegram_send_retries(
136
+ "send_document",
137
+ lambda: bot.send_document(
138
+ chat_id=chat_id,
139
+ document=FSInputFile(path),
140
+ message_thread_id=thread_id,
141
+ ),
89
142
  )
90
143
  remember_sent_message(bot, chat_id, message)
91
144
 
@@ -106,22 +159,31 @@ async def _send_by_mode(
106
159
 
107
160
  try:
108
161
  if upload_mode == "photo":
109
- message = await bot.send_photo(
110
- chat_id=chat_id,
111
- photo=input_file,
112
- message_thread_id=thread_id,
162
+ message = await _with_telegram_send_retries(
163
+ "send_photo",
164
+ lambda: bot.send_photo(
165
+ chat_id=chat_id,
166
+ photo=input_file,
167
+ message_thread_id=thread_id,
168
+ ),
113
169
  )
114
170
  elif upload_mode == "video":
115
- message = await bot.send_video(
116
- chat_id=chat_id,
117
- video=input_file,
118
- message_thread_id=thread_id,
171
+ message = await _with_telegram_send_retries(
172
+ "send_video",
173
+ lambda: bot.send_video(
174
+ chat_id=chat_id,
175
+ video=input_file,
176
+ message_thread_id=thread_id,
177
+ ),
119
178
  )
120
179
  elif upload_mode == "audio":
121
- message = await bot.send_audio(
122
- chat_id=chat_id,
123
- audio=input_file,
124
- message_thread_id=thread_id,
180
+ message = await _with_telegram_send_retries(
181
+ "send_audio",
182
+ lambda: bot.send_audio(
183
+ chat_id=chat_id,
184
+ audio=input_file,
185
+ message_thread_id=thread_id,
186
+ ),
125
187
  )
126
188
  else:
127
189
  await _send_document(bot, chat_id, path, thread_id)
@@ -174,27 +236,30 @@ async def _send_text_chunks(
174
236
  for i, chunk in enumerate(chunks):
175
237
  try:
176
238
  if reply_to_message_id and i == 0:
177
- last_msg = await bot.send_message(
178
- chat_id=chat_id,
179
- text=chunk,
180
- parse_mode=ParseMode.HTML,
181
- reply_parameters=ReplyParameters(
182
- message_id=reply_to_message_id,
183
- allow_sending_without_reply=True,
239
+ last_msg = await _with_telegram_send_retries(
240
+ "send_message",
241
+ lambda chunk=chunk: bot.send_message(
242
+ chat_id=chat_id,
243
+ text=chunk,
244
+ parse_mode=ParseMode.HTML,
245
+ reply_parameters=ReplyParameters(
246
+ message_id=reply_to_message_id,
247
+ allow_sending_without_reply=True,
248
+ ),
249
+ message_thread_id=thread_id,
184
250
  ),
185
- message_thread_id=thread_id,
186
251
  )
187
252
  else:
188
- last_msg = await bot.send_message(
189
- chat_id=chat_id,
190
- text=chunk,
191
- parse_mode=ParseMode.HTML,
192
- message_thread_id=thread_id,
253
+ last_msg = await _with_telegram_send_retries(
254
+ "send_message",
255
+ lambda chunk=chunk: bot.send_message(
256
+ chat_id=chat_id,
257
+ text=chunk,
258
+ parse_mode=ParseMode.HTML,
259
+ message_thread_id=thread_id,
260
+ ),
193
261
  )
194
262
  remember_sent_message(bot, chat_id, last_msg)
195
- except TelegramNetworkError:
196
- logger.debug("Network error sending message (likely shutdown), skipping")
197
- return last_msg
198
263
  except TelegramBadRequest:
199
264
  logger.warning(
200
265
  "HTML send failed at chunk %d/%d, falling back to plain text", i, len(chunks)
@@ -204,11 +269,14 @@ async def _send_text_chunks(
204
269
  remaining = "\n\n".join(chunks[i:])
205
270
  plain = html_mod.unescape(re.sub(r"<[^>]+>", "", remaining))
206
271
  for pc in split_html_message(plain):
207
- last_msg = await bot.send_message(
208
- chat_id=chat_id,
209
- text=pc,
210
- parse_mode=None,
211
- message_thread_id=thread_id,
272
+ last_msg = await _with_telegram_send_retries(
273
+ "send_message_plain",
274
+ lambda pc=pc: bot.send_message(
275
+ chat_id=chat_id,
276
+ text=pc,
277
+ parse_mode=None,
278
+ message_thread_id=thread_id,
279
+ ),
212
280
  )
213
281
  remember_sent_message(bot, chat_id, last_msg)
214
282
  break
@@ -245,13 +313,14 @@ async def send_rich(
245
313
 
246
314
  if button_markup is not None and last_msg is not None:
247
315
  try:
248
- await bot.edit_message_reply_markup(
249
- chat_id=chat_id,
250
- message_id=last_msg.message_id,
251
- reply_markup=button_markup,
316
+ await _with_telegram_send_retries(
317
+ "edit_message_reply_markup",
318
+ lambda: bot.edit_message_reply_markup(
319
+ chat_id=chat_id,
320
+ message_id=last_msg.message_id,
321
+ reply_markup=button_markup,
322
+ ),
252
323
  )
253
- except TelegramNetworkError:
254
- logger.debug("Network error attaching keyboard (likely shutdown)")
255
324
  except TelegramBadRequest:
256
325
  logger.warning("Failed to attach button keyboard in send_rich")
257
326
 
@@ -276,26 +345,32 @@ async def send_file(
276
345
  """Send a local file with Telegram media/document routing."""
277
346
  if allowed_roots is not None and not is_path_safe(path, allowed_roots):
278
347
  logger.warning("File path blocked (outside allowed roots): %s", path)
279
- await bot.send_message(
280
- chat_id=chat_id,
281
- text=(
282
- f"Could not send <code>{path.name}</code> — "
283
- f"file is outside the allowed directory.\n\n"
284
- f'Fix: set <code>"file_access": "all"</code> in '
285
- f"<code>config.json</code>, then <b>/restart</b>."
348
+ await _with_telegram_send_retries(
349
+ "send_message_file_blocked",
350
+ lambda: bot.send_message(
351
+ chat_id=chat_id,
352
+ text=(
353
+ f"Could not send <code>{path.name}</code> -- "
354
+ f"file is outside the allowed directory.\n\n"
355
+ f'Fix: set <code>"file_access": "all"</code> in '
356
+ f"<code>config.json</code>, then <b>/restart</b>."
357
+ ),
358
+ parse_mode="HTML",
359
+ message_thread_id=thread_id,
286
360
  ),
287
- parse_mode="HTML",
288
- message_thread_id=thread_id,
289
361
  )
290
362
  return
291
363
 
292
364
  if not await asyncio.to_thread(path.exists):
293
365
  logger.warning("File not found, skipping: %s", path)
294
- await bot.send_message(
295
- chat_id=chat_id,
296
- text=f"[File not found: {path.name}]",
297
- parse_mode=None,
298
- message_thread_id=thread_id,
366
+ await _with_telegram_send_retries(
367
+ "send_message_file_missing",
368
+ lambda: bot.send_message(
369
+ chat_id=chat_id,
370
+ text=f"[File not found: {path.name}]",
371
+ parse_mode=None,
372
+ message_thread_id=thread_id,
373
+ ),
299
374
  )
300
375
  return
301
376
 
@@ -311,21 +386,25 @@ async def send_file(
311
386
  )
312
387
 
313
388
  logger.info("Sent file: %s (%s)", path.name, mime)
314
- except TelegramNetworkError:
315
- logger.debug("Network error sending file (likely shutdown), skipping: %s", path)
316
389
  except OSError:
317
390
  logger.exception("Failed to send file: %s", path)
318
- await bot.send_message(
319
- chat_id=chat_id,
320
- text=f"[Failed to send: {path.name}]",
321
- parse_mode=None,
322
- message_thread_id=thread_id,
391
+ await _with_telegram_send_retries(
392
+ "send_message_file_os_error",
393
+ lambda: bot.send_message(
394
+ chat_id=chat_id,
395
+ text=f"[Failed to send: {path.name}]",
396
+ parse_mode=None,
397
+ message_thread_id=thread_id,
398
+ ),
323
399
  )
324
400
  except TelegramBadRequest:
325
401
  logger.exception("Telegram rejected file upload: %s", path)
326
- await bot.send_message(
327
- chat_id=chat_id,
328
- text=f"[Failed to send: {path.name}]",
329
- parse_mode=None,
330
- message_thread_id=thread_id,
402
+ await _with_telegram_send_retries(
403
+ "send_message_file_rejected",
404
+ lambda: bot.send_message(
405
+ chat_id=chat_id,
406
+ text=f"[Failed to send: {path.name}]",
407
+ parse_mode=None,
408
+ message_thread_id=thread_id,
409
+ ),
331
410
  )
@@ -15,8 +15,6 @@ from controlmesh.terminal.native_pty import NativePTYSession
15
15
  class EnhancedShell:
16
16
  """Interactive ``cm>`` shell backed by the ControlMesh orchestrator."""
17
17
 
18
- UNKNOWN_COMMAND_HINT = "Unknown command. Run `help`, or use `chat <message>` for model chat."
19
-
20
18
  def __init__(
21
19
  self,
22
20
  *,
@@ -35,7 +33,7 @@ class EnhancedShell:
35
33
  """Run the enhanced shell until exit."""
36
34
  self.console.print("[bold green]ControlMesh Terminal[/bold green]")
37
35
  self.console.print(
38
- "[dim]Type help for commands. Use chat <message> for model chat, native for provider CLI, exit to quit.[/dim]"
36
+ "[dim]Type a message to chat. Use model to switch models, help for commands, native for provider CLI, exit to quit.[/dim]"
39
37
  )
40
38
  while True:
41
39
  try:
@@ -64,7 +62,7 @@ class EnhancedShell:
64
62
  if self.router.is_terminal_command(text):
65
63
  await self.router.handle(text)
66
64
  continue
67
- self.console.print(self.UNKNOWN_COMMAND_HINT)
65
+ await self._handle_chat_safely(line)
68
66
 
69
67
  async def enter_native(self) -> None:
70
68
  """Run the native provider session and return to enhanced mode."""
@@ -25,7 +25,10 @@ Memory/history:
25
25
  sessions
26
26
 
27
27
  Interaction:
28
- chat <message> Send an explicit model chat message
28
+ <message> Chat with the selected model
29
+ chat <message> Chat with the model
30
+ /chat <message> Chat with the model
29
31
  native Enter the provider-native CLI
32
+ /native Enter the provider-native CLI
30
33
  inbox Show terminal inbox
31
34
  """
@@ -76,6 +76,7 @@ Runtime behavior notes:
76
76
  - [WeChat / Weixin Setup](weixin-setup.md)
77
77
  - [QQ Bot Official Pivot](qqbot-official-pivot.md)
78
78
  - [Terminal](terminal.md)
79
+ - [v0.41.7 Release Note](release-note-v0.41.7.md)
79
80
  - [v0.41.0 Release Note](release-note-v0.41.0.md)
80
81
  - [v0.40.3 Release Note](release-note-v0.40.3.md)
81
82
  - [v0.40.2 Release Note](release-note-v0.40.2.md)
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "controlmesh"
7
- version = "0.41.4"
7
+ version = "0.41.7"
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