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.
- {controlmesh-0.41.4 → controlmesh-0.41.7}/PKG-INFO +1 -1
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/__init__.py +1 -1
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/sender.py +150 -71
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/terminal/enhanced_shell.py +2 -4
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/terminal/help.py +4 -1
- {controlmesh-0.41.4 → controlmesh-0.41.7}/docs/README.md +1 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/pyproject.toml +1 -1
- {controlmesh-0.41.4 → controlmesh-0.41.7}/.gitignore +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/Dockerfile.sandbox +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/LICENSE +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/README.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/config.example.json +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/__main__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_banner.txt +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/RULES.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/config/RULES-all-clis.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/config/RULES-claude-only.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/config/RULES-codex-only.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/config/RULES-gemini-only.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/JOIN_NOTIFICATION.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/RULES.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/cron_tasks/RULES-all-clis.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/cron_tasks/RULES-claude-only.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/cron_tasks/RULES-codex-only.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/cron_tasks/RULES-gemini-only.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/cron_tasks/flow-triggered-template/TASK_DESCRIPTION.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/cron_tasks/release-ci-monitor-template/RULES-template.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/cron_tasks/release-ci-monitor-template/TASK_DESCRIPTION.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/cron_tasks/scheduled-recurring-template/TASK_DESCRIPTION.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/cron_tasks/webhook-triggered-template/TASK_DESCRIPTION.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/output_to_user/RULES.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/routing/activation_policies.yaml +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/routing/capabilities.yaml +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/skills/RULES.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/skills/skill-creator/LICENSE.txt +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/skills/skill-creator/SKILL.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/skills/skill-creator/references/output-patterns.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/skills/skill-creator/references/workflows.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/skills/skill-creator/scripts/init_skill.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/skills/skill-creator/scripts/package_skill.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/skills/skill-creator/scripts/quick_validate.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tasks/RULES.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/telegram_files/RULES.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/RULES.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/_tool_shared.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/agent_tools/RULES.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/agent_tools/ask_agent.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/agent_tools/ask_agent_async.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/agent_tools/create_agent.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/agent_tools/edit_shared_knowledge.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/agent_tools/list_agents.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/agent_tools/remove_agent.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/cron_tools/RULES-all-clis.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/cron_tools/RULES-claude-only.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/cron_tools/RULES-codex-only.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/cron_tools/RULES-gemini-only.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/cron_tools/_shared.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/cron_tools/cron_add.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/cron_tools/cron_edit.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/cron_tools/cron_list.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/cron_tools/cron_monitor.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/cron_tools/cron_remove.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/cron_tools/cron_time.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/media_tools/RULES.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/media_tools/file_info.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/media_tools/list_files.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/media_tools/process_video.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/media_tools/read_document.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/media_tools/transcribe_audio.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/task_tools/RULES.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/task_tools/_shared.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/task_tools/ask_parent.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/task_tools/attach_task.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/task_tools/cancel_task.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/task_tools/check_task_updates.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/task_tools/create_task.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/task_tools/delete_task.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/task_tools/list_tasks.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/task_tools/release_task.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/task_tools/resume_task.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/task_tools/route_task.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/task_tools/tell_task.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/user_tools/RULES.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/webhook_tools/RULES-all-clis.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/webhook_tools/RULES-claude-only.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/webhook_tools/RULES-codex-only.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/webhook_tools/RULES-gemini-only.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/webhook_tools/_shared.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/webhook_tools/setup_ci_failure_webhook.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/webhook_tools/webhook_add.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/webhook_tools/webhook_edit.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/webhook_tools/webhook_list.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/webhook_tools/webhook_remove.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/webhook_tools/webhook_rotate_token.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/webhook_tools/webhook_test.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/VENDORED_FROM.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/agent_runtime.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/app_registration.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/cardkit.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/claude_adapter.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/cli.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/client.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/device_flow.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/domains.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/message_context.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/models.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/native_agent_tools.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/native_contract.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/orchestration.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/owner_policy.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/probe.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/runtime_cards.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/scopes.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/token_store.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/runner.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/agents_runtime/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/agents_runtime/context.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/agents_runtime/manager.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/agents_runtime/progress.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/agents_runtime/results.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/agents_runtime/tools.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/api/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/api/admin_read.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/api/catalog_http.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/api/crypto.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/api/server.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/background/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/background/models.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/background/observer.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/bus/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/bus/adapters.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/bus/bus.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/bus/cron_sanitize.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/bus/envelope.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/bus/lock_pool.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/case_pack/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/case_pack/__main__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/case_pack/io.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/case_pack/lint.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/case_pack/models.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/case_pack/render.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cleanup/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cleanup/observer.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/auth.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/base.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/claude_provider.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/claw_provider.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/coalescer.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/codex_cache.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/codex_cache_observer.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/codex_discovery.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/codex_events.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/codex_hooks.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/codex_provider.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/diagnostics.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/events.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/executor.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/factory.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/gemini_cache.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/gemini_cache_observer.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/gemini_events.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/gemini_provider.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/gemini_utils.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/init_wizard.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/introspection.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/liveness.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/model_cache.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/openai_agents_provider.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/opencode_discovery.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/opencode_provider.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/param_resolver.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/process_registry.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/service.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/stream_events.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/supervisor.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/timeout_controller.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli/types.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli_commands/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli_commands/agents.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli_commands/api_cmd.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli_commands/auth.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli_commands/cron.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli_commands/docker.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli_commands/feishu.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli_commands/install.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli_commands/lifecycle.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli_commands/runtime.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli_commands/service.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli_commands/status.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli_commands/tasks.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cli_commands/terminal.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/command_registry.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/commands.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/config.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/config_reload.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cron/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cron/dependency_queue.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cron/execution.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cron/manager.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cron/observer.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/cron/policy.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/errors.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/files/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/files/allowed_roots.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/files/browser.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/files/image_processor.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/files/prompt.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/files/storage.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/files/tags.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/gateways/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/gateways/config.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/gateways/types.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/heartbeat/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/heartbeat/observer.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/history/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/history/catalog.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/history/index.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/history/models.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/history/store.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/de/chat.toml +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/de/cli.toml +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/de/commands.toml +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/de/wizard.toml +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/en/chat.toml +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/en/cli.toml +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/en/commands.toml +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/en/wizard.toml +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/es/chat.toml +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/es/cli.toml +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/es/commands.toml +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/es/wizard.toml +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/fr/chat.toml +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/fr/cli.toml +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/fr/commands.toml +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/fr/wizard.toml +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/loader.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/nl/chat.toml +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/nl/cli.toml +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/nl/commands.toml +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/nl/wizard.toml +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/pt/chat.toml +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/pt/cli.toml +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/pt/commands.toml +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/pt/wizard.toml +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/ru/chat.toml +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/ru/cli.toml +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/ru/commands.toml +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/ru/wizard.toml +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/zh/chat.toml +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/zh/cli.toml +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/zh/commands.toml +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/i18n/zh/wizard.toml +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/atomic_io.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/base_observer.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/base_task_observer.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/boot_id.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/docker.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/docker_extras.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/env_secrets.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/file_watcher.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/fs.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/inflight.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/install.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/json_store.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/pidlock.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/platform.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/process_tree.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/recovery.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/restart.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/service.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/service_base.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/service_linux.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/service_logs.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/service_macos.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/service_windows.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/startup_state.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/task_runner.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/updater.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/infra/version.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/integrations/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/integrations/feishu_auth_kit.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/log_context.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/logging_config.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/memory/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/memory/capture.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/memory/commands.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/memory/dreaming.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/memory/events.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/memory/frequency.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/memory/models.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/memory/promotion.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/memory/runtime_capture.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/memory/search.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/memory/semantic.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/memory/store.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/address.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/callback_router.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/capabilities.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/commands.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/auth/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/auth/app_info.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/auth/auth_cards.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/auth/brand.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/auth/card_auth.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/auth/card_auth_context.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/auth/card_auth_runner.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/auth/device_flow.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/auth/errors.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/auth/feishu_card_sender.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/auth/native_auth_all_runner.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/auth/native_auth_useful_runner.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/auth/orchestration_runner.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/auth/runtime_auth.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/auth/runtime_continuation.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/auth/token_store.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/auth/uat_client.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/bot.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/bundled_runtime.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/card_action_payload.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/card_stream.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/command_center_card.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/id_map.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/inbound.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/long_connection.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/media.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/media_meta.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/message_context.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/native_tools/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/native_tools/agent_runtime.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/native_tools/client.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/native_tools/executor.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/progress_preview.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/runtime_state.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/sender.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/settings_card.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/startup.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/tool_auth.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/feishu/transport.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/matrix/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/matrix/bot.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/matrix/buttons.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/matrix/credentials.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/matrix/file_browser.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/matrix/formatting.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/matrix/id_map.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/matrix/media.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/matrix/sender.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/matrix/startup.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/matrix/streaming.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/matrix/streaming_mode.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/matrix/transport.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/matrix/typing.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/multi.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/notifications.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/protocol.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/qqbot/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/qqbot/api.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/qqbot/bot.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/qqbot/gateway.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/qqbot/inbound.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/qqbot/known_targets.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/qqbot/media.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/qqbot/outbound.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/qqbot/ref_index.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/qqbot/session_store.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/qqbot/target.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/qqbot/token_manager.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/qqbot/transport.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/qqbot/types.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/qqbot/typing_keepalive.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/registry.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/send_opts.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/abort.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/app.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/buttons.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/callbacks.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/chat_tracker.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/controlmesh_images/logo_text.png +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/controlmesh_images/welcome.png +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/dedup.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/edit_streaming.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/file_browser.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/formatting.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/handlers.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/inbound_spool.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/lane_state.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/media.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/message_dispatch.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/middleware.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/runtime_state.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/startup.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/streaming.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/topic.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/transport.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/typing.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/upgrade_handler.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/telegram/welcome.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/weixin/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/weixin/api.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/weixin/auth_state.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/weixin/auth_store.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/weixin/bot.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/weixin/id_map.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/weixin/inbound_spool.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/weixin/runtime.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/weixin/runtime_state.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/messenger/weixin/transport.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/multiagent/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/multiagent/approval_intent.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/multiagent/bus.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/multiagent/commands.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/multiagent/health.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/multiagent/internal_api.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/multiagent/models.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/multiagent/plan_review_loop.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/multiagent/registry.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/multiagent/release_gate.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/multiagent/shared_knowledge.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/multiagent/stack.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/multiagent/supervisor.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/native_commands/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/native_commands/fallbacks.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/native_commands/render.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/commands.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/core.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/directives.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/flows.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/hooks.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/injection.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/lifecycle.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/observers.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/presentation.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/providers.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/registry.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/selectors/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/selectors/agent_router.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/selectors/capability_registry.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/selectors/cron_selector.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/selectors/model_selector.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/selectors/models.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/selectors/session_selector.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/selectors/settings_selector.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/selectors/task_selector.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/orchestrator/selectors/utils.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/planning_files.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/provider_binding.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/provider_health.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/routing/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/routing/activation.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/routing/capabilities.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/routing/policy.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/routing/router.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/routing/score_events.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/routing/scorer.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/routing/workunit.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/run.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/runtime/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/runtime/agent_inbox.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/runtime/host_jobs.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/runtime/models.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/runtime/registry.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/runtime/store.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/security/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/security/content.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/security/paths.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/session/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/session/key.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/session/manager.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/session/named.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/tasks/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/tasks/evaluator.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/tasks/evidence.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/tasks/host_execution.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/tasks/hub.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/tasks/models.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/tasks/registry.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/tasks/task_policy.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/api.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/contracts.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/execution.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/live.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/models.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/orchestrator.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/phases.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/presentation.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/runtime_attachment.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/runtime_control.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/state/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/state/base.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/state/dispatch.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/state/events.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/state/mailbox.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/state/manifest.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/state/phase.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/state/recovery.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/state/runtime.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/state/snapshot.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/state/store.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/team/state/tasks.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/terminal/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/terminal/app.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/terminal/command_router.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/terminal/config.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/terminal/errors.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/terminal/inbox.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/terminal/memory_context.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/terminal/modes.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/terminal/native_pty.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/terminal/providers.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/terminal/rendering.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/terminal/runtime.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/terminal/session.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/terminal/tasks_view.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/text/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/text/frontstage_delivery.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/text/response_format.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/text/tool_event_format.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/utils/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/utils/quiet_hours.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/webhook/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/webhook/auth.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/webhook/manager.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/webhook/models.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/webhook/observer.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/webhook/server.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/workspace/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/workspace/cron_tasks.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/workspace/init.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/workspace/loader.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/workspace/paths.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/workspace/rules_selector.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/workspace/skill_sync.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/autonomous_runtime_loop.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/canonical_section_writer.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/contracts.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/engine.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/events.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/evidence_identity.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/execution_event_shape.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/execution_evidence_replay_query.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/execution_evidence_replay_query_boundary.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/execution_payload_seam.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/execution_payloads.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/execution_read_surface.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/execution_runtime_events.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/execution_wiring_boundary.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/file_backed_primary_boundary.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/first_engine_boundary.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/first_engine_contract_surface.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/first_engine_test_matrix.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/first_engine_trace_examples.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/orchestrator_boundary.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/promotion_bridge.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/promotion_controller.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/promotion_receipt.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/py.typed +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/records.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/recovery/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/recovery/contracts.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/recovery/execution.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/recovery/policy.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/recovery_execution_boundary.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/recovery_thin_loop.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/review.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/review_handoff_packet.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/review_query_read_surface_boundary.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/runtime.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/runtime_execution_checkpoint.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/runtime_message_api.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/serde.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/store.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/summary/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/summary/contracts.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/summary/policy.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/summary/runtime.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/summary_trigger_landing_boundary.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/task_packet.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/thin_orchestrator.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/thin_runtime_loop.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/tracing.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/worker_controller.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh_runtime/worker_state.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/docs/case-pack/README.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/examples/case-pack/README.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/plans/README.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/plans/tasks/README.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/plans/tasks/_template/artifacts/README.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/plans/tasks/_template/logs/README.md +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/summary/__init__.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/summary/test_contracts.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/summary/test_policy.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/summary/test_runtime.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_autonomous_runtime_loop.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_events.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_execution_evidence_replay_query.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_execution_evidence_store.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_execution_payloads.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_execution_read_surface.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_execution_runtime_events.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_first_engine.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_promotion_bridge.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_recovery_contracts.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_recovery_execution.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_recovery_policy.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_recovery_thin_loop.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_review.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_review_handoff_packet.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_runtime_execution_checkpoint.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_runtime_message_api.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_store.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_task_packet.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_thin_orchestrator.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_thin_runtime_loop.py +0 -0
- {controlmesh-0.41.4 → controlmesh-0.41.7}/tests/controlmesh_runtime/test_worker_controller.py +0 -0
- {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.
|
|
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
|
|
@@ -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
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
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
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
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
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
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
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
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
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
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
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
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
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
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
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
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
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
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
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
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
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
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
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
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
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/config/RULES-all-clis.md
RENAMED
|
File without changes
|
{controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/config/RULES-claude-only.md
RENAMED
|
File without changes
|
{controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/config/RULES-codex-only.md
RENAMED
|
File without changes
|
{controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/config/RULES-gemini-only.md
RENAMED
|
File without changes
|
{controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/JOIN_NOTIFICATION.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/skills/RULES.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tasks/RULES.md
RENAMED
|
File without changes
|
|
File without changes
|
{controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/RULES.md
RENAMED
|
File without changes
|
{controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_home_defaults/workspace/tools/_tool_shared.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{controlmesh-0.41.4 → controlmesh-0.41.7}/controlmesh/_plugins/feishu_auth_kit/VENDORED_FROM.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|