controlmesh 0.40.2__tar.gz → 0.40.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {controlmesh-0.40.2 → controlmesh-0.40.3}/PKG-INFO +1 -1
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/__init__.py +1 -1
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/config.py +34 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/bot.py +157 -9
- {controlmesh-0.40.2 → controlmesh-0.40.3}/docs/README.md +1 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/pyproject.toml +1 -1
- {controlmesh-0.40.2 → controlmesh-0.40.3}/.gitignore +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/Dockerfile.sandbox +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/LICENSE +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/README.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/config.example.json +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/__main__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_banner.txt +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/RULES.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/config/RULES-all-clis.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/config/RULES-claude-only.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/config/RULES-codex-only.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/config/RULES-gemini-only.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/JOIN_NOTIFICATION.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/RULES.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/cron_tasks/RULES-all-clis.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/cron_tasks/RULES-claude-only.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/cron_tasks/RULES-codex-only.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/cron_tasks/RULES-gemini-only.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/cron_tasks/flow-triggered-template/TASK_DESCRIPTION.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/cron_tasks/release-ci-monitor-template/RULES-template.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/cron_tasks/release-ci-monitor-template/TASK_DESCRIPTION.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/cron_tasks/scheduled-recurring-template/TASK_DESCRIPTION.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/cron_tasks/webhook-triggered-template/TASK_DESCRIPTION.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/output_to_user/RULES.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/routing/activation_policies.yaml +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/routing/capabilities.yaml +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/skills/RULES.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/skills/skill-creator/LICENSE.txt +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/skills/skill-creator/SKILL.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/skills/skill-creator/references/output-patterns.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/skills/skill-creator/references/workflows.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/skills/skill-creator/scripts/init_skill.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/skills/skill-creator/scripts/package_skill.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/skills/skill-creator/scripts/quick_validate.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tasks/RULES.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/telegram_files/RULES.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/RULES.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/_tool_shared.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/agent_tools/RULES.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/agent_tools/ask_agent.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/agent_tools/ask_agent_async.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/agent_tools/create_agent.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/agent_tools/edit_shared_knowledge.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/agent_tools/list_agents.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/agent_tools/remove_agent.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/cron_tools/RULES-all-clis.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/cron_tools/RULES-claude-only.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/cron_tools/RULES-codex-only.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/cron_tools/RULES-gemini-only.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/cron_tools/_shared.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/cron_tools/cron_add.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/cron_tools/cron_edit.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/cron_tools/cron_list.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/cron_tools/cron_monitor.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/cron_tools/cron_remove.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/cron_tools/cron_time.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/media_tools/RULES.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/media_tools/file_info.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/media_tools/list_files.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/media_tools/process_video.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/media_tools/read_document.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/media_tools/transcribe_audio.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/task_tools/RULES.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/task_tools/_shared.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/task_tools/ask_parent.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/task_tools/attach_task.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/task_tools/cancel_task.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/task_tools/check_task_updates.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/task_tools/create_task.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/task_tools/delete_task.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/task_tools/list_tasks.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/task_tools/release_task.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/task_tools/resume_task.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/task_tools/route_task.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/task_tools/tell_task.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/user_tools/RULES.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/webhook_tools/RULES-all-clis.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/webhook_tools/RULES-claude-only.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/webhook_tools/RULES-codex-only.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/webhook_tools/RULES-gemini-only.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/webhook_tools/_shared.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/webhook_tools/setup_ci_failure_webhook.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/webhook_tools/webhook_add.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/webhook_tools/webhook_edit.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/webhook_tools/webhook_list.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/webhook_tools/webhook_remove.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/webhook_tools/webhook_rotate_token.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/webhook_tools/webhook_test.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/VENDORED_FROM.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/agent_runtime.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/app_registration.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/cardkit.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/claude_adapter.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/cli.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/client.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/device_flow.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/domains.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/message_context.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/models.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/native_agent_tools.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/native_contract.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/orchestration.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/owner_policy.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/probe.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/runtime_cards.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/scopes.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/feishu_auth_kit/token_store.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/runner.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/agents_runtime/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/agents_runtime/context.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/agents_runtime/manager.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/agents_runtime/progress.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/agents_runtime/results.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/agents_runtime/tools.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/api/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/api/admin_read.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/api/catalog_http.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/api/crypto.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/api/server.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/background/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/background/models.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/background/observer.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/bus/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/bus/adapters.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/bus/bus.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/bus/cron_sanitize.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/bus/envelope.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/bus/lock_pool.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/case_pack/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/case_pack/__main__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/case_pack/io.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/case_pack/lint.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/case_pack/models.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/case_pack/render.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cleanup/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cleanup/observer.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/auth.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/base.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/claude_provider.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/claw_provider.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/coalescer.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/codex_cache.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/codex_cache_observer.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/codex_discovery.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/codex_events.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/codex_hooks.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/codex_provider.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/diagnostics.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/events.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/executor.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/factory.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/gemini_cache.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/gemini_cache_observer.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/gemini_events.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/gemini_provider.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/gemini_utils.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/init_wizard.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/introspection.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/liveness.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/model_cache.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/openai_agents_provider.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/opencode_discovery.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/opencode_provider.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/param_resolver.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/process_registry.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/service.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/stream_events.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/supervisor.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/timeout_controller.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli/types.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli_commands/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli_commands/agents.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli_commands/api_cmd.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli_commands/auth.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli_commands/cron.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli_commands/docker.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli_commands/feishu.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli_commands/install.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli_commands/lifecycle.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli_commands/runtime.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli_commands/service.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli_commands/status.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cli_commands/tasks.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/command_registry.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/commands.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/config_reload.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cron/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cron/dependency_queue.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cron/execution.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cron/manager.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cron/observer.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/cron/policy.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/errors.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/files/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/files/allowed_roots.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/files/browser.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/files/image_processor.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/files/prompt.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/files/storage.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/files/tags.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/gateways/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/gateways/config.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/gateways/types.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/heartbeat/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/heartbeat/observer.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/history/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/history/catalog.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/history/index.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/history/models.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/history/store.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/de/chat.toml +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/de/cli.toml +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/de/commands.toml +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/de/wizard.toml +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/en/chat.toml +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/en/cli.toml +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/en/commands.toml +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/en/wizard.toml +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/es/chat.toml +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/es/cli.toml +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/es/commands.toml +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/es/wizard.toml +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/fr/chat.toml +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/fr/cli.toml +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/fr/commands.toml +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/fr/wizard.toml +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/loader.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/nl/chat.toml +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/nl/cli.toml +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/nl/commands.toml +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/nl/wizard.toml +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/pt/chat.toml +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/pt/cli.toml +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/pt/commands.toml +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/pt/wizard.toml +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/ru/chat.toml +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/ru/cli.toml +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/ru/commands.toml +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/ru/wizard.toml +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/zh/chat.toml +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/zh/cli.toml +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/zh/commands.toml +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/i18n/zh/wizard.toml +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/atomic_io.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/base_observer.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/base_task_observer.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/boot_id.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/docker.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/docker_extras.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/env_secrets.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/file_watcher.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/fs.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/inflight.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/install.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/json_store.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/pidlock.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/platform.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/process_tree.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/recovery.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/restart.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/service.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/service_base.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/service_linux.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/service_logs.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/service_macos.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/service_windows.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/startup_state.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/task_runner.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/updater.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/infra/version.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/integrations/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/integrations/feishu_auth_kit.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/log_context.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/logging_config.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/memory/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/memory/capture.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/memory/commands.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/memory/dreaming.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/memory/events.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/memory/frequency.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/memory/models.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/memory/promotion.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/memory/runtime_capture.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/memory/search.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/memory/semantic.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/memory/store.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/address.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/callback_router.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/capabilities.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/commands.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/auth/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/auth/app_info.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/auth/auth_cards.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/auth/brand.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/auth/card_auth.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/auth/card_auth_context.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/auth/card_auth_runner.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/auth/device_flow.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/auth/errors.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/auth/feishu_card_sender.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/auth/native_auth_all_runner.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/auth/native_auth_useful_runner.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/auth/orchestration_runner.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/auth/runtime_auth.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/auth/runtime_continuation.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/auth/token_store.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/auth/uat_client.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/bundled_runtime.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/card_action_payload.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/card_stream.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/command_center_card.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/id_map.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/inbound.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/long_connection.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/media.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/media_meta.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/message_context.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/native_tools/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/native_tools/agent_runtime.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/native_tools/client.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/native_tools/executor.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/progress_preview.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/runtime_state.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/sender.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/settings_card.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/startup.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/tool_auth.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/feishu/transport.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/matrix/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/matrix/bot.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/matrix/buttons.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/matrix/credentials.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/matrix/file_browser.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/matrix/formatting.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/matrix/id_map.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/matrix/media.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/matrix/sender.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/matrix/startup.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/matrix/streaming.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/matrix/streaming_mode.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/matrix/transport.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/matrix/typing.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/multi.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/notifications.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/protocol.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/qqbot/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/qqbot/api.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/qqbot/bot.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/qqbot/gateway.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/qqbot/inbound.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/qqbot/known_targets.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/qqbot/media.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/qqbot/outbound.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/qqbot/ref_index.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/qqbot/session_store.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/qqbot/target.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/qqbot/token_manager.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/qqbot/transport.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/qqbot/types.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/qqbot/typing_keepalive.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/registry.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/send_opts.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/abort.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/app.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/buttons.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/callbacks.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/chat_tracker.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/controlmesh_images/logo_text.png +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/controlmesh_images/welcome.png +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/dedup.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/edit_streaming.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/file_browser.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/formatting.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/handlers.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/inbound_spool.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/lane_state.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/media.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/message_dispatch.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/middleware.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/runtime_state.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/sender.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/startup.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/streaming.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/topic.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/transport.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/typing.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/upgrade_handler.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/telegram/welcome.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/weixin/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/weixin/api.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/weixin/auth_state.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/weixin/auth_store.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/weixin/bot.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/weixin/id_map.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/weixin/inbound_spool.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/weixin/runtime.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/weixin/runtime_state.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/messenger/weixin/transport.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/multiagent/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/multiagent/approval_intent.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/multiagent/bus.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/multiagent/commands.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/multiagent/health.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/multiagent/internal_api.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/multiagent/models.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/multiagent/plan_review_loop.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/multiagent/registry.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/multiagent/release_gate.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/multiagent/shared_knowledge.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/multiagent/stack.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/multiagent/supervisor.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/native_commands/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/native_commands/fallbacks.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/native_commands/render.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/commands.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/core.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/directives.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/flows.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/hooks.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/injection.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/lifecycle.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/observers.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/presentation.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/providers.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/registry.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/selectors/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/selectors/agent_router.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/selectors/capability_registry.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/selectors/cron_selector.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/selectors/model_selector.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/selectors/models.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/selectors/session_selector.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/selectors/settings_selector.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/selectors/task_selector.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/orchestrator/selectors/utils.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/planning_files.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/provider_binding.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/provider_health.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/routing/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/routing/activation.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/routing/capabilities.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/routing/policy.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/routing/router.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/routing/score_events.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/routing/scorer.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/routing/workunit.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/run.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/runtime/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/runtime/agent_inbox.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/runtime/host_jobs.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/runtime/models.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/runtime/registry.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/runtime/store.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/security/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/security/content.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/security/paths.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/session/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/session/key.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/session/manager.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/session/named.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/tasks/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/tasks/evaluator.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/tasks/evidence.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/tasks/host_execution.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/tasks/hub.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/tasks/models.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/tasks/registry.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/tasks/task_policy.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/api.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/contracts.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/execution.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/live.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/models.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/orchestrator.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/phases.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/presentation.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/runtime_attachment.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/runtime_control.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/state/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/state/base.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/state/dispatch.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/state/events.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/state/mailbox.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/state/manifest.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/state/phase.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/state/recovery.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/state/runtime.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/state/snapshot.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/state/store.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/team/state/tasks.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/text/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/text/frontstage_delivery.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/text/response_format.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/text/tool_event_format.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/utils/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/utils/quiet_hours.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/webhook/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/webhook/auth.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/webhook/manager.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/webhook/models.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/webhook/observer.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/webhook/server.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/workspace/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/workspace/cron_tasks.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/workspace/init.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/workspace/loader.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/workspace/paths.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/workspace/rules_selector.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/workspace/skill_sync.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/autonomous_runtime_loop.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/canonical_section_writer.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/contracts.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/engine.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/events.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/evidence_identity.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/execution_event_shape.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/execution_evidence_replay_query.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/execution_evidence_replay_query_boundary.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/execution_payload_seam.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/execution_payloads.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/execution_read_surface.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/execution_runtime_events.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/execution_wiring_boundary.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/file_backed_primary_boundary.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/first_engine_boundary.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/first_engine_contract_surface.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/first_engine_test_matrix.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/first_engine_trace_examples.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/orchestrator_boundary.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/promotion_bridge.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/promotion_controller.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/promotion_receipt.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/py.typed +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/records.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/recovery/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/recovery/contracts.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/recovery/execution.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/recovery/policy.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/recovery_execution_boundary.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/recovery_thin_loop.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/review.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/review_handoff_packet.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/review_query_read_surface_boundary.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/runtime.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/runtime_execution_checkpoint.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/runtime_message_api.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/serde.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/store.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/summary/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/summary/contracts.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/summary/policy.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/summary/runtime.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/summary_trigger_landing_boundary.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/task_packet.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/thin_orchestrator.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/thin_runtime_loop.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/tracing.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/worker_controller.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh_runtime/worker_state.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/docs/case-pack/README.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/examples/case-pack/README.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/plans/README.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/plans/tasks/README.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/plans/tasks/_template/artifacts/README.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/plans/tasks/_template/logs/README.md +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/summary/__init__.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/summary/test_contracts.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/summary/test_policy.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/summary/test_runtime.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_autonomous_runtime_loop.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_events.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_execution_evidence_replay_query.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_execution_evidence_store.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_execution_payloads.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_execution_read_surface.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_execution_runtime_events.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_first_engine.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_promotion_bridge.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_recovery_contracts.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_recovery_execution.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_recovery_policy.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_recovery_thin_loop.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_review.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_review_handoff_packet.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_runtime_execution_checkpoint.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_runtime_message_api.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_store.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_task_packet.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_thin_orchestrator.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_thin_runtime_loop.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_worker_controller.py +0 -0
- {controlmesh-0.40.2 → controlmesh-0.40.3}/tests/controlmesh_runtime/test_worker_state.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: controlmesh
|
|
3
|
-
Version: 0.40.
|
|
3
|
+
Version: 0.40.3
|
|
4
4
|
Summary: ControlMesh brings official coding CLIs into Telegram, Matrix, and Feishu with persistent workspaces, long-running jobs, and production-friendly bot operations.
|
|
5
5
|
Project-URL: Homepage, https://github.com/muqiao215/ControlMesh
|
|
6
6
|
Project-URL: Repository, https://github.com/muqiao215/ControlMesh
|
|
@@ -207,6 +207,40 @@ class FeishuGroupConfig(BaseModel):
|
|
|
207
207
|
default_factory=list,
|
|
208
208
|
validation_alias=AliasChoices("allow_from_users", "allowFromUsers"),
|
|
209
209
|
)
|
|
210
|
+
agent_roster: list[str] = Field(
|
|
211
|
+
default_factory=list,
|
|
212
|
+
validation_alias=AliasChoices("agent_roster", "agentRoster"),
|
|
213
|
+
)
|
|
214
|
+
default_agent: str = Field(
|
|
215
|
+
default="",
|
|
216
|
+
validation_alias=AliasChoices("default_agent", "defaultAgent"),
|
|
217
|
+
)
|
|
218
|
+
allow_interagent_handoff: bool = Field(
|
|
219
|
+
default=False,
|
|
220
|
+
validation_alias=AliasChoices("allow_interagent_handoff", "allowInteragentHandoff"),
|
|
221
|
+
)
|
|
222
|
+
max_handoff_depth: int = Field(
|
|
223
|
+
default=1,
|
|
224
|
+
validation_alias=AliasChoices("max_handoff_depth", "maxHandoffDepth"),
|
|
225
|
+
)
|
|
226
|
+
|
|
227
|
+
@field_validator("agent_roster")
|
|
228
|
+
@classmethod
|
|
229
|
+
def _validate_agent_roster(cls, value: list[str]) -> list[str]:
|
|
230
|
+
return [item.strip() for item in value if item.strip()]
|
|
231
|
+
|
|
232
|
+
@field_validator("default_agent")
|
|
233
|
+
@classmethod
|
|
234
|
+
def _validate_default_agent(cls, value: str) -> str:
|
|
235
|
+
return value.strip()
|
|
236
|
+
|
|
237
|
+
@field_validator("max_handoff_depth")
|
|
238
|
+
@classmethod
|
|
239
|
+
def _validate_max_handoff_depth(cls, value: int) -> int:
|
|
240
|
+
if value < 0:
|
|
241
|
+
msg = "Feishu group max_handoff_depth must be >= 0"
|
|
242
|
+
raise ValueError(msg)
|
|
243
|
+
return value
|
|
210
244
|
|
|
211
245
|
|
|
212
246
|
class FeishuConfig(BaseModel):
|
|
@@ -118,6 +118,24 @@ _TextStreamCallback = Callable[[str], Awaitable[None]]
|
|
|
118
118
|
_StatusStreamCallback = Callable[[str | None], Awaitable[None]]
|
|
119
119
|
_ToolEventStreamCallback = Callable[[ToolUseEvent | ToolResultEvent], Awaitable[None]]
|
|
120
120
|
_FEISHU_COMMAND_GUIDE_VERSION = 3
|
|
121
|
+
_FEISHU_AGENT_TARGET_PREFIXES = ("agent:", "agent=", "@agent:")
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
@dataclass(frozen=True, slots=True)
|
|
125
|
+
class FeishuAgentRoute:
|
|
126
|
+
"""Resolved Feishu group routing target."""
|
|
127
|
+
|
|
128
|
+
agent: str
|
|
129
|
+
text: str
|
|
130
|
+
via_default: bool = False
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
@dataclass(frozen=True, slots=True)
|
|
134
|
+
class SimpleTextResult:
|
|
135
|
+
"""Small result adapter for Feishu delivery paths."""
|
|
136
|
+
|
|
137
|
+
text: str
|
|
138
|
+
status: str = "completed"
|
|
121
139
|
|
|
122
140
|
|
|
123
141
|
def _stream_callbacks_for_output_mode(
|
|
@@ -472,12 +490,20 @@ class FeishuBot:
|
|
|
472
490
|
progress.start()
|
|
473
491
|
if content_key:
|
|
474
492
|
self._inflight_content_keys.add(content_key)
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
493
|
+
route = self._resolve_group_agent_route(message)
|
|
494
|
+
if route is not None:
|
|
495
|
+
result = await self._run_group_agent_route(
|
|
496
|
+
message,
|
|
497
|
+
route=route,
|
|
498
|
+
)
|
|
499
|
+
auth_routed = False
|
|
500
|
+
else:
|
|
501
|
+
auth_routed, result = await self._run_streaming_turn(
|
|
502
|
+
message,
|
|
503
|
+
chat_id=chat_id,
|
|
504
|
+
topic_id=topic_id,
|
|
505
|
+
progress=progress,
|
|
506
|
+
)
|
|
481
507
|
except Exception as exc:
|
|
482
508
|
await progress.finish_failure(str(exc))
|
|
483
509
|
raise
|
|
@@ -1033,6 +1059,131 @@ class FeishuBot:
|
|
|
1033
1059
|
return True, None
|
|
1034
1060
|
return False, result
|
|
1035
1061
|
|
|
1062
|
+
async def _run_group_agent_route(
|
|
1063
|
+
self,
|
|
1064
|
+
message: FeishuIncomingText,
|
|
1065
|
+
*,
|
|
1066
|
+
route: FeishuAgentRoute,
|
|
1067
|
+
) -> Any:
|
|
1068
|
+
bus = self._interagent_bus()
|
|
1069
|
+
if bus is None:
|
|
1070
|
+
return SimpleTextResult(
|
|
1071
|
+
text="Agent handoff is unavailable: multi-agent runtime is not active.",
|
|
1072
|
+
status="failed",
|
|
1073
|
+
)
|
|
1074
|
+
prompt = self._build_group_agent_handoff_prompt(message, route=route)
|
|
1075
|
+
response = await bus.send(
|
|
1076
|
+
sender=self._agent_name,
|
|
1077
|
+
recipient=route.agent,
|
|
1078
|
+
message=prompt,
|
|
1079
|
+
new_session=False,
|
|
1080
|
+
)
|
|
1081
|
+
if not response.success:
|
|
1082
|
+
error = response.error or f"Agent `{route.agent}` did not return a result."
|
|
1083
|
+
return SimpleTextResult(text=error, status="failed")
|
|
1084
|
+
visible = f"[{route.agent}]\n{response.text.strip()}" if response.text.strip() else ""
|
|
1085
|
+
return SimpleTextResult(text=visible, status="completed")
|
|
1086
|
+
|
|
1087
|
+
def _interagent_bus(self) -> Any | None:
|
|
1088
|
+
if self._orchestrator is None:
|
|
1089
|
+
return None
|
|
1090
|
+
supervisor = getattr(self._orchestrator, "supervisor", None)
|
|
1091
|
+
return getattr(supervisor, "bus", None)
|
|
1092
|
+
|
|
1093
|
+
def _resolve_group_agent_route(self, message: FeishuIncomingText) -> FeishuAgentRoute | None:
|
|
1094
|
+
if not self._is_group_message(message):
|
|
1095
|
+
return None
|
|
1096
|
+
overrides = self._group_overrides_for_message(message)
|
|
1097
|
+
if overrides is None:
|
|
1098
|
+
return None
|
|
1099
|
+
roster = self._group_agent_roster_for_message(message)
|
|
1100
|
+
if not roster:
|
|
1101
|
+
return None
|
|
1102
|
+
|
|
1103
|
+
explicit = self._extract_explicit_agent_target(message.text, roster)
|
|
1104
|
+
if explicit is not None:
|
|
1105
|
+
agent, routed_text = explicit
|
|
1106
|
+
if agent == self._agent_name:
|
|
1107
|
+
return None
|
|
1108
|
+
return FeishuAgentRoute(agent=agent, text=routed_text)
|
|
1109
|
+
|
|
1110
|
+
default_agent = overrides.default_agent
|
|
1111
|
+
if default_agent and default_agent in roster and default_agent != self._agent_name:
|
|
1112
|
+
return FeishuAgentRoute(agent=default_agent, text=message.text.strip(), via_default=True)
|
|
1113
|
+
return None
|
|
1114
|
+
|
|
1115
|
+
def _group_agent_roster_for_message(self, message: FeishuIncomingText) -> list[str]:
|
|
1116
|
+
overrides = self._group_overrides_for_message(message)
|
|
1117
|
+
if overrides is None:
|
|
1118
|
+
return []
|
|
1119
|
+
return [name for name in overrides.agent_roster if name != self._agent_name]
|
|
1120
|
+
|
|
1121
|
+
def _extract_explicit_agent_target(
|
|
1122
|
+
self,
|
|
1123
|
+
text: str,
|
|
1124
|
+
roster: list[str],
|
|
1125
|
+
) -> tuple[str, str] | None:
|
|
1126
|
+
stripped = text.strip()
|
|
1127
|
+
if not stripped:
|
|
1128
|
+
return None
|
|
1129
|
+
words = stripped.split(maxsplit=1)
|
|
1130
|
+
first = words[0]
|
|
1131
|
+
rest = words[1].strip() if len(words) > 1 else ""
|
|
1132
|
+
for prefix in _FEISHU_AGENT_TARGET_PREFIXES:
|
|
1133
|
+
if first.lower().startswith(prefix):
|
|
1134
|
+
candidate = first[len(prefix) :].strip()
|
|
1135
|
+
if candidate in roster:
|
|
1136
|
+
return candidate, rest
|
|
1137
|
+
if first.startswith("@"):
|
|
1138
|
+
candidate = first[1:].strip()
|
|
1139
|
+
if candidate in roster:
|
|
1140
|
+
return candidate, rest
|
|
1141
|
+
return None
|
|
1142
|
+
|
|
1143
|
+
def _build_group_agent_handoff_prompt(
|
|
1144
|
+
self,
|
|
1145
|
+
message: FeishuIncomingText,
|
|
1146
|
+
*,
|
|
1147
|
+
route: FeishuAgentRoute,
|
|
1148
|
+
) -> str:
|
|
1149
|
+
overrides = self._group_overrides_for_message(message)
|
|
1150
|
+
allow_handoff = bool(overrides and overrides.allow_interagent_handoff)
|
|
1151
|
+
configured_depth = overrides.max_handoff_depth if allow_handoff and overrides else 0
|
|
1152
|
+
handoff_depth_used = 1 if allow_handoff and configured_depth > 0 else 0
|
|
1153
|
+
remaining_depth = max(configured_depth - handoff_depth_used, 0)
|
|
1154
|
+
|
|
1155
|
+
routed_message = FeishuIncomingText(
|
|
1156
|
+
sender_id=message.sender_id,
|
|
1157
|
+
chat_id=message.chat_id,
|
|
1158
|
+
message_id=message.message_id,
|
|
1159
|
+
text=route.text or message.text,
|
|
1160
|
+
thread_id=message.thread_id,
|
|
1161
|
+
create_time_ms=message.create_time_ms,
|
|
1162
|
+
message_type=message.message_type,
|
|
1163
|
+
root_id=message.root_id,
|
|
1164
|
+
parent_id=message.parent_id,
|
|
1165
|
+
quote_summary=message.quote_summary,
|
|
1166
|
+
post_title=message.post_title,
|
|
1167
|
+
chat_type=message.chat_type,
|
|
1168
|
+
mentions_bot=message.mentions_bot,
|
|
1169
|
+
replies_to_bot=message.replies_to_bot,
|
|
1170
|
+
)
|
|
1171
|
+
user_text = build_feishu_agent_input(routed_message)
|
|
1172
|
+
return (
|
|
1173
|
+
"[Feishu controlled group handoff]\n"
|
|
1174
|
+
f"source_agent={self._agent_name}\n"
|
|
1175
|
+
f"target_agent={route.agent}\n"
|
|
1176
|
+
f"chat_id={message.chat_id}\n"
|
|
1177
|
+
f"thread_id={message.thread_id or ''}\n"
|
|
1178
|
+
f"reply_target=original_feishu_group_thread\n"
|
|
1179
|
+
f"handoff_allowed={'true' if allow_handoff else 'false'}\n"
|
|
1180
|
+
f"remaining_handoff_depth={remaining_depth}\n"
|
|
1181
|
+
"Do not start a free bot-to-bot conversation. Answer this delegated request and "
|
|
1182
|
+
"return the final answer here.\n"
|
|
1183
|
+
"[/Feishu controlled group handoff]\n\n"
|
|
1184
|
+
f"{user_text}"
|
|
1185
|
+
)
|
|
1186
|
+
|
|
1036
1187
|
def _should_use_bundled_native_runtime(self) -> bool:
|
|
1037
1188
|
if self._config.feishu.runtime_mode != "native" or self._orchestrator is None:
|
|
1038
1189
|
return False
|
|
@@ -2079,9 +2230,6 @@ class FeishuBot:
|
|
|
2079
2230
|
open_id = mention_id.get("open_id")
|
|
2080
2231
|
if isinstance(open_id, str) and open_id and open_id == bot_sender_id:
|
|
2081
2232
|
return True
|
|
2082
|
-
key = item.get("key")
|
|
2083
|
-
if isinstance(key, str) and key.lower() == "@all":
|
|
2084
|
-
return True
|
|
2085
2233
|
return False
|
|
2086
2234
|
|
|
2087
2235
|
def _message_replies_to_bot(self, message: dict[str, Any]) -> bool:
|
|
@@ -73,6 +73,7 @@ Runtime behavior notes:
|
|
|
73
73
|
- [Telegram Setup](telegram-setup.md)
|
|
74
74
|
- [WeChat / Weixin Setup](weixin-setup.md)
|
|
75
75
|
- [QQ Bot Official Pivot](qqbot-official-pivot.md)
|
|
76
|
+
- [v0.40.3 Release Note](release-note-v0.40.3.md)
|
|
76
77
|
- [v0.40.2 Release Note](release-note-v0.40.2.md)
|
|
77
78
|
- [v0.40.1 Release Note](release-note-v0.40.1.md)
|
|
78
79
|
- [v0.40.0 Release Note](release-note-v0.40.0.md)
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "controlmesh"
|
|
7
|
-
version = "0.40.
|
|
7
|
+
version = "0.40.3"
|
|
8
8
|
description = "ControlMesh brings official coding CLIs into Telegram, Matrix, and Feishu with persistent workspaces, long-running jobs, and production-friendly bot operations."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.11"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/config/RULES-all-clis.md
RENAMED
|
File without changes
|
{controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/config/RULES-claude-only.md
RENAMED
|
File without changes
|
{controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/config/RULES-codex-only.md
RENAMED
|
File without changes
|
{controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/config/RULES-gemini-only.md
RENAMED
|
File without changes
|
{controlmesh-0.40.2 → controlmesh-0.40.3}/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.40.2 → controlmesh-0.40.3}/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.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tasks/RULES.md
RENAMED
|
File without changes
|
|
File without changes
|
{controlmesh-0.40.2 → controlmesh-0.40.3}/controlmesh/_home_defaults/workspace/tools/RULES.md
RENAMED
|
File without changes
|
{controlmesh-0.40.2 → controlmesh-0.40.3}/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.40.2 → controlmesh-0.40.3}/controlmesh/_plugins/feishu_auth_kit/VENDORED_FROM.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
|
|
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
|