ba6f016d49
- Extract MetadataStore from SubtitleMetadataStore (alfred/infrastructure/metadata/).
Generic load/save + typed update helpers (update_parse, update_probe, update_tmdb)
for the per-release .alfred/metadata.yaml.
- SubtitleMetadataStore becomes a thin facade — owns subtitle_history shape,
delegates I/O to MetadataStore.
- Agent._execute_tool_call auto-persists successful analyze_release / probe_media /
find_media_imdb_id results to the release's .alfred file. find_media_imdb_id
follows release_focus when it has no path argument.
- New tools:
· read_release_metadata(release_path) — cacheable, key=release_path.
Returns the .alfred content or has_metadata=false.
· query_library(name) — substring scan across configured library roots.
- Both new tools added to CORE_TOOLS (always visible).
56 lines
1.9 KiB
YAML
56 lines
1.9 KiB
YAML
name: read_release_metadata
|
|
|
|
summary: >
|
|
Read the `.alfred/metadata.yaml` file for a release folder.
|
|
|
|
description: |
|
|
Returns whatever has been previously persisted by inspector tools
|
|
(analyze_release, probe_media, find_media_imdb_id) and by the subtitle
|
|
pipeline. Works for any folder — download or library — as long as the
|
|
release has been touched at least once. Missing metadata is not an
|
|
error: the tool returns `has_metadata=false` with an empty dict.
|
|
|
|
when_to_use: |
|
|
- Before re-running analyze_release / probe_media on a release you
|
|
might have already seen — saves a full re-inspection.
|
|
- To answer "what do we know about X?" without scanning.
|
|
- To list which releases in a library have no `.alfred` yet (loop +
|
|
`has_metadata`).
|
|
|
|
when_not_to_use: |
|
|
- To search a library by name — use query_library.
|
|
- When you need a fresh probe/parse — call the inspector directly,
|
|
the result will be persisted automatically.
|
|
|
|
next_steps: |
|
|
- If `has_metadata=false`, decide whether to inspect now
|
|
(analyze_release / probe_media).
|
|
- If `has_metadata=true`, read `metadata.parse`, `metadata.probe`,
|
|
`metadata.tmdb` blocks before deciding next actions.
|
|
|
|
cache:
|
|
key: release_path
|
|
|
|
parameters:
|
|
release_path:
|
|
description: Absolute path to the release folder (or any file inside it).
|
|
why_needed: |
|
|
The store lives at `<release_root>/.alfred/metadata.yaml`. A file
|
|
path is auto-resolved to its parent folder.
|
|
example: /mnt/library/tv_shows/Foundation.2021.1080p.WEBRip.x265-RARBG
|
|
|
|
returns:
|
|
ok:
|
|
description: Release inspected (file may or may not exist).
|
|
fields:
|
|
status: "'ok'"
|
|
release_path: Absolute path of the release folder.
|
|
has_metadata: True if `.alfred/metadata.yaml` exists.
|
|
metadata: Full content of the file, or empty dict.
|
|
|
|
error:
|
|
description: Path does not exist on disk.
|
|
fields:
|
|
error: Short error code (not_found).
|
|
message: Human-readable explanation.
|