refactor: reorganize backend module boundaries

This commit is contained in:
jxxghp
2026-08-14 19:53:33 +08:00
parent fe0b444ceb
commit 369d7d6448
584 changed files with 2423 additions and 2275 deletions

View File

@@ -1,6 +1,6 @@
import warnings
from app.compat.imports import install_legacy_import_hook
from app.runtime.compat.imports import install_legacy_import_hook
def _filter_third_party_startup_warnings() -> None:

1
app/adapters/__init__.py Normal file
View File

@@ -0,0 +1 @@
"""MoviePilot 技术与外部系统适配器。"""

1
app/adapters/cache/__init__.py vendored Normal file
View File

@@ -0,0 +1 @@
"""缓存持久化适配器。"""

View File

@@ -7,14 +7,14 @@ import aiofiles
import aioshutil
from anyio import Path as AsyncPath
from app.infrastructure.redis import AsyncRedisHelper, RedisHelper
from app.platform.cache import (
from app.adapters.cache.redis import AsyncRedisHelper, RedisHelper
from app.runtime.cache import (
AsyncCacheBackend,
CacheBackend,
DEFAULT_CACHE_REGION,
configure_cache_factories,
)
from app.platform.config import settings
from app.runtime.config import settings
class RedisBackend(CacheBackend):

View File

@@ -9,9 +9,9 @@ import redis
from redis.asyncio import BlockingConnectionPool as AsyncBlockingConnectionPool
from redis.asyncio import Redis
from app.platform.config import settings
from app.platform.log import logger
from app.platform.reload import ConfigReloadMixin
from app.runtime.config import settings
from app.runtime.log import logger
from app.runtime.reload import ConfigReloadMixin
from app.foundation.singleton import Singleton
# 类型缓存集合,针对非容器简单类型

View File

@@ -1,10 +1,10 @@
import json
from typing import Any, Dict, Tuple, Optional
from app.platform.config import settings
from app.platform.log import logger
from app.runtime.config import settings
from app.runtime.log import logger
from app.foundation.crypto import CryptoJsUtils, HashUtils
from app.foundation.http import RequestUtils
from app.adapters.network.http import RequestUtils
from app.domain.string import StringUtils
from app.foundation.url import UrlUtils

View File

@@ -1,4 +1,4 @@
from app.foundation.http import RequestUtils
from app.adapters.network.http import RequestUtils
class WebUtils:

View File

@@ -28,17 +28,17 @@ from packaging.version import Version, InvalidVersion
from importlib.metadata import distributions
from requests import Response
from app.platform.cache import cached, is_fresh
from app.platform.config import settings
from app.runtime.cache import cached, is_fresh
from app.runtime.config import settings
from app.db.systemconfig_oper import SystemConfigOper
from app.infrastructure.package import PackageInstallRequest, build_package_install_strategies
from app.platform.log import logger
from app.adapters.system.package import PackageInstallRequest, build_package_install_strategies
from app.runtime.log import logger
from app.schemas.types import SystemConfigKey
from app.foundation.http import RequestUtils, AsyncRequestUtils
from app.adapters.network.http import RequestUtils, AsyncRequestUtils
from app.foundation.singleton import WeakSingleton
from app.domain.string import StringUtils
from app.foundation.version import compare_version
from app.infrastructure.system import SystemUtils
from app.adapters.system.host import SystemUtils
from app.foundation.url import UrlUtils
from version import APP_VERSION

View File

@@ -1,8 +1,8 @@
import base64
from typing import Optional
from app.platform.config import settings
from app.foundation.http import RequestUtils
from app.runtime.config import settings
from app.adapters.network.http import RequestUtils
class OcrHelper:

View File

@@ -5,23 +5,23 @@ from threading import Thread
from typing import Any, Dict, List, Optional, Tuple, Union
from urllib.parse import parse_qs, quote, urlparse, urlsplit
from app.platform.cache import cached
from app.platform.config import settings
from app.runtime.cache import cached
from app.runtime.config import settings
from app.domain.context import MediaInfo, MusicInfo
from app.domain.meta.metabase import MetaBase
from app.db.subscribe_oper import SubscribeOper
from app.db.systemconfig_oper import SystemConfigOper
from app.db.workflow_oper import WorkflowOper
from app.platform.log import logger
from app.runtime.log import logger
from app.schemas.types import (
MUSIC_ENTITY_RECORDING,
MediaType,
SystemConfigKey,
media_type_to_agent,
)
from app.foundation.http import AsyncRequestUtils, RequestUtils
from app.adapters.network.http import AsyncRequestUtils, RequestUtils
from app.domain.media import normalize_music_type, resolve_media_identity
from app.infrastructure.system import SystemUtils
from app.adapters.system.host import SystemUtils
from version import APP_VERSION, FRONTEND_VERSION

View File

@@ -0,0 +1 @@
"""通用网络与 Web 协议适配器。"""

View File

@@ -7,9 +7,9 @@ from dataclasses import dataclass, field
from typing import Any, Callable, Optional, Protocol
from urllib.parse import urlparse
from app.platform.config import settings
from app.platform.log import logger
from app.foundation.http import RequestUtils, cookie_parse
from app.runtime.config import settings
from app.runtime.log import logger
from app.adapters.network.http import RequestUtils, cookie_parse
class BrowserElement(Protocol):

View File

@@ -2,7 +2,7 @@ import os
from pyquery import PyQuery
from app.platform.log import logger
from app.runtime.log import logger
CHALLENGE_TITLES = [
# Cloudflare

View File

@@ -13,9 +13,9 @@ import urllib.request
from threading import Lock
from typing import Dict, Optional
from app.platform.config import settings
from app.platform.log import logger
from app.platform.reload import ConfigReloadMixin
from app.runtime.config import settings
from app.runtime.log import logger
from app.runtime.reload import ConfigReloadMixin
from app.foundation.singleton import Singleton
# DoH 关闭时需要释放线程池;保持惰性创建可避免未启用 DoH 时占用进程级资源

View File

@@ -0,0 +1 @@
"""操作系统、进程与运行资源适配器。"""

View File

@@ -1,8 +1,8 @@
from pyvirtualdisplay import Display
from app.platform.log import logger
from app.runtime.log import logger
from app.foundation.singleton import Singleton
from app.infrastructure.system import SystemUtils
from app.adapters.system.host import SystemUtils
import os

View File

@@ -2,13 +2,30 @@ import json
import platform
import sys
from pathlib import Path
from typing import Callable
from app.platform.config import settings
from app.infrastructure.sites import SitesHelper # noqa
from app.platform.log import logger
from app.foundation.http import RequestUtils
from app.runtime.config import settings
from app.runtime.log import logger
from app.adapters.network.http import RequestUtils
from app.foundation.version import compare_version
from app.infrastructure.system import SystemUtils
from app.adapters.system.host import SystemUtils
ResourceVersionProvider = Callable[[], tuple[str, str]]
def _unavailable_resource_versions() -> tuple[str, str]:
"""站点能力尚未装配时返回可安全比较的空版本。"""
return "0", "0"
_resource_version_provider: ResourceVersionProvider = _unavailable_resource_versions
def configure_resource_version_provider(provider: ResourceVersionProvider) -> None:
"""由组合根注入已加载的认证与索引版本,保持适配器不依赖应用层。"""
global _resource_version_provider
_resource_version_provider = provider
class ResourceHelper:
@@ -17,7 +34,7 @@ class ResourceHelper:
"""
_base_dir: Path = settings.ROOT_PATH
_resource_target = Path("app/infrastructure")
_resource_target = Path("app/application/site")
_version_flag = settings.RESOURCE_VERSION_FLAG
_repo = (
f"{settings.GITHUB_PROXY}https://raw.githubusercontent.com/"
@@ -74,16 +91,29 @@ class ResourceHelper:
).get_res(self._repo)
return response if response and response.status_code == 200 else None
def check(self) -> bool:
def check(
self,
*,
auth_version: str | None = None,
indexer_version: str | None = None,
) -> bool:
"""
检测并安装当前平台的资源更新
:param auth_version: 当前已加载的站点认证资源版本省略时使用组合根注入值
:param indexer_version: 当前已加载的站点索引资源版本省略时使用组合根注入值
:return: 是否成功安装了需要由上层处理重启的新资源
"""
if not settings.AUTO_UPDATE_RESOURCE:
return False
if SystemUtils.is_frozen():
return False
if auth_version is None or indexer_version is None:
configured_auth_version, configured_indexer_version = (
_resource_version_provider()
)
auth_version = auth_version or configured_auth_version
indexer_version = indexer_version or configured_indexer_version
logger.info("开始检测资源包版本...")
res = self._load_resource_info()
if res:
@@ -107,10 +137,10 @@ class ResourceHelper:
# 判断版本号
if rtype == "auth":
# 站点认证资源
local_version = SitesHelper().auth_version
local_version = auth_version
elif rtype == "sites":
# 站点索引资源
local_version = SitesHelper().indexer_version
local_version = indexer_version
else:
continue
if compare_version(version, ">", local_version):

View File

@@ -2,8 +2,8 @@ import logging
from functools import lru_cache
from typing import List, Optional, Tuple
from app.platform.config import settings
from app.platform.log import logger, log_settings
from app.runtime.config import settings
from app.runtime.log import logger, log_settings
try:
import moviepilot_rust as _moviepilot_rust

View File

@@ -6,7 +6,7 @@ from fastapi.concurrency import run_in_threadpool
from app.agent.policy import sanitize_for_host
from app.chain import ChainBase
from app.platform.log import logger
from app.runtime.log import logger
from app.schemas import Notification
from app.schemas.message import (
MessageResponse,

View File

@@ -12,9 +12,9 @@ from pathlib import Path
from typing import Any, Dict, Optional
from uuid import uuid4
from app.platform.config import settings
from app.platform.log import logger
from app.foundation.http import RequestUtils
from app.runtime.config import settings
from app.runtime.log import logger
from app.adapters.network.http import RequestUtils
class AgentCapabilityProvider(ABC):
@@ -799,7 +799,7 @@ class AgentCapabilityManager:
if not source:
return False
from app.extensions.service_registry import ServiceConfigHelper
from app.runtime.extensions.service_registry import ServiceConfigHelper
for config in ServiceConfigHelper.get_notification_configs():
if config.name != source:

View File

@@ -10,8 +10,8 @@ from urllib.parse import urlsplit
from langchain_core.messages import AIMessage, AIMessageChunk
from app.platform.config import settings
from app.platform.log import logger
from app.runtime.config import settings
from app.runtime.log import logger
if TYPE_CHECKING:
from app.agent.llm.server_tools import ServerToolResolution

View File

@@ -20,9 +20,9 @@ import aiofiles
import httpx
import jwt
from app.platform.config import settings
from app.runtime.config import settings
from app.db.systemconfig_oper import SystemConfigOper
from app.platform.log import logger
from app.runtime.log import logger
from app.schemas.types import SystemConfigKey
from app.foundation.singleton import Singleton

View File

@@ -13,14 +13,14 @@ from typing import Any, Optional
from urllib.parse import urljoin
from app.db.systemconfig_oper import SystemConfigOper
from app.platform.log import logger
from app.runtime.log import logger
from app.schemas.agent import (
AgentMcpServerConfig,
AgentMcpServerTestResult,
AgentMcpServerToolInfo,
)
from app.schemas.types import SystemConfigKey
from app.foundation.http import AsyncRequestUtils
from app.adapters.network.http import AsyncRequestUtils
MCP_PROTOCOL_VERSION = "2025-11-25"
MCP_CLIENT_NAME = "MoviePilot Agent"

View File

@@ -6,9 +6,9 @@ from typing import Dict, List, Optional
from langchain_core.messages import BaseMessage, messages_from_dict, messages_to_dict
from app.platform.config import settings
from app.runtime.config import settings
from app.db.agentchat_oper import AgentChatOper
from app.platform.log import logger
from app.runtime.log import logger
from app.schemas.agent import ConversationMemory

View File

@@ -35,7 +35,7 @@ from pydantic import BaseModel, Field
from app.agent.middleware.utils import append_to_system_message
from app.agent.policy import sanitize_for_host, summarize_error, summarize_result
from app.agent.tools.tags import ToolTag
from app.platform.log import logger
from app.runtime.log import logger
# 活动日志保留天数
DEFAULT_RETENTION_DAYS = 7

View File

@@ -17,7 +17,7 @@ from langchain_core.runnables import RunnableConfig
from langgraph.runtime import Runtime
from app.agent.middleware.utils import append_to_system_message
from app.platform.log import logger
from app.runtime.log import logger
# JOB.md 文件最大限制为 1MB
MAX_JOB_FILE_SIZE = 1 * 1024 * 1024

View File

@@ -15,7 +15,7 @@ from langchain_core.runnables import RunnableConfig
from langgraph.runtime import Runtime
from app.agent.middleware.utils import append_to_system_message
from app.platform.log import logger
from app.runtime.log import logger
# 记忆文件最大限制为 100KB防止单文件过大导致上下文溢出
MAX_MEMORY_FILE_SIZE = 100 * 1024

View File

@@ -31,7 +31,7 @@ from app.agent.skills.metadata import (
SkillMetadata,
parse_skill_metadata,
)
from app.platform.log import logger
from app.runtime.log import logger
# 模型返回上限独立于领域层的磁盘读取上限,避免异常内容撑爆上下文。
MAX_SKILL_RESULT_CHARS = 64 * 1024

View File

@@ -37,7 +37,7 @@ from app.agent.policy import (
from app.agent.runtime import SubAgentDefinition, agent_runtime_manager
from app.agent.tools.tags import ToolTag
from app.agent.tools.catalog import ToolCatalogSnapshot
from app.platform.log import logger
from app.runtime.log import logger
SUBAGENT_TASK_TOOL_NAME = "task"

View File

@@ -17,7 +17,7 @@ from langgraph.graph.message import REMOVE_ALL_MESSAGES
from langgraph.types import Command
from app.agent.middleware.usage import UsageMiddleware
from app.platform.log import logger
from app.runtime.log import logger
try:
_internal_call_metadata = import_module(

View File

@@ -28,7 +28,7 @@ from typing_extensions import TypedDict # noqa
from app.agent.llm import LLMHelper
from app.agent.tools.tags import ToolTag
from app.platform.log import logger
from app.runtime.log import logger
MIN_SELECTED_TOOL_COUNT = 4
RECENT_SELECTION_CONTEXT_MESSAGE_LIMIT = 6

View File

@@ -11,7 +11,7 @@ from langchain.agents.middleware.types import (
from langchain_core.messages import AIMessage
from langchain_core.messages.utils import count_tokens_approximately
from app.platform.log import logger
from app.runtime.log import logger
class UsageMiddleware(AgentMiddleware):

View File

@@ -69,13 +69,13 @@ from app.agent.tools.impl.mcp import (
)
from app.agent.tools.impl.query_system_settings import QuerySystemSettingsTool
from app.chain import ChainBase
from app.platform.config import settings
from app.platform.events import eventmanager
from app.extensions.plugin_manager import PluginManager
from app.runtime.config import settings
from app.runtime.events import eventmanager
from app.runtime.extensions.plugin_manager import PluginManager
from app.db.agentchat_oper import AgentChatOper
from app.db.agenttask_oper import AgentTaskOper
from app.db.user_oper import UserOper
from app.platform.log import logger
from app.runtime.log import logger
from app.schemas import AgentLLMProviderEventData, AgentTokensUsageEventData, Notification, NotificationType
from app.schemas.message import ChannelCapabilityManager, ChannelCapability
from app.schemas.types import ChainEventType, EventType, MessageChannel

View File

@@ -25,7 +25,7 @@ from app.agent.policy.sanitizer import (
summarize_input,
summarize_result,
)
from app.platform.log import logger
from app.runtime.log import logger
_HookResult = TypeVar("_HookResult")

View File

@@ -10,15 +10,15 @@ from typing import Any, Dict, Optional
import yaml
from app.agent.llm.capability import AgentCapabilityManager
from app.platform.config import settings
from app.platform.log import logger
from app.runtime.config import settings
from app.runtime.log import logger
from app.schemas import (
ChannelCapability,
ChannelCapabilities,
MessageChannel,
ChannelCapabilityManager,
)
from app.infrastructure.system import SystemUtils
from app.adapters.system.host import SystemUtils
SYSTEM_TASKS_FILE = "System Tasks.yaml"
SYSTEM_TASKS_SCHEMA_VERSION = 2

View File

@@ -12,8 +12,8 @@ from typing import Any, Iterable, Optional
import yaml
from app.platform.config import settings
from app.platform.log import logger
from app.runtime.config import settings
from app.runtime.log import logger
CURRENT_PERSONA_FILE = "CURRENT_PERSONA.md"
SYSTEM_RUNTIME_DIR = "runtime"

View File

@@ -10,10 +10,10 @@ from typing import Dict, List, Optional, Tuple
from urllib.parse import urlencode, urljoin, urlparse
from app.agent.skills.metadata import parse_skill_metadata
from app.platform.cache import cached, fresh
from app.platform.config import settings
from app.platform.log import logger
from app.foundation.http import RequestUtils
from app.runtime.cache import cached, fresh
from app.runtime.config import settings
from app.runtime.log import logger
from app.adapters.network.http import RequestUtils
from app.foundation.singleton import WeakSingleton
from app.foundation.url import UrlUtils

View File

@@ -18,10 +18,10 @@ from app.agent.policy.sanitizer import (
)
from app.agent.tools.tags import ToolTag
from app.chain import ChainBase
from app.platform.config import settings
from app.messaging.agent import matches_channel_admin
from app.extensions.service_registry import ServiceConfigHelper
from app.platform.log import logger
from app.runtime.config import settings
from app.application.messaging.agent import matches_channel_admin
from app.runtime.extensions.service_registry import ServiceConfigHelper
from app.runtime.log import logger
from app.schemas import Notification
from app.schemas.types import MessageChannel, NotificationType

View File

@@ -87,8 +87,8 @@ from app.agent.tools.impl.update_custom_identifiers import UpdateCustomIdentifie
from app.agent.tools.impl.query_system_settings import QuerySystemSettingsTool
from app.agent.tools.impl.update_system_settings import UpdateSystemSettingsTool
from app.agent.llm.capability import AgentCapabilityManager
from app.extensions.plugin_manager import PluginManager
from app.platform.log import logger
from app.runtime.extensions.plugin_manager import PluginManager
from app.runtime.log import logger
from app.schemas.message import ChannelCapabilityManager
from app.schemas.types import MessageChannel
from .base import MoviePilotTool

View File

@@ -4,10 +4,10 @@ import copy
import re
from typing import Any, Dict, Iterable, Optional
from app.platform.events import eventmanager
from app.runtime.events import eventmanager
from app.db.subscribe_oper import SubscribeOper
from app.db.systemconfig_oper import SystemConfigOper
from app.services.filter import RuleHelper
from app.application.filter import RuleHelper
from app.modules.filter.RuleParser import RuleParser
from app.modules.filter.builtin_rules import BUILTIN_RULE_SET
from app.schemas import CustomRule, FilterRuleGroup

View File

@@ -4,11 +4,11 @@ import json
import shutil
from typing import Any, Optional
from app.platform.config import settings
from app.extensions.plugin_manager import PluginManager
from app.runtime.config import settings
from app.runtime.extensions.plugin_manager import PluginManager
from app.db.systemconfig_oper import SystemConfigOper
from app.integrations.server import MoviePilotServerHelper
from app.integrations.market import PluginHelper
from app.adapters.external.server import MoviePilotServerHelper
from app.adapters.external.market import PluginHelper
from app.schemas.types import SystemConfigKey
# 默认只向智能体返回一个可读预览,避免超大插件数据挤爆上下文窗口。

View File

@@ -4,7 +4,7 @@ from dataclasses import dataclass
from typing import Any, Optional
from app.agent.policy.secret_fields import is_secret_setting_key
from app.platform.config import Settings
from app.runtime.config import Settings
from app.schemas.types import SystemConfigKey

View File

@@ -14,8 +14,8 @@ from pathlib import Path
from typing import Any, Optional
from app.agent.tools.impl._command_safety import validate_command_safety
from app.platform.config import settings
from app.platform.log import logger
from app.runtime.config import settings
from app.runtime.log import logger
if os.name == "posix":
import fcntl as _fcntl

View File

@@ -13,7 +13,7 @@ from app.agent.tools.impl._filter_rule_utils import (
save_system_config,
serialize_custom_rule,
)
from app.platform.log import logger
from app.runtime.log import logger
from app.schemas.types import SystemConfigKey

View File

@@ -12,12 +12,12 @@ from app.agent.tools.tags import ToolTag
from app.chain.download import DownloadChain
from app.chain.media import MediaChain
from app.chain.search import SearchChain
from app.platform.config import settings
from app.runtime.config import settings
from app.domain.context import Context
from app.domain.metainfo import MetaInfo
from app.db.site_oper import SiteOper
from app.services.directory import DirectoryHelper, validate_download_save_path
from app.platform.log import logger
from app.application.directory import DirectoryHelper, validate_download_save_path
from app.runtime.log import logger
from app.schemas import FileURI
from app.foundation.crypto import HashUtils

View File

@@ -17,7 +17,7 @@ from app.agent.tools.impl._filter_rule_utils import (
save_system_config,
serialize_rule_group,
)
from app.platform.log import logger
from app.runtime.log import logger
from app.schemas.types import SystemConfigKey

View File

@@ -8,7 +8,7 @@ from app.agent.tools.base import MoviePilotTool
from app.agent.tools.tags import ToolTag
from app.chain.subscribe import SubscribeChain
from app.db.user_oper import UserOper
from app.platform.log import logger
from app.runtime.log import logger
from app.schemas.types import MUSIC_ENTITY_ALBUM, MediaSource, MediaType, MessageChannel
from ._music_utils import normalize_music_type

View File

@@ -6,11 +6,11 @@ from pydantic import BaseModel, Field, model_validator
from app.agent.tools.base import MoviePilotTool
from app.agent.tools.tags import ToolTag
from app.messaging.interaction import (
from app.application.messaging.interaction import (
AgentInteractionOption,
agent_interaction_manager,
)
from app.platform.log import logger
from app.runtime.log import logger
from app.schemas import Notification, NotificationType
from app.schemas.message import ChannelCapabilityManager
from app.schemas.types import MessageChannel

View File

@@ -9,8 +9,8 @@ from pydantic import BaseModel, Field
from app.agent.tools.base import MoviePilotTool
from app.agent.tools.tags import ToolTag
from app.infrastructure.browser import BrowserSessionHelper
from app.platform.log import logger
from app.adapters.network.browser import BrowserSessionHelper
from app.runtime.log import logger
# 页面内容最大长度;保留在全局工具结果兜底上限以内。
MAX_CONTENT_LENGTH = 12_000

View File

@@ -7,10 +7,10 @@ from pydantic import BaseModel, Field, model_validator
from app.agent.tools.base import MoviePilotTool
from app.agent.tools.tags import ToolTag
from app.platform.config import settings
from app.runtime.config import settings
from app.db.agentchat_oper import AgentChatOper
from app.db.agenttask_oper import AgentTaskOper
from app.platform.scheduling import TimerUtils
from app.runtime.scheduling import TimerUtils
class CreateAgentTaskInput(BaseModel):

View File

@@ -13,7 +13,7 @@ from app.agent.tools.impl._filter_rule_utils import (
get_rule_groups,
save_system_config,
)
from app.platform.log import logger
from app.runtime.log import logger
from app.schemas.types import SystemConfigKey

View File

@@ -7,7 +7,7 @@ from pydantic import BaseModel, Field
from app.agent.tools.base import MoviePilotTool
from app.agent.tools.tags import ToolTag
from app.db.downloadhistory_oper import DownloadHistoryOper
from app.platform.log import logger
from app.runtime.log import logger
class DeleteDownloadHistoryInput(BaseModel):

View File

@@ -7,7 +7,7 @@ from pydantic import BaseModel, Field
from app.agent.tools.base import MoviePilotTool
from app.agent.tools.tags import ToolTag
from app.chain.download import DownloadChain
from app.platform.log import logger
from app.runtime.log import logger
class DeleteDownloadTasksInput(BaseModel):

View File

@@ -12,7 +12,7 @@ from app.agent.tools.impl._filter_rule_utils import (
remove_rule_group_references,
save_system_config,
)
from app.platform.log import logger
from app.runtime.log import logger
from app.schemas.types import SystemConfigKey

View File

@@ -6,10 +6,10 @@ from pydantic import BaseModel, Field
from app.agent.tools.base import MoviePilotTool
from app.agent.tools.tags import ToolTag
from app.platform.events import eventmanager
from app.runtime.events import eventmanager
from app.db.subscribe_oper import SubscribeOper
from app.integrations.server import MoviePilotServerHelper
from app.platform.log import logger
from app.adapters.external.server import MoviePilotServerHelper
from app.runtime.log import logger
from app.schemas.types import EventType

View File

@@ -8,7 +8,7 @@ from app.agent.tools.base import MoviePilotTool
from app.agent.tools.tags import ToolTag
from app.chain.storage import StorageChain
from app.db.transferhistory_oper import TransferHistoryOper
from app.platform.log import logger
from app.runtime.log import logger
from app.schemas import FileItem

View File

@@ -13,7 +13,7 @@ from app.agent.tools.impl._file_write_utils import (
calculate_file_sha256,
)
from app.agent.tools.tags import ToolTag
from app.platform.log import logger
from app.runtime.log import logger
class EditFileInput(BaseModel):

View File

@@ -23,7 +23,7 @@ from app.agent.tools.impl._terminal_session import (
TERMINAL_WAIT_DEFAULT_MS,
terminal_session_manager,
)
from app.platform.log import logger
from app.runtime.log import logger
DEFAULT_TIMEOUT_SECONDS = 60

View File

@@ -8,7 +8,7 @@ from pydantic import BaseModel, Field
from app.agent.tools.base import MoviePilotTool
from app.agent.tools.tags import ToolTag
from app.chain.recommend import RecommendChain
from app.platform.log import logger
from app.runtime.log import logger
from app.modules.listenbrainz import (
LISTENBRAINZ_CHART_RANGES,
LISTENBRAINZ_FRESH_MAX_DAYS,

View File

@@ -9,7 +9,7 @@ from pydantic import BaseModel, Field
from app.agent.tools.base import MoviePilotTool
from app.agent.tools.tags import ToolTag
from app.chain.search import SearchChain
from app.platform.log import logger
from app.runtime.log import logger
from ._torrent_search_utils import (
TORRENT_RESULT_LIMIT,
build_filter_options,

View File

@@ -13,7 +13,7 @@ from app.agent.tools.impl._plugin_tool_utils import (
load_market_plugins,
summarize_plugin,
)
from app.platform.log import logger
from app.runtime.log import logger
class InstallPluginInput(BaseModel):

View File

@@ -10,7 +10,7 @@ from pydantic import BaseModel, Field
from app.agent.tools.base import MoviePilotTool
from app.agent.tools.tags import ToolTag
from app.chain.storage import StorageChain
from app.platform.log import logger
from app.runtime.log import logger
from app.schemas.file import FileItem
from app.domain.string import StringUtils

View File

@@ -7,7 +7,7 @@ from pydantic import BaseModel, Field
from app.agent.tools.base import MoviePilotTool
from app.agent.tools.tags import ToolTag
from app.platform.log import logger
from app.runtime.log import logger
class ListSlashCommandsInput(BaseModel):

View File

@@ -5,7 +5,7 @@ from pydantic import BaseModel, Field
from app.agent.tools.base import MoviePilotTool
from app.agent.tools.tags import ToolTag
from app.platform.config import settings
from app.runtime.config import settings
from app.db.agenttask_oper import AgentTaskOper

View File

@@ -12,7 +12,7 @@ from app.agent.tools.impl._filter_rule_utils import (
serialize_builtin_rule,
RULE_STRING_SYNTAX,
)
from app.platform.log import logger
from app.runtime.log import logger
class QueryBuiltinFilterRulesInput(BaseModel):

View File

@@ -13,7 +13,7 @@ from app.agent.tools.impl._filter_rule_utils import (
get_rule_groups,
serialize_custom_rule,
)
from app.platform.log import logger
from app.runtime.log import logger
class QueryCustomFilterRulesInput(BaseModel):

View File

@@ -8,7 +8,7 @@ from pydantic import BaseModel, Field
from app.agent.tools.base import MoviePilotTool
from app.agent.tools.tags import ToolTag
from app.db.systemconfig_oper import SystemConfigOper
from app.platform.log import logger
from app.runtime.log import logger
from app.schemas.types import SystemConfigKey

View File

@@ -7,8 +7,8 @@ from pydantic import BaseModel, Field
from app.agent.tools.base import MoviePilotTool
from app.agent.tools.tags import ToolTag
from app.services.directory import DirectoryHelper
from app.platform.log import logger
from app.application.directory import DirectoryHelper
from app.runtime.log import logger
class QueryDirectorySettingsInput(BaseModel):

View File

@@ -8,7 +8,7 @@ from pydantic import BaseModel, Field
from app.agent.tools.base import MoviePilotTool
from app.agent.tools.tags import ToolTag
from app.doctor import run_doctor
from app.platform.log import logger
from app.runtime.log import logger
class QueryDoctorReportInput(BaseModel):

View File

@@ -9,7 +9,7 @@ from app.agent.tools.base import MoviePilotTool
from app.agent.tools.tags import ToolTag
from app.chain.download import DownloadChain
from app.db.downloadhistory_oper import DownloadHistoryOper
from app.platform.log import logger
from app.runtime.log import logger
from app.schemas import DownloaderTorrent
from app.schemas.types import MUSIC_ENTITY_RECORDING, TorrentQueryStatus, media_type_to_agent

View File

@@ -8,7 +8,7 @@ from pydantic import BaseModel, Field
from app.agent.tools.base import MoviePilotTool
from app.agent.tools.tags import ToolTag
from app.db.systemconfig_oper import SystemConfigOper
from app.platform.log import logger
from app.runtime.log import logger
from app.schemas.types import SystemConfigKey

View File

@@ -8,7 +8,7 @@ from pydantic import BaseModel, Field
from app.agent.tools.base import MoviePilotTool
from app.agent.tools.tags import ToolTag
from app.chain.tmdb import TmdbChain
from app.platform.log import logger
from app.runtime.log import logger
class QueryEpisodeScheduleInput(BaseModel):

View File

@@ -16,7 +16,7 @@ from app.agent.tools.impl._plugin_tool_utils import (
summarize_candidates,
summarize_plugin,
)
from app.platform.log import logger
from app.runtime.log import logger
class QueryInstalledPluginsInput(BaseModel):

View File

@@ -10,8 +10,8 @@ from pydantic import BaseModel, Field
from app.agent.tools.base import MoviePilotTool
from app.agent.tools.tags import ToolTag
from app.chain.mediaserver import MediaServerChain
from app.services.mediaserver import MediaServerHelper
from app.platform.log import logger
from app.application.mediaserver import MediaServerHelper
from app.runtime.log import logger
from app.schemas.types import (
MUSIC_ENTITY_ALBUM,
MediaSource,

View File

@@ -9,8 +9,8 @@ from pydantic import BaseModel, Field
from app.agent.tools.base import MoviePilotTool
from app.agent.tools.tags import ToolTag
from app.chain.mediaserver import MediaServerChain
from app.extensions.service_registry import ServiceConfigHelper
from app.platform.log import logger
from app.runtime.extensions.service_registry import ServiceConfigHelper
from app.runtime.log import logger
PAGE_SIZE = 20

View File

@@ -15,7 +15,7 @@ from app.agent.tools.impl._plugin_tool_utils import (
summarize_candidates,
summarize_plugin,
)
from app.platform.log import logger
from app.runtime.log import logger
class QueryMarketPluginsInput(BaseModel):

View File

@@ -9,7 +9,7 @@ from pydantic import BaseModel, Field
from app.agent.tools.base import MoviePilotTool
from app.agent.tools.tags import ToolTag
from app.chain.media import MediaChain
from app.platform.log import logger
from app.runtime.log import logger
from app.schemas.types import (
MUSIC_ENTITY_ALBUM,
MUSIC_ENTITY_ARTIST,

View File

@@ -8,7 +8,7 @@ from pydantic import BaseModel, Field
from app.agent.runtime import agent_runtime_manager
from app.agent.tools.base import MoviePilotTool
from app.agent.tools.tags import ToolTag
from app.platform.log import logger
from app.runtime.log import logger
class QueryPersonasInput(BaseModel):

View File

@@ -7,8 +7,8 @@ from pydantic import BaseModel, Field
from app.agent.tools.base import MoviePilotTool
from app.agent.tools.tags import ToolTag
from app.extensions.plugin_manager import PluginManager
from app.platform.log import logger
from app.runtime.extensions.plugin_manager import PluginManager
from app.runtime.log import logger
class QueryPluginCapabilitiesInput(BaseModel):

View File

@@ -8,8 +8,8 @@ from pydantic import BaseModel, Field
from app.agent.tools.base import MoviePilotTool
from app.agent.tools.tags import ToolTag
from app.agent.tools.impl._plugin_tool_utils import get_plugin_snapshot
from app.extensions.plugin_manager import PluginManager
from app.platform.log import logger
from app.runtime.extensions.plugin_manager import PluginManager
from app.runtime.log import logger
class QueryPluginConfigInput(BaseModel):

View File

@@ -13,7 +13,7 @@ from app.agent.tools.impl._plugin_tool_utils import (
get_plugin_snapshot,
)
from app.db.plugindata_oper import PluginDataOper
from app.platform.log import logger
from app.runtime.log import logger
class QueryPluginDataInput(BaseModel):

View File

@@ -9,8 +9,8 @@ from pydantic import BaseModel, Field
from app.agent.tools.base import MoviePilotTool
from app.agent.tools.tags import ToolTag
from app.domain.context import MediaInfo
from app.integrations.server import MoviePilotServerHelper
from app.platform.log import logger
from app.adapters.external.server import MoviePilotServerHelper
from app.runtime.log import logger
from app.schemas.types import MUSIC_ENTITY_RECORDING, MediaType, media_type_to_agent
from ._music_utils import normalize_music_type

View File

@@ -13,7 +13,7 @@ from app.agent.tools.impl._filter_rule_utils import (
serialize_rule_group,
RULE_STRING_SYNTAX,
)
from app.platform.log import logger
from app.runtime.log import logger
class QueryRuleGroupsInput(BaseModel):

View File

@@ -7,7 +7,7 @@ from pydantic import BaseModel
from app.agent.tools.base import MoviePilotTool
from app.agent.tools.tags import ToolTag
from app.platform.log import logger
from app.runtime.log import logger
class QuerySchedulersInput(BaseModel):

View File

@@ -8,7 +8,7 @@ from pydantic import BaseModel, Field
from app.agent.tools.base import MoviePilotTool
from app.agent.tools.tags import ToolTag
from app.db.site_oper import SiteOper
from app.platform.log import logger
from app.runtime.log import logger
SITE_USERDATA_DETAIL_PREVIEW_LIMIT = 10

View File

@@ -8,7 +8,7 @@ from pydantic import BaseModel, Field
from app.agent.tools.base import MoviePilotTool
from app.agent.tools.tags import ToolTag
from app.db.site_oper import SiteOper
from app.platform.log import logger
from app.runtime.log import logger
class QuerySitesInput(BaseModel):

View File

@@ -8,7 +8,7 @@ from pydantic import BaseModel, Field
from app.agent.tools.base import MoviePilotTool
from app.agent.tools.tags import ToolTag
from app.db.subscribehistory_oper import SubscribeHistoryOper
from app.platform.log import logger
from app.runtime.log import logger
from app.schemas.types import MUSIC_ENTITY_RECORDING, MediaType, media_type_to_agent
from ._music_utils import normalize_music_type

View File

@@ -7,8 +7,8 @@ from pydantic import BaseModel, Field
from app.agent.tools.base import MoviePilotTool
from app.agent.tools.tags import ToolTag
from app.integrations.server import MoviePilotServerHelper
from app.platform.log import logger
from app.adapters.external.server import MoviePilotServerHelper
from app.runtime.log import logger
from app.schemas.types import MUSIC_ENTITY_RECORDING, media_type_to_agent
from ._music_utils import normalize_music_type

View File

@@ -8,7 +8,7 @@ from pydantic import BaseModel, Field
from app.agent.tools.base import MoviePilotTool
from app.agent.tools.tags import ToolTag
from app.db.subscribe_oper import SubscribeOper
from app.platform.log import logger
from app.runtime.log import logger
from app.schemas.subscribe import Subscribe as SubscribeSchema
from app.schemas.types import (
MUSIC_ENTITY_RECORDING,

View File

@@ -15,9 +15,9 @@ from app.agent.tools.impl._system_setting_utils import (
resolve_setting_spec,
should_redact_setting,
)
from app.platform.config import settings
from app.runtime.config import settings
from app.db.systemconfig_oper import SystemConfigOper
from app.platform.log import logger
from app.runtime.log import logger
class QuerySystemSettingsInput(BaseModel):

View File

@@ -8,9 +8,9 @@ from pydantic import BaseModel, Field
from app.agent.tools.base import MoviePilotTool
from app.agent.tools.tags import ToolTag
from app.db.transferhistory_oper import TransferHistoryOper
from app.platform.log import logger
from app.runtime.log import logger
from app.schemas.types import media_type_to_agent
from app.foundation.jieba import cut as jieba_cut
from app.foundation.text import cut as jieba_cut
class QueryTransferHistoryInput(BaseModel):

View File

@@ -8,7 +8,7 @@ from pydantic import BaseModel, Field
from app.agent.tools.base import MoviePilotTool
from app.agent.tools.tags import ToolTag
from app.db.workflow_oper import WorkflowOper
from app.platform.log import logger
from app.runtime.log import logger
class QueryWorkflowsInput(BaseModel):

View File

@@ -10,7 +10,7 @@ from pydantic import BaseModel, Field
from app.agent.tools.base import MoviePilotTool
from app.agent.tools.tags import ToolTag
from app.platform.log import logger
from app.runtime.log import logger
# 最大读取大小 50KB
MAX_READ_SIZE = 50 * 1024

View File

@@ -7,9 +7,9 @@ from pydantic import BaseModel, Field
from app.agent.tools.base import MoviePilotTool
from app.agent.tools.tags import ToolTag
from app.infrastructure.browser import BrowserSessionHelper
from app.integrations.ocr import OcrHelper
from app.platform.log import logger
from app.adapters.network.browser import BrowserSessionHelper
from app.adapters.external.ocr import OcrHelper
from app.runtime.log import logger
class RecognizeCaptchaInput(BaseModel):

Some files were not shown because too many files have changed in this diff Show More