FINAL COMMIT BEFORE REWRITE

This commit is contained in:
2026-05-26 21:45:11 +02:00
parent 42fa6139ed
commit 745dec39f5
264 changed files with 311 additions and 311 deletions
+3 -3
View File
@@ -6,13 +6,13 @@ from collections.abc import AsyncGenerator
from pathlib import Path
from typing import Any
from alfred.infrastructure.metadata import MetadataStore
from alfred.infrastructure.persistence import get_memory
from alfred.infrastructure.metadata_TO_CHECK import MetadataStore
from alfred.infrastructure.persistence_TO_CHECK import get_memory
from alfred.settings import settings
from .prompt import PromptBuilder
from .registry import Tool, make_tools
from .workflows import WorkflowLoader
from .workflows_TO_CHECK import WorkflowLoader
logger = logging.getLogger(__name__)
+3 -3
View File
@@ -3,12 +3,12 @@
import json
from typing import Any
from alfred.infrastructure.persistence import get_memory
from alfred.infrastructure.persistence.memory import MemoryRegistry
from alfred.infrastructure.persistence_TO_CHECK import get_memory
from alfred.infrastructure.persistence_TO_CHECK.memory import MemoryRegistry
from .expressions import build_expressions_context
from .registry import Tool
from .workflows import WorkflowLoader
from .workflows_TO_CHECK import WorkflowLoader
# Tools that are always available, regardless of workflow scope.
# Kept small on purpose — the noyau is what the agent uses to either
+6 -6
View File
@@ -6,8 +6,8 @@ from collections.abc import Callable
from dataclasses import dataclass
from typing import Any
from .tools.spec import ToolSpec, ToolSpecError
from .tools.spec_loader import load_tool_specs
from .tools_TO_CHECK.spec import ToolSpec, ToolSpecError
from .tools_TO_CHECK.spec_loader import load_tool_specs
logger = logging.getLogger(__name__)
@@ -130,10 +130,10 @@ def make_tools(settings) -> dict[str, Tool]:
Returns:
Dictionary mapping tool names to Tool objects.
"""
from .tools import api as api_tools # noqa: PLC0415
from .tools import filesystem as fs_tools # noqa: PLC0415
from .tools import language as lang_tools # noqa: PLC0415
from .tools import workflow as wf_tools # noqa: PLC0415
from .tools_TO_CHECK import api as api_tools # noqa: PLC0415
from .tools_TO_CHECK import filesystem as fs_tools # noqa: PLC0415
from .tools_TO_CHECK import language as lang_tools # noqa: PLC0415
from .tools_TO_CHECK import workflow as wf_tools # noqa: PLC0415
tool_functions = [
fs_tools.set_path_for_folder,
@@ -3,13 +3,13 @@
import logging
from typing import Any
from alfred.application.movies import SearchMovieUseCase
from alfred.application.torrents import AddTorrentUseCase, SearchTorrentsUseCase
from alfred.application.tv_shows import SearchShowUseCase
from alfred.infrastructure.api.knaben import knaben_client
from alfred.infrastructure.api.qbittorrent import qbittorrent_client
from alfred.infrastructure.api.tmdb import tmdb_client
from alfred.infrastructure.persistence import get_memory
from alfred.application.movies_TO_CHECK import SearchMovieUseCase
from alfred.application.torrents_TO_CHECK import AddTorrentUseCase, SearchTorrentsUseCase
from alfred.application.tv_shows_TO_CHECK import SearchShowUseCase
from alfred.infrastructure.api_TO_CHECK.knaben import knaben_client
from alfred.infrastructure.api_TO_CHECK.qbittorrent import qbittorrent_client
from alfred.infrastructure.api_TO_CHECK.tmdb import tmdb_client
from alfred.infrastructure.persistence_TO_CHECK import get_memory
logger = logging.getLogger(__name__)
@@ -28,10 +28,10 @@ from alfred.application.filesystem import (
list_dir_use_case,
move_file_use_case,
)
from alfred.infrastructure.knowledge.release_kb import YamlReleaseKnowledge
from alfred.infrastructure.metadata import MetadataStore
from alfred.infrastructure.persistence import get_memory
from alfred.infrastructure.probe import FfprobeMediaProber
from alfred.infrastructure.knowledge_TO_CHECK.release_kb import YamlReleaseKnowledge
from alfred.infrastructure.metadata_TO_CHECK import MetadataStore
from alfred.infrastructure.persistence_TO_CHECK import get_memory
from alfred.infrastructure.probe_TO_CHECK import FfprobeMediaProber
# Agent-tools frontier: this is the legitimate home for the singletons that
# back every LLM-exposed wrapper. The use cases below take ``kb`` / ``prober``
@@ -214,7 +214,7 @@ def learn(pack: str, category: str, key: str, values: list[str]) -> dict[str, An
def analyze_release(release_name: str, source_path: str) -> dict[str, Any]:
"""Thin tool wrapper — semantics live in alfred/agent/tools/specs/analyze_release.yaml."""
from alfred.application.release import inspect_release # noqa: PLC0415
from alfred.application.release_TO_CHECK import inspect_release # noqa: PLC0415
result = inspect_release(release_name, Path(source_path), _KB, _PROBER)
parsed = result.parsed
@@ -3,7 +3,7 @@
import logging
from typing import Any
from alfred.infrastructure.persistence import get_memory
from alfred.infrastructure.persistence_TO_CHECK import get_memory
logger = logging.getLogger(__name__)
@@ -9,9 +9,9 @@ to reason over the full set.
import logging
from typing import Any
from alfred.infrastructure.persistence import get_memory
from alfred.infrastructure.persistence_TO_CHECK import get_memory
from ..workflows import WorkflowLoader
from ..workflows_TO_CHECK import WorkflowLoader
logger = logging.getLogger(__name__)
+1 -1
View File
@@ -15,7 +15,7 @@ from alfred.agent.agent import Agent
from alfred.agent.llm.deepseek import DeepSeekClient
from alfred.agent.llm.exceptions import LLMAPIError, LLMConfigurationError
from alfred.agent.llm.ollama import OllamaClient
from alfred.infrastructure.persistence import get_memory, init_memory
from alfred.infrastructure.persistence_TO_CHECK import get_memory, init_memory
from alfred.settings import settings
logging.basicConfig(
@@ -3,7 +3,7 @@
import logging
from alfred.infrastructure.filesystem import FileManager
from alfred.infrastructure.persistence import get_memory
from alfred.infrastructure.persistence_TO_CHECK import get_memory
from .dto import CreateSeedLinksResponse
@@ -3,25 +3,25 @@
import logging
from pathlib import Path
from alfred.application.subtitles.placer import (
from alfred.application.subtitles_TO_CHECK.placer import (
PlacedTrack,
SubtitlePlacer,
_build_dest_name,
)
from alfred.domain.shared.value_objects import ImdbId
from alfred.domain.subtitles.entities import SubtitleScanResult
from alfred.domain.subtitles.services.identifier import SubtitleIdentifier
from alfred.domain.subtitles.services.matcher import SubtitleMatcher
from alfred.domain.subtitles.services.pattern_detector import PatternDetector
from alfred.domain.subtitles.services.utils import available_subtitles
from alfred.domain.subtitles.value_objects import ScanStrategy
from alfred.domain.shared_TO_CHECK.value_objects import ImdbId
from alfred.domain.subtitles_TO_CHECK.entities import SubtitleScanResult
from alfred.domain.subtitles_TO_CHECK.services.identifier import SubtitleIdentifier
from alfred.domain.subtitles_TO_CHECK.services.matcher import SubtitleMatcher
from alfred.domain.subtitles_TO_CHECK.services.pattern_detector import PatternDetector
from alfred.domain.subtitles_TO_CHECK.services.utils import available_subtitles
from alfred.domain.subtitles_TO_CHECK.value_objects import ScanStrategy
from alfred.infrastructure.filesystem.scanner import PathlibFilesystemScanner
from alfred.infrastructure.knowledge.subtitles.base import SubtitleKnowledgeBase
from alfred.infrastructure.knowledge.subtitles.loader import KnowledgeLoader
from alfred.infrastructure.persistence.context import get_memory
from alfred.infrastructure.probe.ffprobe_prober import FfprobeMediaProber
from alfred.infrastructure.subtitle.metadata_store import SubtitleMetadataStore
from alfred.infrastructure.subtitle.rule_repository import RuleSetRepository
from alfred.infrastructure.knowledge_TO_CHECK.subtitles.base import SubtitleKnowledgeBase
from alfred.infrastructure.knowledge_TO_CHECK.subtitles.loader import KnowledgeLoader
from alfred.infrastructure.persistence_TO_CHECK.context import get_memory
from alfred.infrastructure.probe_TO_CHECK.ffprobe_prober import FfprobeMediaProber
from alfred.infrastructure.subtitle_TO_CHECK.metadata_store import SubtitleMetadataStore
from alfred.infrastructure.subtitle_TO_CHECK.rule_repository import RuleSetRepository
from .dto import (
AvailableSubtitle,
@@ -22,12 +22,12 @@ import logging
from dataclasses import dataclass
from pathlib import Path
from alfred.application.release import inspect_release
from alfred.application.release_TO_CHECK import inspect_release
from alfred.domain.release import parse_release
from alfred.domain.releases.ports import ReleaseKnowledge
from alfred.domain.releases_TO_CHECK.ports import ReleaseKnowledge
from alfred.domain.release.value_objects import ParsedRelease
from alfred.domain.shared.ports import MediaProber
from alfred.infrastructure.persistence import get_memory
from alfred.domain.shared_TO_CHECK.ports import MediaProber
from alfred.infrastructure.persistence_TO_CHECK import get_memory
logger = logging.getLogger(__name__)
@@ -2,7 +2,7 @@
import logging
from alfred.infrastructure.api.tmdb import (
from alfred.infrastructure.api_TO_CHECK.tmdb import (
TMDBAPIError,
TMDBClient,
TMDBConfigurationError,
@@ -19,7 +19,7 @@ from __future__ import annotations
from pathlib import Path
from alfred.domain.releases.ports import ReleaseKnowledge
from alfred.domain.releases_TO_CHECK.ports import ReleaseKnowledge
from alfred.domain.release.value_objects import ParsedRelease
@@ -4,9 +4,9 @@ from __future__ import annotations
from dataclasses import replace
from alfred.domain.releases.ports import ReleaseKnowledge
from alfred.domain.releases_TO_CHECK.ports import ReleaseKnowledge
from alfred.domain.release.value_objects import ParsedRelease
from alfred.domain.shared.media import MediaInfo
from alfred.domain.shared_TO_CHECK.media import MediaInfo
def enrich_from_probe(
@@ -48,18 +48,18 @@ from __future__ import annotations
from dataclasses import dataclass, replace
from pathlib import Path
from alfred.application.release.detect_media_type import detect_media_type
from alfred.application.release.enrich_from_probe import enrich_from_probe
from alfred.application.release.supported_media import find_main_video
from alfred.domain.releases.ports import ReleaseKnowledge
from alfred.domain.releases.parser.services import parse_release
from alfred.application.release_TO_CHECK.detect_media_type import detect_media_type
from alfred.application.release_TO_CHECK.enrich_from_probe import enrich_from_probe
from alfred.application.release_TO_CHECK.supported_media import find_main_video
from alfred.domain.releases_TO_CHECK.ports import ReleaseKnowledge
from alfred.domain.releases_TO_CHECK.parser.services import parse_release
from alfred.domain.release.value_objects import (
MediaTypeToken,
ParsedRelease,
ParseReport,
)
from alfred.domain.shared.media import MediaInfo
from alfred.domain.shared.ports import MediaProber
from alfred.domain.shared_TO_CHECK.media import MediaInfo
from alfred.domain.shared_TO_CHECK.ports import MediaProber
# Media types for which a probe carries no useful information.
_NON_PROBABLE_MEDIA_TYPES = frozenset({"unknown", "other"})
@@ -32,7 +32,7 @@ from __future__ import annotations
from pathlib import Path
from alfred.domain.releases.ports.knowledge import ReleaseKnowledge
from alfred.domain.releases_TO_CHECK.ports.knowledge import ReleaseKnowledge
def is_supported_video(path: Path, kb: ReleaseKnowledge) -> bool:
@@ -5,8 +5,8 @@ import os
from dataclasses import dataclass
from pathlib import Path
from alfred.domain.subtitles.entities import SubtitleScanResult
from alfred.domain.subtitles.value_objects import SubtitleType
from alfred.domain.subtitles_TO_CHECK.entities import SubtitleScanResult
from alfred.domain.subtitles_TO_CHECK.value_objects import SubtitleType
logger = logging.getLogger(__name__)
@@ -2,7 +2,7 @@
import logging
from alfred.infrastructure.api.qbittorrent import (
from alfred.infrastructure.api_TO_CHECK.qbittorrent import (
QBittorrentAPIError,
QBittorrentAuthError,
QBittorrentClient,
@@ -2,7 +2,7 @@
import logging
from alfred.infrastructure.api.knaben import (
from alfred.infrastructure.api_TO_CHECK.knaben import (
KnabenAPIError,
KnabenClient,
KnabenNotFoundError,
@@ -2,7 +2,7 @@
import logging
from alfred.infrastructure.api.tmdb import (
from alfred.infrastructure.api_TO_CHECK.tmdb import (
TMDBAPIError,
TMDBClient,
TMDBConfigurationError,
@@ -50,9 +50,9 @@ import re
from dataclasses import dataclass
from pathlib import Path
from alfred.domain.releases.ports import ReleaseKnowledge
from alfred.domain.releases.value_objects import ReleaseMode
from alfred.domain.shared.ports import FilesystemScanner
from alfred.domain.releases_TO_CHECK.ports import ReleaseKnowledge
from alfred.domain.releases_TO_CHECK.value_objects import ReleaseMode
from alfred.domain.shared_TO_CHECK.ports import FilesystemScanner
_LOG = logging.getLogger(__name__)
@@ -2,7 +2,7 @@
from dataclasses import dataclass
from ..shared.value_objects import ImdbId, TmdbId
from ..shared_TO_CHECK.value_objects import ImdbId, TmdbId
from .value_objects import MovieTitle, ReleaseYear
@@ -1,6 +1,6 @@
"""Movie domain exceptions."""
from ..shared.exceptions import DomainException, NotFoundError
from ..shared_TO_CHECK.exceptions import DomainException, NotFoundError
class MovieNotFound(NotFoundError):
@@ -3,7 +3,7 @@
from dataclasses import dataclass
from enum import Enum
from ..shared.exceptions import ValidationError
from ..shared_TO_CHECK.exceptions import ValidationError
class Quality(Enum):
@@ -32,8 +32,8 @@ Invariants enforced at ``build()`` time:
from __future__ import annotations
from ..shared.exceptions import ValidationError
from ..shared.value_objects import ImdbId, TmdbId
from ..shared_TO_CHECK.exceptions import ValidationError
from ..shared_TO_CHECK.value_objects import ImdbId, TmdbId
from ..tv_shows.value_objects import SeasonNumber
from .entities import (
EpisodeRelease,
@@ -15,9 +15,9 @@ from __future__ import annotations
from dataclasses import dataclass
from datetime import datetime
from ..shared.exceptions import ValidationError
from ..shared.media import AudioTrack, SubtitleTrack
from ..shared.value_objects import FilePath, ImdbId, TmdbId
from ..shared_TO_CHECK.exceptions import ValidationError
from ..shared_TO_CHECK.media import AudioTrack, SubtitleTrack
from ..shared_TO_CHECK.value_objects import FilePath, ImdbId, TmdbId
from ..tv_shows.value_objects import SeasonNumber
from .value_objects import EpisodeRange, ReleaseMode
@@ -29,7 +29,7 @@ arrives through ``kb: ReleaseKnowledge``.
from __future__ import annotations
from ..ports.knowledge import ReleaseKnowledge
from alfred.domain.releases.value_objects_old_question_mark import MediaTypeToken
from alfred.domain.releases_TO_CHECK.value_objects_old_question_mark import MediaTypeToken
from .schema import GroupSchema
from .tokens import Token, TokenRole
@@ -27,7 +27,7 @@ from __future__ import annotations
from enum import Enum
from ..ports.knowledge import ReleaseKnowledge
from alfred.domain.releases.value_objects_old_question_mark import ParsedRelease
from alfred.domain.releases_TO_CHECK.value_objects_old_question_mark import ParsedRelease
from .tokens import Token, TokenRole
@@ -18,9 +18,9 @@ score, the road, and diagnostic info for downstream callers.
from __future__ import annotations
from alfred.domain.releases.parser import scoring as _scoring, pipeline as _v2
from alfred.domain.releases.ports import ReleaseKnowledge
from alfred.domain.releases.value_objects_old_question_mark import MediaTypeToken, ParsedRelease, ParseReport, TokenizationRoute
from alfred.domain.releases_TO_CHECK.parser import scoring as _scoring, pipeline as _v2
from alfred.domain.releases_TO_CHECK.ports import ReleaseKnowledge
from alfred.domain.releases_TO_CHECK.value_objects_old_question_mark import MediaTypeToken, ParsedRelease, ParseReport, TokenizationRoute
def parse_release(
@@ -17,7 +17,7 @@ aggregates).
from abc import ABC, abstractmethod
from ..shared.value_objects import TmdbId
from ..shared_TO_CHECK.value_objects import TmdbId
from .entities import MovieRelease, SeriesRelease
@@ -5,7 +5,7 @@ from __future__ import annotations
from dataclasses import dataclass
from enum import Enum
from ..shared.exceptions import ValidationError
from ..shared_TO_CHECK.exceptions import ValidationError
from ..tv_shows.value_objects import EpisodeNumber
@@ -18,7 +18,7 @@ from __future__ import annotations
from dataclasses import dataclass
from enum import Enum
from alfred.domain.shared.exceptions import ValidationError
from alfred.domain.shared_TO_CHECK.exceptions import ValidationError
class MediaTypeToken(str, Enum):
@@ -10,7 +10,7 @@ from __future__ import annotations
from pathlib import Path
from typing import Protocol
from alfred.domain.shared.file_entry import FileEntry
from alfred.domain.shared_TO_CHECK.file_entry import FileEntry
class FilesystemScanner(Protocol):
@@ -10,7 +10,7 @@ from __future__ import annotations
from typing import Protocol
from alfred.domain.shared.value_objects import Language
from alfred.domain.shared_TO_CHECK.value_objects import Language
class LanguageRepository(Protocol):
@@ -12,7 +12,7 @@ from pathlib import Path
from typing import TYPE_CHECKING, Protocol
if TYPE_CHECKING:
from alfred.domain.shared.media import MediaInfo
from alfred.domain.shared_TO_CHECK.media import MediaInfo
@dataclass(frozen=True)
@@ -3,7 +3,7 @@
from dataclasses import dataclass, field
from typing import Any
from ..shared.value_objects import ImdbId
from ..shared_TO_CHECK.value_objects import ImdbId
from .value_objects import RuleScope, RuleScopeLevel, SubtitleMatchingRules
@@ -3,7 +3,7 @@
from dataclasses import dataclass, field
from pathlib import Path
from ..shared.value_objects import ImdbId
from ..shared_TO_CHECK.value_objects import ImdbId
from .value_objects import (
SubtitleFormat,
SubtitleLanguage,
@@ -1,6 +1,6 @@
"""Subtitle domain exceptions."""
from ..shared.exceptions import DomainException, NotFoundError
from ..shared_TO_CHECK.exceptions import DomainException, NotFoundError
class SubtitleNotFound(NotFoundError):
@@ -4,8 +4,8 @@ import logging
import re
from pathlib import Path
from ...shared.ports import FilesystemScanner, MediaProber
from ...shared.value_objects import ImdbId
from ...shared_TO_CHECK.ports import FilesystemScanner, MediaProber
from ...shared_TO_CHECK.value_objects import ImdbId
from ..entities import MediaSubtitleMetadata, SubtitleScanResult
from ..ports import SubtitleKnowledge
from ..value_objects import ScanStrategy, SubtitlePattern, SubtitleType
@@ -3,7 +3,7 @@
import logging
from pathlib import Path
from ...shared.ports import FilesystemScanner, MediaProber
from ...shared_TO_CHECK.ports import FilesystemScanner, MediaProber
from ..ports import SubtitleKnowledge
from ..value_objects import ScanStrategy, SubtitlePattern

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