mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-10-29 03:18:14 +08:00
fix(agent): load split skill docs through read_skill
This commit is contained in:
@@ -33,6 +33,10 @@ SKILL_CONTENT_TRUNCATION_MESSAGE = (
|
||||
"SKILL.md exceeds 512 KiB; content contains only the first 512 KiB. "
|
||||
"Do not use read_file to bypass this limit."
|
||||
)
|
||||
SUPPORTING_FILE_TRUNCATION_MESSAGE = (
|
||||
"The requested supporting skill file exceeds 512 KiB; content contains only the first 512 KiB. "
|
||||
"Do not use read_file to bypass this limit."
|
||||
)
|
||||
|
||||
|
||||
class SkillsState(AgentState):
|
||||
@@ -56,6 +60,13 @@ class SkillToolInput(BaseModel):
|
||||
...,
|
||||
description="Skill name or id from the available skills list.",
|
||||
)
|
||||
file: Optional[str] = Field(
|
||||
default=None,
|
||||
description=(
|
||||
"Optional supporting file path relative to the Skill directory. "
|
||||
"Use this field with read_skill instead of read_file for a listed Skill document."
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
def _format_skill_annotations(skill: SkillMetadata) -> str:
|
||||
@@ -142,7 +153,7 @@ You have access to a skills library for specialized MoviePilot workflows.
|
||||
|
||||
{skills_list}
|
||||
|
||||
When the user's request matches a skill description, call the `read_skill` tool with that skill name before taking task actions. Always use `read_skill`, never `read_file`, to load SKILL.md. The tool returns up to 512 KiB of SKILL.md plus the relative paths of all supporting files; if the body is truncated, do not use `read_file` to bypass the limit. Load only the listed supporting files that are actually needed. Do not create or rewrite skills unless the user explicitly asks for skill authoring.
|
||||
When the user's request matches a skill description, call the `read_skill` tool with that skill name before taking task actions. Always use `read_skill`, never `read_file`, to load SKILL.md or a listed supporting Skill document. The first call returns up to 512 KiB of SKILL.md plus the relative paths of supporting files; load a needed supporting file by calling `read_skill` again with the same name and its relative `file` path. If a Skill document is truncated, do not use `read_file` to bypass the limit. Do not create or rewrite skills unless the user explicitly asks for skill authoring.
|
||||
</skills_system>
|
||||
"""
|
||||
|
||||
@@ -151,9 +162,10 @@ MOVIEPILOT_API_SKILL_NAME = "moviepilot-api"
|
||||
SKILL_TOOL_DESCRIPTION = """Reads a MoviePilot skill by name or id.
|
||||
|
||||
Available skills:
|
||||
Use the optional `file` argument to load a listed supporting Skill document through this tool.
|
||||
{skills_catalog}
|
||||
|
||||
Call this tool when the user's task matches one of the available skills. It returns up to 512 KiB of SKILL.md content, metadata, and every supporting file path relative to the skill directory. If the content is truncated, do not use read_file to bypass the limit. Always use this tool instead of read_file for SKILL.md. Use read_file only for a listed supporting file when its content is needed. Do not use this for simple tasks that do not need a skill.
|
||||
Call this tool when the user's task matches one of the available skills. Without `file`, it returns up to 512 KiB of SKILL.md content, metadata, and every supporting file path relative to the Skill directory. Set `file` to one listed relative path to load that supporting Skill document in the same authorized tool. If the content is truncated, do not use read_file to bypass this limit. Always use this tool instead of read_file for SKILL.md or listed supporting Skill documents. Do not use this for simple tasks that do not need a skill.
|
||||
"""
|
||||
|
||||
|
||||
@@ -330,6 +342,18 @@ class _SkillToolProvider:
|
||||
decode_errors = "ignore" if truncated else "replace"
|
||||
return bounded_content.decode("utf-8", errors=decode_errors), truncated
|
||||
|
||||
@classmethod
|
||||
async def _read_supporting_file(cls, skill_path: str, relative_path: str) -> tuple[str, bool]:
|
||||
"""读取 Skill 目录中已列出的辅助文档,避免绕过 Skill 权限边界。"""
|
||||
supporting_files = await cls._list_supporting_files(skill_path)
|
||||
if relative_path not in supporting_files:
|
||||
raise ValueError(f"Skill supporting file is not listed: {relative_path}")
|
||||
|
||||
candidate = AsyncPath(str(Path(skill_path).parent / relative_path))
|
||||
if await candidate.is_symlink() or not await candidate.is_file():
|
||||
raise ValueError(f"Skill supporting file is unavailable: {relative_path}")
|
||||
return await cls._read_skill_content(str(candidate))
|
||||
|
||||
@staticmethod
|
||||
async def _list_supporting_files(skill_path: str) -> list[str]:
|
||||
"""列出技能目录内除 SKILL.md 外的全部普通文件相对路径。"""
|
||||
@@ -345,8 +369,8 @@ class _SkillToolProvider:
|
||||
supporting_files.append(relative_path)
|
||||
return sorted(supporting_files, key=str.casefold)
|
||||
|
||||
async def load_skill(self, name: str) -> str:
|
||||
"""加载指定 Skill 的受限主体和辅助文件列表并返回 JSON 字符串。"""
|
||||
async def load_skill(self, name: str, file: Optional[str] = None) -> str:
|
||||
"""加载指定 Skill 主体或一个已列出的辅助文档并返回 JSON 字符串。"""
|
||||
logger.info(f"加载 Skill: name={sanitize_for_host(name)}")
|
||||
try:
|
||||
skill = await self._find_skill(name)
|
||||
@@ -359,8 +383,13 @@ class _SkillToolProvider:
|
||||
ensure_ascii=False,
|
||||
)
|
||||
|
||||
content, truncated = await self._read_skill_content(skill["path"])
|
||||
supporting_files = await self._list_supporting_files(skill["path"])
|
||||
if file is None:
|
||||
content, truncated = await self._read_skill_content(skill["path"])
|
||||
truncation_message = SKILL_CONTENT_TRUNCATION_MESSAGE if truncated else None
|
||||
else:
|
||||
content, truncated = await self._read_supporting_file(skill["path"], file)
|
||||
truncation_message = SUPPORTING_FILE_TRUNCATION_MESSAGE if truncated else None
|
||||
declared_operations = skill.get("allowed_api_operations", [])
|
||||
if declared_operations:
|
||||
self._api_scope_declared = True
|
||||
@@ -377,10 +406,11 @@ class _SkillToolProvider:
|
||||
"allowed_api_operations": declared_operations,
|
||||
},
|
||||
"content": content,
|
||||
"loaded_file": file,
|
||||
"content_limit_bytes": MAX_SKILL_CONTENT_BYTES,
|
||||
"supporting_files": supporting_files,
|
||||
"truncated": truncated,
|
||||
"truncation_message": SKILL_CONTENT_TRUNCATION_MESSAGE if truncated else None,
|
||||
"truncation_message": truncation_message,
|
||||
},
|
||||
ensure_ascii=False,
|
||||
indent=2,
|
||||
|
||||
@@ -74,7 +74,7 @@ You act as a proactive agent. Your goal is to fully resolve the user's media-rel
|
||||
- If torrent search yields no useful result, check site scope, site health, and recognition quality before concluding that the resource is unavailable.
|
||||
- Reuse the latest torrent search cache through `search.results` before `download.add` instead of repeating the same search unnecessarily.
|
||||
- For a MoviePilot collection count or summary, use the corresponding `moviepilot_api` list operation with the smallest documented page; optional legacy pagination should use `page=1,count=1`. Read the exact `collection.total_count` or existing `data.total`. Do not query the database merely because list items or a tool preview were truncated. If the operation does not expose a total, continue its native pagination or report that the upstream total is unavailable instead of guessing.
|
||||
- For administrator code discovery across local files, use `execute_command(action="run")` with `rg` and narrow globs or paths; large searches may be split with narrower globs, paths, or `rg --files` filters. Use `moviepilot_api` operation `storage.list` for one known local or remote storage directory, with its paging fields when more than the first page is needed. Always use `read_skill`, never `read_file`, to load a skill's SKILL.md; `read_skill` returns up to 512 KiB of the skill body and the relative paths of its supporting files in one call. If the body is truncated, do not use `read_file` to bypass the limit. Use `read_file` when an exact non-SKILL.md local file is known, including a supporting file listed by `read_skill`. If `read_file` reports truncation, continue with smaller `start_line` and `end_line` ranges instead of assuming the file ended.
|
||||
- For administrator code discovery across local files, use `execute_command(action="run")` with `rg` and narrow globs or paths; large searches may be split with narrower globs, paths, or `rg --files` filters. Use `moviepilot_api` operation `storage.list` for one known local or remote storage directory, with its paging fields when more than the first page is needed. Always use `read_skill`, never `read_file`, to load a skill's SKILL.md or a listed supporting Skill document; `read_skill` returns up to 512 KiB of the skill body and the relative paths of its supporting files in one call. Call it again with the same Skill name and `file=<relative path>` when a supporting document is needed. If the body is truncated, do not use `read_file` to bypass the limit. Use `read_file` only for an exact non-SKILL.md local file that is not a Skill supporting document. If `read_file` reports truncation, continue with smaller `start_line` and `end_line` ranges instead of assuming the file ended.
|
||||
- Read the relevant file before changing it, then pick the editing tool by scope. Use `apply_patch` when one logical change spans multiple files, adds new files, or deletes files: submit a single patch wrapped in `*** Begin Patch` / `*** End Patch` with `*** Add File:`, `*** Update File:`, and `*** Delete File:` sections; every context and removed line must match the current content exactly, and the whole patch is validated before any file is written. Use `edit_file` for a single localized exact replacement within one already-read file; make `old_text` unique with enough surrounding context, and use `replace_all=true` only when every match must change. Use `write_file` for one standalone new file; set `overwrite=true` only for an intentional full rewrite, and use `read_file(include_metadata=true)` plus `expected_sha256` when preserving the previously read version matters.
|
||||
- When implementation depends on a Python or Node.js API, first identify the installed or locked dependency version from environment metadata, requirements, package manifests, lockfiles, local source, and type declarations. Use `rg` against the relevant package directory, `.venv`, or `node_modules` instead of scanning the entire project without bounds. If local evidence is insufficient, use `search_web` and then `browse_webpage` to read the matching version of the official documentation. Do not guess signatures from memory, mix examples from incompatible versions, or install a package only to inspect its API.
|
||||
- Use structured file tools for source edits because they enforce file access boundaries and conflict checks. Never use shell redirection, inline scripts, or another tool to bypass a file-tool permission denial.
|
||||
|
||||
@@ -47,7 +47,7 @@ MCP 当前不会主动发送工具列表变更通知(`listChanged=false`)。
|
||||
|
||||
| MCP 工具 | 用途 | 参数合同来源 |
|
||||
| :--- | :--- | :--- |
|
||||
| `moviepilot_api` | MoviePilot 产品业务 API:媒体、搜索、订阅、下载、整理、站点、存储、调度、工作流、插件、过滤规则和系统配置 | `skills/moviepilot-api/SKILL.md`;运行时 schema 为 `app/agent/policy/resources/api_mcp_schema.json` |
|
||||
| `moviepilot_api` | MoviePilot 产品业务 API:媒体、搜索、订阅、下载、整理、站点、存储、调度、工作流、插件、过滤规则和系统配置 | `skills/moviepilot-api/SKILL.md` 及其 `api/<category>.md` 独立分类合同;运行时 schema 为 `app/agent/policy/resources/api_mcp_schema.json` |
|
||||
| `downloader_operation` | qBittorrent、Transmission、rTorrent 原生任务、队列、文件、限速、标签和会话操作 | `skills/downloader-operation/SKILL.md` 与 `skills/downloader-operation/scripts/mp-downloader.py` 的 `ACTIONS` |
|
||||
| `mediaserver_operation` | Emby、Jellyfin、Plex、ZSpace、UGREEN、TrimeMedia、Navidrome、MediaVault 原生媒体库、搜索、播放、扫描和刷新操作 | `skills/mediaserver-operation/SKILL.md` 与 `skills/mediaserver-operation/scripts/mp-mediaserver.py` 的 `ACTIONS` |
|
||||
| `database_operation` | MoviePilot 配置数据库表清单、实时 schema、只读 SQL 和明确授权写入 | `skills/database-operation/SKILL.md` 与 `skills/database-operation/scripts/mp-db.py` 的 `ACTIONS` |
|
||||
|
||||
@@ -93,7 +93,7 @@ class EvaluationMcpServer:
|
||||
"""为一个独立世界提供受认证的本地 Streamable HTTP 必需子集。"""
|
||||
|
||||
def __init__(self, world: EvaluationWorld, *, root_dir: Optional[Path] = None, max_world_calls: int = 32) -> None:
|
||||
"""固定世界与可信源码目录;模型不能通过请求选择场景、文件或真实后端。"""
|
||||
"""固定世界与可信源码目录;模型只能读取预先列出的 Skill 文档。"""
|
||||
if type(max_world_calls) is not int or not 1 <= max_world_calls <= 32:
|
||||
raise ValueError("max_world_calls 必须为 1 到 32 的整数")
|
||||
self._world = world
|
||||
@@ -111,7 +111,8 @@ class EvaluationMcpServer:
|
||||
self._closed = False
|
||||
self._sessions: dict[str, _Session] = {}
|
||||
self._results: OrderedDict[str, _StoredResult] = OrderedDict()
|
||||
self._skill = self._load_skill(Path(root_dir) if root_dir is not None else Path(__file__).resolve().parents[2])
|
||||
self._skill_root = Path(root_dir) if root_dir is not None else Path(__file__).resolve().parents[2]
|
||||
self._skill = self._load_skill(self._skill_root)
|
||||
|
||||
@property
|
||||
def endpoint(self) -> str:
|
||||
@@ -328,8 +329,11 @@ class EvaluationMcpServer:
|
||||
"For collection counts, use the smallest documented page and read collection.total_count instead of querying the database after item truncation. "
|
||||
"Arbitrary URLs, commands, and authentication endpoints are forbidden."
|
||||
), "inputSchema": deepcopy(API_INPUT_SCHEMA)},
|
||||
{"name": "read_skill", "description": "Read the named MoviePilot Skill including its full body and supporting file paths. Available skill: moviepilot-api.", "inputSchema": {
|
||||
"type": "object", "required": ["name"], "additionalProperties": False, "properties": {"name": {"type": "string"}},
|
||||
{"name": "read_skill", "description": "Read the named MoviePilot Skill or one of its listed supporting documents. Available skill: moviepilot-api.", "inputSchema": {
|
||||
"type": "object", "required": ["name"], "additionalProperties": False, "properties": {
|
||||
"name": {"type": "string"},
|
||||
"file": {"type": "string", "description": "Relative supporting Skill document path listed by a prior read_skill call."},
|
||||
},
|
||||
}},
|
||||
{"name": "read_tool_result", "description": "Read an archived tool result using result_id and next_offset. Offsets count Unicode characters. Results expire after 15 minutes or eviction; never guess result IDs.", "inputSchema": {
|
||||
"type": "object", "required": ["result_id"], "additionalProperties": False, "properties": {
|
||||
@@ -417,10 +421,40 @@ class EvaluationMcpServer:
|
||||
return best
|
||||
|
||||
def _read_skill(self, arguments: dict[str, Any]) -> Any:
|
||||
"""返回完整真实技能的首屏或可续读归档,不提供精简场景专用说明。"""
|
||||
if set(arguments) != {"name"} or arguments.get("name") != "moviepilot-api":
|
||||
"""返回真实 Skill 主体或一个分类文档的首屏及可续读归档。"""
|
||||
requested_file = arguments.get("file")
|
||||
if (
|
||||
set(arguments) - {"name", "file"}
|
||||
or arguments.get("name") != "moviepilot-api"
|
||||
or (requested_file is not None and type(requested_file) is not str)
|
||||
):
|
||||
return self._failure("skill_not_found", "Unknown Skill")
|
||||
text = json.dumps(self._skill, ensure_ascii=False, indent=2)
|
||||
|
||||
if requested_file is None:
|
||||
skill_payload = self._skill
|
||||
elif requested_file not in self._skill["supporting_files"]:
|
||||
return self._failure("skill_file_not_found", "Unknown Skill supporting file")
|
||||
else:
|
||||
skill_payload = dict(self._skill)
|
||||
content_path = self._skill_root / "skills/moviepilot-api" / requested_file
|
||||
if content_path.is_symlink() or not content_path.is_file():
|
||||
return self._failure("skill_file_not_found", "Unknown Skill supporting file")
|
||||
|
||||
skill_payload["loaded_file"] = requested_file
|
||||
with content_path.open("rb") as handle:
|
||||
data = handle.read(MAX_SKILL_BYTES + 1)
|
||||
truncated = len(data) > MAX_SKILL_BYTES
|
||||
skill_payload["content"] = data[:MAX_SKILL_BYTES].decode(
|
||||
"utf-8", errors="ignore" if truncated else "replace"
|
||||
)
|
||||
skill_payload["truncated"] = truncated
|
||||
skill_payload["truncation_message"] = (
|
||||
"The requested supporting skill file exceeds 512 KiB; content contains only the first 512 KiB."
|
||||
if truncated
|
||||
else None
|
||||
)
|
||||
|
||||
text = json.dumps(skill_payload, ensure_ascii=False, indent=2)
|
||||
if len(text) <= FIRST_PAGE_CHARS:
|
||||
return text
|
||||
if len(text.encode("utf-8")) > MAX_RESULT_BYTES:
|
||||
|
||||
@@ -513,7 +513,7 @@ def _split_api_docs(rendered: str) -> tuple[dict[str, str], str, str]:
|
||||
operation_lines.append(line)
|
||||
elif section == "models":
|
||||
if line.startswith("#### "):
|
||||
line = "## " + line.removeprefix("#### ")
|
||||
line = "### " + line.removeprefix("#### ")
|
||||
model_lines.append(line)
|
||||
elif section == "settings":
|
||||
settings_lines.append(line)
|
||||
@@ -531,8 +531,14 @@ def _sync_api_category_docs(
|
||||
settings_section: str,
|
||||
models_section: str,
|
||||
) -> None:
|
||||
"""Write generated API operations to category files and shared model files."""
|
||||
"""Write standalone API category contracts with their shared body models."""
|
||||
api_dir = PROJECT_ROOT / "skills/moviepilot-api/api"
|
||||
model_section = (
|
||||
"## Body Models\n\n"
|
||||
"This category document is self-contained: the shared models below are included "
|
||||
"so the Agent does not need a second Skill document before calling the API.\n\n"
|
||||
f"{models_section.rstrip()}"
|
||||
)
|
||||
for category, operations in category_sections.items():
|
||||
category_path = api_dir / f"{category}.md"
|
||||
if not category_path.is_file():
|
||||
@@ -554,17 +560,12 @@ def _sync_api_category_docs(
|
||||
"## System Settings Contract",
|
||||
settings_section,
|
||||
)
|
||||
if "## Body Models" in category_text:
|
||||
category_text = _replace_section(category_text, "## Body Models", model_section)
|
||||
else:
|
||||
category_text = category_text.rstrip() + "\n\n" + model_section
|
||||
category_path.write_text(category_text.rstrip() + "\n", encoding="utf-8")
|
||||
|
||||
models_path = api_dir / "models.md"
|
||||
models_path.write_text(
|
||||
"# Shared API Models\n\n"
|
||||
"These body-model descriptions are shared by more than one API category. "
|
||||
"Load this file only when the selected operation references one of these models.\n\n"
|
||||
f"{models_section.rstrip()}\n",
|
||||
encoding="utf-8",
|
||||
)
|
||||
|
||||
|
||||
def _render_service_docs(script_path: Path, title: str) -> str:
|
||||
"""Render one downloader or media-server action contract."""
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
name: moviepilot-api
|
||||
version: 30
|
||||
version: 31
|
||||
description: >-
|
||||
Use this skill for MoviePilot product operations such as media search, torrent
|
||||
search, downloads, subscriptions, library checks, sites, storage, workflows,
|
||||
@@ -82,11 +82,11 @@ use a more specific skill or explain that the structured operation is unavailabl
|
||||
## Overall Workflow
|
||||
|
||||
1. Select the exact `operation_id` from the category index below.
|
||||
2. Open the matching `api/<category>.md` file and read that operation's exact
|
||||
method, route, policy effect, and `path_params`/`query`/`body` contract.
|
||||
3. Load `api/models.md` only when the operation references one of its shared
|
||||
body models. For category-specific procedures, follow the guidance in the
|
||||
matching category file.
|
||||
2. Call `read_skill` again with `name="moviepilot-api"` and
|
||||
`file="api/<category>.md"` to load the complete standalone category
|
||||
contract. Do not use `read_file` for Skill documents.
|
||||
3. The selected category file already includes the shared body Models needed to
|
||||
construct its calls; do not load a second Models document.
|
||||
4. Build one gateway call with only declared fields. Preserve source-native
|
||||
identifiers and use the documented pagination fields.
|
||||
5. Obtain confirmation for confirmation-protected or side-effecting operations,
|
||||
@@ -99,17 +99,17 @@ use a more specific skill or explain that the structured operation is unavailabl
|
||||
## API Category Index
|
||||
|
||||
Each category file contains the complete operation contracts for its namespace.
|
||||
The counts are a maintenance aid for the 211 currently exposed operations.
|
||||
The counts are a maintenance aid for the 218 currently exposed operations.
|
||||
|
||||
| Category | Detail file | Operation namespace | Count | Use for |
|
||||
| --- | --- | --- | ---: | --- |
|
||||
| Configuration | [api/config.md](api/config.md) | `config.*` | 6 | identifiers, public/user settings, system setting discovery and updates |
|
||||
| Dashboard | [api/dashboard.md](api/dashboard.md) | `dashboard.*` | 9 | media, storage, process, system, downloader, CPU, memory, network, and transfer summaries |
|
||||
| Database | [api/database.md](api/database.md) | `database.backups.*` | 4 | administrator backup lifecycle |
|
||||
| Download | [api/download.md](api/download.md) | `download.*` | 6 | download submission, clients, paths, active tasks, and history |
|
||||
| Download | [api/download.md](api/download.md) | `download.*` | 7 | download submission, clients, paths, active tasks, and history |
|
||||
| Filter | [api/filter.md](api/filter.md) | `filter.*` | 10 | built-in/custom rules, groups, and testing |
|
||||
| Library | [api/library.md](api/library.md) | `library.*` | 2 | existence and latest-media checks |
|
||||
| Media | [api/media.md](api/media.md) | `media.*` | 20 | media search/detail, recognition, scraping, schedules, sources, people, seasons, and classification |
|
||||
| Media | [api/media.md](api/media.md) | `media.*` | 23 | media search/detail, recognition, scraping, schedules, sources, people, seasons, and classification |
|
||||
| Music | [api/music.md](api/music.md) | `music.*` | 10 | recognition, exploration, albums, artists, and cache administration |
|
||||
| Plugin | [api/plugin.md](api/plugin.md) | `plugin.*` | 30 | plugin market, install/runtime, configuration, source, folders, ratings, releases, and statistics |
|
||||
| Recommendation | [api/recommendation.md](api/recommendation.md) | `recommendation.*` | 1 | recommendation listings |
|
||||
@@ -118,17 +118,17 @@ The counts are a maintenance aid for the 211 currently exposed operations.
|
||||
| Site | [api/site.md](api/site.md) | `site.*` | 22 | site discovery, authentication, cookies, user data, resources, RSS, priorities, and statistics |
|
||||
| Slash | [api/slash.md](api/slash.md) | `slash.*` | 2 | slash-command discovery and execution |
|
||||
| Storage | [api/storage.md](api/storage.md) | `storage.*` | 6 | storage settings, browsing, directories, rename, and delete |
|
||||
| Subscription | [api/subscription.md](api/subscription.md) | `subscription.*` | 26 | subscription CRUD, search/refresh, history, files, sharing, following, and status |
|
||||
| Subscription | [api/subscription.md](api/subscription.md) | `subscription.*` | 29 | subscription CRUD, search/refresh, history, files, sharing, following, and status |
|
||||
| Subtitle | [api/subtitle.md](api/subtitle.md) | `subtitle.search.*` | 2 | subtitle title and media search |
|
||||
| System | [api/system.md](api/system.md) | `system.*` | 12 | versions, update, restart, modules, network, and usage |
|
||||
| Torrent cache | [api/torrent.md](api/torrent.md) | `torrent.cache.*` | 5 | torrent-cache inspection, refresh, re-identification, and deletion |
|
||||
| Transfer | [api/transfer.md](api/transfer.md) | `transfer.*` | 15 | transfer queue/history, file, naming, manual review, retry, and target path |
|
||||
| Workflow | [api/workflow.md](api/workflow.md) | `workflow.*` | 16 | workflow definitions, actions, execution, sharing, and lifecycle |
|
||||
|
||||
Shared request/response body models are documented in
|
||||
[api/models.md](api/models.md). If an operation is added or moved, update its
|
||||
category file, this index, the frontmatter allowlist, and the matching gateway
|
||||
contract together.
|
||||
Each category file is a standalone contract: it contains the operation details
|
||||
and the shared request/response body Models needed by that category. If an
|
||||
operation is added or moved, update its category file, this index, the
|
||||
frontmatter allowlist, and the matching gateway contract together.
|
||||
|
||||
## API Surface Scope
|
||||
|
||||
|
||||
@@ -76,3 +76,163 @@ Choose an operation listed in the discovered setting definition, then send it in
|
||||
| `remove_list_item` | `setting_key*`, `value` or `match_value`; optional `match_field` | Remove one matched list item without replacing the list |
|
||||
|
||||
After every update, call `config.system.get` again with the exact setting_key and verify the saved value. Do not guess a key, value shape, list match field, or update operation when discovery can return it.
|
||||
|
||||
## Body Models
|
||||
|
||||
This category document is self-contained: the shared models below are included so the Agent does not need a second Skill document before calling the API.
|
||||
|
||||
### `ClassificationFacts`
|
||||
Normalized media facts evaluated by the automatic classification policy.
|
||||
- `extensions` (object): Additional normalized classification facts supplied by extensions.
|
||||
- `field_sources` (object): Source provenance for normalized classification facts.
|
||||
- `identity*` (ClassificationIdentityFacts): Stable source-native media identity used by classification facts.
|
||||
- `media*` (ClassificationMediaFacts): Media metadata input used for a classification preview.
|
||||
- `music` (ClassificationMusicFacts|null): Music-specific normalized facts used by classification rules.
|
||||
|
||||
### `ClassificationFactsPreviewInput`
|
||||
Normalized facts supplied directly for a classification preview.
|
||||
- `facts*` (ClassificationFacts): Normalized media facts to evaluate during a classification preview.
|
||||
- `kind` (string=facts; default `facts`): Classification rule or preview-input kind selected by the request.
|
||||
|
||||
### `ClassificationIdentityFacts`
|
||||
Stable source-native identity used by classification evaluation.
|
||||
- `media_id*` (string): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source*` (string): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
|
||||
### `ClassificationMediaFacts`
|
||||
Normalized movie, TV, or shared media facts used by classification rules.
|
||||
- `adult` (boolean|null): Whether the media is marked as adult content.
|
||||
- `companies` (array<string>|null): Production companies or studios associated with the media.
|
||||
- `content_rating` (string|null): Content rating assigned to the media.
|
||||
- `countries` (array<string>|null): Normalized country or region codes used by classification rules.
|
||||
- `genre_keys` (array<string>|null): Normalized MoviePilot genre keys used by classification rules.
|
||||
- `genre_names` (array<string>|null): Source-provided genre names used as classification facts.
|
||||
- `language` (string|null): Normalized media language code used by classification rules.
|
||||
- `networks` (array<string>|null): Television networks or streaming platforms associated with the media.
|
||||
- `runtime` (integer|null): Persisted workflow runtime metadata used for safe resume.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `type*` (string): MoviePilot media or storage item type required by the selected operation.
|
||||
- `year` (integer|null): Release or premiere year used to disambiguate the media title.
|
||||
|
||||
### `ClassificationMediaPreviewInput`
|
||||
A selected media search result supplied for classification preview.
|
||||
- `kind` (string=media; default `media`): Classification rule or preview-input kind selected by the request.
|
||||
- `media*` (object): Media metadata input used for a classification preview.
|
||||
|
||||
### `ClassificationMusicFacts`
|
||||
Music-specific facts used by automatic classification rules.
|
||||
- `album_type` (string|null): Music album or release-group type used by classification rules.
|
||||
- `artist_country` (string|null): Country or region associated with the music artist.
|
||||
- `artists` (array<string>|null): Music artist names associated with the classified entity.
|
||||
- `entity_type` (string|null): Music entity type used by classification rules.
|
||||
- `genres` (array<string>|null): Normalized music genre values used by classification rules.
|
||||
- `release_status` (string|null): Music release status used by classification rules.
|
||||
- `secondary_types` (array<string>|null): Secondary music release-group types used by classification rules.
|
||||
- `tags` (array<string>|null): Comma-separated Douban Music category tags; use only with a Douban Music exploration source.
|
||||
|
||||
### `ClassificationPolicy-Input`
|
||||
Complete versioned automatic media-classification policy.
|
||||
- `categories` (array<ClassificationCategory>): Complete ordered media-category definitions in the classification policy.
|
||||
- `enrichment_mode` (string(primary_only,enrich_missing); default `primary_only`): Metadata enrichment mode used to populate classification facts.
|
||||
- `fallbacks` (object): Fallback category or label actions used when no classification rule matches.
|
||||
- `field_aliases` (object): Optional aliases mapping source-specific fields to normalized classification fields.
|
||||
- `mode` (string=first_match; default `first_match`): Operation mode; music.explore accepts chart or fresh, while transfer history records move, copy, link, or softlink.
|
||||
- `revision` (integer; default `0`; minimum `0.0`): Published classification policy revision or expected revision number.
|
||||
- `rules` (array<ClassificationRule-Input>): Ordered classification rules evaluated from highest priority to lowest.
|
||||
- `schema_version` (integer=2; default `2`): Classification policy schema version expected by the server.
|
||||
- `updated_at` (string|null): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `FileItem-Input`
|
||||
One file or directory returned by a configured storage provider.
|
||||
- `basename` (string|null): Base filename without its parent path.
|
||||
- `children` (array<FileItem-Input>|null): Child storage items nested below this item.
|
||||
- `drive_id` (string|null): Provider-native storage drive identifier.
|
||||
- `extension` (string|null): Filename extension, including or excluding the leading dot as returned by storage.
|
||||
- `fileid` (string|null): Provider-native storage item identifier.
|
||||
- `modify_time` (number|null): Storage item modification timestamp.
|
||||
- `name` (string|null): Human-readable name of the site, storage item, subscription, or rule group.
|
||||
- `parent_fileid` (string|null): Provider-native identifier of the parent storage directory.
|
||||
- `path` (string|null; default `/`): Storage or history path represented by this record.
|
||||
- `pickcode` (string|null): 115 storage pickcode associated with the item.
|
||||
- `size` (integer|null): File or torrent size in bytes.
|
||||
- `storage` (string|null; default `local`): Configured storage name or storage type used by the operation.
|
||||
- `thumbnail` (string|null): Thumbnail URL returned by the storage provider.
|
||||
- `type` (string|null): MoviePilot media or storage item type required by the selected operation.
|
||||
- `url` (string|null): Site, storage, or torrent URL represented by this field.
|
||||
|
||||
### `JsonData-Input`
|
||||
Arbitrary JSON-compatible auxiliary data.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaSource`
|
||||
Canonical metadata source identifier paired with a source-native media ID.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaType`
|
||||
MoviePilot media type.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `SubscriptionExecutionStatus`
|
||||
Subscription refresh execution status and progress summary.
|
||||
- `batch_id` (string|null): Stable subscription search batch identifier.
|
||||
- `can_cancel` (boolean; default `False`): Whether the current subscription execution can be cancelled.
|
||||
- `current_site_id` (integer|null): Configured site ID currently handling the subscription execution.
|
||||
- `error` (string|null): Human-readable workflow, provider, or execution error message.
|
||||
- `next_run_at` (string|null): Next scheduled subscription search time. Null when no future execution is planned.
|
||||
- `phase*` (string): Current phase of a subscription execution.
|
||||
- `source` (string|null): Exact metadata or recommendation source selected by the operation.
|
||||
- `state*` (string): Current site, subscription, marketplace, or transfer state filter.
|
||||
- `task_id` (string|null): Stable durable transfer task ID returned by transfer.manual_reviews.
|
||||
- `updated_at*` (string): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `TorrentInfo`
|
||||
One torrent candidate returned by MoviePilot search.
|
||||
- `category` (string|null): MoviePilot media category or filter-group category, depending on the operation.
|
||||
- `date_elapsed` (string|null): Human-readable age of the torrent publication date.
|
||||
- `description` (string|null): Human-readable media, torrent, or subscription description.
|
||||
- `downloadvolumefactor` (number|null): Torrent download-volume multiplier reported by the site.
|
||||
- `enclosure` (string|null): Torrent download URL or enclosure supplied by the indexer result.
|
||||
- `freedate` (string|null): Torrent freeleech expiration timestamp reported by the site.
|
||||
- `freedate_diff` (string|null): Seconds remaining until the torrent freeleech period ends.
|
||||
- `grabs` (integer|null; default `0`): Number of completed downloads reported for the torrent.
|
||||
- `hit_and_run` (boolean|null; default `False`): Whether the torrent is subject to hit-and-run requirements.
|
||||
- `labels` (array<string>|null): Labels attached to the media, classification result, or torrent result.
|
||||
- `media_id` (string|null): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source` (MediaSource|null): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
- `page_url` (string|null): Public details page for the torrent result.
|
||||
- `peers` (integer|null; default `0`): Number of downloading peers reported for the torrent.
|
||||
- `pri_order` (integer|null; default `0`): Indexer priority order assigned to the torrent result.
|
||||
- `pubdate` (string|null): Torrent publication timestamp.
|
||||
- `seeders` (integer|null; default `0`): Minimum seeder expression for a filter rule, or the torrent's seeder count.
|
||||
- `site` (integer|null): Source site identifier associated with the torrent result.
|
||||
- `site_cookie` (string|null): Site cookie bundled with the torrent result. Treat this value as a secret.
|
||||
- `site_downloader` (string|null): Downloader instance selected by the source site.
|
||||
- `site_name` (string|null): Human-readable source site name.
|
||||
- `site_order` (integer|null; default `0`): Source site's configured search order.
|
||||
- `site_proxy` (boolean|null; default `False`): Whether the torrent's source site uses the configured proxy.
|
||||
- `site_ua` (string|null): User-Agent associated with the source site.
|
||||
- `size` (number|null; default `0.0`): File or torrent size in bytes.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `uploadvolumefactor` (number|null): Torrent upload-volume multiplier reported by the site.
|
||||
- `volume_factor` (string|null): Combined upload/download volume-factor label shown for the torrent.
|
||||
|
||||
### `WorkflowExecutionConfig`
|
||||
Workflow concurrency, join, branch, and failure policies.
|
||||
- `max_workers` (integer|null): Maximum concurrent workflow actions allowed by the execution configuration.
|
||||
|
||||
### `WorkflowExecutionState-Input`
|
||||
Persisted resumable workflow execution state.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `nodes` (object): Persisted workflow node runtime states keyed by action identity.
|
||||
- `outputs` (object): Named output mappings produced by this workflow action.
|
||||
- `runtime` (WorkflowRuntimeState): Persisted workflow runtime metadata used for safe resume.
|
||||
- `version` (integer; default `1`): Plugin release or schema version selected by the operation.
|
||||
|
||||
### `WorkflowRuntimeState`
|
||||
Complete persisted workflow runtime and progress state.
|
||||
- `attempts` (object): Attempt counters keyed by workflow node or operation identity.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `finished_actions` (integer; default `0`): Workflow action IDs already completed in the persisted execution state.
|
||||
- `node_states` (object): Persisted runtime states keyed by workflow node identity.
|
||||
- `progress` (integer; default `0`): Current numeric or structured workflow execution progress.
|
||||
- `running_tasks` (integer; default `0`): Workflow task IDs currently executing.
|
||||
|
||||
@@ -69,3 +69,163 @@ Purpose: Read aggregate file-transfer counts grouped by time period.
|
||||
- `path_params`: none
|
||||
- `query`: `count` (integer|null): Optional page size for a legacy full-list endpoint. Supplying page or count activates pagination; an omitted count then uses 50.; `days` (integer|null; default `7`): Recommendation time window in days.; `page` (integer|null): Optional one-based page for a legacy full-list endpoint. Omit both page and count to keep the original unpaginated full result.
|
||||
- `body`: none
|
||||
|
||||
## Body Models
|
||||
|
||||
This category document is self-contained: the shared models below are included so the Agent does not need a second Skill document before calling the API.
|
||||
|
||||
### `ClassificationFacts`
|
||||
Normalized media facts evaluated by the automatic classification policy.
|
||||
- `extensions` (object): Additional normalized classification facts supplied by extensions.
|
||||
- `field_sources` (object): Source provenance for normalized classification facts.
|
||||
- `identity*` (ClassificationIdentityFacts): Stable source-native media identity used by classification facts.
|
||||
- `media*` (ClassificationMediaFacts): Media metadata input used for a classification preview.
|
||||
- `music` (ClassificationMusicFacts|null): Music-specific normalized facts used by classification rules.
|
||||
|
||||
### `ClassificationFactsPreviewInput`
|
||||
Normalized facts supplied directly for a classification preview.
|
||||
- `facts*` (ClassificationFacts): Normalized media facts to evaluate during a classification preview.
|
||||
- `kind` (string=facts; default `facts`): Classification rule or preview-input kind selected by the request.
|
||||
|
||||
### `ClassificationIdentityFacts`
|
||||
Stable source-native identity used by classification evaluation.
|
||||
- `media_id*` (string): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source*` (string): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
|
||||
### `ClassificationMediaFacts`
|
||||
Normalized movie, TV, or shared media facts used by classification rules.
|
||||
- `adult` (boolean|null): Whether the media is marked as adult content.
|
||||
- `companies` (array<string>|null): Production companies or studios associated with the media.
|
||||
- `content_rating` (string|null): Content rating assigned to the media.
|
||||
- `countries` (array<string>|null): Normalized country or region codes used by classification rules.
|
||||
- `genre_keys` (array<string>|null): Normalized MoviePilot genre keys used by classification rules.
|
||||
- `genre_names` (array<string>|null): Source-provided genre names used as classification facts.
|
||||
- `language` (string|null): Normalized media language code used by classification rules.
|
||||
- `networks` (array<string>|null): Television networks or streaming platforms associated with the media.
|
||||
- `runtime` (integer|null): Persisted workflow runtime metadata used for safe resume.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `type*` (string): MoviePilot media or storage item type required by the selected operation.
|
||||
- `year` (integer|null): Release or premiere year used to disambiguate the media title.
|
||||
|
||||
### `ClassificationMediaPreviewInput`
|
||||
A selected media search result supplied for classification preview.
|
||||
- `kind` (string=media; default `media`): Classification rule or preview-input kind selected by the request.
|
||||
- `media*` (object): Media metadata input used for a classification preview.
|
||||
|
||||
### `ClassificationMusicFacts`
|
||||
Music-specific facts used by automatic classification rules.
|
||||
- `album_type` (string|null): Music album or release-group type used by classification rules.
|
||||
- `artist_country` (string|null): Country or region associated with the music artist.
|
||||
- `artists` (array<string>|null): Music artist names associated with the classified entity.
|
||||
- `entity_type` (string|null): Music entity type used by classification rules.
|
||||
- `genres` (array<string>|null): Normalized music genre values used by classification rules.
|
||||
- `release_status` (string|null): Music release status used by classification rules.
|
||||
- `secondary_types` (array<string>|null): Secondary music release-group types used by classification rules.
|
||||
- `tags` (array<string>|null): Comma-separated Douban Music category tags; use only with a Douban Music exploration source.
|
||||
|
||||
### `ClassificationPolicy-Input`
|
||||
Complete versioned automatic media-classification policy.
|
||||
- `categories` (array<ClassificationCategory>): Complete ordered media-category definitions in the classification policy.
|
||||
- `enrichment_mode` (string(primary_only,enrich_missing); default `primary_only`): Metadata enrichment mode used to populate classification facts.
|
||||
- `fallbacks` (object): Fallback category or label actions used when no classification rule matches.
|
||||
- `field_aliases` (object): Optional aliases mapping source-specific fields to normalized classification fields.
|
||||
- `mode` (string=first_match; default `first_match`): Operation mode; music.explore accepts chart or fresh, while transfer history records move, copy, link, or softlink.
|
||||
- `revision` (integer; default `0`; minimum `0.0`): Published classification policy revision or expected revision number.
|
||||
- `rules` (array<ClassificationRule-Input>): Ordered classification rules evaluated from highest priority to lowest.
|
||||
- `schema_version` (integer=2; default `2`): Classification policy schema version expected by the server.
|
||||
- `updated_at` (string|null): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `FileItem-Input`
|
||||
One file or directory returned by a configured storage provider.
|
||||
- `basename` (string|null): Base filename without its parent path.
|
||||
- `children` (array<FileItem-Input>|null): Child storage items nested below this item.
|
||||
- `drive_id` (string|null): Provider-native storage drive identifier.
|
||||
- `extension` (string|null): Filename extension, including or excluding the leading dot as returned by storage.
|
||||
- `fileid` (string|null): Provider-native storage item identifier.
|
||||
- `modify_time` (number|null): Storage item modification timestamp.
|
||||
- `name` (string|null): Human-readable name of the site, storage item, subscription, or rule group.
|
||||
- `parent_fileid` (string|null): Provider-native identifier of the parent storage directory.
|
||||
- `path` (string|null; default `/`): Storage or history path represented by this record.
|
||||
- `pickcode` (string|null): 115 storage pickcode associated with the item.
|
||||
- `size` (integer|null): File or torrent size in bytes.
|
||||
- `storage` (string|null; default `local`): Configured storage name or storage type used by the operation.
|
||||
- `thumbnail` (string|null): Thumbnail URL returned by the storage provider.
|
||||
- `type` (string|null): MoviePilot media or storage item type required by the selected operation.
|
||||
- `url` (string|null): Site, storage, or torrent URL represented by this field.
|
||||
|
||||
### `JsonData-Input`
|
||||
Arbitrary JSON-compatible auxiliary data.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaSource`
|
||||
Canonical metadata source identifier paired with a source-native media ID.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaType`
|
||||
MoviePilot media type.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `SubscriptionExecutionStatus`
|
||||
Subscription refresh execution status and progress summary.
|
||||
- `batch_id` (string|null): Stable subscription search batch identifier.
|
||||
- `can_cancel` (boolean; default `False`): Whether the current subscription execution can be cancelled.
|
||||
- `current_site_id` (integer|null): Configured site ID currently handling the subscription execution.
|
||||
- `error` (string|null): Human-readable workflow, provider, or execution error message.
|
||||
- `next_run_at` (string|null): Next scheduled subscription search time. Null when no future execution is planned.
|
||||
- `phase*` (string): Current phase of a subscription execution.
|
||||
- `source` (string|null): Exact metadata or recommendation source selected by the operation.
|
||||
- `state*` (string): Current site, subscription, marketplace, or transfer state filter.
|
||||
- `task_id` (string|null): Stable durable transfer task ID returned by transfer.manual_reviews.
|
||||
- `updated_at*` (string): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `TorrentInfo`
|
||||
One torrent candidate returned by MoviePilot search.
|
||||
- `category` (string|null): MoviePilot media category or filter-group category, depending on the operation.
|
||||
- `date_elapsed` (string|null): Human-readable age of the torrent publication date.
|
||||
- `description` (string|null): Human-readable media, torrent, or subscription description.
|
||||
- `downloadvolumefactor` (number|null): Torrent download-volume multiplier reported by the site.
|
||||
- `enclosure` (string|null): Torrent download URL or enclosure supplied by the indexer result.
|
||||
- `freedate` (string|null): Torrent freeleech expiration timestamp reported by the site.
|
||||
- `freedate_diff` (string|null): Seconds remaining until the torrent freeleech period ends.
|
||||
- `grabs` (integer|null; default `0`): Number of completed downloads reported for the torrent.
|
||||
- `hit_and_run` (boolean|null; default `False`): Whether the torrent is subject to hit-and-run requirements.
|
||||
- `labels` (array<string>|null): Labels attached to the media, classification result, or torrent result.
|
||||
- `media_id` (string|null): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source` (MediaSource|null): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
- `page_url` (string|null): Public details page for the torrent result.
|
||||
- `peers` (integer|null; default `0`): Number of downloading peers reported for the torrent.
|
||||
- `pri_order` (integer|null; default `0`): Indexer priority order assigned to the torrent result.
|
||||
- `pubdate` (string|null): Torrent publication timestamp.
|
||||
- `seeders` (integer|null; default `0`): Minimum seeder expression for a filter rule, or the torrent's seeder count.
|
||||
- `site` (integer|null): Source site identifier associated with the torrent result.
|
||||
- `site_cookie` (string|null): Site cookie bundled with the torrent result. Treat this value as a secret.
|
||||
- `site_downloader` (string|null): Downloader instance selected by the source site.
|
||||
- `site_name` (string|null): Human-readable source site name.
|
||||
- `site_order` (integer|null; default `0`): Source site's configured search order.
|
||||
- `site_proxy` (boolean|null; default `False`): Whether the torrent's source site uses the configured proxy.
|
||||
- `site_ua` (string|null): User-Agent associated with the source site.
|
||||
- `size` (number|null; default `0.0`): File or torrent size in bytes.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `uploadvolumefactor` (number|null): Torrent upload-volume multiplier reported by the site.
|
||||
- `volume_factor` (string|null): Combined upload/download volume-factor label shown for the torrent.
|
||||
|
||||
### `WorkflowExecutionConfig`
|
||||
Workflow concurrency, join, branch, and failure policies.
|
||||
- `max_workers` (integer|null): Maximum concurrent workflow actions allowed by the execution configuration.
|
||||
|
||||
### `WorkflowExecutionState-Input`
|
||||
Persisted resumable workflow execution state.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `nodes` (object): Persisted workflow node runtime states keyed by action identity.
|
||||
- `outputs` (object): Named output mappings produced by this workflow action.
|
||||
- `runtime` (WorkflowRuntimeState): Persisted workflow runtime metadata used for safe resume.
|
||||
- `version` (integer; default `1`): Plugin release or schema version selected by the operation.
|
||||
|
||||
### `WorkflowRuntimeState`
|
||||
Complete persisted workflow runtime and progress state.
|
||||
- `attempts` (object): Attempt counters keyed by workflow node or operation identity.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `finished_actions` (integer; default `0`): Workflow action IDs already completed in the persisted execution state.
|
||||
- `node_states` (object): Persisted runtime states keyed by workflow node identity.
|
||||
- `progress` (integer; default `0`): Current numeric or structured workflow execution progress.
|
||||
- `running_tasks` (integer; default `0`): Workflow task IDs currently executing.
|
||||
|
||||
@@ -32,3 +32,163 @@ Purpose: Verify the integrity of one exact managed database backup artifact.
|
||||
- `path_params`: `name*` (string): Human-readable name of the site, storage item, subscription, or rule group.
|
||||
- `query`: none
|
||||
- `body`: none
|
||||
|
||||
## Body Models
|
||||
|
||||
This category document is self-contained: the shared models below are included so the Agent does not need a second Skill document before calling the API.
|
||||
|
||||
### `ClassificationFacts`
|
||||
Normalized media facts evaluated by the automatic classification policy.
|
||||
- `extensions` (object): Additional normalized classification facts supplied by extensions.
|
||||
- `field_sources` (object): Source provenance for normalized classification facts.
|
||||
- `identity*` (ClassificationIdentityFacts): Stable source-native media identity used by classification facts.
|
||||
- `media*` (ClassificationMediaFacts): Media metadata input used for a classification preview.
|
||||
- `music` (ClassificationMusicFacts|null): Music-specific normalized facts used by classification rules.
|
||||
|
||||
### `ClassificationFactsPreviewInput`
|
||||
Normalized facts supplied directly for a classification preview.
|
||||
- `facts*` (ClassificationFacts): Normalized media facts to evaluate during a classification preview.
|
||||
- `kind` (string=facts; default `facts`): Classification rule or preview-input kind selected by the request.
|
||||
|
||||
### `ClassificationIdentityFacts`
|
||||
Stable source-native identity used by classification evaluation.
|
||||
- `media_id*` (string): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source*` (string): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
|
||||
### `ClassificationMediaFacts`
|
||||
Normalized movie, TV, or shared media facts used by classification rules.
|
||||
- `adult` (boolean|null): Whether the media is marked as adult content.
|
||||
- `companies` (array<string>|null): Production companies or studios associated with the media.
|
||||
- `content_rating` (string|null): Content rating assigned to the media.
|
||||
- `countries` (array<string>|null): Normalized country or region codes used by classification rules.
|
||||
- `genre_keys` (array<string>|null): Normalized MoviePilot genre keys used by classification rules.
|
||||
- `genre_names` (array<string>|null): Source-provided genre names used as classification facts.
|
||||
- `language` (string|null): Normalized media language code used by classification rules.
|
||||
- `networks` (array<string>|null): Television networks or streaming platforms associated with the media.
|
||||
- `runtime` (integer|null): Persisted workflow runtime metadata used for safe resume.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `type*` (string): MoviePilot media or storage item type required by the selected operation.
|
||||
- `year` (integer|null): Release or premiere year used to disambiguate the media title.
|
||||
|
||||
### `ClassificationMediaPreviewInput`
|
||||
A selected media search result supplied for classification preview.
|
||||
- `kind` (string=media; default `media`): Classification rule or preview-input kind selected by the request.
|
||||
- `media*` (object): Media metadata input used for a classification preview.
|
||||
|
||||
### `ClassificationMusicFacts`
|
||||
Music-specific facts used by automatic classification rules.
|
||||
- `album_type` (string|null): Music album or release-group type used by classification rules.
|
||||
- `artist_country` (string|null): Country or region associated with the music artist.
|
||||
- `artists` (array<string>|null): Music artist names associated with the classified entity.
|
||||
- `entity_type` (string|null): Music entity type used by classification rules.
|
||||
- `genres` (array<string>|null): Normalized music genre values used by classification rules.
|
||||
- `release_status` (string|null): Music release status used by classification rules.
|
||||
- `secondary_types` (array<string>|null): Secondary music release-group types used by classification rules.
|
||||
- `tags` (array<string>|null): Comma-separated Douban Music category tags; use only with a Douban Music exploration source.
|
||||
|
||||
### `ClassificationPolicy-Input`
|
||||
Complete versioned automatic media-classification policy.
|
||||
- `categories` (array<ClassificationCategory>): Complete ordered media-category definitions in the classification policy.
|
||||
- `enrichment_mode` (string(primary_only,enrich_missing); default `primary_only`): Metadata enrichment mode used to populate classification facts.
|
||||
- `fallbacks` (object): Fallback category or label actions used when no classification rule matches.
|
||||
- `field_aliases` (object): Optional aliases mapping source-specific fields to normalized classification fields.
|
||||
- `mode` (string=first_match; default `first_match`): Operation mode; music.explore accepts chart or fresh, while transfer history records move, copy, link, or softlink.
|
||||
- `revision` (integer; default `0`; minimum `0.0`): Published classification policy revision or expected revision number.
|
||||
- `rules` (array<ClassificationRule-Input>): Ordered classification rules evaluated from highest priority to lowest.
|
||||
- `schema_version` (integer=2; default `2`): Classification policy schema version expected by the server.
|
||||
- `updated_at` (string|null): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `FileItem-Input`
|
||||
One file or directory returned by a configured storage provider.
|
||||
- `basename` (string|null): Base filename without its parent path.
|
||||
- `children` (array<FileItem-Input>|null): Child storage items nested below this item.
|
||||
- `drive_id` (string|null): Provider-native storage drive identifier.
|
||||
- `extension` (string|null): Filename extension, including or excluding the leading dot as returned by storage.
|
||||
- `fileid` (string|null): Provider-native storage item identifier.
|
||||
- `modify_time` (number|null): Storage item modification timestamp.
|
||||
- `name` (string|null): Human-readable name of the site, storage item, subscription, or rule group.
|
||||
- `parent_fileid` (string|null): Provider-native identifier of the parent storage directory.
|
||||
- `path` (string|null; default `/`): Storage or history path represented by this record.
|
||||
- `pickcode` (string|null): 115 storage pickcode associated with the item.
|
||||
- `size` (integer|null): File or torrent size in bytes.
|
||||
- `storage` (string|null; default `local`): Configured storage name or storage type used by the operation.
|
||||
- `thumbnail` (string|null): Thumbnail URL returned by the storage provider.
|
||||
- `type` (string|null): MoviePilot media or storage item type required by the selected operation.
|
||||
- `url` (string|null): Site, storage, or torrent URL represented by this field.
|
||||
|
||||
### `JsonData-Input`
|
||||
Arbitrary JSON-compatible auxiliary data.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaSource`
|
||||
Canonical metadata source identifier paired with a source-native media ID.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaType`
|
||||
MoviePilot media type.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `SubscriptionExecutionStatus`
|
||||
Subscription refresh execution status and progress summary.
|
||||
- `batch_id` (string|null): Stable subscription search batch identifier.
|
||||
- `can_cancel` (boolean; default `False`): Whether the current subscription execution can be cancelled.
|
||||
- `current_site_id` (integer|null): Configured site ID currently handling the subscription execution.
|
||||
- `error` (string|null): Human-readable workflow, provider, or execution error message.
|
||||
- `next_run_at` (string|null): Next scheduled subscription search time. Null when no future execution is planned.
|
||||
- `phase*` (string): Current phase of a subscription execution.
|
||||
- `source` (string|null): Exact metadata or recommendation source selected by the operation.
|
||||
- `state*` (string): Current site, subscription, marketplace, or transfer state filter.
|
||||
- `task_id` (string|null): Stable durable transfer task ID returned by transfer.manual_reviews.
|
||||
- `updated_at*` (string): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `TorrentInfo`
|
||||
One torrent candidate returned by MoviePilot search.
|
||||
- `category` (string|null): MoviePilot media category or filter-group category, depending on the operation.
|
||||
- `date_elapsed` (string|null): Human-readable age of the torrent publication date.
|
||||
- `description` (string|null): Human-readable media, torrent, or subscription description.
|
||||
- `downloadvolumefactor` (number|null): Torrent download-volume multiplier reported by the site.
|
||||
- `enclosure` (string|null): Torrent download URL or enclosure supplied by the indexer result.
|
||||
- `freedate` (string|null): Torrent freeleech expiration timestamp reported by the site.
|
||||
- `freedate_diff` (string|null): Seconds remaining until the torrent freeleech period ends.
|
||||
- `grabs` (integer|null; default `0`): Number of completed downloads reported for the torrent.
|
||||
- `hit_and_run` (boolean|null; default `False`): Whether the torrent is subject to hit-and-run requirements.
|
||||
- `labels` (array<string>|null): Labels attached to the media, classification result, or torrent result.
|
||||
- `media_id` (string|null): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source` (MediaSource|null): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
- `page_url` (string|null): Public details page for the torrent result.
|
||||
- `peers` (integer|null; default `0`): Number of downloading peers reported for the torrent.
|
||||
- `pri_order` (integer|null; default `0`): Indexer priority order assigned to the torrent result.
|
||||
- `pubdate` (string|null): Torrent publication timestamp.
|
||||
- `seeders` (integer|null; default `0`): Minimum seeder expression for a filter rule, or the torrent's seeder count.
|
||||
- `site` (integer|null): Source site identifier associated with the torrent result.
|
||||
- `site_cookie` (string|null): Site cookie bundled with the torrent result. Treat this value as a secret.
|
||||
- `site_downloader` (string|null): Downloader instance selected by the source site.
|
||||
- `site_name` (string|null): Human-readable source site name.
|
||||
- `site_order` (integer|null; default `0`): Source site's configured search order.
|
||||
- `site_proxy` (boolean|null; default `False`): Whether the torrent's source site uses the configured proxy.
|
||||
- `site_ua` (string|null): User-Agent associated with the source site.
|
||||
- `size` (number|null; default `0.0`): File or torrent size in bytes.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `uploadvolumefactor` (number|null): Torrent upload-volume multiplier reported by the site.
|
||||
- `volume_factor` (string|null): Combined upload/download volume-factor label shown for the torrent.
|
||||
|
||||
### `WorkflowExecutionConfig`
|
||||
Workflow concurrency, join, branch, and failure policies.
|
||||
- `max_workers` (integer|null): Maximum concurrent workflow actions allowed by the execution configuration.
|
||||
|
||||
### `WorkflowExecutionState-Input`
|
||||
Persisted resumable workflow execution state.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `nodes` (object): Persisted workflow node runtime states keyed by action identity.
|
||||
- `outputs` (object): Named output mappings produced by this workflow action.
|
||||
- `runtime` (WorkflowRuntimeState): Persisted workflow runtime metadata used for safe resume.
|
||||
- `version` (integer; default `1`): Plugin release or schema version selected by the operation.
|
||||
|
||||
### `WorkflowRuntimeState`
|
||||
Complete persisted workflow runtime and progress state.
|
||||
- `attempts` (object): Attempt counters keyed by workflow node or operation identity.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `finished_actions` (integer; default `0`): Workflow action IDs already completed in the persisted execution state.
|
||||
- `node_states` (object): Persisted runtime states keyed by workflow node identity.
|
||||
- `progress` (integer; default `0`): Current numeric or structured workflow execution progress.
|
||||
- `running_tasks` (integer; default `0`): Workflow task IDs currently executing.
|
||||
|
||||
@@ -71,3 +71,163 @@ Purpose: List currently downloading MoviePilot tasks with their canonical media
|
||||
- `path_params`: none
|
||||
- `query`: `count` (integer|null): Optional page size for a legacy full-list endpoint. Supplying page or count activates pagination; an omitted count then uses 50.; `name` (string|null): Human-readable name of the site, storage item, subscription, or rule group.; `page` (integer|null): Optional one-based page for a legacy full-list endpoint. Omit both page and count to keep the original unpaginated full result.
|
||||
- `body`: none
|
||||
|
||||
## Body Models
|
||||
|
||||
This category document is self-contained: the shared models below are included so the Agent does not need a second Skill document before calling the API.
|
||||
|
||||
### `ClassificationFacts`
|
||||
Normalized media facts evaluated by the automatic classification policy.
|
||||
- `extensions` (object): Additional normalized classification facts supplied by extensions.
|
||||
- `field_sources` (object): Source provenance for normalized classification facts.
|
||||
- `identity*` (ClassificationIdentityFacts): Stable source-native media identity used by classification facts.
|
||||
- `media*` (ClassificationMediaFacts): Media metadata input used for a classification preview.
|
||||
- `music` (ClassificationMusicFacts|null): Music-specific normalized facts used by classification rules.
|
||||
|
||||
### `ClassificationFactsPreviewInput`
|
||||
Normalized facts supplied directly for a classification preview.
|
||||
- `facts*` (ClassificationFacts): Normalized media facts to evaluate during a classification preview.
|
||||
- `kind` (string=facts; default `facts`): Classification rule or preview-input kind selected by the request.
|
||||
|
||||
### `ClassificationIdentityFacts`
|
||||
Stable source-native identity used by classification evaluation.
|
||||
- `media_id*` (string): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source*` (string): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
|
||||
### `ClassificationMediaFacts`
|
||||
Normalized movie, TV, or shared media facts used by classification rules.
|
||||
- `adult` (boolean|null): Whether the media is marked as adult content.
|
||||
- `companies` (array<string>|null): Production companies or studios associated with the media.
|
||||
- `content_rating` (string|null): Content rating assigned to the media.
|
||||
- `countries` (array<string>|null): Normalized country or region codes used by classification rules.
|
||||
- `genre_keys` (array<string>|null): Normalized MoviePilot genre keys used by classification rules.
|
||||
- `genre_names` (array<string>|null): Source-provided genre names used as classification facts.
|
||||
- `language` (string|null): Normalized media language code used by classification rules.
|
||||
- `networks` (array<string>|null): Television networks or streaming platforms associated with the media.
|
||||
- `runtime` (integer|null): Persisted workflow runtime metadata used for safe resume.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `type*` (string): MoviePilot media or storage item type required by the selected operation.
|
||||
- `year` (integer|null): Release or premiere year used to disambiguate the media title.
|
||||
|
||||
### `ClassificationMediaPreviewInput`
|
||||
A selected media search result supplied for classification preview.
|
||||
- `kind` (string=media; default `media`): Classification rule or preview-input kind selected by the request.
|
||||
- `media*` (object): Media metadata input used for a classification preview.
|
||||
|
||||
### `ClassificationMusicFacts`
|
||||
Music-specific facts used by automatic classification rules.
|
||||
- `album_type` (string|null): Music album or release-group type used by classification rules.
|
||||
- `artist_country` (string|null): Country or region associated with the music artist.
|
||||
- `artists` (array<string>|null): Music artist names associated with the classified entity.
|
||||
- `entity_type` (string|null): Music entity type used by classification rules.
|
||||
- `genres` (array<string>|null): Normalized music genre values used by classification rules.
|
||||
- `release_status` (string|null): Music release status used by classification rules.
|
||||
- `secondary_types` (array<string>|null): Secondary music release-group types used by classification rules.
|
||||
- `tags` (array<string>|null): Comma-separated Douban Music category tags; use only with a Douban Music exploration source.
|
||||
|
||||
### `ClassificationPolicy-Input`
|
||||
Complete versioned automatic media-classification policy.
|
||||
- `categories` (array<ClassificationCategory>): Complete ordered media-category definitions in the classification policy.
|
||||
- `enrichment_mode` (string(primary_only,enrich_missing); default `primary_only`): Metadata enrichment mode used to populate classification facts.
|
||||
- `fallbacks` (object): Fallback category or label actions used when no classification rule matches.
|
||||
- `field_aliases` (object): Optional aliases mapping source-specific fields to normalized classification fields.
|
||||
- `mode` (string=first_match; default `first_match`): Operation mode; music.explore accepts chart or fresh, while transfer history records move, copy, link, or softlink.
|
||||
- `revision` (integer; default `0`; minimum `0.0`): Published classification policy revision or expected revision number.
|
||||
- `rules` (array<ClassificationRule-Input>): Ordered classification rules evaluated from highest priority to lowest.
|
||||
- `schema_version` (integer=2; default `2`): Classification policy schema version expected by the server.
|
||||
- `updated_at` (string|null): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `FileItem-Input`
|
||||
One file or directory returned by a configured storage provider.
|
||||
- `basename` (string|null): Base filename without its parent path.
|
||||
- `children` (array<FileItem-Input>|null): Child storage items nested below this item.
|
||||
- `drive_id` (string|null): Provider-native storage drive identifier.
|
||||
- `extension` (string|null): Filename extension, including or excluding the leading dot as returned by storage.
|
||||
- `fileid` (string|null): Provider-native storage item identifier.
|
||||
- `modify_time` (number|null): Storage item modification timestamp.
|
||||
- `name` (string|null): Human-readable name of the site, storage item, subscription, or rule group.
|
||||
- `parent_fileid` (string|null): Provider-native identifier of the parent storage directory.
|
||||
- `path` (string|null; default `/`): Storage or history path represented by this record.
|
||||
- `pickcode` (string|null): 115 storage pickcode associated with the item.
|
||||
- `size` (integer|null): File or torrent size in bytes.
|
||||
- `storage` (string|null; default `local`): Configured storage name or storage type used by the operation.
|
||||
- `thumbnail` (string|null): Thumbnail URL returned by the storage provider.
|
||||
- `type` (string|null): MoviePilot media or storage item type required by the selected operation.
|
||||
- `url` (string|null): Site, storage, or torrent URL represented by this field.
|
||||
|
||||
### `JsonData-Input`
|
||||
Arbitrary JSON-compatible auxiliary data.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaSource`
|
||||
Canonical metadata source identifier paired with a source-native media ID.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaType`
|
||||
MoviePilot media type.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `SubscriptionExecutionStatus`
|
||||
Subscription refresh execution status and progress summary.
|
||||
- `batch_id` (string|null): Stable subscription search batch identifier.
|
||||
- `can_cancel` (boolean; default `False`): Whether the current subscription execution can be cancelled.
|
||||
- `current_site_id` (integer|null): Configured site ID currently handling the subscription execution.
|
||||
- `error` (string|null): Human-readable workflow, provider, or execution error message.
|
||||
- `next_run_at` (string|null): Next scheduled subscription search time. Null when no future execution is planned.
|
||||
- `phase*` (string): Current phase of a subscription execution.
|
||||
- `source` (string|null): Exact metadata or recommendation source selected by the operation.
|
||||
- `state*` (string): Current site, subscription, marketplace, or transfer state filter.
|
||||
- `task_id` (string|null): Stable durable transfer task ID returned by transfer.manual_reviews.
|
||||
- `updated_at*` (string): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `TorrentInfo`
|
||||
One torrent candidate returned by MoviePilot search.
|
||||
- `category` (string|null): MoviePilot media category or filter-group category, depending on the operation.
|
||||
- `date_elapsed` (string|null): Human-readable age of the torrent publication date.
|
||||
- `description` (string|null): Human-readable media, torrent, or subscription description.
|
||||
- `downloadvolumefactor` (number|null): Torrent download-volume multiplier reported by the site.
|
||||
- `enclosure` (string|null): Torrent download URL or enclosure supplied by the indexer result.
|
||||
- `freedate` (string|null): Torrent freeleech expiration timestamp reported by the site.
|
||||
- `freedate_diff` (string|null): Seconds remaining until the torrent freeleech period ends.
|
||||
- `grabs` (integer|null; default `0`): Number of completed downloads reported for the torrent.
|
||||
- `hit_and_run` (boolean|null; default `False`): Whether the torrent is subject to hit-and-run requirements.
|
||||
- `labels` (array<string>|null): Labels attached to the media, classification result, or torrent result.
|
||||
- `media_id` (string|null): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source` (MediaSource|null): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
- `page_url` (string|null): Public details page for the torrent result.
|
||||
- `peers` (integer|null; default `0`): Number of downloading peers reported for the torrent.
|
||||
- `pri_order` (integer|null; default `0`): Indexer priority order assigned to the torrent result.
|
||||
- `pubdate` (string|null): Torrent publication timestamp.
|
||||
- `seeders` (integer|null; default `0`): Minimum seeder expression for a filter rule, or the torrent's seeder count.
|
||||
- `site` (integer|null): Source site identifier associated with the torrent result.
|
||||
- `site_cookie` (string|null): Site cookie bundled with the torrent result. Treat this value as a secret.
|
||||
- `site_downloader` (string|null): Downloader instance selected by the source site.
|
||||
- `site_name` (string|null): Human-readable source site name.
|
||||
- `site_order` (integer|null; default `0`): Source site's configured search order.
|
||||
- `site_proxy` (boolean|null; default `False`): Whether the torrent's source site uses the configured proxy.
|
||||
- `site_ua` (string|null): User-Agent associated with the source site.
|
||||
- `size` (number|null; default `0.0`): File or torrent size in bytes.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `uploadvolumefactor` (number|null): Torrent upload-volume multiplier reported by the site.
|
||||
- `volume_factor` (string|null): Combined upload/download volume-factor label shown for the torrent.
|
||||
|
||||
### `WorkflowExecutionConfig`
|
||||
Workflow concurrency, join, branch, and failure policies.
|
||||
- `max_workers` (integer|null): Maximum concurrent workflow actions allowed by the execution configuration.
|
||||
|
||||
### `WorkflowExecutionState-Input`
|
||||
Persisted resumable workflow execution state.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `nodes` (object): Persisted workflow node runtime states keyed by action identity.
|
||||
- `outputs` (object): Named output mappings produced by this workflow action.
|
||||
- `runtime` (WorkflowRuntimeState): Persisted workflow runtime metadata used for safe resume.
|
||||
- `version` (integer; default `1`): Plugin release or schema version selected by the operation.
|
||||
|
||||
### `WorkflowRuntimeState`
|
||||
Complete persisted workflow runtime and progress state.
|
||||
- `attempts` (object): Attempt counters keyed by workflow node or operation identity.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `finished_actions` (integer; default `0`): Workflow action IDs already completed in the persisted execution state.
|
||||
- `node_states` (object): Persisted runtime states keyed by workflow node identity.
|
||||
- `progress` (integer; default `0`): Current numeric or structured workflow execution progress.
|
||||
- `running_tasks` (integer; default `0`): Workflow task IDs currently executing.
|
||||
|
||||
@@ -73,3 +73,163 @@ Purpose: Test one title and optional subtitle against an exact named filter-rule
|
||||
- `path_params`: none
|
||||
- `query`: `rulegroup_name*` (string): Exact filter-rule group name returned by filter.groups.; `subtitle` (string|null): Optional subtitle text used together with title during media recognition.; `title*` (string): Media, torrent, subscription, or history title used by the operation.
|
||||
- `body`: none
|
||||
|
||||
## Body Models
|
||||
|
||||
This category document is self-contained: the shared models below are included so the Agent does not need a second Skill document before calling the API.
|
||||
|
||||
### `ClassificationFacts`
|
||||
Normalized media facts evaluated by the automatic classification policy.
|
||||
- `extensions` (object): Additional normalized classification facts supplied by extensions.
|
||||
- `field_sources` (object): Source provenance for normalized classification facts.
|
||||
- `identity*` (ClassificationIdentityFacts): Stable source-native media identity used by classification facts.
|
||||
- `media*` (ClassificationMediaFacts): Media metadata input used for a classification preview.
|
||||
- `music` (ClassificationMusicFacts|null): Music-specific normalized facts used by classification rules.
|
||||
|
||||
### `ClassificationFactsPreviewInput`
|
||||
Normalized facts supplied directly for a classification preview.
|
||||
- `facts*` (ClassificationFacts): Normalized media facts to evaluate during a classification preview.
|
||||
- `kind` (string=facts; default `facts`): Classification rule or preview-input kind selected by the request.
|
||||
|
||||
### `ClassificationIdentityFacts`
|
||||
Stable source-native identity used by classification evaluation.
|
||||
- `media_id*` (string): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source*` (string): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
|
||||
### `ClassificationMediaFacts`
|
||||
Normalized movie, TV, or shared media facts used by classification rules.
|
||||
- `adult` (boolean|null): Whether the media is marked as adult content.
|
||||
- `companies` (array<string>|null): Production companies or studios associated with the media.
|
||||
- `content_rating` (string|null): Content rating assigned to the media.
|
||||
- `countries` (array<string>|null): Normalized country or region codes used by classification rules.
|
||||
- `genre_keys` (array<string>|null): Normalized MoviePilot genre keys used by classification rules.
|
||||
- `genre_names` (array<string>|null): Source-provided genre names used as classification facts.
|
||||
- `language` (string|null): Normalized media language code used by classification rules.
|
||||
- `networks` (array<string>|null): Television networks or streaming platforms associated with the media.
|
||||
- `runtime` (integer|null): Persisted workflow runtime metadata used for safe resume.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `type*` (string): MoviePilot media or storage item type required by the selected operation.
|
||||
- `year` (integer|null): Release or premiere year used to disambiguate the media title.
|
||||
|
||||
### `ClassificationMediaPreviewInput`
|
||||
A selected media search result supplied for classification preview.
|
||||
- `kind` (string=media; default `media`): Classification rule or preview-input kind selected by the request.
|
||||
- `media*` (object): Media metadata input used for a classification preview.
|
||||
|
||||
### `ClassificationMusicFacts`
|
||||
Music-specific facts used by automatic classification rules.
|
||||
- `album_type` (string|null): Music album or release-group type used by classification rules.
|
||||
- `artist_country` (string|null): Country or region associated with the music artist.
|
||||
- `artists` (array<string>|null): Music artist names associated with the classified entity.
|
||||
- `entity_type` (string|null): Music entity type used by classification rules.
|
||||
- `genres` (array<string>|null): Normalized music genre values used by classification rules.
|
||||
- `release_status` (string|null): Music release status used by classification rules.
|
||||
- `secondary_types` (array<string>|null): Secondary music release-group types used by classification rules.
|
||||
- `tags` (array<string>|null): Comma-separated Douban Music category tags; use only with a Douban Music exploration source.
|
||||
|
||||
### `ClassificationPolicy-Input`
|
||||
Complete versioned automatic media-classification policy.
|
||||
- `categories` (array<ClassificationCategory>): Complete ordered media-category definitions in the classification policy.
|
||||
- `enrichment_mode` (string(primary_only,enrich_missing); default `primary_only`): Metadata enrichment mode used to populate classification facts.
|
||||
- `fallbacks` (object): Fallback category or label actions used when no classification rule matches.
|
||||
- `field_aliases` (object): Optional aliases mapping source-specific fields to normalized classification fields.
|
||||
- `mode` (string=first_match; default `first_match`): Operation mode; music.explore accepts chart or fresh, while transfer history records move, copy, link, or softlink.
|
||||
- `revision` (integer; default `0`; minimum `0.0`): Published classification policy revision or expected revision number.
|
||||
- `rules` (array<ClassificationRule-Input>): Ordered classification rules evaluated from highest priority to lowest.
|
||||
- `schema_version` (integer=2; default `2`): Classification policy schema version expected by the server.
|
||||
- `updated_at` (string|null): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `FileItem-Input`
|
||||
One file or directory returned by a configured storage provider.
|
||||
- `basename` (string|null): Base filename without its parent path.
|
||||
- `children` (array<FileItem-Input>|null): Child storage items nested below this item.
|
||||
- `drive_id` (string|null): Provider-native storage drive identifier.
|
||||
- `extension` (string|null): Filename extension, including or excluding the leading dot as returned by storage.
|
||||
- `fileid` (string|null): Provider-native storage item identifier.
|
||||
- `modify_time` (number|null): Storage item modification timestamp.
|
||||
- `name` (string|null): Human-readable name of the site, storage item, subscription, or rule group.
|
||||
- `parent_fileid` (string|null): Provider-native identifier of the parent storage directory.
|
||||
- `path` (string|null; default `/`): Storage or history path represented by this record.
|
||||
- `pickcode` (string|null): 115 storage pickcode associated with the item.
|
||||
- `size` (integer|null): File or torrent size in bytes.
|
||||
- `storage` (string|null; default `local`): Configured storage name or storage type used by the operation.
|
||||
- `thumbnail` (string|null): Thumbnail URL returned by the storage provider.
|
||||
- `type` (string|null): MoviePilot media or storage item type required by the selected operation.
|
||||
- `url` (string|null): Site, storage, or torrent URL represented by this field.
|
||||
|
||||
### `JsonData-Input`
|
||||
Arbitrary JSON-compatible auxiliary data.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaSource`
|
||||
Canonical metadata source identifier paired with a source-native media ID.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaType`
|
||||
MoviePilot media type.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `SubscriptionExecutionStatus`
|
||||
Subscription refresh execution status and progress summary.
|
||||
- `batch_id` (string|null): Stable subscription search batch identifier.
|
||||
- `can_cancel` (boolean; default `False`): Whether the current subscription execution can be cancelled.
|
||||
- `current_site_id` (integer|null): Configured site ID currently handling the subscription execution.
|
||||
- `error` (string|null): Human-readable workflow, provider, or execution error message.
|
||||
- `next_run_at` (string|null): Next scheduled subscription search time. Null when no future execution is planned.
|
||||
- `phase*` (string): Current phase of a subscription execution.
|
||||
- `source` (string|null): Exact metadata or recommendation source selected by the operation.
|
||||
- `state*` (string): Current site, subscription, marketplace, or transfer state filter.
|
||||
- `task_id` (string|null): Stable durable transfer task ID returned by transfer.manual_reviews.
|
||||
- `updated_at*` (string): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `TorrentInfo`
|
||||
One torrent candidate returned by MoviePilot search.
|
||||
- `category` (string|null): MoviePilot media category or filter-group category, depending on the operation.
|
||||
- `date_elapsed` (string|null): Human-readable age of the torrent publication date.
|
||||
- `description` (string|null): Human-readable media, torrent, or subscription description.
|
||||
- `downloadvolumefactor` (number|null): Torrent download-volume multiplier reported by the site.
|
||||
- `enclosure` (string|null): Torrent download URL or enclosure supplied by the indexer result.
|
||||
- `freedate` (string|null): Torrent freeleech expiration timestamp reported by the site.
|
||||
- `freedate_diff` (string|null): Seconds remaining until the torrent freeleech period ends.
|
||||
- `grabs` (integer|null; default `0`): Number of completed downloads reported for the torrent.
|
||||
- `hit_and_run` (boolean|null; default `False`): Whether the torrent is subject to hit-and-run requirements.
|
||||
- `labels` (array<string>|null): Labels attached to the media, classification result, or torrent result.
|
||||
- `media_id` (string|null): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source` (MediaSource|null): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
- `page_url` (string|null): Public details page for the torrent result.
|
||||
- `peers` (integer|null; default `0`): Number of downloading peers reported for the torrent.
|
||||
- `pri_order` (integer|null; default `0`): Indexer priority order assigned to the torrent result.
|
||||
- `pubdate` (string|null): Torrent publication timestamp.
|
||||
- `seeders` (integer|null; default `0`): Minimum seeder expression for a filter rule, or the torrent's seeder count.
|
||||
- `site` (integer|null): Source site identifier associated with the torrent result.
|
||||
- `site_cookie` (string|null): Site cookie bundled with the torrent result. Treat this value as a secret.
|
||||
- `site_downloader` (string|null): Downloader instance selected by the source site.
|
||||
- `site_name` (string|null): Human-readable source site name.
|
||||
- `site_order` (integer|null; default `0`): Source site's configured search order.
|
||||
- `site_proxy` (boolean|null; default `False`): Whether the torrent's source site uses the configured proxy.
|
||||
- `site_ua` (string|null): User-Agent associated with the source site.
|
||||
- `size` (number|null; default `0.0`): File or torrent size in bytes.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `uploadvolumefactor` (number|null): Torrent upload-volume multiplier reported by the site.
|
||||
- `volume_factor` (string|null): Combined upload/download volume-factor label shown for the torrent.
|
||||
|
||||
### `WorkflowExecutionConfig`
|
||||
Workflow concurrency, join, branch, and failure policies.
|
||||
- `max_workers` (integer|null): Maximum concurrent workflow actions allowed by the execution configuration.
|
||||
|
||||
### `WorkflowExecutionState-Input`
|
||||
Persisted resumable workflow execution state.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `nodes` (object): Persisted workflow node runtime states keyed by action identity.
|
||||
- `outputs` (object): Named output mappings produced by this workflow action.
|
||||
- `runtime` (WorkflowRuntimeState): Persisted workflow runtime metadata used for safe resume.
|
||||
- `version` (integer; default `1`): Plugin release or schema version selected by the operation.
|
||||
|
||||
### `WorkflowRuntimeState`
|
||||
Complete persisted workflow runtime and progress state.
|
||||
- `attempts` (object): Attempt counters keyed by workflow node or operation identity.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `finished_actions` (integer; default `0`): Workflow action IDs already completed in the persisted execution state.
|
||||
- `node_states` (object): Persisted runtime states keyed by workflow node identity.
|
||||
- `progress` (integer; default `0`): Current numeric or structured workflow execution progress.
|
||||
- `running_tasks` (integer; default `0`): Workflow task IDs currently executing.
|
||||
|
||||
@@ -18,3 +18,163 @@ Purpose: List recently added items from one configured media-server instance for
|
||||
- `path_params`: none
|
||||
- `query`: `count` (integer|null; default `20`): Maximum number of records to return on the requested page.; `server*` (string): Exact configured media-server instance name returned by the media-server instance list.
|
||||
- `body`: none
|
||||
|
||||
## Body Models
|
||||
|
||||
This category document is self-contained: the shared models below are included so the Agent does not need a second Skill document before calling the API.
|
||||
|
||||
### `ClassificationFacts`
|
||||
Normalized media facts evaluated by the automatic classification policy.
|
||||
- `extensions` (object): Additional normalized classification facts supplied by extensions.
|
||||
- `field_sources` (object): Source provenance for normalized classification facts.
|
||||
- `identity*` (ClassificationIdentityFacts): Stable source-native media identity used by classification facts.
|
||||
- `media*` (ClassificationMediaFacts): Media metadata input used for a classification preview.
|
||||
- `music` (ClassificationMusicFacts|null): Music-specific normalized facts used by classification rules.
|
||||
|
||||
### `ClassificationFactsPreviewInput`
|
||||
Normalized facts supplied directly for a classification preview.
|
||||
- `facts*` (ClassificationFacts): Normalized media facts to evaluate during a classification preview.
|
||||
- `kind` (string=facts; default `facts`): Classification rule or preview-input kind selected by the request.
|
||||
|
||||
### `ClassificationIdentityFacts`
|
||||
Stable source-native identity used by classification evaluation.
|
||||
- `media_id*` (string): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source*` (string): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
|
||||
### `ClassificationMediaFacts`
|
||||
Normalized movie, TV, or shared media facts used by classification rules.
|
||||
- `adult` (boolean|null): Whether the media is marked as adult content.
|
||||
- `companies` (array<string>|null): Production companies or studios associated with the media.
|
||||
- `content_rating` (string|null): Content rating assigned to the media.
|
||||
- `countries` (array<string>|null): Normalized country or region codes used by classification rules.
|
||||
- `genre_keys` (array<string>|null): Normalized MoviePilot genre keys used by classification rules.
|
||||
- `genre_names` (array<string>|null): Source-provided genre names used as classification facts.
|
||||
- `language` (string|null): Normalized media language code used by classification rules.
|
||||
- `networks` (array<string>|null): Television networks or streaming platforms associated with the media.
|
||||
- `runtime` (integer|null): Persisted workflow runtime metadata used for safe resume.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `type*` (string): MoviePilot media or storage item type required by the selected operation.
|
||||
- `year` (integer|null): Release or premiere year used to disambiguate the media title.
|
||||
|
||||
### `ClassificationMediaPreviewInput`
|
||||
A selected media search result supplied for classification preview.
|
||||
- `kind` (string=media; default `media`): Classification rule or preview-input kind selected by the request.
|
||||
- `media*` (object): Media metadata input used for a classification preview.
|
||||
|
||||
### `ClassificationMusicFacts`
|
||||
Music-specific facts used by automatic classification rules.
|
||||
- `album_type` (string|null): Music album or release-group type used by classification rules.
|
||||
- `artist_country` (string|null): Country or region associated with the music artist.
|
||||
- `artists` (array<string>|null): Music artist names associated with the classified entity.
|
||||
- `entity_type` (string|null): Music entity type used by classification rules.
|
||||
- `genres` (array<string>|null): Normalized music genre values used by classification rules.
|
||||
- `release_status` (string|null): Music release status used by classification rules.
|
||||
- `secondary_types` (array<string>|null): Secondary music release-group types used by classification rules.
|
||||
- `tags` (array<string>|null): Comma-separated Douban Music category tags; use only with a Douban Music exploration source.
|
||||
|
||||
### `ClassificationPolicy-Input`
|
||||
Complete versioned automatic media-classification policy.
|
||||
- `categories` (array<ClassificationCategory>): Complete ordered media-category definitions in the classification policy.
|
||||
- `enrichment_mode` (string(primary_only,enrich_missing); default `primary_only`): Metadata enrichment mode used to populate classification facts.
|
||||
- `fallbacks` (object): Fallback category or label actions used when no classification rule matches.
|
||||
- `field_aliases` (object): Optional aliases mapping source-specific fields to normalized classification fields.
|
||||
- `mode` (string=first_match; default `first_match`): Operation mode; music.explore accepts chart or fresh, while transfer history records move, copy, link, or softlink.
|
||||
- `revision` (integer; default `0`; minimum `0.0`): Published classification policy revision or expected revision number.
|
||||
- `rules` (array<ClassificationRule-Input>): Ordered classification rules evaluated from highest priority to lowest.
|
||||
- `schema_version` (integer=2; default `2`): Classification policy schema version expected by the server.
|
||||
- `updated_at` (string|null): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `FileItem-Input`
|
||||
One file or directory returned by a configured storage provider.
|
||||
- `basename` (string|null): Base filename without its parent path.
|
||||
- `children` (array<FileItem-Input>|null): Child storage items nested below this item.
|
||||
- `drive_id` (string|null): Provider-native storage drive identifier.
|
||||
- `extension` (string|null): Filename extension, including or excluding the leading dot as returned by storage.
|
||||
- `fileid` (string|null): Provider-native storage item identifier.
|
||||
- `modify_time` (number|null): Storage item modification timestamp.
|
||||
- `name` (string|null): Human-readable name of the site, storage item, subscription, or rule group.
|
||||
- `parent_fileid` (string|null): Provider-native identifier of the parent storage directory.
|
||||
- `path` (string|null; default `/`): Storage or history path represented by this record.
|
||||
- `pickcode` (string|null): 115 storage pickcode associated with the item.
|
||||
- `size` (integer|null): File or torrent size in bytes.
|
||||
- `storage` (string|null; default `local`): Configured storage name or storage type used by the operation.
|
||||
- `thumbnail` (string|null): Thumbnail URL returned by the storage provider.
|
||||
- `type` (string|null): MoviePilot media or storage item type required by the selected operation.
|
||||
- `url` (string|null): Site, storage, or torrent URL represented by this field.
|
||||
|
||||
### `JsonData-Input`
|
||||
Arbitrary JSON-compatible auxiliary data.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaSource`
|
||||
Canonical metadata source identifier paired with a source-native media ID.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaType`
|
||||
MoviePilot media type.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `SubscriptionExecutionStatus`
|
||||
Subscription refresh execution status and progress summary.
|
||||
- `batch_id` (string|null): Stable subscription search batch identifier.
|
||||
- `can_cancel` (boolean; default `False`): Whether the current subscription execution can be cancelled.
|
||||
- `current_site_id` (integer|null): Configured site ID currently handling the subscription execution.
|
||||
- `error` (string|null): Human-readable workflow, provider, or execution error message.
|
||||
- `next_run_at` (string|null): Next scheduled subscription search time. Null when no future execution is planned.
|
||||
- `phase*` (string): Current phase of a subscription execution.
|
||||
- `source` (string|null): Exact metadata or recommendation source selected by the operation.
|
||||
- `state*` (string): Current site, subscription, marketplace, or transfer state filter.
|
||||
- `task_id` (string|null): Stable durable transfer task ID returned by transfer.manual_reviews.
|
||||
- `updated_at*` (string): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `TorrentInfo`
|
||||
One torrent candidate returned by MoviePilot search.
|
||||
- `category` (string|null): MoviePilot media category or filter-group category, depending on the operation.
|
||||
- `date_elapsed` (string|null): Human-readable age of the torrent publication date.
|
||||
- `description` (string|null): Human-readable media, torrent, or subscription description.
|
||||
- `downloadvolumefactor` (number|null): Torrent download-volume multiplier reported by the site.
|
||||
- `enclosure` (string|null): Torrent download URL or enclosure supplied by the indexer result.
|
||||
- `freedate` (string|null): Torrent freeleech expiration timestamp reported by the site.
|
||||
- `freedate_diff` (string|null): Seconds remaining until the torrent freeleech period ends.
|
||||
- `grabs` (integer|null; default `0`): Number of completed downloads reported for the torrent.
|
||||
- `hit_and_run` (boolean|null; default `False`): Whether the torrent is subject to hit-and-run requirements.
|
||||
- `labels` (array<string>|null): Labels attached to the media, classification result, or torrent result.
|
||||
- `media_id` (string|null): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source` (MediaSource|null): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
- `page_url` (string|null): Public details page for the torrent result.
|
||||
- `peers` (integer|null; default `0`): Number of downloading peers reported for the torrent.
|
||||
- `pri_order` (integer|null; default `0`): Indexer priority order assigned to the torrent result.
|
||||
- `pubdate` (string|null): Torrent publication timestamp.
|
||||
- `seeders` (integer|null; default `0`): Minimum seeder expression for a filter rule, or the torrent's seeder count.
|
||||
- `site` (integer|null): Source site identifier associated with the torrent result.
|
||||
- `site_cookie` (string|null): Site cookie bundled with the torrent result. Treat this value as a secret.
|
||||
- `site_downloader` (string|null): Downloader instance selected by the source site.
|
||||
- `site_name` (string|null): Human-readable source site name.
|
||||
- `site_order` (integer|null; default `0`): Source site's configured search order.
|
||||
- `site_proxy` (boolean|null; default `False`): Whether the torrent's source site uses the configured proxy.
|
||||
- `site_ua` (string|null): User-Agent associated with the source site.
|
||||
- `size` (number|null; default `0.0`): File or torrent size in bytes.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `uploadvolumefactor` (number|null): Torrent upload-volume multiplier reported by the site.
|
||||
- `volume_factor` (string|null): Combined upload/download volume-factor label shown for the torrent.
|
||||
|
||||
### `WorkflowExecutionConfig`
|
||||
Workflow concurrency, join, branch, and failure policies.
|
||||
- `max_workers` (integer|null): Maximum concurrent workflow actions allowed by the execution configuration.
|
||||
|
||||
### `WorkflowExecutionState-Input`
|
||||
Persisted resumable workflow execution state.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `nodes` (object): Persisted workflow node runtime states keyed by action identity.
|
||||
- `outputs` (object): Named output mappings produced by this workflow action.
|
||||
- `runtime` (WorkflowRuntimeState): Persisted workflow runtime metadata used for safe resume.
|
||||
- `version` (integer; default `1`): Plugin release or schema version selected by the operation.
|
||||
|
||||
### `WorkflowRuntimeState`
|
||||
Complete persisted workflow runtime and progress state.
|
||||
- `attempts` (object): Attempt counters keyed by workflow node or operation identity.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `finished_actions` (integer; default `0`): Workflow action IDs already completed in the persisted execution state.
|
||||
- `node_states` (object): Persisted runtime states keyed by workflow node identity.
|
||||
- `progress` (integer; default `0`): Current numeric or structured workflow execution progress.
|
||||
- `running_tasks` (integer; default `0`): Workflow task IDs currently executing.
|
||||
|
||||
@@ -198,3 +198,163 @@ Purpose: List metadata sources currently registered for MoviePilot media operati
|
||||
- `path_params`: none
|
||||
- `query`: `count` (integer|null): Optional page size for a legacy full-list endpoint. Supplying page or count activates pagination; an omitted count then uses 50.; `page` (integer|null): Optional one-based page for a legacy full-list endpoint. Omit both page and count to keep the original unpaginated full result.
|
||||
- `body`: none
|
||||
|
||||
## Body Models
|
||||
|
||||
This category document is self-contained: the shared models below are included so the Agent does not need a second Skill document before calling the API.
|
||||
|
||||
### `ClassificationFacts`
|
||||
Normalized media facts evaluated by the automatic classification policy.
|
||||
- `extensions` (object): Additional normalized classification facts supplied by extensions.
|
||||
- `field_sources` (object): Source provenance for normalized classification facts.
|
||||
- `identity*` (ClassificationIdentityFacts): Stable source-native media identity used by classification facts.
|
||||
- `media*` (ClassificationMediaFacts): Media metadata input used for a classification preview.
|
||||
- `music` (ClassificationMusicFacts|null): Music-specific normalized facts used by classification rules.
|
||||
|
||||
### `ClassificationFactsPreviewInput`
|
||||
Normalized facts supplied directly for a classification preview.
|
||||
- `facts*` (ClassificationFacts): Normalized media facts to evaluate during a classification preview.
|
||||
- `kind` (string=facts; default `facts`): Classification rule or preview-input kind selected by the request.
|
||||
|
||||
### `ClassificationIdentityFacts`
|
||||
Stable source-native identity used by classification evaluation.
|
||||
- `media_id*` (string): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source*` (string): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
|
||||
### `ClassificationMediaFacts`
|
||||
Normalized movie, TV, or shared media facts used by classification rules.
|
||||
- `adult` (boolean|null): Whether the media is marked as adult content.
|
||||
- `companies` (array<string>|null): Production companies or studios associated with the media.
|
||||
- `content_rating` (string|null): Content rating assigned to the media.
|
||||
- `countries` (array<string>|null): Normalized country or region codes used by classification rules.
|
||||
- `genre_keys` (array<string>|null): Normalized MoviePilot genre keys used by classification rules.
|
||||
- `genre_names` (array<string>|null): Source-provided genre names used as classification facts.
|
||||
- `language` (string|null): Normalized media language code used by classification rules.
|
||||
- `networks` (array<string>|null): Television networks or streaming platforms associated with the media.
|
||||
- `runtime` (integer|null): Persisted workflow runtime metadata used for safe resume.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `type*` (string): MoviePilot media or storage item type required by the selected operation.
|
||||
- `year` (integer|null): Release or premiere year used to disambiguate the media title.
|
||||
|
||||
### `ClassificationMediaPreviewInput`
|
||||
A selected media search result supplied for classification preview.
|
||||
- `kind` (string=media; default `media`): Classification rule or preview-input kind selected by the request.
|
||||
- `media*` (object): Media metadata input used for a classification preview.
|
||||
|
||||
### `ClassificationMusicFacts`
|
||||
Music-specific facts used by automatic classification rules.
|
||||
- `album_type` (string|null): Music album or release-group type used by classification rules.
|
||||
- `artist_country` (string|null): Country or region associated with the music artist.
|
||||
- `artists` (array<string>|null): Music artist names associated with the classified entity.
|
||||
- `entity_type` (string|null): Music entity type used by classification rules.
|
||||
- `genres` (array<string>|null): Normalized music genre values used by classification rules.
|
||||
- `release_status` (string|null): Music release status used by classification rules.
|
||||
- `secondary_types` (array<string>|null): Secondary music release-group types used by classification rules.
|
||||
- `tags` (array<string>|null): Comma-separated Douban Music category tags; use only with a Douban Music exploration source.
|
||||
|
||||
### `ClassificationPolicy-Input`
|
||||
Complete versioned automatic media-classification policy.
|
||||
- `categories` (array<ClassificationCategory>): Complete ordered media-category definitions in the classification policy.
|
||||
- `enrichment_mode` (string(primary_only,enrich_missing); default `primary_only`): Metadata enrichment mode used to populate classification facts.
|
||||
- `fallbacks` (object): Fallback category or label actions used when no classification rule matches.
|
||||
- `field_aliases` (object): Optional aliases mapping source-specific fields to normalized classification fields.
|
||||
- `mode` (string=first_match; default `first_match`): Operation mode; music.explore accepts chart or fresh, while transfer history records move, copy, link, or softlink.
|
||||
- `revision` (integer; default `0`; minimum `0.0`): Published classification policy revision or expected revision number.
|
||||
- `rules` (array<ClassificationRule-Input>): Ordered classification rules evaluated from highest priority to lowest.
|
||||
- `schema_version` (integer=2; default `2`): Classification policy schema version expected by the server.
|
||||
- `updated_at` (string|null): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `FileItem-Input`
|
||||
One file or directory returned by a configured storage provider.
|
||||
- `basename` (string|null): Base filename without its parent path.
|
||||
- `children` (array<FileItem-Input>|null): Child storage items nested below this item.
|
||||
- `drive_id` (string|null): Provider-native storage drive identifier.
|
||||
- `extension` (string|null): Filename extension, including or excluding the leading dot as returned by storage.
|
||||
- `fileid` (string|null): Provider-native storage item identifier.
|
||||
- `modify_time` (number|null): Storage item modification timestamp.
|
||||
- `name` (string|null): Human-readable name of the site, storage item, subscription, or rule group.
|
||||
- `parent_fileid` (string|null): Provider-native identifier of the parent storage directory.
|
||||
- `path` (string|null; default `/`): Storage or history path represented by this record.
|
||||
- `pickcode` (string|null): 115 storage pickcode associated with the item.
|
||||
- `size` (integer|null): File or torrent size in bytes.
|
||||
- `storage` (string|null; default `local`): Configured storage name or storage type used by the operation.
|
||||
- `thumbnail` (string|null): Thumbnail URL returned by the storage provider.
|
||||
- `type` (string|null): MoviePilot media or storage item type required by the selected operation.
|
||||
- `url` (string|null): Site, storage, or torrent URL represented by this field.
|
||||
|
||||
### `JsonData-Input`
|
||||
Arbitrary JSON-compatible auxiliary data.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaSource`
|
||||
Canonical metadata source identifier paired with a source-native media ID.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaType`
|
||||
MoviePilot media type.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `SubscriptionExecutionStatus`
|
||||
Subscription refresh execution status and progress summary.
|
||||
- `batch_id` (string|null): Stable subscription search batch identifier.
|
||||
- `can_cancel` (boolean; default `False`): Whether the current subscription execution can be cancelled.
|
||||
- `current_site_id` (integer|null): Configured site ID currently handling the subscription execution.
|
||||
- `error` (string|null): Human-readable workflow, provider, or execution error message.
|
||||
- `next_run_at` (string|null): Next scheduled subscription search time. Null when no future execution is planned.
|
||||
- `phase*` (string): Current phase of a subscription execution.
|
||||
- `source` (string|null): Exact metadata or recommendation source selected by the operation.
|
||||
- `state*` (string): Current site, subscription, marketplace, or transfer state filter.
|
||||
- `task_id` (string|null): Stable durable transfer task ID returned by transfer.manual_reviews.
|
||||
- `updated_at*` (string): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `TorrentInfo`
|
||||
One torrent candidate returned by MoviePilot search.
|
||||
- `category` (string|null): MoviePilot media category or filter-group category, depending on the operation.
|
||||
- `date_elapsed` (string|null): Human-readable age of the torrent publication date.
|
||||
- `description` (string|null): Human-readable media, torrent, or subscription description.
|
||||
- `downloadvolumefactor` (number|null): Torrent download-volume multiplier reported by the site.
|
||||
- `enclosure` (string|null): Torrent download URL or enclosure supplied by the indexer result.
|
||||
- `freedate` (string|null): Torrent freeleech expiration timestamp reported by the site.
|
||||
- `freedate_diff` (string|null): Seconds remaining until the torrent freeleech period ends.
|
||||
- `grabs` (integer|null; default `0`): Number of completed downloads reported for the torrent.
|
||||
- `hit_and_run` (boolean|null; default `False`): Whether the torrent is subject to hit-and-run requirements.
|
||||
- `labels` (array<string>|null): Labels attached to the media, classification result, or torrent result.
|
||||
- `media_id` (string|null): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source` (MediaSource|null): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
- `page_url` (string|null): Public details page for the torrent result.
|
||||
- `peers` (integer|null; default `0`): Number of downloading peers reported for the torrent.
|
||||
- `pri_order` (integer|null; default `0`): Indexer priority order assigned to the torrent result.
|
||||
- `pubdate` (string|null): Torrent publication timestamp.
|
||||
- `seeders` (integer|null; default `0`): Minimum seeder expression for a filter rule, or the torrent's seeder count.
|
||||
- `site` (integer|null): Source site identifier associated with the torrent result.
|
||||
- `site_cookie` (string|null): Site cookie bundled with the torrent result. Treat this value as a secret.
|
||||
- `site_downloader` (string|null): Downloader instance selected by the source site.
|
||||
- `site_name` (string|null): Human-readable source site name.
|
||||
- `site_order` (integer|null; default `0`): Source site's configured search order.
|
||||
- `site_proxy` (boolean|null; default `False`): Whether the torrent's source site uses the configured proxy.
|
||||
- `site_ua` (string|null): User-Agent associated with the source site.
|
||||
- `size` (number|null; default `0.0`): File or torrent size in bytes.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `uploadvolumefactor` (number|null): Torrent upload-volume multiplier reported by the site.
|
||||
- `volume_factor` (string|null): Combined upload/download volume-factor label shown for the torrent.
|
||||
|
||||
### `WorkflowExecutionConfig`
|
||||
Workflow concurrency, join, branch, and failure policies.
|
||||
- `max_workers` (integer|null): Maximum concurrent workflow actions allowed by the execution configuration.
|
||||
|
||||
### `WorkflowExecutionState-Input`
|
||||
Persisted resumable workflow execution state.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `nodes` (object): Persisted workflow node runtime states keyed by action identity.
|
||||
- `outputs` (object): Named output mappings produced by this workflow action.
|
||||
- `runtime` (WorkflowRuntimeState): Persisted workflow runtime metadata used for safe resume.
|
||||
- `version` (integer; default `1`): Plugin release or schema version selected by the operation.
|
||||
|
||||
### `WorkflowRuntimeState`
|
||||
Complete persisted workflow runtime and progress state.
|
||||
- `attempts` (object): Attempt counters keyed by workflow node or operation identity.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `finished_actions` (integer; default `0`): Workflow action IDs already completed in the persisted execution state.
|
||||
- `node_states` (object): Persisted runtime states keyed by workflow node identity.
|
||||
- `progress` (integer; default `0`): Current numeric or structured workflow execution progress.
|
||||
- `running_tasks` (integer; default `0`): Workflow task IDs currently executing.
|
||||
|
||||
@@ -1,159 +0,0 @@
|
||||
# Shared API Models
|
||||
|
||||
These body-model descriptions are shared by more than one API category. Load this file only when the selected operation references one of these models.
|
||||
|
||||
## `ClassificationFacts`
|
||||
Normalized media facts evaluated by the automatic classification policy.
|
||||
- `extensions` (object): Additional normalized classification facts supplied by extensions.
|
||||
- `field_sources` (object): Source provenance for normalized classification facts.
|
||||
- `identity*` (ClassificationIdentityFacts): Stable source-native media identity used by classification facts.
|
||||
- `media*` (ClassificationMediaFacts): Media metadata input used for a classification preview.
|
||||
- `music` (ClassificationMusicFacts|null): Music-specific normalized facts used by classification rules.
|
||||
|
||||
## `ClassificationFactsPreviewInput`
|
||||
Normalized facts supplied directly for a classification preview.
|
||||
- `facts*` (ClassificationFacts): Normalized media facts to evaluate during a classification preview.
|
||||
- `kind` (string=facts; default `facts`): Classification rule or preview-input kind selected by the request.
|
||||
|
||||
## `ClassificationIdentityFacts`
|
||||
Stable source-native identity used by classification evaluation.
|
||||
- `media_id*` (string): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source*` (string): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
|
||||
## `ClassificationMediaFacts`
|
||||
Normalized movie, TV, or shared media facts used by classification rules.
|
||||
- `adult` (boolean|null): Whether the media is marked as adult content.
|
||||
- `companies` (array<string>|null): Production companies or studios associated with the media.
|
||||
- `content_rating` (string|null): Content rating assigned to the media.
|
||||
- `countries` (array<string>|null): Normalized country or region codes used by classification rules.
|
||||
- `genre_keys` (array<string>|null): Normalized MoviePilot genre keys used by classification rules.
|
||||
- `genre_names` (array<string>|null): Source-provided genre names used as classification facts.
|
||||
- `language` (string|null): Normalized media language code used by classification rules.
|
||||
- `networks` (array<string>|null): Television networks or streaming platforms associated with the media.
|
||||
- `runtime` (integer|null): Persisted workflow runtime metadata used for safe resume.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `type*` (string): MoviePilot media or storage item type required by the selected operation.
|
||||
- `year` (integer|null): Release or premiere year used to disambiguate the media title.
|
||||
|
||||
## `ClassificationMediaPreviewInput`
|
||||
A selected media search result supplied for classification preview.
|
||||
- `kind` (string=media; default `media`): Classification rule or preview-input kind selected by the request.
|
||||
- `media*` (object): Media metadata input used for a classification preview.
|
||||
|
||||
## `ClassificationMusicFacts`
|
||||
Music-specific facts used by automatic classification rules.
|
||||
- `album_type` (string|null): Music album or release-group type used by classification rules.
|
||||
- `artist_country` (string|null): Country or region associated with the music artist.
|
||||
- `artists` (array<string>|null): Music artist names associated with the classified entity.
|
||||
- `entity_type` (string|null): Music entity type used by classification rules.
|
||||
- `genres` (array<string>|null): Normalized music genre values used by classification rules.
|
||||
- `release_status` (string|null): Music release status used by classification rules.
|
||||
- `secondary_types` (array<string>|null): Secondary music release-group types used by classification rules.
|
||||
- `tags` (array<string>|null): Comma-separated Douban Music category tags; use only with a Douban Music exploration source.
|
||||
|
||||
## `ClassificationPolicy-Input`
|
||||
Complete versioned automatic media-classification policy.
|
||||
- `categories` (array<ClassificationCategory>): Complete ordered media-category definitions in the classification policy.
|
||||
- `enrichment_mode` (string(primary_only,enrich_missing); default `primary_only`): Metadata enrichment mode used to populate classification facts.
|
||||
- `fallbacks` (object): Fallback category or label actions used when no classification rule matches.
|
||||
- `field_aliases` (object): Optional aliases mapping source-specific fields to normalized classification fields.
|
||||
- `mode` (string=first_match; default `first_match`): Operation mode; music.explore accepts chart or fresh, while transfer history records move, copy, link, or softlink.
|
||||
- `revision` (integer; default `0`; minimum `0.0`): Published classification policy revision or expected revision number.
|
||||
- `rules` (array<ClassificationRule-Input>): Ordered classification rules evaluated from highest priority to lowest.
|
||||
- `schema_version` (integer=2; default `2`): Classification policy schema version expected by the server.
|
||||
- `updated_at` (string|null): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
## `FileItem-Input`
|
||||
One file or directory returned by a configured storage provider.
|
||||
- `basename` (string|null): Base filename without its parent path.
|
||||
- `children` (array<FileItem-Input>|null): Child storage items nested below this item.
|
||||
- `drive_id` (string|null): Provider-native storage drive identifier.
|
||||
- `extension` (string|null): Filename extension, including or excluding the leading dot as returned by storage.
|
||||
- `fileid` (string|null): Provider-native storage item identifier.
|
||||
- `modify_time` (number|null): Storage item modification timestamp.
|
||||
- `name` (string|null): Human-readable name of the site, storage item, subscription, or rule group.
|
||||
- `parent_fileid` (string|null): Provider-native identifier of the parent storage directory.
|
||||
- `path` (string|null; default `/`): Storage or history path represented by this record.
|
||||
- `pickcode` (string|null): 115 storage pickcode associated with the item.
|
||||
- `size` (integer|null): File or torrent size in bytes.
|
||||
- `storage` (string|null; default `local`): Configured storage name or storage type used by the operation.
|
||||
- `thumbnail` (string|null): Thumbnail URL returned by the storage provider.
|
||||
- `type` (string|null): MoviePilot media or storage item type required by the selected operation.
|
||||
- `url` (string|null): Site, storage, or torrent URL represented by this field.
|
||||
|
||||
## `JsonData-Input`
|
||||
Arbitrary JSON-compatible auxiliary data.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
## `MediaSource`
|
||||
Canonical metadata source identifier paired with a source-native media ID.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
## `MediaType`
|
||||
MoviePilot media type.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
## `SubscriptionExecutionStatus`
|
||||
Subscription refresh execution status and progress summary.
|
||||
- `batch_id` (string|null): Stable subscription search batch identifier.
|
||||
- `can_cancel` (boolean; default `False`): Whether the current subscription execution can be cancelled.
|
||||
- `current_site_id` (integer|null): Configured site ID currently handling the subscription execution.
|
||||
- `error` (string|null): Human-readable workflow, provider, or execution error message.
|
||||
- `next_run_at` (string|null): Next scheduled subscription search time. Null when no future execution is planned.
|
||||
- `phase*` (string): Current phase of a subscription execution.
|
||||
- `source` (string|null): Exact metadata or recommendation source selected by the operation.
|
||||
- `state*` (string): Current site, subscription, marketplace, or transfer state filter.
|
||||
- `task_id` (string|null): Stable durable transfer task ID returned by transfer.manual_reviews.
|
||||
- `updated_at*` (string): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
## `TorrentInfo`
|
||||
One torrent candidate returned by MoviePilot search.
|
||||
- `category` (string|null): MoviePilot media category or filter-group category, depending on the operation.
|
||||
- `date_elapsed` (string|null): Human-readable age of the torrent publication date.
|
||||
- `description` (string|null): Human-readable media, torrent, or subscription description.
|
||||
- `downloadvolumefactor` (number|null): Torrent download-volume multiplier reported by the site.
|
||||
- `enclosure` (string|null): Torrent download URL or enclosure supplied by the indexer result.
|
||||
- `freedate` (string|null): Torrent freeleech expiration timestamp reported by the site.
|
||||
- `freedate_diff` (string|null): Seconds remaining until the torrent freeleech period ends.
|
||||
- `grabs` (integer|null; default `0`): Number of completed downloads reported for the torrent.
|
||||
- `hit_and_run` (boolean|null; default `False`): Whether the torrent is subject to hit-and-run requirements.
|
||||
- `labels` (array<string>|null): Labels attached to the media, classification result, or torrent result.
|
||||
- `media_id` (string|null): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source` (MediaSource|null): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
- `page_url` (string|null): Public details page for the torrent result.
|
||||
- `peers` (integer|null; default `0`): Number of downloading peers reported for the torrent.
|
||||
- `pri_order` (integer|null; default `0`): Indexer priority order assigned to the torrent result.
|
||||
- `pubdate` (string|null): Torrent publication timestamp.
|
||||
- `seeders` (integer|null; default `0`): Minimum seeder expression for a filter rule, or the torrent's seeder count.
|
||||
- `site` (integer|null): Source site identifier associated with the torrent result.
|
||||
- `site_cookie` (string|null): Site cookie bundled with the torrent result. Treat this value as a secret.
|
||||
- `site_downloader` (string|null): Downloader instance selected by the source site.
|
||||
- `site_name` (string|null): Human-readable source site name.
|
||||
- `site_order` (integer|null; default `0`): Source site's configured search order.
|
||||
- `site_proxy` (boolean|null; default `False`): Whether the torrent's source site uses the configured proxy.
|
||||
- `site_ua` (string|null): User-Agent associated with the source site.
|
||||
- `size` (number|null; default `0.0`): File or torrent size in bytes.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `uploadvolumefactor` (number|null): Torrent upload-volume multiplier reported by the site.
|
||||
- `volume_factor` (string|null): Combined upload/download volume-factor label shown for the torrent.
|
||||
|
||||
## `WorkflowExecutionConfig`
|
||||
Workflow concurrency, join, branch, and failure policies.
|
||||
- `max_workers` (integer|null): Maximum concurrent workflow actions allowed by the execution configuration.
|
||||
|
||||
## `WorkflowExecutionState-Input`
|
||||
Persisted resumable workflow execution state.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `nodes` (object): Persisted workflow node runtime states keyed by action identity.
|
||||
- `outputs` (object): Named output mappings produced by this workflow action.
|
||||
- `runtime` (WorkflowRuntimeState): Persisted workflow runtime metadata used for safe resume.
|
||||
- `version` (integer; default `1`): Plugin release or schema version selected by the operation.
|
||||
|
||||
## `WorkflowRuntimeState`
|
||||
Complete persisted workflow runtime and progress state.
|
||||
- `attempts` (object): Attempt counters keyed by workflow node or operation identity.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `finished_actions` (integer; default `0`): Workflow action IDs already completed in the persisted execution state.
|
||||
- `node_states` (object): Persisted runtime states keyed by workflow node identity.
|
||||
- `progress` (integer; default `0`): Current numeric or structured workflow execution progress.
|
||||
- `running_tasks` (integer; default `0`): Workflow task IDs currently executing.
|
||||
@@ -108,3 +108,163 @@ Purpose: Resolve one recording or album from an exact music source and source-na
|
||||
- `path_params`: none
|
||||
- `query`: none
|
||||
- `body`: `media_id*` (string): Source-native media ID. Always pair it with the exact media_source returned by search.; `media_source*` (MediaSource): Metadata source identifier. Preserve the exact value returned with media_id.; `music_type` (string(recording,album)|null): Music identity level: recording, album, or artist where supported.
|
||||
|
||||
## Body Models
|
||||
|
||||
This category document is self-contained: the shared models below are included so the Agent does not need a second Skill document before calling the API.
|
||||
|
||||
### `ClassificationFacts`
|
||||
Normalized media facts evaluated by the automatic classification policy.
|
||||
- `extensions` (object): Additional normalized classification facts supplied by extensions.
|
||||
- `field_sources` (object): Source provenance for normalized classification facts.
|
||||
- `identity*` (ClassificationIdentityFacts): Stable source-native media identity used by classification facts.
|
||||
- `media*` (ClassificationMediaFacts): Media metadata input used for a classification preview.
|
||||
- `music` (ClassificationMusicFacts|null): Music-specific normalized facts used by classification rules.
|
||||
|
||||
### `ClassificationFactsPreviewInput`
|
||||
Normalized facts supplied directly for a classification preview.
|
||||
- `facts*` (ClassificationFacts): Normalized media facts to evaluate during a classification preview.
|
||||
- `kind` (string=facts; default `facts`): Classification rule or preview-input kind selected by the request.
|
||||
|
||||
### `ClassificationIdentityFacts`
|
||||
Stable source-native identity used by classification evaluation.
|
||||
- `media_id*` (string): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source*` (string): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
|
||||
### `ClassificationMediaFacts`
|
||||
Normalized movie, TV, or shared media facts used by classification rules.
|
||||
- `adult` (boolean|null): Whether the media is marked as adult content.
|
||||
- `companies` (array<string>|null): Production companies or studios associated with the media.
|
||||
- `content_rating` (string|null): Content rating assigned to the media.
|
||||
- `countries` (array<string>|null): Normalized country or region codes used by classification rules.
|
||||
- `genre_keys` (array<string>|null): Normalized MoviePilot genre keys used by classification rules.
|
||||
- `genre_names` (array<string>|null): Source-provided genre names used as classification facts.
|
||||
- `language` (string|null): Normalized media language code used by classification rules.
|
||||
- `networks` (array<string>|null): Television networks or streaming platforms associated with the media.
|
||||
- `runtime` (integer|null): Persisted workflow runtime metadata used for safe resume.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `type*` (string): MoviePilot media or storage item type required by the selected operation.
|
||||
- `year` (integer|null): Release or premiere year used to disambiguate the media title.
|
||||
|
||||
### `ClassificationMediaPreviewInput`
|
||||
A selected media search result supplied for classification preview.
|
||||
- `kind` (string=media; default `media`): Classification rule or preview-input kind selected by the request.
|
||||
- `media*` (object): Media metadata input used for a classification preview.
|
||||
|
||||
### `ClassificationMusicFacts`
|
||||
Music-specific facts used by automatic classification rules.
|
||||
- `album_type` (string|null): Music album or release-group type used by classification rules.
|
||||
- `artist_country` (string|null): Country or region associated with the music artist.
|
||||
- `artists` (array<string>|null): Music artist names associated with the classified entity.
|
||||
- `entity_type` (string|null): Music entity type used by classification rules.
|
||||
- `genres` (array<string>|null): Normalized music genre values used by classification rules.
|
||||
- `release_status` (string|null): Music release status used by classification rules.
|
||||
- `secondary_types` (array<string>|null): Secondary music release-group types used by classification rules.
|
||||
- `tags` (array<string>|null): Comma-separated Douban Music category tags; use only with a Douban Music exploration source.
|
||||
|
||||
### `ClassificationPolicy-Input`
|
||||
Complete versioned automatic media-classification policy.
|
||||
- `categories` (array<ClassificationCategory>): Complete ordered media-category definitions in the classification policy.
|
||||
- `enrichment_mode` (string(primary_only,enrich_missing); default `primary_only`): Metadata enrichment mode used to populate classification facts.
|
||||
- `fallbacks` (object): Fallback category or label actions used when no classification rule matches.
|
||||
- `field_aliases` (object): Optional aliases mapping source-specific fields to normalized classification fields.
|
||||
- `mode` (string=first_match; default `first_match`): Operation mode; music.explore accepts chart or fresh, while transfer history records move, copy, link, or softlink.
|
||||
- `revision` (integer; default `0`; minimum `0.0`): Published classification policy revision or expected revision number.
|
||||
- `rules` (array<ClassificationRule-Input>): Ordered classification rules evaluated from highest priority to lowest.
|
||||
- `schema_version` (integer=2; default `2`): Classification policy schema version expected by the server.
|
||||
- `updated_at` (string|null): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `FileItem-Input`
|
||||
One file or directory returned by a configured storage provider.
|
||||
- `basename` (string|null): Base filename without its parent path.
|
||||
- `children` (array<FileItem-Input>|null): Child storage items nested below this item.
|
||||
- `drive_id` (string|null): Provider-native storage drive identifier.
|
||||
- `extension` (string|null): Filename extension, including or excluding the leading dot as returned by storage.
|
||||
- `fileid` (string|null): Provider-native storage item identifier.
|
||||
- `modify_time` (number|null): Storage item modification timestamp.
|
||||
- `name` (string|null): Human-readable name of the site, storage item, subscription, or rule group.
|
||||
- `parent_fileid` (string|null): Provider-native identifier of the parent storage directory.
|
||||
- `path` (string|null; default `/`): Storage or history path represented by this record.
|
||||
- `pickcode` (string|null): 115 storage pickcode associated with the item.
|
||||
- `size` (integer|null): File or torrent size in bytes.
|
||||
- `storage` (string|null; default `local`): Configured storage name or storage type used by the operation.
|
||||
- `thumbnail` (string|null): Thumbnail URL returned by the storage provider.
|
||||
- `type` (string|null): MoviePilot media or storage item type required by the selected operation.
|
||||
- `url` (string|null): Site, storage, or torrent URL represented by this field.
|
||||
|
||||
### `JsonData-Input`
|
||||
Arbitrary JSON-compatible auxiliary data.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaSource`
|
||||
Canonical metadata source identifier paired with a source-native media ID.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaType`
|
||||
MoviePilot media type.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `SubscriptionExecutionStatus`
|
||||
Subscription refresh execution status and progress summary.
|
||||
- `batch_id` (string|null): Stable subscription search batch identifier.
|
||||
- `can_cancel` (boolean; default `False`): Whether the current subscription execution can be cancelled.
|
||||
- `current_site_id` (integer|null): Configured site ID currently handling the subscription execution.
|
||||
- `error` (string|null): Human-readable workflow, provider, or execution error message.
|
||||
- `next_run_at` (string|null): Next scheduled subscription search time. Null when no future execution is planned.
|
||||
- `phase*` (string): Current phase of a subscription execution.
|
||||
- `source` (string|null): Exact metadata or recommendation source selected by the operation.
|
||||
- `state*` (string): Current site, subscription, marketplace, or transfer state filter.
|
||||
- `task_id` (string|null): Stable durable transfer task ID returned by transfer.manual_reviews.
|
||||
- `updated_at*` (string): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `TorrentInfo`
|
||||
One torrent candidate returned by MoviePilot search.
|
||||
- `category` (string|null): MoviePilot media category or filter-group category, depending on the operation.
|
||||
- `date_elapsed` (string|null): Human-readable age of the torrent publication date.
|
||||
- `description` (string|null): Human-readable media, torrent, or subscription description.
|
||||
- `downloadvolumefactor` (number|null): Torrent download-volume multiplier reported by the site.
|
||||
- `enclosure` (string|null): Torrent download URL or enclosure supplied by the indexer result.
|
||||
- `freedate` (string|null): Torrent freeleech expiration timestamp reported by the site.
|
||||
- `freedate_diff` (string|null): Seconds remaining until the torrent freeleech period ends.
|
||||
- `grabs` (integer|null; default `0`): Number of completed downloads reported for the torrent.
|
||||
- `hit_and_run` (boolean|null; default `False`): Whether the torrent is subject to hit-and-run requirements.
|
||||
- `labels` (array<string>|null): Labels attached to the media, classification result, or torrent result.
|
||||
- `media_id` (string|null): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source` (MediaSource|null): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
- `page_url` (string|null): Public details page for the torrent result.
|
||||
- `peers` (integer|null; default `0`): Number of downloading peers reported for the torrent.
|
||||
- `pri_order` (integer|null; default `0`): Indexer priority order assigned to the torrent result.
|
||||
- `pubdate` (string|null): Torrent publication timestamp.
|
||||
- `seeders` (integer|null; default `0`): Minimum seeder expression for a filter rule, or the torrent's seeder count.
|
||||
- `site` (integer|null): Source site identifier associated with the torrent result.
|
||||
- `site_cookie` (string|null): Site cookie bundled with the torrent result. Treat this value as a secret.
|
||||
- `site_downloader` (string|null): Downloader instance selected by the source site.
|
||||
- `site_name` (string|null): Human-readable source site name.
|
||||
- `site_order` (integer|null; default `0`): Source site's configured search order.
|
||||
- `site_proxy` (boolean|null; default `False`): Whether the torrent's source site uses the configured proxy.
|
||||
- `site_ua` (string|null): User-Agent associated with the source site.
|
||||
- `size` (number|null; default `0.0`): File or torrent size in bytes.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `uploadvolumefactor` (number|null): Torrent upload-volume multiplier reported by the site.
|
||||
- `volume_factor` (string|null): Combined upload/download volume-factor label shown for the torrent.
|
||||
|
||||
### `WorkflowExecutionConfig`
|
||||
Workflow concurrency, join, branch, and failure policies.
|
||||
- `max_workers` (integer|null): Maximum concurrent workflow actions allowed by the execution configuration.
|
||||
|
||||
### `WorkflowExecutionState-Input`
|
||||
Persisted resumable workflow execution state.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `nodes` (object): Persisted workflow node runtime states keyed by action identity.
|
||||
- `outputs` (object): Named output mappings produced by this workflow action.
|
||||
- `runtime` (WorkflowRuntimeState): Persisted workflow runtime metadata used for safe resume.
|
||||
- `version` (integer; default `1`): Plugin release or schema version selected by the operation.
|
||||
|
||||
### `WorkflowRuntimeState`
|
||||
Complete persisted workflow runtime and progress state.
|
||||
- `attempts` (object): Attempt counters keyed by workflow node or operation identity.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `finished_actions` (integer; default `0`): Workflow action IDs already completed in the persisted execution state.
|
||||
- `node_states` (object): Persisted runtime states keyed by workflow node identity.
|
||||
- `progress` (integer; default `0`): Current numeric or structured workflow execution progress.
|
||||
- `running_tasks` (integer; default `0`): Workflow task IDs currently executing.
|
||||
|
||||
@@ -215,3 +215,163 @@ Purpose: Uninstall one plugin and remove it from the installed set.
|
||||
- `path_params`: `plugin_id*` (string): Exact installed or marketplace plugin ID.
|
||||
- `query`: none
|
||||
- `body`: none
|
||||
|
||||
## Body Models
|
||||
|
||||
This category document is self-contained: the shared models below are included so the Agent does not need a second Skill document before calling the API.
|
||||
|
||||
### `ClassificationFacts`
|
||||
Normalized media facts evaluated by the automatic classification policy.
|
||||
- `extensions` (object): Additional normalized classification facts supplied by extensions.
|
||||
- `field_sources` (object): Source provenance for normalized classification facts.
|
||||
- `identity*` (ClassificationIdentityFacts): Stable source-native media identity used by classification facts.
|
||||
- `media*` (ClassificationMediaFacts): Media metadata input used for a classification preview.
|
||||
- `music` (ClassificationMusicFacts|null): Music-specific normalized facts used by classification rules.
|
||||
|
||||
### `ClassificationFactsPreviewInput`
|
||||
Normalized facts supplied directly for a classification preview.
|
||||
- `facts*` (ClassificationFacts): Normalized media facts to evaluate during a classification preview.
|
||||
- `kind` (string=facts; default `facts`): Classification rule or preview-input kind selected by the request.
|
||||
|
||||
### `ClassificationIdentityFacts`
|
||||
Stable source-native identity used by classification evaluation.
|
||||
- `media_id*` (string): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source*` (string): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
|
||||
### `ClassificationMediaFacts`
|
||||
Normalized movie, TV, or shared media facts used by classification rules.
|
||||
- `adult` (boolean|null): Whether the media is marked as adult content.
|
||||
- `companies` (array<string>|null): Production companies or studios associated with the media.
|
||||
- `content_rating` (string|null): Content rating assigned to the media.
|
||||
- `countries` (array<string>|null): Normalized country or region codes used by classification rules.
|
||||
- `genre_keys` (array<string>|null): Normalized MoviePilot genre keys used by classification rules.
|
||||
- `genre_names` (array<string>|null): Source-provided genre names used as classification facts.
|
||||
- `language` (string|null): Normalized media language code used by classification rules.
|
||||
- `networks` (array<string>|null): Television networks or streaming platforms associated with the media.
|
||||
- `runtime` (integer|null): Persisted workflow runtime metadata used for safe resume.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `type*` (string): MoviePilot media or storage item type required by the selected operation.
|
||||
- `year` (integer|null): Release or premiere year used to disambiguate the media title.
|
||||
|
||||
### `ClassificationMediaPreviewInput`
|
||||
A selected media search result supplied for classification preview.
|
||||
- `kind` (string=media; default `media`): Classification rule or preview-input kind selected by the request.
|
||||
- `media*` (object): Media metadata input used for a classification preview.
|
||||
|
||||
### `ClassificationMusicFacts`
|
||||
Music-specific facts used by automatic classification rules.
|
||||
- `album_type` (string|null): Music album or release-group type used by classification rules.
|
||||
- `artist_country` (string|null): Country or region associated with the music artist.
|
||||
- `artists` (array<string>|null): Music artist names associated with the classified entity.
|
||||
- `entity_type` (string|null): Music entity type used by classification rules.
|
||||
- `genres` (array<string>|null): Normalized music genre values used by classification rules.
|
||||
- `release_status` (string|null): Music release status used by classification rules.
|
||||
- `secondary_types` (array<string>|null): Secondary music release-group types used by classification rules.
|
||||
- `tags` (array<string>|null): Comma-separated Douban Music category tags; use only with a Douban Music exploration source.
|
||||
|
||||
### `ClassificationPolicy-Input`
|
||||
Complete versioned automatic media-classification policy.
|
||||
- `categories` (array<ClassificationCategory>): Complete ordered media-category definitions in the classification policy.
|
||||
- `enrichment_mode` (string(primary_only,enrich_missing); default `primary_only`): Metadata enrichment mode used to populate classification facts.
|
||||
- `fallbacks` (object): Fallback category or label actions used when no classification rule matches.
|
||||
- `field_aliases` (object): Optional aliases mapping source-specific fields to normalized classification fields.
|
||||
- `mode` (string=first_match; default `first_match`): Operation mode; music.explore accepts chart or fresh, while transfer history records move, copy, link, or softlink.
|
||||
- `revision` (integer; default `0`; minimum `0.0`): Published classification policy revision or expected revision number.
|
||||
- `rules` (array<ClassificationRule-Input>): Ordered classification rules evaluated from highest priority to lowest.
|
||||
- `schema_version` (integer=2; default `2`): Classification policy schema version expected by the server.
|
||||
- `updated_at` (string|null): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `FileItem-Input`
|
||||
One file or directory returned by a configured storage provider.
|
||||
- `basename` (string|null): Base filename without its parent path.
|
||||
- `children` (array<FileItem-Input>|null): Child storage items nested below this item.
|
||||
- `drive_id` (string|null): Provider-native storage drive identifier.
|
||||
- `extension` (string|null): Filename extension, including or excluding the leading dot as returned by storage.
|
||||
- `fileid` (string|null): Provider-native storage item identifier.
|
||||
- `modify_time` (number|null): Storage item modification timestamp.
|
||||
- `name` (string|null): Human-readable name of the site, storage item, subscription, or rule group.
|
||||
- `parent_fileid` (string|null): Provider-native identifier of the parent storage directory.
|
||||
- `path` (string|null; default `/`): Storage or history path represented by this record.
|
||||
- `pickcode` (string|null): 115 storage pickcode associated with the item.
|
||||
- `size` (integer|null): File or torrent size in bytes.
|
||||
- `storage` (string|null; default `local`): Configured storage name or storage type used by the operation.
|
||||
- `thumbnail` (string|null): Thumbnail URL returned by the storage provider.
|
||||
- `type` (string|null): MoviePilot media or storage item type required by the selected operation.
|
||||
- `url` (string|null): Site, storage, or torrent URL represented by this field.
|
||||
|
||||
### `JsonData-Input`
|
||||
Arbitrary JSON-compatible auxiliary data.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaSource`
|
||||
Canonical metadata source identifier paired with a source-native media ID.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaType`
|
||||
MoviePilot media type.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `SubscriptionExecutionStatus`
|
||||
Subscription refresh execution status and progress summary.
|
||||
- `batch_id` (string|null): Stable subscription search batch identifier.
|
||||
- `can_cancel` (boolean; default `False`): Whether the current subscription execution can be cancelled.
|
||||
- `current_site_id` (integer|null): Configured site ID currently handling the subscription execution.
|
||||
- `error` (string|null): Human-readable workflow, provider, or execution error message.
|
||||
- `next_run_at` (string|null): Next scheduled subscription search time. Null when no future execution is planned.
|
||||
- `phase*` (string): Current phase of a subscription execution.
|
||||
- `source` (string|null): Exact metadata or recommendation source selected by the operation.
|
||||
- `state*` (string): Current site, subscription, marketplace, or transfer state filter.
|
||||
- `task_id` (string|null): Stable durable transfer task ID returned by transfer.manual_reviews.
|
||||
- `updated_at*` (string): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `TorrentInfo`
|
||||
One torrent candidate returned by MoviePilot search.
|
||||
- `category` (string|null): MoviePilot media category or filter-group category, depending on the operation.
|
||||
- `date_elapsed` (string|null): Human-readable age of the torrent publication date.
|
||||
- `description` (string|null): Human-readable media, torrent, or subscription description.
|
||||
- `downloadvolumefactor` (number|null): Torrent download-volume multiplier reported by the site.
|
||||
- `enclosure` (string|null): Torrent download URL or enclosure supplied by the indexer result.
|
||||
- `freedate` (string|null): Torrent freeleech expiration timestamp reported by the site.
|
||||
- `freedate_diff` (string|null): Seconds remaining until the torrent freeleech period ends.
|
||||
- `grabs` (integer|null; default `0`): Number of completed downloads reported for the torrent.
|
||||
- `hit_and_run` (boolean|null; default `False`): Whether the torrent is subject to hit-and-run requirements.
|
||||
- `labels` (array<string>|null): Labels attached to the media, classification result, or torrent result.
|
||||
- `media_id` (string|null): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source` (MediaSource|null): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
- `page_url` (string|null): Public details page for the torrent result.
|
||||
- `peers` (integer|null; default `0`): Number of downloading peers reported for the torrent.
|
||||
- `pri_order` (integer|null; default `0`): Indexer priority order assigned to the torrent result.
|
||||
- `pubdate` (string|null): Torrent publication timestamp.
|
||||
- `seeders` (integer|null; default `0`): Minimum seeder expression for a filter rule, or the torrent's seeder count.
|
||||
- `site` (integer|null): Source site identifier associated with the torrent result.
|
||||
- `site_cookie` (string|null): Site cookie bundled with the torrent result. Treat this value as a secret.
|
||||
- `site_downloader` (string|null): Downloader instance selected by the source site.
|
||||
- `site_name` (string|null): Human-readable source site name.
|
||||
- `site_order` (integer|null; default `0`): Source site's configured search order.
|
||||
- `site_proxy` (boolean|null; default `False`): Whether the torrent's source site uses the configured proxy.
|
||||
- `site_ua` (string|null): User-Agent associated with the source site.
|
||||
- `size` (number|null; default `0.0`): File or torrent size in bytes.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `uploadvolumefactor` (number|null): Torrent upload-volume multiplier reported by the site.
|
||||
- `volume_factor` (string|null): Combined upload/download volume-factor label shown for the torrent.
|
||||
|
||||
### `WorkflowExecutionConfig`
|
||||
Workflow concurrency, join, branch, and failure policies.
|
||||
- `max_workers` (integer|null): Maximum concurrent workflow actions allowed by the execution configuration.
|
||||
|
||||
### `WorkflowExecutionState-Input`
|
||||
Persisted resumable workflow execution state.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `nodes` (object): Persisted workflow node runtime states keyed by action identity.
|
||||
- `outputs` (object): Named output mappings produced by this workflow action.
|
||||
- `runtime` (WorkflowRuntimeState): Persisted workflow runtime metadata used for safe resume.
|
||||
- `version` (integer; default `1`): Plugin release or schema version selected by the operation.
|
||||
|
||||
### `WorkflowRuntimeState`
|
||||
Complete persisted workflow runtime and progress state.
|
||||
- `attempts` (object): Attempt counters keyed by workflow node or operation identity.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `finished_actions` (integer; default `0`): Workflow action IDs already completed in the persisted execution state.
|
||||
- `node_states` (object): Persisted runtime states keyed by workflow node identity.
|
||||
- `progress` (integer; default `0`): Current numeric or structured workflow execution progress.
|
||||
- `running_tasks` (integer; default `0`): Workflow task IDs currently executing.
|
||||
|
||||
@@ -11,3 +11,163 @@ Purpose: Read personalized media or music recommendations.
|
||||
- `path_params`: none
|
||||
- `query`: `days` (integer; default `14`): Recommendation time window in days.; `fresh_sort` (string; default `release_date`): Freshness ordering used by the recommendation source.; `future` (boolean; default `True`): Include future recommendation periods when supported.; `media_type` (string; default `all`): MoviePilot media type used to filter recommendations or rule groups.; `min_listen_count` (integer; default `0`): Minimum listen count required for a music recommendation.; `music_type` (string|null): Music identity level: recording, album, or artist where supported.; `page` (integer; default `1`): One-based result page number.; `past` (boolean; default `True`): Include past recommendation periods when supported.; `range_name` (string; default `this_month`): Named recommendation time range.; `sort_by` (string; default `listen_count.desc`): Recommendation field used for ordering results.; `source` (string; default `tmdb_trending`): Exact metadata or recommendation source selected by the operation.; `with_cover` (boolean; default `False`): Require recommendation results to include cover artwork.
|
||||
- `body`: none
|
||||
|
||||
## Body Models
|
||||
|
||||
This category document is self-contained: the shared models below are included so the Agent does not need a second Skill document before calling the API.
|
||||
|
||||
### `ClassificationFacts`
|
||||
Normalized media facts evaluated by the automatic classification policy.
|
||||
- `extensions` (object): Additional normalized classification facts supplied by extensions.
|
||||
- `field_sources` (object): Source provenance for normalized classification facts.
|
||||
- `identity*` (ClassificationIdentityFacts): Stable source-native media identity used by classification facts.
|
||||
- `media*` (ClassificationMediaFacts): Media metadata input used for a classification preview.
|
||||
- `music` (ClassificationMusicFacts|null): Music-specific normalized facts used by classification rules.
|
||||
|
||||
### `ClassificationFactsPreviewInput`
|
||||
Normalized facts supplied directly for a classification preview.
|
||||
- `facts*` (ClassificationFacts): Normalized media facts to evaluate during a classification preview.
|
||||
- `kind` (string=facts; default `facts`): Classification rule or preview-input kind selected by the request.
|
||||
|
||||
### `ClassificationIdentityFacts`
|
||||
Stable source-native identity used by classification evaluation.
|
||||
- `media_id*` (string): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source*` (string): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
|
||||
### `ClassificationMediaFacts`
|
||||
Normalized movie, TV, or shared media facts used by classification rules.
|
||||
- `adult` (boolean|null): Whether the media is marked as adult content.
|
||||
- `companies` (array<string>|null): Production companies or studios associated with the media.
|
||||
- `content_rating` (string|null): Content rating assigned to the media.
|
||||
- `countries` (array<string>|null): Normalized country or region codes used by classification rules.
|
||||
- `genre_keys` (array<string>|null): Normalized MoviePilot genre keys used by classification rules.
|
||||
- `genre_names` (array<string>|null): Source-provided genre names used as classification facts.
|
||||
- `language` (string|null): Normalized media language code used by classification rules.
|
||||
- `networks` (array<string>|null): Television networks or streaming platforms associated with the media.
|
||||
- `runtime` (integer|null): Persisted workflow runtime metadata used for safe resume.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `type*` (string): MoviePilot media or storage item type required by the selected operation.
|
||||
- `year` (integer|null): Release or premiere year used to disambiguate the media title.
|
||||
|
||||
### `ClassificationMediaPreviewInput`
|
||||
A selected media search result supplied for classification preview.
|
||||
- `kind` (string=media; default `media`): Classification rule or preview-input kind selected by the request.
|
||||
- `media*` (object): Media metadata input used for a classification preview.
|
||||
|
||||
### `ClassificationMusicFacts`
|
||||
Music-specific facts used by automatic classification rules.
|
||||
- `album_type` (string|null): Music album or release-group type used by classification rules.
|
||||
- `artist_country` (string|null): Country or region associated with the music artist.
|
||||
- `artists` (array<string>|null): Music artist names associated with the classified entity.
|
||||
- `entity_type` (string|null): Music entity type used by classification rules.
|
||||
- `genres` (array<string>|null): Normalized music genre values used by classification rules.
|
||||
- `release_status` (string|null): Music release status used by classification rules.
|
||||
- `secondary_types` (array<string>|null): Secondary music release-group types used by classification rules.
|
||||
- `tags` (array<string>|null): Comma-separated Douban Music category tags; use only with a Douban Music exploration source.
|
||||
|
||||
### `ClassificationPolicy-Input`
|
||||
Complete versioned automatic media-classification policy.
|
||||
- `categories` (array<ClassificationCategory>): Complete ordered media-category definitions in the classification policy.
|
||||
- `enrichment_mode` (string(primary_only,enrich_missing); default `primary_only`): Metadata enrichment mode used to populate classification facts.
|
||||
- `fallbacks` (object): Fallback category or label actions used when no classification rule matches.
|
||||
- `field_aliases` (object): Optional aliases mapping source-specific fields to normalized classification fields.
|
||||
- `mode` (string=first_match; default `first_match`): Operation mode; music.explore accepts chart or fresh, while transfer history records move, copy, link, or softlink.
|
||||
- `revision` (integer; default `0`; minimum `0.0`): Published classification policy revision or expected revision number.
|
||||
- `rules` (array<ClassificationRule-Input>): Ordered classification rules evaluated from highest priority to lowest.
|
||||
- `schema_version` (integer=2; default `2`): Classification policy schema version expected by the server.
|
||||
- `updated_at` (string|null): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `FileItem-Input`
|
||||
One file or directory returned by a configured storage provider.
|
||||
- `basename` (string|null): Base filename without its parent path.
|
||||
- `children` (array<FileItem-Input>|null): Child storage items nested below this item.
|
||||
- `drive_id` (string|null): Provider-native storage drive identifier.
|
||||
- `extension` (string|null): Filename extension, including or excluding the leading dot as returned by storage.
|
||||
- `fileid` (string|null): Provider-native storage item identifier.
|
||||
- `modify_time` (number|null): Storage item modification timestamp.
|
||||
- `name` (string|null): Human-readable name of the site, storage item, subscription, or rule group.
|
||||
- `parent_fileid` (string|null): Provider-native identifier of the parent storage directory.
|
||||
- `path` (string|null; default `/`): Storage or history path represented by this record.
|
||||
- `pickcode` (string|null): 115 storage pickcode associated with the item.
|
||||
- `size` (integer|null): File or torrent size in bytes.
|
||||
- `storage` (string|null; default `local`): Configured storage name or storage type used by the operation.
|
||||
- `thumbnail` (string|null): Thumbnail URL returned by the storage provider.
|
||||
- `type` (string|null): MoviePilot media or storage item type required by the selected operation.
|
||||
- `url` (string|null): Site, storage, or torrent URL represented by this field.
|
||||
|
||||
### `JsonData-Input`
|
||||
Arbitrary JSON-compatible auxiliary data.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaSource`
|
||||
Canonical metadata source identifier paired with a source-native media ID.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaType`
|
||||
MoviePilot media type.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `SubscriptionExecutionStatus`
|
||||
Subscription refresh execution status and progress summary.
|
||||
- `batch_id` (string|null): Stable subscription search batch identifier.
|
||||
- `can_cancel` (boolean; default `False`): Whether the current subscription execution can be cancelled.
|
||||
- `current_site_id` (integer|null): Configured site ID currently handling the subscription execution.
|
||||
- `error` (string|null): Human-readable workflow, provider, or execution error message.
|
||||
- `next_run_at` (string|null): Next scheduled subscription search time. Null when no future execution is planned.
|
||||
- `phase*` (string): Current phase of a subscription execution.
|
||||
- `source` (string|null): Exact metadata or recommendation source selected by the operation.
|
||||
- `state*` (string): Current site, subscription, marketplace, or transfer state filter.
|
||||
- `task_id` (string|null): Stable durable transfer task ID returned by transfer.manual_reviews.
|
||||
- `updated_at*` (string): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `TorrentInfo`
|
||||
One torrent candidate returned by MoviePilot search.
|
||||
- `category` (string|null): MoviePilot media category or filter-group category, depending on the operation.
|
||||
- `date_elapsed` (string|null): Human-readable age of the torrent publication date.
|
||||
- `description` (string|null): Human-readable media, torrent, or subscription description.
|
||||
- `downloadvolumefactor` (number|null): Torrent download-volume multiplier reported by the site.
|
||||
- `enclosure` (string|null): Torrent download URL or enclosure supplied by the indexer result.
|
||||
- `freedate` (string|null): Torrent freeleech expiration timestamp reported by the site.
|
||||
- `freedate_diff` (string|null): Seconds remaining until the torrent freeleech period ends.
|
||||
- `grabs` (integer|null; default `0`): Number of completed downloads reported for the torrent.
|
||||
- `hit_and_run` (boolean|null; default `False`): Whether the torrent is subject to hit-and-run requirements.
|
||||
- `labels` (array<string>|null): Labels attached to the media, classification result, or torrent result.
|
||||
- `media_id` (string|null): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source` (MediaSource|null): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
- `page_url` (string|null): Public details page for the torrent result.
|
||||
- `peers` (integer|null; default `0`): Number of downloading peers reported for the torrent.
|
||||
- `pri_order` (integer|null; default `0`): Indexer priority order assigned to the torrent result.
|
||||
- `pubdate` (string|null): Torrent publication timestamp.
|
||||
- `seeders` (integer|null; default `0`): Minimum seeder expression for a filter rule, or the torrent's seeder count.
|
||||
- `site` (integer|null): Source site identifier associated with the torrent result.
|
||||
- `site_cookie` (string|null): Site cookie bundled with the torrent result. Treat this value as a secret.
|
||||
- `site_downloader` (string|null): Downloader instance selected by the source site.
|
||||
- `site_name` (string|null): Human-readable source site name.
|
||||
- `site_order` (integer|null; default `0`): Source site's configured search order.
|
||||
- `site_proxy` (boolean|null; default `False`): Whether the torrent's source site uses the configured proxy.
|
||||
- `site_ua` (string|null): User-Agent associated with the source site.
|
||||
- `size` (number|null; default `0.0`): File or torrent size in bytes.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `uploadvolumefactor` (number|null): Torrent upload-volume multiplier reported by the site.
|
||||
- `volume_factor` (string|null): Combined upload/download volume-factor label shown for the torrent.
|
||||
|
||||
### `WorkflowExecutionConfig`
|
||||
Workflow concurrency, join, branch, and failure policies.
|
||||
- `max_workers` (integer|null): Maximum concurrent workflow actions allowed by the execution configuration.
|
||||
|
||||
### `WorkflowExecutionState-Input`
|
||||
Persisted resumable workflow execution state.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `nodes` (object): Persisted workflow node runtime states keyed by action identity.
|
||||
- `outputs` (object): Named output mappings produced by this workflow action.
|
||||
- `runtime` (WorkflowRuntimeState): Persisted workflow runtime metadata used for safe resume.
|
||||
- `version` (integer; default `1`): Plugin release or schema version selected by the operation.
|
||||
|
||||
### `WorkflowRuntimeState`
|
||||
Complete persisted workflow runtime and progress state.
|
||||
- `attempts` (object): Attempt counters keyed by workflow node or operation identity.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `finished_actions` (integer; default `0`): Workflow action IDs already completed in the persisted execution state.
|
||||
- `node_states` (object): Persisted runtime states keyed by workflow node identity.
|
||||
- `progress` (integer; default `0`): Current numeric or structured workflow execution progress.
|
||||
- `running_tasks` (integer; default `0`): Workflow task IDs currently executing.
|
||||
|
||||
@@ -25,3 +25,163 @@ Purpose: Run one registered scheduler job immediately.
|
||||
- `path_params`: none
|
||||
- `query`: `jobid*` (string): Exact scheduler job ID returned by scheduler.list.
|
||||
- `body`: none
|
||||
|
||||
## Body Models
|
||||
|
||||
This category document is self-contained: the shared models below are included so the Agent does not need a second Skill document before calling the API.
|
||||
|
||||
### `ClassificationFacts`
|
||||
Normalized media facts evaluated by the automatic classification policy.
|
||||
- `extensions` (object): Additional normalized classification facts supplied by extensions.
|
||||
- `field_sources` (object): Source provenance for normalized classification facts.
|
||||
- `identity*` (ClassificationIdentityFacts): Stable source-native media identity used by classification facts.
|
||||
- `media*` (ClassificationMediaFacts): Media metadata input used for a classification preview.
|
||||
- `music` (ClassificationMusicFacts|null): Music-specific normalized facts used by classification rules.
|
||||
|
||||
### `ClassificationFactsPreviewInput`
|
||||
Normalized facts supplied directly for a classification preview.
|
||||
- `facts*` (ClassificationFacts): Normalized media facts to evaluate during a classification preview.
|
||||
- `kind` (string=facts; default `facts`): Classification rule or preview-input kind selected by the request.
|
||||
|
||||
### `ClassificationIdentityFacts`
|
||||
Stable source-native identity used by classification evaluation.
|
||||
- `media_id*` (string): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source*` (string): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
|
||||
### `ClassificationMediaFacts`
|
||||
Normalized movie, TV, or shared media facts used by classification rules.
|
||||
- `adult` (boolean|null): Whether the media is marked as adult content.
|
||||
- `companies` (array<string>|null): Production companies or studios associated with the media.
|
||||
- `content_rating` (string|null): Content rating assigned to the media.
|
||||
- `countries` (array<string>|null): Normalized country or region codes used by classification rules.
|
||||
- `genre_keys` (array<string>|null): Normalized MoviePilot genre keys used by classification rules.
|
||||
- `genre_names` (array<string>|null): Source-provided genre names used as classification facts.
|
||||
- `language` (string|null): Normalized media language code used by classification rules.
|
||||
- `networks` (array<string>|null): Television networks or streaming platforms associated with the media.
|
||||
- `runtime` (integer|null): Persisted workflow runtime metadata used for safe resume.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `type*` (string): MoviePilot media or storage item type required by the selected operation.
|
||||
- `year` (integer|null): Release or premiere year used to disambiguate the media title.
|
||||
|
||||
### `ClassificationMediaPreviewInput`
|
||||
A selected media search result supplied for classification preview.
|
||||
- `kind` (string=media; default `media`): Classification rule or preview-input kind selected by the request.
|
||||
- `media*` (object): Media metadata input used for a classification preview.
|
||||
|
||||
### `ClassificationMusicFacts`
|
||||
Music-specific facts used by automatic classification rules.
|
||||
- `album_type` (string|null): Music album or release-group type used by classification rules.
|
||||
- `artist_country` (string|null): Country or region associated with the music artist.
|
||||
- `artists` (array<string>|null): Music artist names associated with the classified entity.
|
||||
- `entity_type` (string|null): Music entity type used by classification rules.
|
||||
- `genres` (array<string>|null): Normalized music genre values used by classification rules.
|
||||
- `release_status` (string|null): Music release status used by classification rules.
|
||||
- `secondary_types` (array<string>|null): Secondary music release-group types used by classification rules.
|
||||
- `tags` (array<string>|null): Comma-separated Douban Music category tags; use only with a Douban Music exploration source.
|
||||
|
||||
### `ClassificationPolicy-Input`
|
||||
Complete versioned automatic media-classification policy.
|
||||
- `categories` (array<ClassificationCategory>): Complete ordered media-category definitions in the classification policy.
|
||||
- `enrichment_mode` (string(primary_only,enrich_missing); default `primary_only`): Metadata enrichment mode used to populate classification facts.
|
||||
- `fallbacks` (object): Fallback category or label actions used when no classification rule matches.
|
||||
- `field_aliases` (object): Optional aliases mapping source-specific fields to normalized classification fields.
|
||||
- `mode` (string=first_match; default `first_match`): Operation mode; music.explore accepts chart or fresh, while transfer history records move, copy, link, or softlink.
|
||||
- `revision` (integer; default `0`; minimum `0.0`): Published classification policy revision or expected revision number.
|
||||
- `rules` (array<ClassificationRule-Input>): Ordered classification rules evaluated from highest priority to lowest.
|
||||
- `schema_version` (integer=2; default `2`): Classification policy schema version expected by the server.
|
||||
- `updated_at` (string|null): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `FileItem-Input`
|
||||
One file or directory returned by a configured storage provider.
|
||||
- `basename` (string|null): Base filename without its parent path.
|
||||
- `children` (array<FileItem-Input>|null): Child storage items nested below this item.
|
||||
- `drive_id` (string|null): Provider-native storage drive identifier.
|
||||
- `extension` (string|null): Filename extension, including or excluding the leading dot as returned by storage.
|
||||
- `fileid` (string|null): Provider-native storage item identifier.
|
||||
- `modify_time` (number|null): Storage item modification timestamp.
|
||||
- `name` (string|null): Human-readable name of the site, storage item, subscription, or rule group.
|
||||
- `parent_fileid` (string|null): Provider-native identifier of the parent storage directory.
|
||||
- `path` (string|null; default `/`): Storage or history path represented by this record.
|
||||
- `pickcode` (string|null): 115 storage pickcode associated with the item.
|
||||
- `size` (integer|null): File or torrent size in bytes.
|
||||
- `storage` (string|null; default `local`): Configured storage name or storage type used by the operation.
|
||||
- `thumbnail` (string|null): Thumbnail URL returned by the storage provider.
|
||||
- `type` (string|null): MoviePilot media or storage item type required by the selected operation.
|
||||
- `url` (string|null): Site, storage, or torrent URL represented by this field.
|
||||
|
||||
### `JsonData-Input`
|
||||
Arbitrary JSON-compatible auxiliary data.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaSource`
|
||||
Canonical metadata source identifier paired with a source-native media ID.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaType`
|
||||
MoviePilot media type.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `SubscriptionExecutionStatus`
|
||||
Subscription refresh execution status and progress summary.
|
||||
- `batch_id` (string|null): Stable subscription search batch identifier.
|
||||
- `can_cancel` (boolean; default `False`): Whether the current subscription execution can be cancelled.
|
||||
- `current_site_id` (integer|null): Configured site ID currently handling the subscription execution.
|
||||
- `error` (string|null): Human-readable workflow, provider, or execution error message.
|
||||
- `next_run_at` (string|null): Next scheduled subscription search time. Null when no future execution is planned.
|
||||
- `phase*` (string): Current phase of a subscription execution.
|
||||
- `source` (string|null): Exact metadata or recommendation source selected by the operation.
|
||||
- `state*` (string): Current site, subscription, marketplace, or transfer state filter.
|
||||
- `task_id` (string|null): Stable durable transfer task ID returned by transfer.manual_reviews.
|
||||
- `updated_at*` (string): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `TorrentInfo`
|
||||
One torrent candidate returned by MoviePilot search.
|
||||
- `category` (string|null): MoviePilot media category or filter-group category, depending on the operation.
|
||||
- `date_elapsed` (string|null): Human-readable age of the torrent publication date.
|
||||
- `description` (string|null): Human-readable media, torrent, or subscription description.
|
||||
- `downloadvolumefactor` (number|null): Torrent download-volume multiplier reported by the site.
|
||||
- `enclosure` (string|null): Torrent download URL or enclosure supplied by the indexer result.
|
||||
- `freedate` (string|null): Torrent freeleech expiration timestamp reported by the site.
|
||||
- `freedate_diff` (string|null): Seconds remaining until the torrent freeleech period ends.
|
||||
- `grabs` (integer|null; default `0`): Number of completed downloads reported for the torrent.
|
||||
- `hit_and_run` (boolean|null; default `False`): Whether the torrent is subject to hit-and-run requirements.
|
||||
- `labels` (array<string>|null): Labels attached to the media, classification result, or torrent result.
|
||||
- `media_id` (string|null): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source` (MediaSource|null): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
- `page_url` (string|null): Public details page for the torrent result.
|
||||
- `peers` (integer|null; default `0`): Number of downloading peers reported for the torrent.
|
||||
- `pri_order` (integer|null; default `0`): Indexer priority order assigned to the torrent result.
|
||||
- `pubdate` (string|null): Torrent publication timestamp.
|
||||
- `seeders` (integer|null; default `0`): Minimum seeder expression for a filter rule, or the torrent's seeder count.
|
||||
- `site` (integer|null): Source site identifier associated with the torrent result.
|
||||
- `site_cookie` (string|null): Site cookie bundled with the torrent result. Treat this value as a secret.
|
||||
- `site_downloader` (string|null): Downloader instance selected by the source site.
|
||||
- `site_name` (string|null): Human-readable source site name.
|
||||
- `site_order` (integer|null; default `0`): Source site's configured search order.
|
||||
- `site_proxy` (boolean|null; default `False`): Whether the torrent's source site uses the configured proxy.
|
||||
- `site_ua` (string|null): User-Agent associated with the source site.
|
||||
- `size` (number|null; default `0.0`): File or torrent size in bytes.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `uploadvolumefactor` (number|null): Torrent upload-volume multiplier reported by the site.
|
||||
- `volume_factor` (string|null): Combined upload/download volume-factor label shown for the torrent.
|
||||
|
||||
### `WorkflowExecutionConfig`
|
||||
Workflow concurrency, join, branch, and failure policies.
|
||||
- `max_workers` (integer|null): Maximum concurrent workflow actions allowed by the execution configuration.
|
||||
|
||||
### `WorkflowExecutionState-Input`
|
||||
Persisted resumable workflow execution state.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `nodes` (object): Persisted workflow node runtime states keyed by action identity.
|
||||
- `outputs` (object): Named output mappings produced by this workflow action.
|
||||
- `runtime` (WorkflowRuntimeState): Persisted workflow runtime metadata used for safe resume.
|
||||
- `version` (integer; default `1`): Plugin release or schema version selected by the operation.
|
||||
|
||||
### `WorkflowRuntimeState`
|
||||
Complete persisted workflow runtime and progress state.
|
||||
- `attempts` (object): Attempt counters keyed by workflow node or operation identity.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `finished_actions` (integer; default `0`): Workflow action IDs already completed in the persisted execution state.
|
||||
- `node_states` (object): Persisted runtime states keyed by workflow node identity.
|
||||
- `progress` (integer; default `0`): Current numeric or structured workflow execution progress.
|
||||
- `running_tasks` (integer; default `0`): Workflow task IDs currently executing.
|
||||
|
||||
@@ -33,3 +33,163 @@ Purpose: Search torrent sites for one canonical media identity.
|
||||
- `path_params`: `media_id*` (string): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `query`: `area` (string|null; default `title`): Optional region filter applied by the torrent search workflow.; `count` (integer|null): Optional page size for a legacy full-list endpoint. Supplying page or count activates pagination; an omitted count then uses 50.; `include_candidates` (boolean; default `False`): Include unconfirmed music resources and related albums for manual review. Defaults to false; candidates have no target media identity and must not be used for automatic download.; `media_source*` (MediaSource): Metadata source identifier. Preserve the exact value returned with media_id.; `mtype` (string|null): MoviePilot media type or subscription-history category required by the operation.; `music_type` (string|null): Music identity level: recording, album, or artist where supported.; `page` (integer|null): Optional one-based page for a legacy full-list endpoint. Omit both page and count to keep the original unpaginated full result.; `season` (string|null): Season number used by the media, search, subscription, or transfer operation.; `sites` (string|null): Exact site IDs included in the search or subscription scope.
|
||||
- `body`: none
|
||||
|
||||
## Body Models
|
||||
|
||||
This category document is self-contained: the shared models below are included so the Agent does not need a second Skill document before calling the API.
|
||||
|
||||
### `ClassificationFacts`
|
||||
Normalized media facts evaluated by the automatic classification policy.
|
||||
- `extensions` (object): Additional normalized classification facts supplied by extensions.
|
||||
- `field_sources` (object): Source provenance for normalized classification facts.
|
||||
- `identity*` (ClassificationIdentityFacts): Stable source-native media identity used by classification facts.
|
||||
- `media*` (ClassificationMediaFacts): Media metadata input used for a classification preview.
|
||||
- `music` (ClassificationMusicFacts|null): Music-specific normalized facts used by classification rules.
|
||||
|
||||
### `ClassificationFactsPreviewInput`
|
||||
Normalized facts supplied directly for a classification preview.
|
||||
- `facts*` (ClassificationFacts): Normalized media facts to evaluate during a classification preview.
|
||||
- `kind` (string=facts; default `facts`): Classification rule or preview-input kind selected by the request.
|
||||
|
||||
### `ClassificationIdentityFacts`
|
||||
Stable source-native identity used by classification evaluation.
|
||||
- `media_id*` (string): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source*` (string): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
|
||||
### `ClassificationMediaFacts`
|
||||
Normalized movie, TV, or shared media facts used by classification rules.
|
||||
- `adult` (boolean|null): Whether the media is marked as adult content.
|
||||
- `companies` (array<string>|null): Production companies or studios associated with the media.
|
||||
- `content_rating` (string|null): Content rating assigned to the media.
|
||||
- `countries` (array<string>|null): Normalized country or region codes used by classification rules.
|
||||
- `genre_keys` (array<string>|null): Normalized MoviePilot genre keys used by classification rules.
|
||||
- `genre_names` (array<string>|null): Source-provided genre names used as classification facts.
|
||||
- `language` (string|null): Normalized media language code used by classification rules.
|
||||
- `networks` (array<string>|null): Television networks or streaming platforms associated with the media.
|
||||
- `runtime` (integer|null): Persisted workflow runtime metadata used for safe resume.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `type*` (string): MoviePilot media or storage item type required by the selected operation.
|
||||
- `year` (integer|null): Release or premiere year used to disambiguate the media title.
|
||||
|
||||
### `ClassificationMediaPreviewInput`
|
||||
A selected media search result supplied for classification preview.
|
||||
- `kind` (string=media; default `media`): Classification rule or preview-input kind selected by the request.
|
||||
- `media*` (object): Media metadata input used for a classification preview.
|
||||
|
||||
### `ClassificationMusicFacts`
|
||||
Music-specific facts used by automatic classification rules.
|
||||
- `album_type` (string|null): Music album or release-group type used by classification rules.
|
||||
- `artist_country` (string|null): Country or region associated with the music artist.
|
||||
- `artists` (array<string>|null): Music artist names associated with the classified entity.
|
||||
- `entity_type` (string|null): Music entity type used by classification rules.
|
||||
- `genres` (array<string>|null): Normalized music genre values used by classification rules.
|
||||
- `release_status` (string|null): Music release status used by classification rules.
|
||||
- `secondary_types` (array<string>|null): Secondary music release-group types used by classification rules.
|
||||
- `tags` (array<string>|null): Comma-separated Douban Music category tags; use only with a Douban Music exploration source.
|
||||
|
||||
### `ClassificationPolicy-Input`
|
||||
Complete versioned automatic media-classification policy.
|
||||
- `categories` (array<ClassificationCategory>): Complete ordered media-category definitions in the classification policy.
|
||||
- `enrichment_mode` (string(primary_only,enrich_missing); default `primary_only`): Metadata enrichment mode used to populate classification facts.
|
||||
- `fallbacks` (object): Fallback category or label actions used when no classification rule matches.
|
||||
- `field_aliases` (object): Optional aliases mapping source-specific fields to normalized classification fields.
|
||||
- `mode` (string=first_match; default `first_match`): Operation mode; music.explore accepts chart or fresh, while transfer history records move, copy, link, or softlink.
|
||||
- `revision` (integer; default `0`; minimum `0.0`): Published classification policy revision or expected revision number.
|
||||
- `rules` (array<ClassificationRule-Input>): Ordered classification rules evaluated from highest priority to lowest.
|
||||
- `schema_version` (integer=2; default `2`): Classification policy schema version expected by the server.
|
||||
- `updated_at` (string|null): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `FileItem-Input`
|
||||
One file or directory returned by a configured storage provider.
|
||||
- `basename` (string|null): Base filename without its parent path.
|
||||
- `children` (array<FileItem-Input>|null): Child storage items nested below this item.
|
||||
- `drive_id` (string|null): Provider-native storage drive identifier.
|
||||
- `extension` (string|null): Filename extension, including or excluding the leading dot as returned by storage.
|
||||
- `fileid` (string|null): Provider-native storage item identifier.
|
||||
- `modify_time` (number|null): Storage item modification timestamp.
|
||||
- `name` (string|null): Human-readable name of the site, storage item, subscription, or rule group.
|
||||
- `parent_fileid` (string|null): Provider-native identifier of the parent storage directory.
|
||||
- `path` (string|null; default `/`): Storage or history path represented by this record.
|
||||
- `pickcode` (string|null): 115 storage pickcode associated with the item.
|
||||
- `size` (integer|null): File or torrent size in bytes.
|
||||
- `storage` (string|null; default `local`): Configured storage name or storage type used by the operation.
|
||||
- `thumbnail` (string|null): Thumbnail URL returned by the storage provider.
|
||||
- `type` (string|null): MoviePilot media or storage item type required by the selected operation.
|
||||
- `url` (string|null): Site, storage, or torrent URL represented by this field.
|
||||
|
||||
### `JsonData-Input`
|
||||
Arbitrary JSON-compatible auxiliary data.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaSource`
|
||||
Canonical metadata source identifier paired with a source-native media ID.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaType`
|
||||
MoviePilot media type.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `SubscriptionExecutionStatus`
|
||||
Subscription refresh execution status and progress summary.
|
||||
- `batch_id` (string|null): Stable subscription search batch identifier.
|
||||
- `can_cancel` (boolean; default `False`): Whether the current subscription execution can be cancelled.
|
||||
- `current_site_id` (integer|null): Configured site ID currently handling the subscription execution.
|
||||
- `error` (string|null): Human-readable workflow, provider, or execution error message.
|
||||
- `next_run_at` (string|null): Next scheduled subscription search time. Null when no future execution is planned.
|
||||
- `phase*` (string): Current phase of a subscription execution.
|
||||
- `source` (string|null): Exact metadata or recommendation source selected by the operation.
|
||||
- `state*` (string): Current site, subscription, marketplace, or transfer state filter.
|
||||
- `task_id` (string|null): Stable durable transfer task ID returned by transfer.manual_reviews.
|
||||
- `updated_at*` (string): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `TorrentInfo`
|
||||
One torrent candidate returned by MoviePilot search.
|
||||
- `category` (string|null): MoviePilot media category or filter-group category, depending on the operation.
|
||||
- `date_elapsed` (string|null): Human-readable age of the torrent publication date.
|
||||
- `description` (string|null): Human-readable media, torrent, or subscription description.
|
||||
- `downloadvolumefactor` (number|null): Torrent download-volume multiplier reported by the site.
|
||||
- `enclosure` (string|null): Torrent download URL or enclosure supplied by the indexer result.
|
||||
- `freedate` (string|null): Torrent freeleech expiration timestamp reported by the site.
|
||||
- `freedate_diff` (string|null): Seconds remaining until the torrent freeleech period ends.
|
||||
- `grabs` (integer|null; default `0`): Number of completed downloads reported for the torrent.
|
||||
- `hit_and_run` (boolean|null; default `False`): Whether the torrent is subject to hit-and-run requirements.
|
||||
- `labels` (array<string>|null): Labels attached to the media, classification result, or torrent result.
|
||||
- `media_id` (string|null): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source` (MediaSource|null): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
- `page_url` (string|null): Public details page for the torrent result.
|
||||
- `peers` (integer|null; default `0`): Number of downloading peers reported for the torrent.
|
||||
- `pri_order` (integer|null; default `0`): Indexer priority order assigned to the torrent result.
|
||||
- `pubdate` (string|null): Torrent publication timestamp.
|
||||
- `seeders` (integer|null; default `0`): Minimum seeder expression for a filter rule, or the torrent's seeder count.
|
||||
- `site` (integer|null): Source site identifier associated with the torrent result.
|
||||
- `site_cookie` (string|null): Site cookie bundled with the torrent result. Treat this value as a secret.
|
||||
- `site_downloader` (string|null): Downloader instance selected by the source site.
|
||||
- `site_name` (string|null): Human-readable source site name.
|
||||
- `site_order` (integer|null; default `0`): Source site's configured search order.
|
||||
- `site_proxy` (boolean|null; default `False`): Whether the torrent's source site uses the configured proxy.
|
||||
- `site_ua` (string|null): User-Agent associated with the source site.
|
||||
- `size` (number|null; default `0.0`): File or torrent size in bytes.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `uploadvolumefactor` (number|null): Torrent upload-volume multiplier reported by the site.
|
||||
- `volume_factor` (string|null): Combined upload/download volume-factor label shown for the torrent.
|
||||
|
||||
### `WorkflowExecutionConfig`
|
||||
Workflow concurrency, join, branch, and failure policies.
|
||||
- `max_workers` (integer|null): Maximum concurrent workflow actions allowed by the execution configuration.
|
||||
|
||||
### `WorkflowExecutionState-Input`
|
||||
Persisted resumable workflow execution state.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `nodes` (object): Persisted workflow node runtime states keyed by action identity.
|
||||
- `outputs` (object): Named output mappings produced by this workflow action.
|
||||
- `runtime` (WorkflowRuntimeState): Persisted workflow runtime metadata used for safe resume.
|
||||
- `version` (integer; default `1`): Plugin release or schema version selected by the operation.
|
||||
|
||||
### `WorkflowRuntimeState`
|
||||
Complete persisted workflow runtime and progress state.
|
||||
- `attempts` (object): Attempt counters keyed by workflow node or operation identity.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `finished_actions` (integer; default `0`): Workflow action IDs already completed in the persisted execution state.
|
||||
- `node_states` (object): Persisted runtime states keyed by workflow node identity.
|
||||
- `progress` (integer; default `0`): Current numeric or structured workflow execution progress.
|
||||
- `running_tasks` (integer; default `0`): Workflow task IDs currently executing.
|
||||
|
||||
@@ -165,3 +165,163 @@ Purpose: Refresh and return account statistics for one configured site.
|
||||
- `path_params`: `site_id*` (integer): Persistent site ID returned by site.list.
|
||||
- `query`: none
|
||||
- `body`: none
|
||||
|
||||
## Body Models
|
||||
|
||||
This category document is self-contained: the shared models below are included so the Agent does not need a second Skill document before calling the API.
|
||||
|
||||
### `ClassificationFacts`
|
||||
Normalized media facts evaluated by the automatic classification policy.
|
||||
- `extensions` (object): Additional normalized classification facts supplied by extensions.
|
||||
- `field_sources` (object): Source provenance for normalized classification facts.
|
||||
- `identity*` (ClassificationIdentityFacts): Stable source-native media identity used by classification facts.
|
||||
- `media*` (ClassificationMediaFacts): Media metadata input used for a classification preview.
|
||||
- `music` (ClassificationMusicFacts|null): Music-specific normalized facts used by classification rules.
|
||||
|
||||
### `ClassificationFactsPreviewInput`
|
||||
Normalized facts supplied directly for a classification preview.
|
||||
- `facts*` (ClassificationFacts): Normalized media facts to evaluate during a classification preview.
|
||||
- `kind` (string=facts; default `facts`): Classification rule or preview-input kind selected by the request.
|
||||
|
||||
### `ClassificationIdentityFacts`
|
||||
Stable source-native identity used by classification evaluation.
|
||||
- `media_id*` (string): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source*` (string): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
|
||||
### `ClassificationMediaFacts`
|
||||
Normalized movie, TV, or shared media facts used by classification rules.
|
||||
- `adult` (boolean|null): Whether the media is marked as adult content.
|
||||
- `companies` (array<string>|null): Production companies or studios associated with the media.
|
||||
- `content_rating` (string|null): Content rating assigned to the media.
|
||||
- `countries` (array<string>|null): Normalized country or region codes used by classification rules.
|
||||
- `genre_keys` (array<string>|null): Normalized MoviePilot genre keys used by classification rules.
|
||||
- `genre_names` (array<string>|null): Source-provided genre names used as classification facts.
|
||||
- `language` (string|null): Normalized media language code used by classification rules.
|
||||
- `networks` (array<string>|null): Television networks or streaming platforms associated with the media.
|
||||
- `runtime` (integer|null): Persisted workflow runtime metadata used for safe resume.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `type*` (string): MoviePilot media or storage item type required by the selected operation.
|
||||
- `year` (integer|null): Release or premiere year used to disambiguate the media title.
|
||||
|
||||
### `ClassificationMediaPreviewInput`
|
||||
A selected media search result supplied for classification preview.
|
||||
- `kind` (string=media; default `media`): Classification rule or preview-input kind selected by the request.
|
||||
- `media*` (object): Media metadata input used for a classification preview.
|
||||
|
||||
### `ClassificationMusicFacts`
|
||||
Music-specific facts used by automatic classification rules.
|
||||
- `album_type` (string|null): Music album or release-group type used by classification rules.
|
||||
- `artist_country` (string|null): Country or region associated with the music artist.
|
||||
- `artists` (array<string>|null): Music artist names associated with the classified entity.
|
||||
- `entity_type` (string|null): Music entity type used by classification rules.
|
||||
- `genres` (array<string>|null): Normalized music genre values used by classification rules.
|
||||
- `release_status` (string|null): Music release status used by classification rules.
|
||||
- `secondary_types` (array<string>|null): Secondary music release-group types used by classification rules.
|
||||
- `tags` (array<string>|null): Comma-separated Douban Music category tags; use only with a Douban Music exploration source.
|
||||
|
||||
### `ClassificationPolicy-Input`
|
||||
Complete versioned automatic media-classification policy.
|
||||
- `categories` (array<ClassificationCategory>): Complete ordered media-category definitions in the classification policy.
|
||||
- `enrichment_mode` (string(primary_only,enrich_missing); default `primary_only`): Metadata enrichment mode used to populate classification facts.
|
||||
- `fallbacks` (object): Fallback category or label actions used when no classification rule matches.
|
||||
- `field_aliases` (object): Optional aliases mapping source-specific fields to normalized classification fields.
|
||||
- `mode` (string=first_match; default `first_match`): Operation mode; music.explore accepts chart or fresh, while transfer history records move, copy, link, or softlink.
|
||||
- `revision` (integer; default `0`; minimum `0.0`): Published classification policy revision or expected revision number.
|
||||
- `rules` (array<ClassificationRule-Input>): Ordered classification rules evaluated from highest priority to lowest.
|
||||
- `schema_version` (integer=2; default `2`): Classification policy schema version expected by the server.
|
||||
- `updated_at` (string|null): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `FileItem-Input`
|
||||
One file or directory returned by a configured storage provider.
|
||||
- `basename` (string|null): Base filename without its parent path.
|
||||
- `children` (array<FileItem-Input>|null): Child storage items nested below this item.
|
||||
- `drive_id` (string|null): Provider-native storage drive identifier.
|
||||
- `extension` (string|null): Filename extension, including or excluding the leading dot as returned by storage.
|
||||
- `fileid` (string|null): Provider-native storage item identifier.
|
||||
- `modify_time` (number|null): Storage item modification timestamp.
|
||||
- `name` (string|null): Human-readable name of the site, storage item, subscription, or rule group.
|
||||
- `parent_fileid` (string|null): Provider-native identifier of the parent storage directory.
|
||||
- `path` (string|null; default `/`): Storage or history path represented by this record.
|
||||
- `pickcode` (string|null): 115 storage pickcode associated with the item.
|
||||
- `size` (integer|null): File or torrent size in bytes.
|
||||
- `storage` (string|null; default `local`): Configured storage name or storage type used by the operation.
|
||||
- `thumbnail` (string|null): Thumbnail URL returned by the storage provider.
|
||||
- `type` (string|null): MoviePilot media or storage item type required by the selected operation.
|
||||
- `url` (string|null): Site, storage, or torrent URL represented by this field.
|
||||
|
||||
### `JsonData-Input`
|
||||
Arbitrary JSON-compatible auxiliary data.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaSource`
|
||||
Canonical metadata source identifier paired with a source-native media ID.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaType`
|
||||
MoviePilot media type.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `SubscriptionExecutionStatus`
|
||||
Subscription refresh execution status and progress summary.
|
||||
- `batch_id` (string|null): Stable subscription search batch identifier.
|
||||
- `can_cancel` (boolean; default `False`): Whether the current subscription execution can be cancelled.
|
||||
- `current_site_id` (integer|null): Configured site ID currently handling the subscription execution.
|
||||
- `error` (string|null): Human-readable workflow, provider, or execution error message.
|
||||
- `next_run_at` (string|null): Next scheduled subscription search time. Null when no future execution is planned.
|
||||
- `phase*` (string): Current phase of a subscription execution.
|
||||
- `source` (string|null): Exact metadata or recommendation source selected by the operation.
|
||||
- `state*` (string): Current site, subscription, marketplace, or transfer state filter.
|
||||
- `task_id` (string|null): Stable durable transfer task ID returned by transfer.manual_reviews.
|
||||
- `updated_at*` (string): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `TorrentInfo`
|
||||
One torrent candidate returned by MoviePilot search.
|
||||
- `category` (string|null): MoviePilot media category or filter-group category, depending on the operation.
|
||||
- `date_elapsed` (string|null): Human-readable age of the torrent publication date.
|
||||
- `description` (string|null): Human-readable media, torrent, or subscription description.
|
||||
- `downloadvolumefactor` (number|null): Torrent download-volume multiplier reported by the site.
|
||||
- `enclosure` (string|null): Torrent download URL or enclosure supplied by the indexer result.
|
||||
- `freedate` (string|null): Torrent freeleech expiration timestamp reported by the site.
|
||||
- `freedate_diff` (string|null): Seconds remaining until the torrent freeleech period ends.
|
||||
- `grabs` (integer|null; default `0`): Number of completed downloads reported for the torrent.
|
||||
- `hit_and_run` (boolean|null; default `False`): Whether the torrent is subject to hit-and-run requirements.
|
||||
- `labels` (array<string>|null): Labels attached to the media, classification result, or torrent result.
|
||||
- `media_id` (string|null): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source` (MediaSource|null): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
- `page_url` (string|null): Public details page for the torrent result.
|
||||
- `peers` (integer|null; default `0`): Number of downloading peers reported for the torrent.
|
||||
- `pri_order` (integer|null; default `0`): Indexer priority order assigned to the torrent result.
|
||||
- `pubdate` (string|null): Torrent publication timestamp.
|
||||
- `seeders` (integer|null; default `0`): Minimum seeder expression for a filter rule, or the torrent's seeder count.
|
||||
- `site` (integer|null): Source site identifier associated with the torrent result.
|
||||
- `site_cookie` (string|null): Site cookie bundled with the torrent result. Treat this value as a secret.
|
||||
- `site_downloader` (string|null): Downloader instance selected by the source site.
|
||||
- `site_name` (string|null): Human-readable source site name.
|
||||
- `site_order` (integer|null; default `0`): Source site's configured search order.
|
||||
- `site_proxy` (boolean|null; default `False`): Whether the torrent's source site uses the configured proxy.
|
||||
- `site_ua` (string|null): User-Agent associated with the source site.
|
||||
- `size` (number|null; default `0.0`): File or torrent size in bytes.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `uploadvolumefactor` (number|null): Torrent upload-volume multiplier reported by the site.
|
||||
- `volume_factor` (string|null): Combined upload/download volume-factor label shown for the torrent.
|
||||
|
||||
### `WorkflowExecutionConfig`
|
||||
Workflow concurrency, join, branch, and failure policies.
|
||||
- `max_workers` (integer|null): Maximum concurrent workflow actions allowed by the execution configuration.
|
||||
|
||||
### `WorkflowExecutionState-Input`
|
||||
Persisted resumable workflow execution state.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `nodes` (object): Persisted workflow node runtime states keyed by action identity.
|
||||
- `outputs` (object): Named output mappings produced by this workflow action.
|
||||
- `runtime` (WorkflowRuntimeState): Persisted workflow runtime metadata used for safe resume.
|
||||
- `version` (integer; default `1`): Plugin release or schema version selected by the operation.
|
||||
|
||||
### `WorkflowRuntimeState`
|
||||
Complete persisted workflow runtime and progress state.
|
||||
- `attempts` (object): Attempt counters keyed by workflow node or operation identity.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `finished_actions` (integer; default `0`): Workflow action IDs already completed in the persisted execution state.
|
||||
- `node_states` (object): Persisted runtime states keyed by workflow node identity.
|
||||
- `progress` (integer; default `0`): Current numeric or structured workflow execution progress.
|
||||
- `running_tasks` (integer; default `0`): Workflow task IDs currently executing.
|
||||
|
||||
@@ -18,3 +18,163 @@ Purpose: Execute one complete slash command through MoviePilot messaging.
|
||||
- `path_params`: none
|
||||
- `query`: none
|
||||
- `body`: `command*` (string): Complete slash command, including the leading slash and all arguments.
|
||||
|
||||
## Body Models
|
||||
|
||||
This category document is self-contained: the shared models below are included so the Agent does not need a second Skill document before calling the API.
|
||||
|
||||
### `ClassificationFacts`
|
||||
Normalized media facts evaluated by the automatic classification policy.
|
||||
- `extensions` (object): Additional normalized classification facts supplied by extensions.
|
||||
- `field_sources` (object): Source provenance for normalized classification facts.
|
||||
- `identity*` (ClassificationIdentityFacts): Stable source-native media identity used by classification facts.
|
||||
- `media*` (ClassificationMediaFacts): Media metadata input used for a classification preview.
|
||||
- `music` (ClassificationMusicFacts|null): Music-specific normalized facts used by classification rules.
|
||||
|
||||
### `ClassificationFactsPreviewInput`
|
||||
Normalized facts supplied directly for a classification preview.
|
||||
- `facts*` (ClassificationFacts): Normalized media facts to evaluate during a classification preview.
|
||||
- `kind` (string=facts; default `facts`): Classification rule or preview-input kind selected by the request.
|
||||
|
||||
### `ClassificationIdentityFacts`
|
||||
Stable source-native identity used by classification evaluation.
|
||||
- `media_id*` (string): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source*` (string): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
|
||||
### `ClassificationMediaFacts`
|
||||
Normalized movie, TV, or shared media facts used by classification rules.
|
||||
- `adult` (boolean|null): Whether the media is marked as adult content.
|
||||
- `companies` (array<string>|null): Production companies or studios associated with the media.
|
||||
- `content_rating` (string|null): Content rating assigned to the media.
|
||||
- `countries` (array<string>|null): Normalized country or region codes used by classification rules.
|
||||
- `genre_keys` (array<string>|null): Normalized MoviePilot genre keys used by classification rules.
|
||||
- `genre_names` (array<string>|null): Source-provided genre names used as classification facts.
|
||||
- `language` (string|null): Normalized media language code used by classification rules.
|
||||
- `networks` (array<string>|null): Television networks or streaming platforms associated with the media.
|
||||
- `runtime` (integer|null): Persisted workflow runtime metadata used for safe resume.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `type*` (string): MoviePilot media or storage item type required by the selected operation.
|
||||
- `year` (integer|null): Release or premiere year used to disambiguate the media title.
|
||||
|
||||
### `ClassificationMediaPreviewInput`
|
||||
A selected media search result supplied for classification preview.
|
||||
- `kind` (string=media; default `media`): Classification rule or preview-input kind selected by the request.
|
||||
- `media*` (object): Media metadata input used for a classification preview.
|
||||
|
||||
### `ClassificationMusicFacts`
|
||||
Music-specific facts used by automatic classification rules.
|
||||
- `album_type` (string|null): Music album or release-group type used by classification rules.
|
||||
- `artist_country` (string|null): Country or region associated with the music artist.
|
||||
- `artists` (array<string>|null): Music artist names associated with the classified entity.
|
||||
- `entity_type` (string|null): Music entity type used by classification rules.
|
||||
- `genres` (array<string>|null): Normalized music genre values used by classification rules.
|
||||
- `release_status` (string|null): Music release status used by classification rules.
|
||||
- `secondary_types` (array<string>|null): Secondary music release-group types used by classification rules.
|
||||
- `tags` (array<string>|null): Comma-separated Douban Music category tags; use only with a Douban Music exploration source.
|
||||
|
||||
### `ClassificationPolicy-Input`
|
||||
Complete versioned automatic media-classification policy.
|
||||
- `categories` (array<ClassificationCategory>): Complete ordered media-category definitions in the classification policy.
|
||||
- `enrichment_mode` (string(primary_only,enrich_missing); default `primary_only`): Metadata enrichment mode used to populate classification facts.
|
||||
- `fallbacks` (object): Fallback category or label actions used when no classification rule matches.
|
||||
- `field_aliases` (object): Optional aliases mapping source-specific fields to normalized classification fields.
|
||||
- `mode` (string=first_match; default `first_match`): Operation mode; music.explore accepts chart or fresh, while transfer history records move, copy, link, or softlink.
|
||||
- `revision` (integer; default `0`; minimum `0.0`): Published classification policy revision or expected revision number.
|
||||
- `rules` (array<ClassificationRule-Input>): Ordered classification rules evaluated from highest priority to lowest.
|
||||
- `schema_version` (integer=2; default `2`): Classification policy schema version expected by the server.
|
||||
- `updated_at` (string|null): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `FileItem-Input`
|
||||
One file or directory returned by a configured storage provider.
|
||||
- `basename` (string|null): Base filename without its parent path.
|
||||
- `children` (array<FileItem-Input>|null): Child storage items nested below this item.
|
||||
- `drive_id` (string|null): Provider-native storage drive identifier.
|
||||
- `extension` (string|null): Filename extension, including or excluding the leading dot as returned by storage.
|
||||
- `fileid` (string|null): Provider-native storage item identifier.
|
||||
- `modify_time` (number|null): Storage item modification timestamp.
|
||||
- `name` (string|null): Human-readable name of the site, storage item, subscription, or rule group.
|
||||
- `parent_fileid` (string|null): Provider-native identifier of the parent storage directory.
|
||||
- `path` (string|null; default `/`): Storage or history path represented by this record.
|
||||
- `pickcode` (string|null): 115 storage pickcode associated with the item.
|
||||
- `size` (integer|null): File or torrent size in bytes.
|
||||
- `storage` (string|null; default `local`): Configured storage name or storage type used by the operation.
|
||||
- `thumbnail` (string|null): Thumbnail URL returned by the storage provider.
|
||||
- `type` (string|null): MoviePilot media or storage item type required by the selected operation.
|
||||
- `url` (string|null): Site, storage, or torrent URL represented by this field.
|
||||
|
||||
### `JsonData-Input`
|
||||
Arbitrary JSON-compatible auxiliary data.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaSource`
|
||||
Canonical metadata source identifier paired with a source-native media ID.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaType`
|
||||
MoviePilot media type.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `SubscriptionExecutionStatus`
|
||||
Subscription refresh execution status and progress summary.
|
||||
- `batch_id` (string|null): Stable subscription search batch identifier.
|
||||
- `can_cancel` (boolean; default `False`): Whether the current subscription execution can be cancelled.
|
||||
- `current_site_id` (integer|null): Configured site ID currently handling the subscription execution.
|
||||
- `error` (string|null): Human-readable workflow, provider, or execution error message.
|
||||
- `next_run_at` (string|null): Next scheduled subscription search time. Null when no future execution is planned.
|
||||
- `phase*` (string): Current phase of a subscription execution.
|
||||
- `source` (string|null): Exact metadata or recommendation source selected by the operation.
|
||||
- `state*` (string): Current site, subscription, marketplace, or transfer state filter.
|
||||
- `task_id` (string|null): Stable durable transfer task ID returned by transfer.manual_reviews.
|
||||
- `updated_at*` (string): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `TorrentInfo`
|
||||
One torrent candidate returned by MoviePilot search.
|
||||
- `category` (string|null): MoviePilot media category or filter-group category, depending on the operation.
|
||||
- `date_elapsed` (string|null): Human-readable age of the torrent publication date.
|
||||
- `description` (string|null): Human-readable media, torrent, or subscription description.
|
||||
- `downloadvolumefactor` (number|null): Torrent download-volume multiplier reported by the site.
|
||||
- `enclosure` (string|null): Torrent download URL or enclosure supplied by the indexer result.
|
||||
- `freedate` (string|null): Torrent freeleech expiration timestamp reported by the site.
|
||||
- `freedate_diff` (string|null): Seconds remaining until the torrent freeleech period ends.
|
||||
- `grabs` (integer|null; default `0`): Number of completed downloads reported for the torrent.
|
||||
- `hit_and_run` (boolean|null; default `False`): Whether the torrent is subject to hit-and-run requirements.
|
||||
- `labels` (array<string>|null): Labels attached to the media, classification result, or torrent result.
|
||||
- `media_id` (string|null): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source` (MediaSource|null): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
- `page_url` (string|null): Public details page for the torrent result.
|
||||
- `peers` (integer|null; default `0`): Number of downloading peers reported for the torrent.
|
||||
- `pri_order` (integer|null; default `0`): Indexer priority order assigned to the torrent result.
|
||||
- `pubdate` (string|null): Torrent publication timestamp.
|
||||
- `seeders` (integer|null; default `0`): Minimum seeder expression for a filter rule, or the torrent's seeder count.
|
||||
- `site` (integer|null): Source site identifier associated with the torrent result.
|
||||
- `site_cookie` (string|null): Site cookie bundled with the torrent result. Treat this value as a secret.
|
||||
- `site_downloader` (string|null): Downloader instance selected by the source site.
|
||||
- `site_name` (string|null): Human-readable source site name.
|
||||
- `site_order` (integer|null; default `0`): Source site's configured search order.
|
||||
- `site_proxy` (boolean|null; default `False`): Whether the torrent's source site uses the configured proxy.
|
||||
- `site_ua` (string|null): User-Agent associated with the source site.
|
||||
- `size` (number|null; default `0.0`): File or torrent size in bytes.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `uploadvolumefactor` (number|null): Torrent upload-volume multiplier reported by the site.
|
||||
- `volume_factor` (string|null): Combined upload/download volume-factor label shown for the torrent.
|
||||
|
||||
### `WorkflowExecutionConfig`
|
||||
Workflow concurrency, join, branch, and failure policies.
|
||||
- `max_workers` (integer|null): Maximum concurrent workflow actions allowed by the execution configuration.
|
||||
|
||||
### `WorkflowExecutionState-Input`
|
||||
Persisted resumable workflow execution state.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `nodes` (object): Persisted workflow node runtime states keyed by action identity.
|
||||
- `outputs` (object): Named output mappings produced by this workflow action.
|
||||
- `runtime` (WorkflowRuntimeState): Persisted workflow runtime metadata used for safe resume.
|
||||
- `version` (integer; default `1`): Plugin release or schema version selected by the operation.
|
||||
|
||||
### `WorkflowRuntimeState`
|
||||
Complete persisted workflow runtime and progress state.
|
||||
- `attempts` (object): Attempt counters keyed by workflow node or operation identity.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `finished_actions` (integer; default `0`): Workflow action IDs already completed in the persisted execution state.
|
||||
- `node_states` (object): Persisted runtime states keyed by workflow node identity.
|
||||
- `progress` (integer; default `0`): Current numeric or structured workflow execution progress.
|
||||
- `running_tasks` (integer; default `0`): Workflow task IDs currently executing.
|
||||
|
||||
@@ -47,3 +47,163 @@ Purpose: Read configured directory or storage settings.
|
||||
- `path_params`: none
|
||||
- `query`: `count` (integer|null): Optional page size for a legacy full-list endpoint. Supplying page or count activates pagination; an omitted count then uses 50.; `directory_type` (string; default `all`): Directory configuration subtype to return.; `name` (string|null): Human-readable name of the site, storage item, subscription, or rule group.; `page` (integer|null): Optional one-based page for a legacy full-list endpoint. Omit both page and count to keep the original unpaginated full result.; `storage_type` (string; default `all`): Configured storage provider type to return.
|
||||
- `body`: none
|
||||
|
||||
## Body Models
|
||||
|
||||
This category document is self-contained: the shared models below are included so the Agent does not need a second Skill document before calling the API.
|
||||
|
||||
### `ClassificationFacts`
|
||||
Normalized media facts evaluated by the automatic classification policy.
|
||||
- `extensions` (object): Additional normalized classification facts supplied by extensions.
|
||||
- `field_sources` (object): Source provenance for normalized classification facts.
|
||||
- `identity*` (ClassificationIdentityFacts): Stable source-native media identity used by classification facts.
|
||||
- `media*` (ClassificationMediaFacts): Media metadata input used for a classification preview.
|
||||
- `music` (ClassificationMusicFacts|null): Music-specific normalized facts used by classification rules.
|
||||
|
||||
### `ClassificationFactsPreviewInput`
|
||||
Normalized facts supplied directly for a classification preview.
|
||||
- `facts*` (ClassificationFacts): Normalized media facts to evaluate during a classification preview.
|
||||
- `kind` (string=facts; default `facts`): Classification rule or preview-input kind selected by the request.
|
||||
|
||||
### `ClassificationIdentityFacts`
|
||||
Stable source-native identity used by classification evaluation.
|
||||
- `media_id*` (string): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source*` (string): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
|
||||
### `ClassificationMediaFacts`
|
||||
Normalized movie, TV, or shared media facts used by classification rules.
|
||||
- `adult` (boolean|null): Whether the media is marked as adult content.
|
||||
- `companies` (array<string>|null): Production companies or studios associated with the media.
|
||||
- `content_rating` (string|null): Content rating assigned to the media.
|
||||
- `countries` (array<string>|null): Normalized country or region codes used by classification rules.
|
||||
- `genre_keys` (array<string>|null): Normalized MoviePilot genre keys used by classification rules.
|
||||
- `genre_names` (array<string>|null): Source-provided genre names used as classification facts.
|
||||
- `language` (string|null): Normalized media language code used by classification rules.
|
||||
- `networks` (array<string>|null): Television networks or streaming platforms associated with the media.
|
||||
- `runtime` (integer|null): Persisted workflow runtime metadata used for safe resume.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `type*` (string): MoviePilot media or storage item type required by the selected operation.
|
||||
- `year` (integer|null): Release or premiere year used to disambiguate the media title.
|
||||
|
||||
### `ClassificationMediaPreviewInput`
|
||||
A selected media search result supplied for classification preview.
|
||||
- `kind` (string=media; default `media`): Classification rule or preview-input kind selected by the request.
|
||||
- `media*` (object): Media metadata input used for a classification preview.
|
||||
|
||||
### `ClassificationMusicFacts`
|
||||
Music-specific facts used by automatic classification rules.
|
||||
- `album_type` (string|null): Music album or release-group type used by classification rules.
|
||||
- `artist_country` (string|null): Country or region associated with the music artist.
|
||||
- `artists` (array<string>|null): Music artist names associated with the classified entity.
|
||||
- `entity_type` (string|null): Music entity type used by classification rules.
|
||||
- `genres` (array<string>|null): Normalized music genre values used by classification rules.
|
||||
- `release_status` (string|null): Music release status used by classification rules.
|
||||
- `secondary_types` (array<string>|null): Secondary music release-group types used by classification rules.
|
||||
- `tags` (array<string>|null): Comma-separated Douban Music category tags; use only with a Douban Music exploration source.
|
||||
|
||||
### `ClassificationPolicy-Input`
|
||||
Complete versioned automatic media-classification policy.
|
||||
- `categories` (array<ClassificationCategory>): Complete ordered media-category definitions in the classification policy.
|
||||
- `enrichment_mode` (string(primary_only,enrich_missing); default `primary_only`): Metadata enrichment mode used to populate classification facts.
|
||||
- `fallbacks` (object): Fallback category or label actions used when no classification rule matches.
|
||||
- `field_aliases` (object): Optional aliases mapping source-specific fields to normalized classification fields.
|
||||
- `mode` (string=first_match; default `first_match`): Operation mode; music.explore accepts chart or fresh, while transfer history records move, copy, link, or softlink.
|
||||
- `revision` (integer; default `0`; minimum `0.0`): Published classification policy revision or expected revision number.
|
||||
- `rules` (array<ClassificationRule-Input>): Ordered classification rules evaluated from highest priority to lowest.
|
||||
- `schema_version` (integer=2; default `2`): Classification policy schema version expected by the server.
|
||||
- `updated_at` (string|null): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `FileItem-Input`
|
||||
One file or directory returned by a configured storage provider.
|
||||
- `basename` (string|null): Base filename without its parent path.
|
||||
- `children` (array<FileItem-Input>|null): Child storage items nested below this item.
|
||||
- `drive_id` (string|null): Provider-native storage drive identifier.
|
||||
- `extension` (string|null): Filename extension, including or excluding the leading dot as returned by storage.
|
||||
- `fileid` (string|null): Provider-native storage item identifier.
|
||||
- `modify_time` (number|null): Storage item modification timestamp.
|
||||
- `name` (string|null): Human-readable name of the site, storage item, subscription, or rule group.
|
||||
- `parent_fileid` (string|null): Provider-native identifier of the parent storage directory.
|
||||
- `path` (string|null; default `/`): Storage or history path represented by this record.
|
||||
- `pickcode` (string|null): 115 storage pickcode associated with the item.
|
||||
- `size` (integer|null): File or torrent size in bytes.
|
||||
- `storage` (string|null; default `local`): Configured storage name or storage type used by the operation.
|
||||
- `thumbnail` (string|null): Thumbnail URL returned by the storage provider.
|
||||
- `type` (string|null): MoviePilot media or storage item type required by the selected operation.
|
||||
- `url` (string|null): Site, storage, or torrent URL represented by this field.
|
||||
|
||||
### `JsonData-Input`
|
||||
Arbitrary JSON-compatible auxiliary data.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaSource`
|
||||
Canonical metadata source identifier paired with a source-native media ID.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaType`
|
||||
MoviePilot media type.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `SubscriptionExecutionStatus`
|
||||
Subscription refresh execution status and progress summary.
|
||||
- `batch_id` (string|null): Stable subscription search batch identifier.
|
||||
- `can_cancel` (boolean; default `False`): Whether the current subscription execution can be cancelled.
|
||||
- `current_site_id` (integer|null): Configured site ID currently handling the subscription execution.
|
||||
- `error` (string|null): Human-readable workflow, provider, or execution error message.
|
||||
- `next_run_at` (string|null): Next scheduled subscription search time. Null when no future execution is planned.
|
||||
- `phase*` (string): Current phase of a subscription execution.
|
||||
- `source` (string|null): Exact metadata or recommendation source selected by the operation.
|
||||
- `state*` (string): Current site, subscription, marketplace, or transfer state filter.
|
||||
- `task_id` (string|null): Stable durable transfer task ID returned by transfer.manual_reviews.
|
||||
- `updated_at*` (string): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `TorrentInfo`
|
||||
One torrent candidate returned by MoviePilot search.
|
||||
- `category` (string|null): MoviePilot media category or filter-group category, depending on the operation.
|
||||
- `date_elapsed` (string|null): Human-readable age of the torrent publication date.
|
||||
- `description` (string|null): Human-readable media, torrent, or subscription description.
|
||||
- `downloadvolumefactor` (number|null): Torrent download-volume multiplier reported by the site.
|
||||
- `enclosure` (string|null): Torrent download URL or enclosure supplied by the indexer result.
|
||||
- `freedate` (string|null): Torrent freeleech expiration timestamp reported by the site.
|
||||
- `freedate_diff` (string|null): Seconds remaining until the torrent freeleech period ends.
|
||||
- `grabs` (integer|null; default `0`): Number of completed downloads reported for the torrent.
|
||||
- `hit_and_run` (boolean|null; default `False`): Whether the torrent is subject to hit-and-run requirements.
|
||||
- `labels` (array<string>|null): Labels attached to the media, classification result, or torrent result.
|
||||
- `media_id` (string|null): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source` (MediaSource|null): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
- `page_url` (string|null): Public details page for the torrent result.
|
||||
- `peers` (integer|null; default `0`): Number of downloading peers reported for the torrent.
|
||||
- `pri_order` (integer|null; default `0`): Indexer priority order assigned to the torrent result.
|
||||
- `pubdate` (string|null): Torrent publication timestamp.
|
||||
- `seeders` (integer|null; default `0`): Minimum seeder expression for a filter rule, or the torrent's seeder count.
|
||||
- `site` (integer|null): Source site identifier associated with the torrent result.
|
||||
- `site_cookie` (string|null): Site cookie bundled with the torrent result. Treat this value as a secret.
|
||||
- `site_downloader` (string|null): Downloader instance selected by the source site.
|
||||
- `site_name` (string|null): Human-readable source site name.
|
||||
- `site_order` (integer|null; default `0`): Source site's configured search order.
|
||||
- `site_proxy` (boolean|null; default `False`): Whether the torrent's source site uses the configured proxy.
|
||||
- `site_ua` (string|null): User-Agent associated with the source site.
|
||||
- `size` (number|null; default `0.0`): File or torrent size in bytes.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `uploadvolumefactor` (number|null): Torrent upload-volume multiplier reported by the site.
|
||||
- `volume_factor` (string|null): Combined upload/download volume-factor label shown for the torrent.
|
||||
|
||||
### `WorkflowExecutionConfig`
|
||||
Workflow concurrency, join, branch, and failure policies.
|
||||
- `max_workers` (integer|null): Maximum concurrent workflow actions allowed by the execution configuration.
|
||||
|
||||
### `WorkflowExecutionState-Input`
|
||||
Persisted resumable workflow execution state.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `nodes` (object): Persisted workflow node runtime states keyed by action identity.
|
||||
- `outputs` (object): Named output mappings produced by this workflow action.
|
||||
- `runtime` (WorkflowRuntimeState): Persisted workflow runtime metadata used for safe resume.
|
||||
- `version` (integer; default `1`): Plugin release or schema version selected by the operation.
|
||||
|
||||
### `WorkflowRuntimeState`
|
||||
Complete persisted workflow runtime and progress state.
|
||||
- `attempts` (object): Attempt counters keyed by workflow node or operation identity.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `finished_actions` (integer; default `0`): Workflow action IDs already completed in the persisted execution state.
|
||||
- `node_states` (object): Persisted runtime states keyed by workflow node identity.
|
||||
- `progress` (integer; default `0`): Current numeric or structured workflow execution progress.
|
||||
- `running_tasks` (integer; default `0`): Workflow task IDs currently executing.
|
||||
|
||||
@@ -214,3 +214,163 @@ Purpose: List public subscriptions owned by one accessible MoviePilot username.
|
||||
- `path_params`: `username*` (string): MoviePilot or site username required by the selected operation.
|
||||
- `query`: `count` (integer|null): Optional page size for a legacy full-list endpoint. Supplying page or count activates pagination; an omitted count then uses 50.; `page` (integer|null): Optional one-based page for a legacy full-list endpoint. Omit both page and count to keep the original unpaginated full result.
|
||||
- `body`: none
|
||||
|
||||
## Body Models
|
||||
|
||||
This category document is self-contained: the shared models below are included so the Agent does not need a second Skill document before calling the API.
|
||||
|
||||
### `ClassificationFacts`
|
||||
Normalized media facts evaluated by the automatic classification policy.
|
||||
- `extensions` (object): Additional normalized classification facts supplied by extensions.
|
||||
- `field_sources` (object): Source provenance for normalized classification facts.
|
||||
- `identity*` (ClassificationIdentityFacts): Stable source-native media identity used by classification facts.
|
||||
- `media*` (ClassificationMediaFacts): Media metadata input used for a classification preview.
|
||||
- `music` (ClassificationMusicFacts|null): Music-specific normalized facts used by classification rules.
|
||||
|
||||
### `ClassificationFactsPreviewInput`
|
||||
Normalized facts supplied directly for a classification preview.
|
||||
- `facts*` (ClassificationFacts): Normalized media facts to evaluate during a classification preview.
|
||||
- `kind` (string=facts; default `facts`): Classification rule or preview-input kind selected by the request.
|
||||
|
||||
### `ClassificationIdentityFacts`
|
||||
Stable source-native identity used by classification evaluation.
|
||||
- `media_id*` (string): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source*` (string): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
|
||||
### `ClassificationMediaFacts`
|
||||
Normalized movie, TV, or shared media facts used by classification rules.
|
||||
- `adult` (boolean|null): Whether the media is marked as adult content.
|
||||
- `companies` (array<string>|null): Production companies or studios associated with the media.
|
||||
- `content_rating` (string|null): Content rating assigned to the media.
|
||||
- `countries` (array<string>|null): Normalized country or region codes used by classification rules.
|
||||
- `genre_keys` (array<string>|null): Normalized MoviePilot genre keys used by classification rules.
|
||||
- `genre_names` (array<string>|null): Source-provided genre names used as classification facts.
|
||||
- `language` (string|null): Normalized media language code used by classification rules.
|
||||
- `networks` (array<string>|null): Television networks or streaming platforms associated with the media.
|
||||
- `runtime` (integer|null): Persisted workflow runtime metadata used for safe resume.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `type*` (string): MoviePilot media or storage item type required by the selected operation.
|
||||
- `year` (integer|null): Release or premiere year used to disambiguate the media title.
|
||||
|
||||
### `ClassificationMediaPreviewInput`
|
||||
A selected media search result supplied for classification preview.
|
||||
- `kind` (string=media; default `media`): Classification rule or preview-input kind selected by the request.
|
||||
- `media*` (object): Media metadata input used for a classification preview.
|
||||
|
||||
### `ClassificationMusicFacts`
|
||||
Music-specific facts used by automatic classification rules.
|
||||
- `album_type` (string|null): Music album or release-group type used by classification rules.
|
||||
- `artist_country` (string|null): Country or region associated with the music artist.
|
||||
- `artists` (array<string>|null): Music artist names associated with the classified entity.
|
||||
- `entity_type` (string|null): Music entity type used by classification rules.
|
||||
- `genres` (array<string>|null): Normalized music genre values used by classification rules.
|
||||
- `release_status` (string|null): Music release status used by classification rules.
|
||||
- `secondary_types` (array<string>|null): Secondary music release-group types used by classification rules.
|
||||
- `tags` (array<string>|null): Comma-separated Douban Music category tags; use only with a Douban Music exploration source.
|
||||
|
||||
### `ClassificationPolicy-Input`
|
||||
Complete versioned automatic media-classification policy.
|
||||
- `categories` (array<ClassificationCategory>): Complete ordered media-category definitions in the classification policy.
|
||||
- `enrichment_mode` (string(primary_only,enrich_missing); default `primary_only`): Metadata enrichment mode used to populate classification facts.
|
||||
- `fallbacks` (object): Fallback category or label actions used when no classification rule matches.
|
||||
- `field_aliases` (object): Optional aliases mapping source-specific fields to normalized classification fields.
|
||||
- `mode` (string=first_match; default `first_match`): Operation mode; music.explore accepts chart or fresh, while transfer history records move, copy, link, or softlink.
|
||||
- `revision` (integer; default `0`; minimum `0.0`): Published classification policy revision or expected revision number.
|
||||
- `rules` (array<ClassificationRule-Input>): Ordered classification rules evaluated from highest priority to lowest.
|
||||
- `schema_version` (integer=2; default `2`): Classification policy schema version expected by the server.
|
||||
- `updated_at` (string|null): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `FileItem-Input`
|
||||
One file or directory returned by a configured storage provider.
|
||||
- `basename` (string|null): Base filename without its parent path.
|
||||
- `children` (array<FileItem-Input>|null): Child storage items nested below this item.
|
||||
- `drive_id` (string|null): Provider-native storage drive identifier.
|
||||
- `extension` (string|null): Filename extension, including or excluding the leading dot as returned by storage.
|
||||
- `fileid` (string|null): Provider-native storage item identifier.
|
||||
- `modify_time` (number|null): Storage item modification timestamp.
|
||||
- `name` (string|null): Human-readable name of the site, storage item, subscription, or rule group.
|
||||
- `parent_fileid` (string|null): Provider-native identifier of the parent storage directory.
|
||||
- `path` (string|null; default `/`): Storage or history path represented by this record.
|
||||
- `pickcode` (string|null): 115 storage pickcode associated with the item.
|
||||
- `size` (integer|null): File or torrent size in bytes.
|
||||
- `storage` (string|null; default `local`): Configured storage name or storage type used by the operation.
|
||||
- `thumbnail` (string|null): Thumbnail URL returned by the storage provider.
|
||||
- `type` (string|null): MoviePilot media or storage item type required by the selected operation.
|
||||
- `url` (string|null): Site, storage, or torrent URL represented by this field.
|
||||
|
||||
### `JsonData-Input`
|
||||
Arbitrary JSON-compatible auxiliary data.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaSource`
|
||||
Canonical metadata source identifier paired with a source-native media ID.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaType`
|
||||
MoviePilot media type.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `SubscriptionExecutionStatus`
|
||||
Subscription refresh execution status and progress summary.
|
||||
- `batch_id` (string|null): Stable subscription search batch identifier.
|
||||
- `can_cancel` (boolean; default `False`): Whether the current subscription execution can be cancelled.
|
||||
- `current_site_id` (integer|null): Configured site ID currently handling the subscription execution.
|
||||
- `error` (string|null): Human-readable workflow, provider, or execution error message.
|
||||
- `next_run_at` (string|null): Next scheduled subscription search time. Null when no future execution is planned.
|
||||
- `phase*` (string): Current phase of a subscription execution.
|
||||
- `source` (string|null): Exact metadata or recommendation source selected by the operation.
|
||||
- `state*` (string): Current site, subscription, marketplace, or transfer state filter.
|
||||
- `task_id` (string|null): Stable durable transfer task ID returned by transfer.manual_reviews.
|
||||
- `updated_at*` (string): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `TorrentInfo`
|
||||
One torrent candidate returned by MoviePilot search.
|
||||
- `category` (string|null): MoviePilot media category or filter-group category, depending on the operation.
|
||||
- `date_elapsed` (string|null): Human-readable age of the torrent publication date.
|
||||
- `description` (string|null): Human-readable media, torrent, or subscription description.
|
||||
- `downloadvolumefactor` (number|null): Torrent download-volume multiplier reported by the site.
|
||||
- `enclosure` (string|null): Torrent download URL or enclosure supplied by the indexer result.
|
||||
- `freedate` (string|null): Torrent freeleech expiration timestamp reported by the site.
|
||||
- `freedate_diff` (string|null): Seconds remaining until the torrent freeleech period ends.
|
||||
- `grabs` (integer|null; default `0`): Number of completed downloads reported for the torrent.
|
||||
- `hit_and_run` (boolean|null; default `False`): Whether the torrent is subject to hit-and-run requirements.
|
||||
- `labels` (array<string>|null): Labels attached to the media, classification result, or torrent result.
|
||||
- `media_id` (string|null): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source` (MediaSource|null): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
- `page_url` (string|null): Public details page for the torrent result.
|
||||
- `peers` (integer|null; default `0`): Number of downloading peers reported for the torrent.
|
||||
- `pri_order` (integer|null; default `0`): Indexer priority order assigned to the torrent result.
|
||||
- `pubdate` (string|null): Torrent publication timestamp.
|
||||
- `seeders` (integer|null; default `0`): Minimum seeder expression for a filter rule, or the torrent's seeder count.
|
||||
- `site` (integer|null): Source site identifier associated with the torrent result.
|
||||
- `site_cookie` (string|null): Site cookie bundled with the torrent result. Treat this value as a secret.
|
||||
- `site_downloader` (string|null): Downloader instance selected by the source site.
|
||||
- `site_name` (string|null): Human-readable source site name.
|
||||
- `site_order` (integer|null; default `0`): Source site's configured search order.
|
||||
- `site_proxy` (boolean|null; default `False`): Whether the torrent's source site uses the configured proxy.
|
||||
- `site_ua` (string|null): User-Agent associated with the source site.
|
||||
- `size` (number|null; default `0.0`): File or torrent size in bytes.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `uploadvolumefactor` (number|null): Torrent upload-volume multiplier reported by the site.
|
||||
- `volume_factor` (string|null): Combined upload/download volume-factor label shown for the torrent.
|
||||
|
||||
### `WorkflowExecutionConfig`
|
||||
Workflow concurrency, join, branch, and failure policies.
|
||||
- `max_workers` (integer|null): Maximum concurrent workflow actions allowed by the execution configuration.
|
||||
|
||||
### `WorkflowExecutionState-Input`
|
||||
Persisted resumable workflow execution state.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `nodes` (object): Persisted workflow node runtime states keyed by action identity.
|
||||
- `outputs` (object): Named output mappings produced by this workflow action.
|
||||
- `runtime` (WorkflowRuntimeState): Persisted workflow runtime metadata used for safe resume.
|
||||
- `version` (integer; default `1`): Plugin release or schema version selected by the operation.
|
||||
|
||||
### `WorkflowRuntimeState`
|
||||
Complete persisted workflow runtime and progress state.
|
||||
- `attempts` (object): Attempt counters keyed by workflow node or operation identity.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `finished_actions` (integer; default `0`): Workflow action IDs already completed in the persisted execution state.
|
||||
- `node_states` (object): Persisted runtime states keyed by workflow node identity.
|
||||
- `progress` (integer; default `0`): Current numeric or structured workflow execution progress.
|
||||
- `running_tasks` (integer; default `0`): Workflow task IDs currently executing.
|
||||
|
||||
@@ -19,3 +19,163 @@ Purpose: Search subtitle providers from a free-form title and optional media fil
|
||||
- `path_params`: none
|
||||
- `query`: `keyword` (string|null): Case-insensitive substring used to discover settings or filter storage entries.; `page` (integer|null; default `0`): One-based result page number.; `sites` (string|null): Exact site IDs included in the search or subscription scope.
|
||||
- `body`: none
|
||||
|
||||
## Body Models
|
||||
|
||||
This category document is self-contained: the shared models below are included so the Agent does not need a second Skill document before calling the API.
|
||||
|
||||
### `ClassificationFacts`
|
||||
Normalized media facts evaluated by the automatic classification policy.
|
||||
- `extensions` (object): Additional normalized classification facts supplied by extensions.
|
||||
- `field_sources` (object): Source provenance for normalized classification facts.
|
||||
- `identity*` (ClassificationIdentityFacts): Stable source-native media identity used by classification facts.
|
||||
- `media*` (ClassificationMediaFacts): Media metadata input used for a classification preview.
|
||||
- `music` (ClassificationMusicFacts|null): Music-specific normalized facts used by classification rules.
|
||||
|
||||
### `ClassificationFactsPreviewInput`
|
||||
Normalized facts supplied directly for a classification preview.
|
||||
- `facts*` (ClassificationFacts): Normalized media facts to evaluate during a classification preview.
|
||||
- `kind` (string=facts; default `facts`): Classification rule or preview-input kind selected by the request.
|
||||
|
||||
### `ClassificationIdentityFacts`
|
||||
Stable source-native identity used by classification evaluation.
|
||||
- `media_id*` (string): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source*` (string): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
|
||||
### `ClassificationMediaFacts`
|
||||
Normalized movie, TV, or shared media facts used by classification rules.
|
||||
- `adult` (boolean|null): Whether the media is marked as adult content.
|
||||
- `companies` (array<string>|null): Production companies or studios associated with the media.
|
||||
- `content_rating` (string|null): Content rating assigned to the media.
|
||||
- `countries` (array<string>|null): Normalized country or region codes used by classification rules.
|
||||
- `genre_keys` (array<string>|null): Normalized MoviePilot genre keys used by classification rules.
|
||||
- `genre_names` (array<string>|null): Source-provided genre names used as classification facts.
|
||||
- `language` (string|null): Normalized media language code used by classification rules.
|
||||
- `networks` (array<string>|null): Television networks or streaming platforms associated with the media.
|
||||
- `runtime` (integer|null): Persisted workflow runtime metadata used for safe resume.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `type*` (string): MoviePilot media or storage item type required by the selected operation.
|
||||
- `year` (integer|null): Release or premiere year used to disambiguate the media title.
|
||||
|
||||
### `ClassificationMediaPreviewInput`
|
||||
A selected media search result supplied for classification preview.
|
||||
- `kind` (string=media; default `media`): Classification rule or preview-input kind selected by the request.
|
||||
- `media*` (object): Media metadata input used for a classification preview.
|
||||
|
||||
### `ClassificationMusicFacts`
|
||||
Music-specific facts used by automatic classification rules.
|
||||
- `album_type` (string|null): Music album or release-group type used by classification rules.
|
||||
- `artist_country` (string|null): Country or region associated with the music artist.
|
||||
- `artists` (array<string>|null): Music artist names associated with the classified entity.
|
||||
- `entity_type` (string|null): Music entity type used by classification rules.
|
||||
- `genres` (array<string>|null): Normalized music genre values used by classification rules.
|
||||
- `release_status` (string|null): Music release status used by classification rules.
|
||||
- `secondary_types` (array<string>|null): Secondary music release-group types used by classification rules.
|
||||
- `tags` (array<string>|null): Comma-separated Douban Music category tags; use only with a Douban Music exploration source.
|
||||
|
||||
### `ClassificationPolicy-Input`
|
||||
Complete versioned automatic media-classification policy.
|
||||
- `categories` (array<ClassificationCategory>): Complete ordered media-category definitions in the classification policy.
|
||||
- `enrichment_mode` (string(primary_only,enrich_missing); default `primary_only`): Metadata enrichment mode used to populate classification facts.
|
||||
- `fallbacks` (object): Fallback category or label actions used when no classification rule matches.
|
||||
- `field_aliases` (object): Optional aliases mapping source-specific fields to normalized classification fields.
|
||||
- `mode` (string=first_match; default `first_match`): Operation mode; music.explore accepts chart or fresh, while transfer history records move, copy, link, or softlink.
|
||||
- `revision` (integer; default `0`; minimum `0.0`): Published classification policy revision or expected revision number.
|
||||
- `rules` (array<ClassificationRule-Input>): Ordered classification rules evaluated from highest priority to lowest.
|
||||
- `schema_version` (integer=2; default `2`): Classification policy schema version expected by the server.
|
||||
- `updated_at` (string|null): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `FileItem-Input`
|
||||
One file or directory returned by a configured storage provider.
|
||||
- `basename` (string|null): Base filename without its parent path.
|
||||
- `children` (array<FileItem-Input>|null): Child storage items nested below this item.
|
||||
- `drive_id` (string|null): Provider-native storage drive identifier.
|
||||
- `extension` (string|null): Filename extension, including or excluding the leading dot as returned by storage.
|
||||
- `fileid` (string|null): Provider-native storage item identifier.
|
||||
- `modify_time` (number|null): Storage item modification timestamp.
|
||||
- `name` (string|null): Human-readable name of the site, storage item, subscription, or rule group.
|
||||
- `parent_fileid` (string|null): Provider-native identifier of the parent storage directory.
|
||||
- `path` (string|null; default `/`): Storage or history path represented by this record.
|
||||
- `pickcode` (string|null): 115 storage pickcode associated with the item.
|
||||
- `size` (integer|null): File or torrent size in bytes.
|
||||
- `storage` (string|null; default `local`): Configured storage name or storage type used by the operation.
|
||||
- `thumbnail` (string|null): Thumbnail URL returned by the storage provider.
|
||||
- `type` (string|null): MoviePilot media or storage item type required by the selected operation.
|
||||
- `url` (string|null): Site, storage, or torrent URL represented by this field.
|
||||
|
||||
### `JsonData-Input`
|
||||
Arbitrary JSON-compatible auxiliary data.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaSource`
|
||||
Canonical metadata source identifier paired with a source-native media ID.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaType`
|
||||
MoviePilot media type.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `SubscriptionExecutionStatus`
|
||||
Subscription refresh execution status and progress summary.
|
||||
- `batch_id` (string|null): Stable subscription search batch identifier.
|
||||
- `can_cancel` (boolean; default `False`): Whether the current subscription execution can be cancelled.
|
||||
- `current_site_id` (integer|null): Configured site ID currently handling the subscription execution.
|
||||
- `error` (string|null): Human-readable workflow, provider, or execution error message.
|
||||
- `next_run_at` (string|null): Next scheduled subscription search time. Null when no future execution is planned.
|
||||
- `phase*` (string): Current phase of a subscription execution.
|
||||
- `source` (string|null): Exact metadata or recommendation source selected by the operation.
|
||||
- `state*` (string): Current site, subscription, marketplace, or transfer state filter.
|
||||
- `task_id` (string|null): Stable durable transfer task ID returned by transfer.manual_reviews.
|
||||
- `updated_at*` (string): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `TorrentInfo`
|
||||
One torrent candidate returned by MoviePilot search.
|
||||
- `category` (string|null): MoviePilot media category or filter-group category, depending on the operation.
|
||||
- `date_elapsed` (string|null): Human-readable age of the torrent publication date.
|
||||
- `description` (string|null): Human-readable media, torrent, or subscription description.
|
||||
- `downloadvolumefactor` (number|null): Torrent download-volume multiplier reported by the site.
|
||||
- `enclosure` (string|null): Torrent download URL or enclosure supplied by the indexer result.
|
||||
- `freedate` (string|null): Torrent freeleech expiration timestamp reported by the site.
|
||||
- `freedate_diff` (string|null): Seconds remaining until the torrent freeleech period ends.
|
||||
- `grabs` (integer|null; default `0`): Number of completed downloads reported for the torrent.
|
||||
- `hit_and_run` (boolean|null; default `False`): Whether the torrent is subject to hit-and-run requirements.
|
||||
- `labels` (array<string>|null): Labels attached to the media, classification result, or torrent result.
|
||||
- `media_id` (string|null): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source` (MediaSource|null): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
- `page_url` (string|null): Public details page for the torrent result.
|
||||
- `peers` (integer|null; default `0`): Number of downloading peers reported for the torrent.
|
||||
- `pri_order` (integer|null; default `0`): Indexer priority order assigned to the torrent result.
|
||||
- `pubdate` (string|null): Torrent publication timestamp.
|
||||
- `seeders` (integer|null; default `0`): Minimum seeder expression for a filter rule, or the torrent's seeder count.
|
||||
- `site` (integer|null): Source site identifier associated with the torrent result.
|
||||
- `site_cookie` (string|null): Site cookie bundled with the torrent result. Treat this value as a secret.
|
||||
- `site_downloader` (string|null): Downloader instance selected by the source site.
|
||||
- `site_name` (string|null): Human-readable source site name.
|
||||
- `site_order` (integer|null; default `0`): Source site's configured search order.
|
||||
- `site_proxy` (boolean|null; default `False`): Whether the torrent's source site uses the configured proxy.
|
||||
- `site_ua` (string|null): User-Agent associated with the source site.
|
||||
- `size` (number|null; default `0.0`): File or torrent size in bytes.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `uploadvolumefactor` (number|null): Torrent upload-volume multiplier reported by the site.
|
||||
- `volume_factor` (string|null): Combined upload/download volume-factor label shown for the torrent.
|
||||
|
||||
### `WorkflowExecutionConfig`
|
||||
Workflow concurrency, join, branch, and failure policies.
|
||||
- `max_workers` (integer|null): Maximum concurrent workflow actions allowed by the execution configuration.
|
||||
|
||||
### `WorkflowExecutionState-Input`
|
||||
Persisted resumable workflow execution state.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `nodes` (object): Persisted workflow node runtime states keyed by action identity.
|
||||
- `outputs` (object): Named output mappings produced by this workflow action.
|
||||
- `runtime` (WorkflowRuntimeState): Persisted workflow runtime metadata used for safe resume.
|
||||
- `version` (integer; default `1`): Plugin release or schema version selected by the operation.
|
||||
|
||||
### `WorkflowRuntimeState`
|
||||
Complete persisted workflow runtime and progress state.
|
||||
- `attempts` (object): Attempt counters keyed by workflow node or operation identity.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `finished_actions` (integer; default `0`): Workflow action IDs already completed in the persisted execution state.
|
||||
- `node_states` (object): Persisted runtime states keyed by workflow node identity.
|
||||
- `progress` (integer; default `0`): Current numeric or structured workflow execution progress.
|
||||
- `running_tasks` (integer; default `0`): Workflow task IDs currently executing.
|
||||
|
||||
@@ -89,3 +89,163 @@ Purpose: List available MoviePilot GitHub releases.
|
||||
- `path_params`: none
|
||||
- `query`: `count` (integer|null): Optional page size for a legacy full-list endpoint. Supplying page or count activates pagination; an omitted count then uses 50.; `page` (integer|null): Optional one-based page for a legacy full-list endpoint. Omit both page and count to keep the original unpaginated full result.
|
||||
- `body`: none
|
||||
|
||||
## Body Models
|
||||
|
||||
This category document is self-contained: the shared models below are included so the Agent does not need a second Skill document before calling the API.
|
||||
|
||||
### `ClassificationFacts`
|
||||
Normalized media facts evaluated by the automatic classification policy.
|
||||
- `extensions` (object): Additional normalized classification facts supplied by extensions.
|
||||
- `field_sources` (object): Source provenance for normalized classification facts.
|
||||
- `identity*` (ClassificationIdentityFacts): Stable source-native media identity used by classification facts.
|
||||
- `media*` (ClassificationMediaFacts): Media metadata input used for a classification preview.
|
||||
- `music` (ClassificationMusicFacts|null): Music-specific normalized facts used by classification rules.
|
||||
|
||||
### `ClassificationFactsPreviewInput`
|
||||
Normalized facts supplied directly for a classification preview.
|
||||
- `facts*` (ClassificationFacts): Normalized media facts to evaluate during a classification preview.
|
||||
- `kind` (string=facts; default `facts`): Classification rule or preview-input kind selected by the request.
|
||||
|
||||
### `ClassificationIdentityFacts`
|
||||
Stable source-native identity used by classification evaluation.
|
||||
- `media_id*` (string): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source*` (string): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
|
||||
### `ClassificationMediaFacts`
|
||||
Normalized movie, TV, or shared media facts used by classification rules.
|
||||
- `adult` (boolean|null): Whether the media is marked as adult content.
|
||||
- `companies` (array<string>|null): Production companies or studios associated with the media.
|
||||
- `content_rating` (string|null): Content rating assigned to the media.
|
||||
- `countries` (array<string>|null): Normalized country or region codes used by classification rules.
|
||||
- `genre_keys` (array<string>|null): Normalized MoviePilot genre keys used by classification rules.
|
||||
- `genre_names` (array<string>|null): Source-provided genre names used as classification facts.
|
||||
- `language` (string|null): Normalized media language code used by classification rules.
|
||||
- `networks` (array<string>|null): Television networks or streaming platforms associated with the media.
|
||||
- `runtime` (integer|null): Persisted workflow runtime metadata used for safe resume.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `type*` (string): MoviePilot media or storage item type required by the selected operation.
|
||||
- `year` (integer|null): Release or premiere year used to disambiguate the media title.
|
||||
|
||||
### `ClassificationMediaPreviewInput`
|
||||
A selected media search result supplied for classification preview.
|
||||
- `kind` (string=media; default `media`): Classification rule or preview-input kind selected by the request.
|
||||
- `media*` (object): Media metadata input used for a classification preview.
|
||||
|
||||
### `ClassificationMusicFacts`
|
||||
Music-specific facts used by automatic classification rules.
|
||||
- `album_type` (string|null): Music album or release-group type used by classification rules.
|
||||
- `artist_country` (string|null): Country or region associated with the music artist.
|
||||
- `artists` (array<string>|null): Music artist names associated with the classified entity.
|
||||
- `entity_type` (string|null): Music entity type used by classification rules.
|
||||
- `genres` (array<string>|null): Normalized music genre values used by classification rules.
|
||||
- `release_status` (string|null): Music release status used by classification rules.
|
||||
- `secondary_types` (array<string>|null): Secondary music release-group types used by classification rules.
|
||||
- `tags` (array<string>|null): Comma-separated Douban Music category tags; use only with a Douban Music exploration source.
|
||||
|
||||
### `ClassificationPolicy-Input`
|
||||
Complete versioned automatic media-classification policy.
|
||||
- `categories` (array<ClassificationCategory>): Complete ordered media-category definitions in the classification policy.
|
||||
- `enrichment_mode` (string(primary_only,enrich_missing); default `primary_only`): Metadata enrichment mode used to populate classification facts.
|
||||
- `fallbacks` (object): Fallback category or label actions used when no classification rule matches.
|
||||
- `field_aliases` (object): Optional aliases mapping source-specific fields to normalized classification fields.
|
||||
- `mode` (string=first_match; default `first_match`): Operation mode; music.explore accepts chart or fresh, while transfer history records move, copy, link, or softlink.
|
||||
- `revision` (integer; default `0`; minimum `0.0`): Published classification policy revision or expected revision number.
|
||||
- `rules` (array<ClassificationRule-Input>): Ordered classification rules evaluated from highest priority to lowest.
|
||||
- `schema_version` (integer=2; default `2`): Classification policy schema version expected by the server.
|
||||
- `updated_at` (string|null): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `FileItem-Input`
|
||||
One file or directory returned by a configured storage provider.
|
||||
- `basename` (string|null): Base filename without its parent path.
|
||||
- `children` (array<FileItem-Input>|null): Child storage items nested below this item.
|
||||
- `drive_id` (string|null): Provider-native storage drive identifier.
|
||||
- `extension` (string|null): Filename extension, including or excluding the leading dot as returned by storage.
|
||||
- `fileid` (string|null): Provider-native storage item identifier.
|
||||
- `modify_time` (number|null): Storage item modification timestamp.
|
||||
- `name` (string|null): Human-readable name of the site, storage item, subscription, or rule group.
|
||||
- `parent_fileid` (string|null): Provider-native identifier of the parent storage directory.
|
||||
- `path` (string|null; default `/`): Storage or history path represented by this record.
|
||||
- `pickcode` (string|null): 115 storage pickcode associated with the item.
|
||||
- `size` (integer|null): File or torrent size in bytes.
|
||||
- `storage` (string|null; default `local`): Configured storage name or storage type used by the operation.
|
||||
- `thumbnail` (string|null): Thumbnail URL returned by the storage provider.
|
||||
- `type` (string|null): MoviePilot media or storage item type required by the selected operation.
|
||||
- `url` (string|null): Site, storage, or torrent URL represented by this field.
|
||||
|
||||
### `JsonData-Input`
|
||||
Arbitrary JSON-compatible auxiliary data.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaSource`
|
||||
Canonical metadata source identifier paired with a source-native media ID.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaType`
|
||||
MoviePilot media type.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `SubscriptionExecutionStatus`
|
||||
Subscription refresh execution status and progress summary.
|
||||
- `batch_id` (string|null): Stable subscription search batch identifier.
|
||||
- `can_cancel` (boolean; default `False`): Whether the current subscription execution can be cancelled.
|
||||
- `current_site_id` (integer|null): Configured site ID currently handling the subscription execution.
|
||||
- `error` (string|null): Human-readable workflow, provider, or execution error message.
|
||||
- `next_run_at` (string|null): Next scheduled subscription search time. Null when no future execution is planned.
|
||||
- `phase*` (string): Current phase of a subscription execution.
|
||||
- `source` (string|null): Exact metadata or recommendation source selected by the operation.
|
||||
- `state*` (string): Current site, subscription, marketplace, or transfer state filter.
|
||||
- `task_id` (string|null): Stable durable transfer task ID returned by transfer.manual_reviews.
|
||||
- `updated_at*` (string): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `TorrentInfo`
|
||||
One torrent candidate returned by MoviePilot search.
|
||||
- `category` (string|null): MoviePilot media category or filter-group category, depending on the operation.
|
||||
- `date_elapsed` (string|null): Human-readable age of the torrent publication date.
|
||||
- `description` (string|null): Human-readable media, torrent, or subscription description.
|
||||
- `downloadvolumefactor` (number|null): Torrent download-volume multiplier reported by the site.
|
||||
- `enclosure` (string|null): Torrent download URL or enclosure supplied by the indexer result.
|
||||
- `freedate` (string|null): Torrent freeleech expiration timestamp reported by the site.
|
||||
- `freedate_diff` (string|null): Seconds remaining until the torrent freeleech period ends.
|
||||
- `grabs` (integer|null; default `0`): Number of completed downloads reported for the torrent.
|
||||
- `hit_and_run` (boolean|null; default `False`): Whether the torrent is subject to hit-and-run requirements.
|
||||
- `labels` (array<string>|null): Labels attached to the media, classification result, or torrent result.
|
||||
- `media_id` (string|null): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source` (MediaSource|null): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
- `page_url` (string|null): Public details page for the torrent result.
|
||||
- `peers` (integer|null; default `0`): Number of downloading peers reported for the torrent.
|
||||
- `pri_order` (integer|null; default `0`): Indexer priority order assigned to the torrent result.
|
||||
- `pubdate` (string|null): Torrent publication timestamp.
|
||||
- `seeders` (integer|null; default `0`): Minimum seeder expression for a filter rule, or the torrent's seeder count.
|
||||
- `site` (integer|null): Source site identifier associated with the torrent result.
|
||||
- `site_cookie` (string|null): Site cookie bundled with the torrent result. Treat this value as a secret.
|
||||
- `site_downloader` (string|null): Downloader instance selected by the source site.
|
||||
- `site_name` (string|null): Human-readable source site name.
|
||||
- `site_order` (integer|null; default `0`): Source site's configured search order.
|
||||
- `site_proxy` (boolean|null; default `False`): Whether the torrent's source site uses the configured proxy.
|
||||
- `site_ua` (string|null): User-Agent associated with the source site.
|
||||
- `size` (number|null; default `0.0`): File or torrent size in bytes.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `uploadvolumefactor` (number|null): Torrent upload-volume multiplier reported by the site.
|
||||
- `volume_factor` (string|null): Combined upload/download volume-factor label shown for the torrent.
|
||||
|
||||
### `WorkflowExecutionConfig`
|
||||
Workflow concurrency, join, branch, and failure policies.
|
||||
- `max_workers` (integer|null): Maximum concurrent workflow actions allowed by the execution configuration.
|
||||
|
||||
### `WorkflowExecutionState-Input`
|
||||
Persisted resumable workflow execution state.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `nodes` (object): Persisted workflow node runtime states keyed by action identity.
|
||||
- `outputs` (object): Named output mappings produced by this workflow action.
|
||||
- `runtime` (WorkflowRuntimeState): Persisted workflow runtime metadata used for safe resume.
|
||||
- `version` (integer; default `1`): Plugin release or schema version selected by the operation.
|
||||
|
||||
### `WorkflowRuntimeState`
|
||||
Complete persisted workflow runtime and progress state.
|
||||
- `attempts` (object): Attempt counters keyed by workflow node or operation identity.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `finished_actions` (integer; default `0`): Workflow action IDs already completed in the persisted execution state.
|
||||
- `node_states` (object): Persisted runtime states keyed by workflow node identity.
|
||||
- `progress` (integer; default `0`): Current numeric or structured workflow execution progress.
|
||||
- `running_tasks` (integer; default `0`): Workflow task IDs currently executing.
|
||||
|
||||
@@ -38,3 +38,163 @@ Purpose: Replace or recompute the media identity for one cached torrent context.
|
||||
- `path_params`: `domain*` (string): Site hostname or domain used for matching and requests.; `torrent_hash*` (string): Cache hash returned by torrent.cache.get for one exact site-domain entry.
|
||||
- `query`: `media_id` (string|null): Source-native media ID. Always pair it with the exact media_source returned by search.; `media_source` (MediaSource|null): Metadata source identifier. Preserve the exact value returned with media_id.; `music_type` (string(recording,album)|null): Music identity level: recording, album, or artist where supported.
|
||||
- `body`: none
|
||||
|
||||
## Body Models
|
||||
|
||||
This category document is self-contained: the shared models below are included so the Agent does not need a second Skill document before calling the API.
|
||||
|
||||
### `ClassificationFacts`
|
||||
Normalized media facts evaluated by the automatic classification policy.
|
||||
- `extensions` (object): Additional normalized classification facts supplied by extensions.
|
||||
- `field_sources` (object): Source provenance for normalized classification facts.
|
||||
- `identity*` (ClassificationIdentityFacts): Stable source-native media identity used by classification facts.
|
||||
- `media*` (ClassificationMediaFacts): Media metadata input used for a classification preview.
|
||||
- `music` (ClassificationMusicFacts|null): Music-specific normalized facts used by classification rules.
|
||||
|
||||
### `ClassificationFactsPreviewInput`
|
||||
Normalized facts supplied directly for a classification preview.
|
||||
- `facts*` (ClassificationFacts): Normalized media facts to evaluate during a classification preview.
|
||||
- `kind` (string=facts; default `facts`): Classification rule or preview-input kind selected by the request.
|
||||
|
||||
### `ClassificationIdentityFacts`
|
||||
Stable source-native identity used by classification evaluation.
|
||||
- `media_id*` (string): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source*` (string): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
|
||||
### `ClassificationMediaFacts`
|
||||
Normalized movie, TV, or shared media facts used by classification rules.
|
||||
- `adult` (boolean|null): Whether the media is marked as adult content.
|
||||
- `companies` (array<string>|null): Production companies or studios associated with the media.
|
||||
- `content_rating` (string|null): Content rating assigned to the media.
|
||||
- `countries` (array<string>|null): Normalized country or region codes used by classification rules.
|
||||
- `genre_keys` (array<string>|null): Normalized MoviePilot genre keys used by classification rules.
|
||||
- `genre_names` (array<string>|null): Source-provided genre names used as classification facts.
|
||||
- `language` (string|null): Normalized media language code used by classification rules.
|
||||
- `networks` (array<string>|null): Television networks or streaming platforms associated with the media.
|
||||
- `runtime` (integer|null): Persisted workflow runtime metadata used for safe resume.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `type*` (string): MoviePilot media or storage item type required by the selected operation.
|
||||
- `year` (integer|null): Release or premiere year used to disambiguate the media title.
|
||||
|
||||
### `ClassificationMediaPreviewInput`
|
||||
A selected media search result supplied for classification preview.
|
||||
- `kind` (string=media; default `media`): Classification rule or preview-input kind selected by the request.
|
||||
- `media*` (object): Media metadata input used for a classification preview.
|
||||
|
||||
### `ClassificationMusicFacts`
|
||||
Music-specific facts used by automatic classification rules.
|
||||
- `album_type` (string|null): Music album or release-group type used by classification rules.
|
||||
- `artist_country` (string|null): Country or region associated with the music artist.
|
||||
- `artists` (array<string>|null): Music artist names associated with the classified entity.
|
||||
- `entity_type` (string|null): Music entity type used by classification rules.
|
||||
- `genres` (array<string>|null): Normalized music genre values used by classification rules.
|
||||
- `release_status` (string|null): Music release status used by classification rules.
|
||||
- `secondary_types` (array<string>|null): Secondary music release-group types used by classification rules.
|
||||
- `tags` (array<string>|null): Comma-separated Douban Music category tags; use only with a Douban Music exploration source.
|
||||
|
||||
### `ClassificationPolicy-Input`
|
||||
Complete versioned automatic media-classification policy.
|
||||
- `categories` (array<ClassificationCategory>): Complete ordered media-category definitions in the classification policy.
|
||||
- `enrichment_mode` (string(primary_only,enrich_missing); default `primary_only`): Metadata enrichment mode used to populate classification facts.
|
||||
- `fallbacks` (object): Fallback category or label actions used when no classification rule matches.
|
||||
- `field_aliases` (object): Optional aliases mapping source-specific fields to normalized classification fields.
|
||||
- `mode` (string=first_match; default `first_match`): Operation mode; music.explore accepts chart or fresh, while transfer history records move, copy, link, or softlink.
|
||||
- `revision` (integer; default `0`; minimum `0.0`): Published classification policy revision or expected revision number.
|
||||
- `rules` (array<ClassificationRule-Input>): Ordered classification rules evaluated from highest priority to lowest.
|
||||
- `schema_version` (integer=2; default `2`): Classification policy schema version expected by the server.
|
||||
- `updated_at` (string|null): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `FileItem-Input`
|
||||
One file or directory returned by a configured storage provider.
|
||||
- `basename` (string|null): Base filename without its parent path.
|
||||
- `children` (array<FileItem-Input>|null): Child storage items nested below this item.
|
||||
- `drive_id` (string|null): Provider-native storage drive identifier.
|
||||
- `extension` (string|null): Filename extension, including or excluding the leading dot as returned by storage.
|
||||
- `fileid` (string|null): Provider-native storage item identifier.
|
||||
- `modify_time` (number|null): Storage item modification timestamp.
|
||||
- `name` (string|null): Human-readable name of the site, storage item, subscription, or rule group.
|
||||
- `parent_fileid` (string|null): Provider-native identifier of the parent storage directory.
|
||||
- `path` (string|null; default `/`): Storage or history path represented by this record.
|
||||
- `pickcode` (string|null): 115 storage pickcode associated with the item.
|
||||
- `size` (integer|null): File or torrent size in bytes.
|
||||
- `storage` (string|null; default `local`): Configured storage name or storage type used by the operation.
|
||||
- `thumbnail` (string|null): Thumbnail URL returned by the storage provider.
|
||||
- `type` (string|null): MoviePilot media or storage item type required by the selected operation.
|
||||
- `url` (string|null): Site, storage, or torrent URL represented by this field.
|
||||
|
||||
### `JsonData-Input`
|
||||
Arbitrary JSON-compatible auxiliary data.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaSource`
|
||||
Canonical metadata source identifier paired with a source-native media ID.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaType`
|
||||
MoviePilot media type.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `SubscriptionExecutionStatus`
|
||||
Subscription refresh execution status and progress summary.
|
||||
- `batch_id` (string|null): Stable subscription search batch identifier.
|
||||
- `can_cancel` (boolean; default `False`): Whether the current subscription execution can be cancelled.
|
||||
- `current_site_id` (integer|null): Configured site ID currently handling the subscription execution.
|
||||
- `error` (string|null): Human-readable workflow, provider, or execution error message.
|
||||
- `next_run_at` (string|null): Next scheduled subscription search time. Null when no future execution is planned.
|
||||
- `phase*` (string): Current phase of a subscription execution.
|
||||
- `source` (string|null): Exact metadata or recommendation source selected by the operation.
|
||||
- `state*` (string): Current site, subscription, marketplace, or transfer state filter.
|
||||
- `task_id` (string|null): Stable durable transfer task ID returned by transfer.manual_reviews.
|
||||
- `updated_at*` (string): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `TorrentInfo`
|
||||
One torrent candidate returned by MoviePilot search.
|
||||
- `category` (string|null): MoviePilot media category or filter-group category, depending on the operation.
|
||||
- `date_elapsed` (string|null): Human-readable age of the torrent publication date.
|
||||
- `description` (string|null): Human-readable media, torrent, or subscription description.
|
||||
- `downloadvolumefactor` (number|null): Torrent download-volume multiplier reported by the site.
|
||||
- `enclosure` (string|null): Torrent download URL or enclosure supplied by the indexer result.
|
||||
- `freedate` (string|null): Torrent freeleech expiration timestamp reported by the site.
|
||||
- `freedate_diff` (string|null): Seconds remaining until the torrent freeleech period ends.
|
||||
- `grabs` (integer|null; default `0`): Number of completed downloads reported for the torrent.
|
||||
- `hit_and_run` (boolean|null; default `False`): Whether the torrent is subject to hit-and-run requirements.
|
||||
- `labels` (array<string>|null): Labels attached to the media, classification result, or torrent result.
|
||||
- `media_id` (string|null): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source` (MediaSource|null): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
- `page_url` (string|null): Public details page for the torrent result.
|
||||
- `peers` (integer|null; default `0`): Number of downloading peers reported for the torrent.
|
||||
- `pri_order` (integer|null; default `0`): Indexer priority order assigned to the torrent result.
|
||||
- `pubdate` (string|null): Torrent publication timestamp.
|
||||
- `seeders` (integer|null; default `0`): Minimum seeder expression for a filter rule, or the torrent's seeder count.
|
||||
- `site` (integer|null): Source site identifier associated with the torrent result.
|
||||
- `site_cookie` (string|null): Site cookie bundled with the torrent result. Treat this value as a secret.
|
||||
- `site_downloader` (string|null): Downloader instance selected by the source site.
|
||||
- `site_name` (string|null): Human-readable source site name.
|
||||
- `site_order` (integer|null; default `0`): Source site's configured search order.
|
||||
- `site_proxy` (boolean|null; default `False`): Whether the torrent's source site uses the configured proxy.
|
||||
- `site_ua` (string|null): User-Agent associated with the source site.
|
||||
- `size` (number|null; default `0.0`): File or torrent size in bytes.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `uploadvolumefactor` (number|null): Torrent upload-volume multiplier reported by the site.
|
||||
- `volume_factor` (string|null): Combined upload/download volume-factor label shown for the torrent.
|
||||
|
||||
### `WorkflowExecutionConfig`
|
||||
Workflow concurrency, join, branch, and failure policies.
|
||||
- `max_workers` (integer|null): Maximum concurrent workflow actions allowed by the execution configuration.
|
||||
|
||||
### `WorkflowExecutionState-Input`
|
||||
Persisted resumable workflow execution state.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `nodes` (object): Persisted workflow node runtime states keyed by action identity.
|
||||
- `outputs` (object): Named output mappings produced by this workflow action.
|
||||
- `runtime` (WorkflowRuntimeState): Persisted workflow runtime metadata used for safe resume.
|
||||
- `version` (integer; default `1`): Plugin release or schema version selected by the operation.
|
||||
|
||||
### `WorkflowRuntimeState`
|
||||
Complete persisted workflow runtime and progress state.
|
||||
- `attempts` (object): Attempt counters keyed by workflow node or operation identity.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `finished_actions` (integer; default `0`): Workflow action IDs already completed in the persisted execution state.
|
||||
- `node_states` (object): Persisted runtime states keyed by workflow node identity.
|
||||
- `progress` (integer; default `0`): Current numeric or structured workflow execution progress.
|
||||
- `running_tasks` (integer; default `0`): Workflow task IDs currently executing.
|
||||
|
||||
@@ -111,3 +111,163 @@ Purpose: Resolve the configured transfer destination for supplied source storage
|
||||
- `path_params`: none
|
||||
- `query`: none
|
||||
- `body`: `episode_detail` (string|null): Episode mapping details used by manual transfer.; `episode_format` (string|null): Episode-number formatting rule used by manual transfer.; `episode_group` (string|null): TMDB episode-group identifier used for alternate episode ordering.; `episode_offset` (string|null): Integer offset added to detected episode numbers.; `episode_part` (string|null): Episode part number used when one episode is split across files.; `fileitem` (FileItem-Input): One complete source storage item returned by storage.list.; `fileitems` (array<FileItem-Input>|null): Additional source storage items included in the same manual transfer.; `from_history` (boolean|null; default `False`): Treat the transfer input as originating from an existing history record.; `library_category_folder` (boolean|null): Create or use a category-level folder in the target library.; `library_type_folder` (boolean|null): Create or use a media-type folder in the target library.; `logid` (integer|null): One download-history or transfer-log identifier used by manual transfer.; `logids` (array<integer>|null): Multiple download-history or transfer-log identifiers included in manual transfer.; `media_id` (string|null): Source-native media ID. Always pair it with the exact media_source returned by search.; `media_source` (MediaSource|null): Metadata source identifier. Preserve the exact value returned with media_id.; `min_filesize` (integer|null; default `0`): Minimum source file size accepted by manual transfer, in bytes.; `music_release_regions` (array<string>|null): Optional ISO 3166-1 release-region priority for music organization.; `music_release_scripts` (array<string>|null): Optional ISO 15924 script priority for music organization.; `music_type` (string(recording,album)|null): Music identity level: recording, album, or artist where supported.; `preview` (boolean|null; default `False`): Validate and preview manual-transfer output without committing file changes.; `reorganize` (boolean|null; default `False`): Allow manual transfer to organize an item that was already processed.; `scrape` (boolean|null; default `False`): Generate metadata and images after manual transfer.; `season` (integer|null): Season number used by the media, search, subscription, or transfer operation.; `skip_success` (boolean; default `False`): Skip files already recorded as successfully organized.; `target_path` (string|null): Destination path used by manual transfer.; `target_storage` (string|null): Configured storage name receiving the manual transfer.; `transfer_type` (string|null): Manual-transfer mode, such as move, copy, link, or softlink.; `type_name` (string|null): Explicit media type name used when source IDs alone are ambiguous.
|
||||
|
||||
## Body Models
|
||||
|
||||
This category document is self-contained: the shared models below are included so the Agent does not need a second Skill document before calling the API.
|
||||
|
||||
### `ClassificationFacts`
|
||||
Normalized media facts evaluated by the automatic classification policy.
|
||||
- `extensions` (object): Additional normalized classification facts supplied by extensions.
|
||||
- `field_sources` (object): Source provenance for normalized classification facts.
|
||||
- `identity*` (ClassificationIdentityFacts): Stable source-native media identity used by classification facts.
|
||||
- `media*` (ClassificationMediaFacts): Media metadata input used for a classification preview.
|
||||
- `music` (ClassificationMusicFacts|null): Music-specific normalized facts used by classification rules.
|
||||
|
||||
### `ClassificationFactsPreviewInput`
|
||||
Normalized facts supplied directly for a classification preview.
|
||||
- `facts*` (ClassificationFacts): Normalized media facts to evaluate during a classification preview.
|
||||
- `kind` (string=facts; default `facts`): Classification rule or preview-input kind selected by the request.
|
||||
|
||||
### `ClassificationIdentityFacts`
|
||||
Stable source-native identity used by classification evaluation.
|
||||
- `media_id*` (string): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source*` (string): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
|
||||
### `ClassificationMediaFacts`
|
||||
Normalized movie, TV, or shared media facts used by classification rules.
|
||||
- `adult` (boolean|null): Whether the media is marked as adult content.
|
||||
- `companies` (array<string>|null): Production companies or studios associated with the media.
|
||||
- `content_rating` (string|null): Content rating assigned to the media.
|
||||
- `countries` (array<string>|null): Normalized country or region codes used by classification rules.
|
||||
- `genre_keys` (array<string>|null): Normalized MoviePilot genre keys used by classification rules.
|
||||
- `genre_names` (array<string>|null): Source-provided genre names used as classification facts.
|
||||
- `language` (string|null): Normalized media language code used by classification rules.
|
||||
- `networks` (array<string>|null): Television networks or streaming platforms associated with the media.
|
||||
- `runtime` (integer|null): Persisted workflow runtime metadata used for safe resume.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `type*` (string): MoviePilot media or storage item type required by the selected operation.
|
||||
- `year` (integer|null): Release or premiere year used to disambiguate the media title.
|
||||
|
||||
### `ClassificationMediaPreviewInput`
|
||||
A selected media search result supplied for classification preview.
|
||||
- `kind` (string=media; default `media`): Classification rule or preview-input kind selected by the request.
|
||||
- `media*` (object): Media metadata input used for a classification preview.
|
||||
|
||||
### `ClassificationMusicFacts`
|
||||
Music-specific facts used by automatic classification rules.
|
||||
- `album_type` (string|null): Music album or release-group type used by classification rules.
|
||||
- `artist_country` (string|null): Country or region associated with the music artist.
|
||||
- `artists` (array<string>|null): Music artist names associated with the classified entity.
|
||||
- `entity_type` (string|null): Music entity type used by classification rules.
|
||||
- `genres` (array<string>|null): Normalized music genre values used by classification rules.
|
||||
- `release_status` (string|null): Music release status used by classification rules.
|
||||
- `secondary_types` (array<string>|null): Secondary music release-group types used by classification rules.
|
||||
- `tags` (array<string>|null): Comma-separated Douban Music category tags; use only with a Douban Music exploration source.
|
||||
|
||||
### `ClassificationPolicy-Input`
|
||||
Complete versioned automatic media-classification policy.
|
||||
- `categories` (array<ClassificationCategory>): Complete ordered media-category definitions in the classification policy.
|
||||
- `enrichment_mode` (string(primary_only,enrich_missing); default `primary_only`): Metadata enrichment mode used to populate classification facts.
|
||||
- `fallbacks` (object): Fallback category or label actions used when no classification rule matches.
|
||||
- `field_aliases` (object): Optional aliases mapping source-specific fields to normalized classification fields.
|
||||
- `mode` (string=first_match; default `first_match`): Operation mode; music.explore accepts chart or fresh, while transfer history records move, copy, link, or softlink.
|
||||
- `revision` (integer; default `0`; minimum `0.0`): Published classification policy revision or expected revision number.
|
||||
- `rules` (array<ClassificationRule-Input>): Ordered classification rules evaluated from highest priority to lowest.
|
||||
- `schema_version` (integer=2; default `2`): Classification policy schema version expected by the server.
|
||||
- `updated_at` (string|null): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `FileItem-Input`
|
||||
One file or directory returned by a configured storage provider.
|
||||
- `basename` (string|null): Base filename without its parent path.
|
||||
- `children` (array<FileItem-Input>|null): Child storage items nested below this item.
|
||||
- `drive_id` (string|null): Provider-native storage drive identifier.
|
||||
- `extension` (string|null): Filename extension, including or excluding the leading dot as returned by storage.
|
||||
- `fileid` (string|null): Provider-native storage item identifier.
|
||||
- `modify_time` (number|null): Storage item modification timestamp.
|
||||
- `name` (string|null): Human-readable name of the site, storage item, subscription, or rule group.
|
||||
- `parent_fileid` (string|null): Provider-native identifier of the parent storage directory.
|
||||
- `path` (string|null; default `/`): Storage or history path represented by this record.
|
||||
- `pickcode` (string|null): 115 storage pickcode associated with the item.
|
||||
- `size` (integer|null): File or torrent size in bytes.
|
||||
- `storage` (string|null; default `local`): Configured storage name or storage type used by the operation.
|
||||
- `thumbnail` (string|null): Thumbnail URL returned by the storage provider.
|
||||
- `type` (string|null): MoviePilot media or storage item type required by the selected operation.
|
||||
- `url` (string|null): Site, storage, or torrent URL represented by this field.
|
||||
|
||||
### `JsonData-Input`
|
||||
Arbitrary JSON-compatible auxiliary data.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaSource`
|
||||
Canonical metadata source identifier paired with a source-native media ID.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaType`
|
||||
MoviePilot media type.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `SubscriptionExecutionStatus`
|
||||
Subscription refresh execution status and progress summary.
|
||||
- `batch_id` (string|null): Stable subscription search batch identifier.
|
||||
- `can_cancel` (boolean; default `False`): Whether the current subscription execution can be cancelled.
|
||||
- `current_site_id` (integer|null): Configured site ID currently handling the subscription execution.
|
||||
- `error` (string|null): Human-readable workflow, provider, or execution error message.
|
||||
- `next_run_at` (string|null): Next scheduled subscription search time. Null when no future execution is planned.
|
||||
- `phase*` (string): Current phase of a subscription execution.
|
||||
- `source` (string|null): Exact metadata or recommendation source selected by the operation.
|
||||
- `state*` (string): Current site, subscription, marketplace, or transfer state filter.
|
||||
- `task_id` (string|null): Stable durable transfer task ID returned by transfer.manual_reviews.
|
||||
- `updated_at*` (string): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `TorrentInfo`
|
||||
One torrent candidate returned by MoviePilot search.
|
||||
- `category` (string|null): MoviePilot media category or filter-group category, depending on the operation.
|
||||
- `date_elapsed` (string|null): Human-readable age of the torrent publication date.
|
||||
- `description` (string|null): Human-readable media, torrent, or subscription description.
|
||||
- `downloadvolumefactor` (number|null): Torrent download-volume multiplier reported by the site.
|
||||
- `enclosure` (string|null): Torrent download URL or enclosure supplied by the indexer result.
|
||||
- `freedate` (string|null): Torrent freeleech expiration timestamp reported by the site.
|
||||
- `freedate_diff` (string|null): Seconds remaining until the torrent freeleech period ends.
|
||||
- `grabs` (integer|null; default `0`): Number of completed downloads reported for the torrent.
|
||||
- `hit_and_run` (boolean|null; default `False`): Whether the torrent is subject to hit-and-run requirements.
|
||||
- `labels` (array<string>|null): Labels attached to the media, classification result, or torrent result.
|
||||
- `media_id` (string|null): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source` (MediaSource|null): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
- `page_url` (string|null): Public details page for the torrent result.
|
||||
- `peers` (integer|null; default `0`): Number of downloading peers reported for the torrent.
|
||||
- `pri_order` (integer|null; default `0`): Indexer priority order assigned to the torrent result.
|
||||
- `pubdate` (string|null): Torrent publication timestamp.
|
||||
- `seeders` (integer|null; default `0`): Minimum seeder expression for a filter rule, or the torrent's seeder count.
|
||||
- `site` (integer|null): Source site identifier associated with the torrent result.
|
||||
- `site_cookie` (string|null): Site cookie bundled with the torrent result. Treat this value as a secret.
|
||||
- `site_downloader` (string|null): Downloader instance selected by the source site.
|
||||
- `site_name` (string|null): Human-readable source site name.
|
||||
- `site_order` (integer|null; default `0`): Source site's configured search order.
|
||||
- `site_proxy` (boolean|null; default `False`): Whether the torrent's source site uses the configured proxy.
|
||||
- `site_ua` (string|null): User-Agent associated with the source site.
|
||||
- `size` (number|null; default `0.0`): File or torrent size in bytes.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `uploadvolumefactor` (number|null): Torrent upload-volume multiplier reported by the site.
|
||||
- `volume_factor` (string|null): Combined upload/download volume-factor label shown for the torrent.
|
||||
|
||||
### `WorkflowExecutionConfig`
|
||||
Workflow concurrency, join, branch, and failure policies.
|
||||
- `max_workers` (integer|null): Maximum concurrent workflow actions allowed by the execution configuration.
|
||||
|
||||
### `WorkflowExecutionState-Input`
|
||||
Persisted resumable workflow execution state.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `nodes` (object): Persisted workflow node runtime states keyed by action identity.
|
||||
- `outputs` (object): Named output mappings produced by this workflow action.
|
||||
- `runtime` (WorkflowRuntimeState): Persisted workflow runtime metadata used for safe resume.
|
||||
- `version` (integer; default `1`): Plugin release or schema version selected by the operation.
|
||||
|
||||
### `WorkflowRuntimeState`
|
||||
Complete persisted workflow runtime and progress state.
|
||||
- `attempts` (object): Attempt counters keyed by workflow node or operation identity.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `finished_actions` (integer; default `0`): Workflow action IDs already completed in the persisted execution state.
|
||||
- `node_states` (object): Persisted runtime states keyed by workflow node identity.
|
||||
- `progress` (integer; default `0`): Current numeric or structured workflow execution progress.
|
||||
- `running_tasks` (integer; default `0`): Workflow task IDs currently executing.
|
||||
|
||||
@@ -120,3 +120,163 @@ Purpose: Replace one configured workflow definition.
|
||||
- `path_params`: `workflow_id*` (integer): Persistent workflow ID returned by workflow.list.
|
||||
- `query`: none
|
||||
- `body`: `actions` (array<Action-Input>|null): Ordered workflow action definitions executed by this workflow or flow.; `add_time` (string|null): Timestamp when the workflow definition was created.; `current_action` (string|null): Identifier of the workflow action currently selected or executing.; `description` (string|null): Human-readable media, torrent, or subscription description.; `event_conditions` (object|null): Additional workflow event-filter conditions.; `event_type` (string|null): Exact event type returned by workflow.event_types.; `execution_config` (WorkflowExecutionConfig|null): Workflow runtime limits, concurrency, and failure-policy configuration.; `execution_state` (WorkflowExecutionState-Input|null): Persisted resumable workflow execution state.; `flows` (array<ActionFlow-Input>|null): Workflow connection definitions linking action nodes.; `id` (integer|null): Persistent database identifier of the supplied record.; `last_time` (string|null): Timestamp of the workflow's most recent execution.; `name` (string|null): Human-readable name of the site, storage item, subscription, or rule group.; `result` (string|null): Persisted workflow action result value.; `run_count` (integer|null; default `0`): Number of times the workflow has been executed.; `state` (string|null): Current site, subscription, marketplace, or transfer state filter.; `timer` (string|null): Workflow timer or cron expression used for scheduled execution.; `trigger_type` (string|null; default `timer`): Workflow trigger filter: timer, event, manual, or all.
|
||||
|
||||
## Body Models
|
||||
|
||||
This category document is self-contained: the shared models below are included so the Agent does not need a second Skill document before calling the API.
|
||||
|
||||
### `ClassificationFacts`
|
||||
Normalized media facts evaluated by the automatic classification policy.
|
||||
- `extensions` (object): Additional normalized classification facts supplied by extensions.
|
||||
- `field_sources` (object): Source provenance for normalized classification facts.
|
||||
- `identity*` (ClassificationIdentityFacts): Stable source-native media identity used by classification facts.
|
||||
- `media*` (ClassificationMediaFacts): Media metadata input used for a classification preview.
|
||||
- `music` (ClassificationMusicFacts|null): Music-specific normalized facts used by classification rules.
|
||||
|
||||
### `ClassificationFactsPreviewInput`
|
||||
Normalized facts supplied directly for a classification preview.
|
||||
- `facts*` (ClassificationFacts): Normalized media facts to evaluate during a classification preview.
|
||||
- `kind` (string=facts; default `facts`): Classification rule or preview-input kind selected by the request.
|
||||
|
||||
### `ClassificationIdentityFacts`
|
||||
Stable source-native identity used by classification evaluation.
|
||||
- `media_id*` (string): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source*` (string): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
|
||||
### `ClassificationMediaFacts`
|
||||
Normalized movie, TV, or shared media facts used by classification rules.
|
||||
- `adult` (boolean|null): Whether the media is marked as adult content.
|
||||
- `companies` (array<string>|null): Production companies or studios associated with the media.
|
||||
- `content_rating` (string|null): Content rating assigned to the media.
|
||||
- `countries` (array<string>|null): Normalized country or region codes used by classification rules.
|
||||
- `genre_keys` (array<string>|null): Normalized MoviePilot genre keys used by classification rules.
|
||||
- `genre_names` (array<string>|null): Source-provided genre names used as classification facts.
|
||||
- `language` (string|null): Normalized media language code used by classification rules.
|
||||
- `networks` (array<string>|null): Television networks or streaming platforms associated with the media.
|
||||
- `runtime` (integer|null): Persisted workflow runtime metadata used for safe resume.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `type*` (string): MoviePilot media or storage item type required by the selected operation.
|
||||
- `year` (integer|null): Release or premiere year used to disambiguate the media title.
|
||||
|
||||
### `ClassificationMediaPreviewInput`
|
||||
A selected media search result supplied for classification preview.
|
||||
- `kind` (string=media; default `media`): Classification rule or preview-input kind selected by the request.
|
||||
- `media*` (object): Media metadata input used for a classification preview.
|
||||
|
||||
### `ClassificationMusicFacts`
|
||||
Music-specific facts used by automatic classification rules.
|
||||
- `album_type` (string|null): Music album or release-group type used by classification rules.
|
||||
- `artist_country` (string|null): Country or region associated with the music artist.
|
||||
- `artists` (array<string>|null): Music artist names associated with the classified entity.
|
||||
- `entity_type` (string|null): Music entity type used by classification rules.
|
||||
- `genres` (array<string>|null): Normalized music genre values used by classification rules.
|
||||
- `release_status` (string|null): Music release status used by classification rules.
|
||||
- `secondary_types` (array<string>|null): Secondary music release-group types used by classification rules.
|
||||
- `tags` (array<string>|null): Comma-separated Douban Music category tags; use only with a Douban Music exploration source.
|
||||
|
||||
### `ClassificationPolicy-Input`
|
||||
Complete versioned automatic media-classification policy.
|
||||
- `categories` (array<ClassificationCategory>): Complete ordered media-category definitions in the classification policy.
|
||||
- `enrichment_mode` (string(primary_only,enrich_missing); default `primary_only`): Metadata enrichment mode used to populate classification facts.
|
||||
- `fallbacks` (object): Fallback category or label actions used when no classification rule matches.
|
||||
- `field_aliases` (object): Optional aliases mapping source-specific fields to normalized classification fields.
|
||||
- `mode` (string=first_match; default `first_match`): Operation mode; music.explore accepts chart or fresh, while transfer history records move, copy, link, or softlink.
|
||||
- `revision` (integer; default `0`; minimum `0.0`): Published classification policy revision or expected revision number.
|
||||
- `rules` (array<ClassificationRule-Input>): Ordered classification rules evaluated from highest priority to lowest.
|
||||
- `schema_version` (integer=2; default `2`): Classification policy schema version expected by the server.
|
||||
- `updated_at` (string|null): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `FileItem-Input`
|
||||
One file or directory returned by a configured storage provider.
|
||||
- `basename` (string|null): Base filename without its parent path.
|
||||
- `children` (array<FileItem-Input>|null): Child storage items nested below this item.
|
||||
- `drive_id` (string|null): Provider-native storage drive identifier.
|
||||
- `extension` (string|null): Filename extension, including or excluding the leading dot as returned by storage.
|
||||
- `fileid` (string|null): Provider-native storage item identifier.
|
||||
- `modify_time` (number|null): Storage item modification timestamp.
|
||||
- `name` (string|null): Human-readable name of the site, storage item, subscription, or rule group.
|
||||
- `parent_fileid` (string|null): Provider-native identifier of the parent storage directory.
|
||||
- `path` (string|null; default `/`): Storage or history path represented by this record.
|
||||
- `pickcode` (string|null): 115 storage pickcode associated with the item.
|
||||
- `size` (integer|null): File or torrent size in bytes.
|
||||
- `storage` (string|null; default `local`): Configured storage name or storage type used by the operation.
|
||||
- `thumbnail` (string|null): Thumbnail URL returned by the storage provider.
|
||||
- `type` (string|null): MoviePilot media or storage item type required by the selected operation.
|
||||
- `url` (string|null): Site, storage, or torrent URL represented by this field.
|
||||
|
||||
### `JsonData-Input`
|
||||
Arbitrary JSON-compatible auxiliary data.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaSource`
|
||||
Canonical metadata source identifier paired with a source-native media ID.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `MediaType`
|
||||
MoviePilot media type.
|
||||
This runtime model has no directly writable fields.
|
||||
|
||||
### `SubscriptionExecutionStatus`
|
||||
Subscription refresh execution status and progress summary.
|
||||
- `batch_id` (string|null): Stable subscription search batch identifier.
|
||||
- `can_cancel` (boolean; default `False`): Whether the current subscription execution can be cancelled.
|
||||
- `current_site_id` (integer|null): Configured site ID currently handling the subscription execution.
|
||||
- `error` (string|null): Human-readable workflow, provider, or execution error message.
|
||||
- `next_run_at` (string|null): Next scheduled subscription search time. Null when no future execution is planned.
|
||||
- `phase*` (string): Current phase of a subscription execution.
|
||||
- `source` (string|null): Exact metadata or recommendation source selected by the operation.
|
||||
- `state*` (string): Current site, subscription, marketplace, or transfer state filter.
|
||||
- `task_id` (string|null): Stable durable transfer task ID returned by transfer.manual_reviews.
|
||||
- `updated_at*` (string): Timestamp when the persisted object or execution state was last updated.
|
||||
|
||||
### `TorrentInfo`
|
||||
One torrent candidate returned by MoviePilot search.
|
||||
- `category` (string|null): MoviePilot media category or filter-group category, depending on the operation.
|
||||
- `date_elapsed` (string|null): Human-readable age of the torrent publication date.
|
||||
- `description` (string|null): Human-readable media, torrent, or subscription description.
|
||||
- `downloadvolumefactor` (number|null): Torrent download-volume multiplier reported by the site.
|
||||
- `enclosure` (string|null): Torrent download URL or enclosure supplied by the indexer result.
|
||||
- `freedate` (string|null): Torrent freeleech expiration timestamp reported by the site.
|
||||
- `freedate_diff` (string|null): Seconds remaining until the torrent freeleech period ends.
|
||||
- `grabs` (integer|null; default `0`): Number of completed downloads reported for the torrent.
|
||||
- `hit_and_run` (boolean|null; default `False`): Whether the torrent is subject to hit-and-run requirements.
|
||||
- `labels` (array<string>|null): Labels attached to the media, classification result, or torrent result.
|
||||
- `media_id` (string|null): Source-native media ID. Always pair it with the exact media_source returned by search.
|
||||
- `media_source` (MediaSource|null): Metadata source identifier. Preserve the exact value returned with media_id.
|
||||
- `page_url` (string|null): Public details page for the torrent result.
|
||||
- `peers` (integer|null; default `0`): Number of downloading peers reported for the torrent.
|
||||
- `pri_order` (integer|null; default `0`): Indexer priority order assigned to the torrent result.
|
||||
- `pubdate` (string|null): Torrent publication timestamp.
|
||||
- `seeders` (integer|null; default `0`): Minimum seeder expression for a filter rule, or the torrent's seeder count.
|
||||
- `site` (integer|null): Source site identifier associated with the torrent result.
|
||||
- `site_cookie` (string|null): Site cookie bundled with the torrent result. Treat this value as a secret.
|
||||
- `site_downloader` (string|null): Downloader instance selected by the source site.
|
||||
- `site_name` (string|null): Human-readable source site name.
|
||||
- `site_order` (integer|null; default `0`): Source site's configured search order.
|
||||
- `site_proxy` (boolean|null; default `False`): Whether the torrent's source site uses the configured proxy.
|
||||
- `site_ua` (string|null): User-Agent associated with the source site.
|
||||
- `size` (number|null; default `0.0`): File or torrent size in bytes.
|
||||
- `title` (string|null): Media, torrent, subscription, or history title used by the operation.
|
||||
- `uploadvolumefactor` (number|null): Torrent upload-volume multiplier reported by the site.
|
||||
- `volume_factor` (string|null): Combined upload/download volume-factor label shown for the torrent.
|
||||
|
||||
### `WorkflowExecutionConfig`
|
||||
Workflow concurrency, join, branch, and failure policies.
|
||||
- `max_workers` (integer|null): Maximum concurrent workflow actions allowed by the execution configuration.
|
||||
|
||||
### `WorkflowExecutionState-Input`
|
||||
Persisted resumable workflow execution state.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `nodes` (object): Persisted workflow node runtime states keyed by action identity.
|
||||
- `outputs` (object): Named output mappings produced by this workflow action.
|
||||
- `runtime` (WorkflowRuntimeState): Persisted workflow runtime metadata used for safe resume.
|
||||
- `version` (integer; default `1`): Plugin release or schema version selected by the operation.
|
||||
|
||||
### `WorkflowRuntimeState`
|
||||
Complete persisted workflow runtime and progress state.
|
||||
- `attempts` (object): Attempt counters keyed by workflow node or operation identity.
|
||||
- `errors` (object): Workflow execution errors keyed or ordered by action identity.
|
||||
- `finished_actions` (integer; default `0`): Workflow action IDs already completed in the persisted execution state.
|
||||
- `node_states` (object): Persisted runtime states keyed by workflow node identity.
|
||||
- `progress` (integer; default `0`): Current numeric or structured workflow execution progress.
|
||||
- `running_tasks` (integer; default `0`): Workflow task IDs currently executing.
|
||||
|
||||
@@ -93,11 +93,13 @@ def test_moviepilot_api_skill_routes_contracts_to_category_files() -> None:
|
||||
|
||||
assert len(entrypoint.splitlines()) < 300
|
||||
assert "### `" not in entrypoint
|
||||
assert len(category_files) == 22
|
||||
assert len(category_files) == 21
|
||||
assert "models" not in category_files
|
||||
assert all(
|
||||
f"### `{operation_id}`" in category_files[operation_id.split(".", 1)[0]]
|
||||
for operation_id in API_OPERATION_ROUTES
|
||||
)
|
||||
assert all("## Body Models" in content for content in category_files.values())
|
||||
|
||||
|
||||
def test_every_gateway_operation_has_one_exact_english_skill_and_mcp_contract() -> None:
|
||||
|
||||
@@ -129,6 +129,29 @@ async def test_skill_pagination_reconstructs_unmodified_repository_skill() -> No
|
||||
assert server.stats["world_calls"] == 0
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_skill_supporting_document_uses_read_skill_without_file_tool() -> None:
|
||||
"""评测服务应通过 read_skill 加载已列出的分类合同,而不是开放任意文件读取。"""
|
||||
async with EvaluationMcpServer(EvaluationWorld("dedup_existing")) as server:
|
||||
async with _client(server) as client:
|
||||
result, payload = await _tool(
|
||||
client,
|
||||
"read_skill",
|
||||
{"name": "moviepilot-api", "file": "api/config.md"},
|
||||
)
|
||||
assert result["isError"] is False
|
||||
assert payload["tool_result_truncated"] is True
|
||||
assert "# Configuration APIs" in payload["content_preview"]
|
||||
|
||||
invalid_result, invalid = await _tool(
|
||||
client,
|
||||
"read_skill",
|
||||
{"name": "moviepilot-api", "file": "../SKILL.md"},
|
||||
)
|
||||
assert invalid_result["isError"] is True
|
||||
assert invalid["error"] == "skill_file_not_found"
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_world_call_limit_is_global_across_sessions_and_parallel_requests() -> None:
|
||||
"""并行连接也共享硬调用上限,超限不会继续读取或改变独立世界。"""
|
||||
|
||||
@@ -77,7 +77,7 @@ def test_skills_middleware_exposes_read_skill_tool(tmp_path):
|
||||
|
||||
@pytest.mark.anyio
|
||||
async def test_read_skill_loads_body_and_supporting_files_by_id_and_name(tmp_path):
|
||||
"""read_skill 应按 id 或 name 返回完整主体及稳定的辅助文件清单。"""
|
||||
"""read_skill 应按 id 或 name 返回主体,并在同一权限边界内读取辅助文档。"""
|
||||
_write_skill(tmp_path, "moviepilot-api", name="MoviePilot API")
|
||||
skill_dir = tmp_path / "moviepilot-api"
|
||||
(skill_dir / "references").mkdir()
|
||||
@@ -102,6 +102,23 @@ async def test_read_skill_loads_body_and_supporting_files_by_id_and_name(tmp_pat
|
||||
assert by_name["success"] is True
|
||||
assert by_name["skill"]["name"] == "MoviePilot API"
|
||||
|
||||
supporting = json.loads(
|
||||
await skill_tool.ainvoke(
|
||||
{"name": "moviepilot-api", "file": "references/usage.md"}
|
||||
)
|
||||
)
|
||||
assert supporting["success"] is True
|
||||
assert supporting["content"] == "usage"
|
||||
assert supporting["loaded_file"] == "references/usage.md"
|
||||
assert supporting["skill"]["id"] == "moviepilot-api"
|
||||
|
||||
invalid = json.loads(
|
||||
await skill_tool.ainvoke(
|
||||
{"name": "moviepilot-api", "file": "../SKILL.md"}
|
||||
)
|
||||
)
|
||||
assert invalid["success"] is False
|
||||
|
||||
|
||||
@pytest.mark.anyio
|
||||
async def test_read_skill_caps_body_at_512_kib_without_global_64_kib_truncation(tmp_path):
|
||||
@@ -142,7 +159,18 @@ async def test_bundled_moviepilot_api_skill_loads_complete_contract() -> None:
|
||||
assert "## API Category Index" in payload["content"]
|
||||
assert "### `workflow.update`" not in payload["content"]
|
||||
assert "api/workflow.md" in payload["supporting_files"]
|
||||
assert "api/models.md" in payload["supporting_files"]
|
||||
assert "api/models.md" not in payload["supporting_files"]
|
||||
|
||||
category = json.loads(
|
||||
await middleware.tools[0].ainvoke(
|
||||
{"name": "moviepilot-api", "file": "api/workflow.md"}
|
||||
)
|
||||
)
|
||||
assert category["success"] is True
|
||||
assert category["loaded_file"] == "api/workflow.md"
|
||||
assert "### `workflow.update`" in category["content"]
|
||||
assert "## Body Models" in category["content"]
|
||||
assert "### `WorkflowExecutionConfig`" in category["content"]
|
||||
|
||||
|
||||
@pytest.mark.anyio
|
||||
@@ -273,6 +301,8 @@ def test_modify_request_instructs_model_to_use_read_skill_without_paths(tmp_path
|
||||
|
||||
assert "`read_skill` tool" in system_content
|
||||
assert "never `read_file`" in system_content
|
||||
assert "supporting Skill document" in system_content
|
||||
assert "relative `file` path" in system_content
|
||||
assert "up to 512 KiB" in system_content
|
||||
assert "moviepilot-api" in system_content
|
||||
assert "Read `" not in system_content
|
||||
|
||||
@@ -117,7 +117,7 @@ def test_modified_builtin_skills_have_incremented_versions() -> None:
|
||||
"command-dispatch": "2",
|
||||
"database-operation": "7",
|
||||
"feedback-issue": "9",
|
||||
"moviepilot-api": "30",
|
||||
"moviepilot-api": "31",
|
||||
"moviepilot-update": "5",
|
||||
"organize-files": "5",
|
||||
"transfer-failed-retry": "5",
|
||||
@@ -147,6 +147,8 @@ def test_core_prompt_requires_read_skill_for_skill_documents() -> None:
|
||||
core_prompt = CORE_PROMPT_PATH.read_text(encoding="utf-8")
|
||||
|
||||
assert "Always use `read_skill`, never `read_file`, to load a skill's SKILL.md" in core_prompt
|
||||
assert "listed supporting Skill document" in core_prompt
|
||||
assert "file=<relative path>" in core_prompt
|
||||
assert "returns up to 512 KiB of the skill body" in core_prompt
|
||||
assert "do not use `read_file` to bypass the limit" in core_prompt
|
||||
|
||||
@@ -206,6 +208,7 @@ def test_api_and_database_skills_declare_final_boundaries() -> None:
|
||||
assert "Never provide a URL, method, authentication header, API key" in api_content
|
||||
assert "retired tool name" in api_content
|
||||
assert "moviepilot tool" in api_content
|
||||
assert "second Models document" in api_content
|
||||
|
||||
update_content = _read_skill("moviepilot-update")
|
||||
assert "allowed-tools: moviepilot_api" in update_content
|
||||
|
||||
Reference in New Issue
Block a user