Coverage report: 70%

Files Functions Classes

coverage.py v7.15.0, created at 2026-07-07 14:04 +0800

File class   statements missing excluded   coverage
merco/__init__.py (no class)   6 2 0   67%
merco/agents/__init__.py (no class)   2 0 0   100%
merco/agents/profile.py AgentProfile   0 0 0   100%
merco/agents/profile.py AgentProfileRegistry   4 0 0   100%
merco/agents/profile.py ProfilePromptChunk   3 2 0   33%
merco/agents/profile.py (no class)   21 0 0   100%
merco/agents/subagent.py SubAgentManager   47 0 0   100%
merco/agents/subagent.py (no class)   9 0 3   100%
merco/context/__init__.py (no class)   2 0 0   100%
merco/context/pipeline.py ContextProcessor   0 0 1   100%
merco/context/pipeline.py ContextPipeline   6 0 0   100%
merco/context/pipeline.py (no class)   10 0 2   100%
merco/context/processors/__init__.py (no class)   0 0 0   100%
merco/context/processors/cache_optimize.py CacheOptimizeProcessor   16 2 0   88%
merco/context/processors/cache_optimize.py (no class)   6 0 0   100%
merco/context/processors/compress.py CompressProcessor   78 36 0   54%
merco/context/processors/compress.py (no class)   13 0 0   100%
merco/context/recovery.py ContextCompressRecovery   13 0 0   100%
merco/context/recovery.py (no class)   8 0 0   100%
merco/core/__init__.py (no class)   7 0 0   100%
merco/core/agent.py PromptChunk   2 0 0   100%
merco/core/agent.py PromptBuilder   6 0 0   100%
merco/core/agent.py BasePromptChunk   1 0 0   100%
merco/core/agent.py SkillsHintChunk   14 1 0   93%
merco/core/agent.py TimeContextChunk   3 0 0   100%
merco/core/agent.py ResponseProvider   0 0 1   100%
merco/core/agent.py NonStreamingProvider   5 1 0   80%
merco/core/agent.py StreamingProvider   121 16 0   87%
merco/core/agent.py Agent   487 99 0   80%
merco/core/agent.py AgentLoop   7 7 0   0%
merco/core/agent.py (no class)   85 9 1   89%
merco/core/config.py ProviderInfo   5 5 0   0%
merco/core/config.py ModelConfig   8 5 0   38%
merco/core/config.py MercoConfig   31 8 0   74%
merco/core/config.py (no class)   71 0 0   100%
merco/core/context.py ContextManager   18 3 0   83%
merco/core/context.py (no class)   26 0 0   100%
merco/core/empty_response.py CallbackEmptyResponse   6 1 0   83%
merco/core/empty_response.py (no class)   7 0 0   100%
merco/core/interrupt.py CleanupContext   0 0 0   100%
merco/core/interrupt.py CleanupProcessor   0 0 1   100%
merco/core/interrupt.py InjectCancelMessages   14 0 0   100%
merco/core/interrupt.py TerminateSubprocesses   6 0 0   100%
merco/core/interrupt.py CloseMCPConnections   3 0 0   100%
merco/core/interrupt.py EmitInterruptHooks   2 0 0   100%
merco/core/interrupt.py SavePartialState   5 0 0   100%
merco/core/interrupt.py InterruptCleanupPipeline   9 0 0   100%
merco/core/interrupt.py (no class)   34 0 2   100%
merco/core/llm/__init__.py (no class)   2 0 0   100%
merco/core/llm/_client.py ThinkingStrategy   1 1 2   0%
merco/core/llm/_client.py DirectFieldStrategy   10 3 0   70%
merco/core/llm/_client.py ModelExtraStrategy   11 5 0   55%
merco/core/llm/_client.py ThinkTagStrategy   48 38 0   21%
merco/core/llm/_client.py ThinkingExtractor   18 8 0   56%
merco/core/llm/_client.py LLMClient   108 54 0   50%
merco/core/llm/_client.py (no class)   88 12 2   86%
merco/core/llm/error_ui.py ErrorInfo   0 0 0   100%
merco/core/llm/error_ui.py (no class)   86 4 0   95%
merco/core/llm/errors.py (no class)   4 0 0   100%
merco/core/loop_policy.py LoopState   0 0 0   100%
merco/core/loop_policy.py LoopDecision   0 0 0   100%
merco/core/loop_policy.py LoopPolicy   0 0 1   100%
merco/core/loop_policy.py DefaultLoopPolicy   3 0 0   100%
merco/core/loop_policy.py LoopPolicyRegistry   9 1 0   89%
merco/core/loop_policy.py (no class)   29 0 2   100%
merco/core/message.py MessageRole   0 0 0   100%
merco/core/message.py Message   6 6 0   0%
merco/core/message.py MessageProcessor   2 2 0   0%
merco/core/message.py (no class)   21 0 0   100%
merco/core/pipeline.py ProcessContext   0 0 0   100%
merco/core/pipeline.py Processor   0 0 1   100%
merco/core/pipeline.py ResultPipeline   17 6 0   65%
merco/core/pipeline.py RecoveryContext   0 0 0   100%
merco/core/pipeline.py Recovery   0 0 1   100%
merco/core/pipeline.py RecoveryPipeline   18 7 0   61%
merco/core/pipeline.py EmptyResponseContext   0 0 0   100%
merco/core/pipeline.py EmptyResponseStrategy   0 0 1   100%
merco/core/pipeline.py EmptyResponsePipeline   15 6 0   60%
merco/core/pipeline.py (no class)   87 19 7   78%
merco/core/recovery/__init__.py (no class)   3 0 0   100%
merco/core/recovery/model_fallback.py ModelFallbackRecovery   5 5 0   0%
merco/core/recovery/model_fallback.py (no class)   6 0 0   100%
merco/core/recovery/wait.py WaitRecovery   27 0 0   100%
merco/core/recovery/wait.py (no class)   9 0 0   100%
merco/core/self_healing.py (no class)   15 8 0   47%
merco/core/session.py Session   50 7 0   86%
merco/core/session.py (no class)   18 0 0   100%
merco/gateway/__init__.py (no class)   2 2 0   0%
merco/gateway/base.py BaseGateway   8 8 0   0%
merco/gateway/base.py (no class)   13 13 0   0%
merco/gateway/discord.py DiscordGateway   5 5 0   0%
merco/gateway/discord.py (no class)   7 7 0   0%
merco/gateway/telegram.py TelegramGateway   6 6 0   0%
merco/gateway/telegram.py (no class)   7 7 0   0%
merco/hooks/__init__.py (no class)   2 0 0   100%
merco/hooks/chat_hooks.py (no class)   11 11 0   0%
merco/hooks/lifecycle.py (no class)   14 14 0   0%
merco/hooks/registry.py HookResult   0 0 0   100%
merco/hooks/registry.py HookRegistry   29 5 0   83%
merco/hooks/registry.py (no class)   17 0 0   100%
merco/hooks/tool_hooks.py (no class)   11 11 0   0%
merco/mcp/__init__.py (no class)   0 0 0   100%
merco/mcp/config.py MCPServerConfig   3 1 0   67%
merco/mcp/config.py (no class)   16 0 0   100%
merco/mcp/manager.py MCPServerManager   95 37 0   61%
merco/mcp/manager.py (no class)   27 2 0   93%
merco/mcp/tool.py MCPServerTool   18 0 0   100%
merco/mcp/tool.py (no class)   8 0 0   100%
merco/memory/__init__.py (no class)   5 0 0   100%
merco/memory/backend.py MemoryBackend   0 0 5   100%
merco/memory/backend.py MemoryBackendRegistry   4 0 0   100%
merco/memory/backend.py (no class)   19 0 6   100%
merco/memory/backends/__init__.py (no class)   2 0 0   100%
merco/memory/backends/json_backend.py JSONBackend   32 0 0   100%
merco/memory/backends/json_backend.py (no class)   13 0 0   100%
merco/memory/recall.py RecallResult   0 0 0   100%
merco/memory/recall.py BaseRecaller   0 0 1   100%
merco/memory/recall.py FTS5Recaller   8 0 0   100%
merco/memory/recall.py MemoryRecaller   12 0 0   100%
merco/memory/recall.py HybridRecaller   36 4 0   89%
merco/memory/recall.py MemoryRecall   17 17 0   0%
merco/memory/recall.py (no class)   35 0 4   100%
merco/memory/save_pipeline.py SaveItem   0 0 0   100%
merco/memory/save_pipeline.py MemorySaveProcessor   0 0 1   100%
merco/memory/save_pipeline.py SourceEnricher   4 0 0   100%
merco/memory/save_pipeline.py DedupProcessor   17 0 0   100%
merco/memory/save_pipeline.py MemorySavePipeline   27 9 0   67%
merco/memory/save_pipeline.py (no class)   33 0 2   100%
merco/memory/search.py MemorySearch   9 9 0   0%
merco/memory/search.py (no class)   7 7 0   0%
merco/memory/session_search.py SessionSearch   44 10 0   77%
merco/memory/session_search.py (no class)   11 0 0   100%
merco/memory/session_store.py SessionWriteError   0 0 0   100%
merco/memory/session_store.py SessionStore   131 26 0   80%
merco/memory/session_store.py (no class)   36 0 0   100%
merco/memory/store.py MemoryStore   8 0 0   100%
merco/memory/store.py (no class)   11 0 0   100%
merco/memory/strategy.py MemorySaveStrategy   1 0 1   100%
merco/memory/strategy.py ExplicitRememberStrategy   9 0 0   100%
merco/memory/strategy.py SessionEndExtractStrategy   56 10 0   82%
merco/memory/strategy.py (no class)   28 0 3   100%
merco/observability/__init__.py (no class)   4 0 0   100%
merco/observability/audit.py AuditLogger   14 14 0   0%
merco/observability/audit.py (no class)   7 7 0   0%
merco/observability/logger.py (no class)   16 12 0   25%
merco/observability/metrics.py MetricsCollector   15 6 0   60%
merco/observability/metrics.py (no class)   12 0 0   100%
merco/observability/observer.py Observer   137 18 0   87%
merco/observability/observer.py (no class)   25 0 0   100%
merco/observability/tracing.py TraceSpan   13 13 0   0%
merco/observability/tracing.py Tracer   9 9 0   0%
merco/observability/tracing.py (no class)   15 15 0   0%
merco/plugins/__init__.py (no class)   3 0 0   100%
merco/plugins/base.py Plugin   1 0 1   100%
merco/plugins/base.py PluginContext   28 2 0   93%
merco/plugins/base.py (no class)   18 0 21   100%
merco/plugins/builtin/__init__.py (no class)   0 0 0   100%
merco/plugins/builtin/mcp/__init__.py (no class)   2 0 0   100%
merco/plugins/builtin/mcp/plugin.py MCPPlugin   6 0 0   100%
merco/plugins/builtin/mcp/plugin.py (no class)   10 0 2   100%
merco/plugins/builtin/observability/__init__.py (no class)   2 0 0   100%
merco/plugins/builtin/observability/plugin.py ObservabilityPlugin   3 0 0   100%
merco/plugins/builtin/observability/plugin.py (no class)   10 0 2   100%
merco/plugins/builtin/scheduler/__init__.py (no class)   2 0 0   100%
merco/plugins/builtin/scheduler/plugin.py SchedulerPlugin   3 0 0   100%
merco/plugins/builtin/scheduler/plugin.py (no class)   10 0 2   100%
merco/plugins/builtin/skills/__init__.py (no class)   2 0 0   100%
merco/plugins/builtin/skills/plugin.py SkillPlugin   10 0 0   100%
merco/plugins/builtin/skills/plugin.py (no class)   10 0 2   100%
merco/plugins/builtin/subagent/__init__.py (no class)   2 0 0   100%
merco/plugins/builtin/subagent/plugin.py SubAgentPlugin   16 0 0   100%
merco/plugins/builtin/subagent/plugin.py (no class)   10 0 2   100%
merco/plugins/builtin/superpower/__init__.py (no class)   2 0 0   100%
merco/plugins/builtin/superpower/plugin.py SuperpowerHintChunk   2 0 0   100%
merco/plugins/builtin/superpower/plugin.py SuperpowerPlugin   7 1 0   86%
merco/plugins/builtin/superpower/plugin.py (no class)   17 0 2   100%
merco/plugins/builtin/web/__init__.py (no class)   2 0 0   100%
merco/plugins/builtin/web/plugin.py WebPlugin   4 0 0   100%
merco/plugins/builtin/web/plugin.py (no class)   10 0 2   100%
merco/plugins/manager.py PluginManager   40 11 0   72%
merco/plugins/manager.py (no class)   13 0 2   100%
merco/sandbox/__init__.py (no class)   13 2 0   85%
merco/sandbox/confirm.py (no class)   141 120 0   15%
merco/sandbox/guard.py GuardAction   0 0 0   100%
merco/sandbox/guard.py GuardResult   0 0 0   100%
merco/sandbox/guard.py GuardConfirmationRequired   2 0 0   100%
merco/sandbox/guard.py GuardRule   2 1 0   50%
merco/sandbox/guard.py ToolGuard   7 0 0   100%
merco/sandbox/guard.py PermissionPolicy   0 0 1   100%
merco/sandbox/guard.py PolicyPipeline   8 0 0   100%
merco/sandbox/guard.py _SingleRulePolicy   9 1 0   89%
merco/sandbox/guard.py BuiltinDefaultPolicy   27 0 0   100%
merco/sandbox/guard.py (no class)   49 0 2   100%
merco/sandbox/security.py SecurityChecker   9 0 0   100%
merco/sandbox/security.py (no class)   7 0 0   100%
merco/sandbox/snapshot.py (no class)   66 47 0   29%
merco/scheduler/__init__.py (no class)   2 0 0   100%
merco/scheduler/cron.py CronJob   6 6 0   0%
merco/scheduler/cron.py CronScheduler   31 29 0   6%
merco/scheduler/cron.py (no class)   16 0 0   100%
merco/scheduler/delivery.py DeliveryManager   11 11 0   0%
merco/scheduler/delivery.py (no class)   6 6 0   0%
merco/scheduler/jobs.py TaskStatus   0 0 0   100%
merco/scheduler/jobs.py Task   0 0 0   100%
merco/scheduler/jobs.py TaskManager   19 19 0   0%
merco/scheduler/jobs.py (no class)   27 27 0   0%
merco/setup.py (no class)   128 128 0   0%
merco/skills/__init__.py (no class)   3 0 0   100%
merco/skills/builtin/__init__.py (no class)   24 24 0   0%
merco/skills/loader.py SkillLoader   26 3 0   88%
merco/skills/loader.py (no class)   11 0 0   100%
merco/skills/processors.py SkillViewProcessor   15 13 0   13%
merco/skills/processors.py (no class)   7 0 0   100%
merco/skills/registry.py SkillRegistry   18 2 0   89%
merco/skills/registry.py (no class)   9 0 0   100%
merco/todo/__init__.py (no class)   3 0 0   100%
merco/todo/manager.py TodoManager   41 3 0   93%
merco/todo/manager.py (no class)   17 0 0   100%
merco/todo/models.py TodoItem   0 0 0   100%
merco/todo/models.py (no class)   14 0 0   100%
merco/tools/__init__.py (no class)   31 21 0   32%
merco/tools/base.py BaseTool   6 3 0   50%
merco/tools/base.py (no class)   13 0 0   100%
merco/tools/bash_tools.py BashTool   19 11 0   42%
merco/tools/bash_tools.py (no class)   13 0 0   100%
merco/tools/edit.py EditFile   12 1 0   92%
merco/tools/edit.py (no class)   23 1 0   96%
merco/tools/errors.py (no class)   61 26 0   57%
merco/tools/file_tools.py ReadFile   46 46 0   0%
merco/tools/file_tools.py WriteFile   4 4 0   0%
merco/tools/file_tools.py (no class)   23 0 0   100%
merco/tools/mcp_tools.py MCPTool   2 2 0   0%
merco/tools/mcp_tools.py MCPManager   4 4 0   0%
merco/tools/mcp_tools.py (no class)   15 15 0   0%
merco/tools/middleware.py ToolContext   0 0 0   100%
merco/tools/middleware.py ToolMiddleware   0 0 3   100%
merco/tools/middleware.py ToolMiddlewareChain   28 1 0   96%
merco/tools/middleware.py GuardMiddleware   10 1 0   90%
merco/tools/middleware.py ErrorHandlingMiddleware   4 0 0   100%
merco/tools/middleware.py EditApplyMiddleware   16 1 0   94%
merco/tools/middleware.py (no class)   44 0 4   100%
merco/tools/processors/__init__.py (no class)   2 0 0   100%
merco/tools/processors/truncation.py TruncationProcessor   69 61 0   12%
merco/tools/processors/truncation.py (no class)   17 0 0   100%
merco/tools/recovery.py ToolReduceRecovery   7 7 0   0%
merco/tools/recovery.py (no class)   6 0 0   100%
merco/tools/registry.py ToolRegistry   23 2 0   91%
merco/tools/registry.py (no class)   14 0 0   100%
merco/tools/skill_tools.py SkillViewTool   20 7 0   65%
merco/tools/skill_tools.py (no class)   13 0 0   100%
merco/tools/task_tools.py TaskTool   7 3 0   57%
merco/tools/task_tools.py (no class)   11 0 0   100%
merco/tools/web_tools.py WebFetch   12 12 0   0%
merco/tools/web_tools.py WebSearch   11 11 0   0%
merco/tools/web_tools.py (no class)   14 0 0   100%
merco/utils/__init__.py (no class)   0 0 0   100%
merco/utils/helpers.py (no class)   23 23 0   0%
Total     4766 1423 99   70%

No items found using the specified filter.