Files
RuDS/docs/scripting/api.json

1944 lines
47 KiB
JSON

{
"methods": [
{
"description": "Copy text to the system clipboard.",
"name": "copy_to_clipboard",
"namespace": "app",
"params": [
{
"name": "text",
"required": true,
"type": "string"
}
],
"returns": "boolean"
},
{
"description": "Return filesystem paths for the current application and project data.",
"name": "get_data_paths",
"namespace": "app",
"params": [],
"returns": "table"
},
{
"description": "Return the Blogmark bookmarklet JavaScript source.",
"name": "get_blogmark_bookmarklet",
"namespace": "app",
"params": [],
"returns": "string"
},
{
"description": "Return the current UI locale (the server-side UI language setting, falling back to the OS locale when unset).",
"name": "get_system_language",
"namespace": "app",
"params": [],
"returns": "string | nil"
},
{
"description": "Return the current project's filesystem path.",
"name": "get_default_project_path",
"namespace": "app",
"params": [],
"returns": "string | nil"
},
{
"description": "Return desktop title bar inset metrics when available.",
"name": "get_title_bar_metrics",
"namespace": "app",
"params": [],
"returns": "table | nil"
},
{
"description": "Append a line to the script output stream. Multiple arguments are joined with spaces. Output appears in the desktop app's Output panel (and on stdout in the CLI); Lua's global `print` is routed the same way.",
"name": "log",
"namespace": "app",
"params": [
{
"name": "text",
"required": true,
"type": "string"
}
],
"returns": "boolean"
},
{
"description": "Notify the host application that the renderer is ready.",
"name": "notify_renderer_ready",
"namespace": "app",
"params": [],
"returns": "boolean"
},
{
"description": "Open a folder in the system file manager.",
"name": "open_folder",
"namespace": "app",
"params": [
{
"name": "folder_path",
"required": true,
"type": "string"
}
],
"returns": "string"
},
{
"description": "Read project metadata from a project folder path.",
"name": "read_project_metadata",
"namespace": "app",
"params": [
{
"name": "folder_path",
"required": true,
"type": "string"
}
],
"returns": "ProjectMetadata | nil"
},
{
"description": "Show the native folder picker and return the chosen path.",
"name": "select_folder",
"namespace": "app",
"params": [
{
"name": "title",
"required": false,
"type": "string"
}
],
"returns": "string | nil"
},
{
"description": "Set the current preview-post target used by desktop integrations.",
"name": "set_preview_post_target",
"namespace": "app",
"params": [
{
"name": "post_id",
"required": false,
"type": "string"
}
],
"returns": "boolean"
},
{
"description": "Reveal a file or folder in the system file manager.",
"name": "show_item_in_folder",
"namespace": "app",
"params": [
{
"name": "item_path",
"required": true,
"type": "string"
}
],
"returns": "nil"
},
{
"description": "Trigger a native menu action by action id.",
"name": "trigger_menu_action",
"namespace": "app",
"params": [
{
"name": "action",
"required": true,
"type": "string"
}
],
"returns": "nil"
},
{
"description": "Report numeric progress for the current script execution, optionally including a total and a user-facing message.",
"compatibility": "ruds",
"name": "progress",
"namespace": "app",
"params": [
{
"name": "current",
"required": true,
"type": "number"
},
{
"name": "total",
"required": false,
"type": "number"
},
{
"name": "message",
"required": false,
"type": "string"
}
],
"returns": "boolean"
},
{
"description": "Show bounded user feedback from a script. Transform scripts are subject to the runtime toast budget.",
"compatibility": "ruds",
"name": "toast",
"namespace": "app",
"params": [
{
"name": "message",
"required": true,
"type": "string"
}
],
"returns": "boolean"
},
{
"description": "Create a project.",
"name": "create",
"namespace": "projects",
"params": [
{
"name": "data",
"required": true,
"type": "table"
}
],
"returns": "ProjectData | nil"
},
{
"description": "Delete a project by id.",
"name": "delete",
"namespace": "projects",
"params": [
{
"name": "id",
"required": true,
"type": "string"
}
],
"returns": "boolean"
},
{
"description": "Delete a project by id and remove its project directory.",
"name": "delete_with_data",
"namespace": "projects",
"params": [
{
"name": "id",
"required": true,
"type": "string"
}
],
"returns": "boolean"
},
{
"description": "Fetch one project by id.",
"name": "get",
"namespace": "projects",
"params": [
{
"name": "id",
"required": true,
"type": "string"
}
],
"returns": "ProjectData | nil"
},
{
"description": "Fetch all projects.",
"name": "get_all",
"namespace": "projects",
"params": [],
"returns": "ProjectData[]"
},
{
"description": "Fetch the active project.",
"name": "get_active",
"namespace": "projects",
"params": [],
"returns": "ProjectData | nil"
},
{
"description": "Set the active project by id.",
"name": "set_active",
"namespace": "projects",
"params": [
{
"name": "id",
"required": true,
"type": "string"
}
],
"returns": "ProjectData | nil"
},
{
"description": "Update a project by id.",
"name": "update",
"namespace": "projects",
"params": [
{
"name": "id",
"required": true,
"type": "string"
},
{
"name": "data",
"required": true,
"type": "table"
}
],
"returns": "ProjectData | nil"
},
{
"description": "Read metadata for the current project.",
"name": "get_project_metadata",
"namespace": "meta",
"params": [],
"returns": "ProjectMetadata"
},
{
"description": "Update metadata for the current project. Keys omitted from updates keep their current values.",
"name": "update_project_metadata",
"namespace": "meta",
"params": [
{
"name": "updates",
"required": true,
"type": "table"
}
],
"returns": "ProjectMetadata | nil"
},
{
"description": "Replace project metadata fields for the current project.",
"name": "set_project_metadata",
"namespace": "meta",
"params": [
{
"name": "updates",
"required": true,
"type": "table"
}
],
"returns": "ProjectMetadata | nil"
},
{
"description": "Add a category to the current project.",
"name": "add_category",
"namespace": "meta",
"params": [
{
"name": "name",
"required": true,
"type": "string"
}
],
"returns": "ProjectMetadata | nil"
},
{
"description": "Remove a category from the current project.",
"name": "remove_category",
"namespace": "meta",
"params": [
{
"name": "name",
"required": true,
"type": "string"
}
],
"returns": "ProjectMetadata | nil"
},
{
"description": "Add a tag record to the current project if it does not already exist.",
"name": "add_tag",
"namespace": "meta",
"params": [
{
"name": "name",
"required": true,
"type": "string"
}
],
"returns": "string[]"
},
{
"description": "Remove a tag record from the current project by name.",
"name": "remove_tag",
"namespace": "meta",
"params": [
{
"name": "name",
"required": true,
"type": "string"
}
],
"returns": "string[]"
},
{
"description": "Get project categories.",
"name": "get_categories",
"namespace": "meta",
"params": [],
"returns": "string[]"
},
{
"description": "Get tag names for the current project.",
"name": "get_tags",
"namespace": "meta",
"params": [],
"returns": "string[]"
},
{
"description": "Get publishing preferences for the current project.",
"name": "get_publishing_preferences",
"namespace": "meta",
"params": [],
"returns": "table | nil"
},
{
"description": "Set publishing preferences for the current project.",
"name": "set_publishing_preferences",
"namespace": "meta",
"params": [
{
"name": "prefs",
"required": true,
"type": "table"
}
],
"returns": "table | nil"
},
{
"description": "Reset publishing preferences to defaults.",
"name": "clear_publishing_preferences",
"namespace": "meta",
"params": [],
"returns": "table | nil"
},
{
"description": "Synchronize startup metadata state and return tags, categories, and project metadata.",
"name": "sync_on_startup",
"namespace": "meta",
"params": [],
"returns": "table"
},
{
"description": "Create a post in the current project.",
"name": "create",
"namespace": "posts",
"params": [
{
"name": "data",
"required": true,
"type": "table"
}
],
"returns": "PostData | nil"
},
{
"description": "Discard unpublished post changes and restore the last published version from disk.",
"name": "discard",
"namespace": "posts",
"params": [
{
"name": "id",
"required": true,
"type": "string"
}
],
"returns": "PostData | nil"
},
{
"description": "Filter posts using status, tags, categories, language, year, month, or date range fields.",
"name": "filter",
"namespace": "posts",
"params": [
{
"name": "filters",
"required": true,
"type": "table"
}
],
"returns": "PostData[] | nil"
},
{
"description": "Generate a unique slug from a title, optionally excluding one post id.",
"name": "generate_unique_slug",
"namespace": "posts",
"params": [
{
"name": "title",
"required": true,
"type": "string"
},
{
"name": "exclude_post_id",
"required": false,
"type": "string"
}
],
"returns": "string"
},
{
"description": "Fetch posts filtered by a specific status.",
"name": "get_by_status",
"namespace": "posts",
"params": [
{
"name": "status",
"required": true,
"type": "string"
}
],
"returns": "PostData[]"
},
{
"description": "Get post counts grouped by year and month.",
"name": "get_by_year_month",
"namespace": "posts",
"params": [],
"returns": "table[]"
},
{
"description": "Return aggregate post dashboard counts for the current project.",
"name": "get_dashboard_stats",
"namespace": "posts",
"params": [],
"returns": "table"
},
{
"description": "Return posts that link to the given post.",
"name": "get_linked_by",
"namespace": "posts",
"params": [
{
"name": "post_id",
"required": true,
"type": "string"
}
],
"returns": "table[]"
},
{
"description": "Return posts linked from the given post.",
"name": "get_links_to",
"namespace": "posts",
"params": [
{
"name": "post_id",
"required": true,
"type": "string"
}
],
"returns": "table[]"
},
{
"description": "Return the local preview URL for a post, optionally with draft and language query parameters.",
"name": "get_preview_url",
"namespace": "posts",
"params": [
{
"name": "post_id",
"required": true,
"type": "string"
},
{
"name": "options",
"required": false,
"type": "table"
}
],
"returns": "string | nil"
},
{
"description": "Update a post by id.",
"name": "update",
"namespace": "posts",
"params": [
{
"name": "id",
"required": true,
"type": "string"
},
{
"name": "data",
"required": true,
"type": "table"
}
],
"returns": "PostData | nil"
},
{
"description": "Delete a post by id.",
"name": "delete",
"namespace": "posts",
"params": [
{
"name": "id",
"required": true,
"type": "string"
}
],
"returns": "boolean"
},
{
"description": "Fetch one post by id.",
"name": "get",
"namespace": "posts",
"params": [
{
"name": "id",
"required": true,
"type": "string"
}
],
"returns": "PostData | nil"
},
{
"description": "Fetch all posts in the current project.",
"name": "get_all",
"namespace": "posts",
"params": [],
"returns": "PostData[]"
},
{
"description": "Fetch one post by slug.",
"name": "get_by_slug",
"namespace": "posts",
"params": [
{
"name": "slug",
"required": true,
"type": "string"
}
],
"returns": "PostData | nil"
},
{
"description": "Get category names used by posts in the current project.",
"name": "get_categories",
"namespace": "posts",
"params": [],
"returns": "string[]"
},
{
"description": "Get post categories with usage counts.",
"name": "get_categories_with_counts",
"namespace": "posts",
"params": [],
"returns": "table[]"
},
{
"description": "Get tag names used by posts in the current project.",
"name": "get_tags",
"namespace": "posts",
"params": [],
"returns": "string[]"
},
{
"description": "Get post tags with usage counts.",
"name": "get_tags_with_counts",
"namespace": "posts",
"params": [],
"returns": "table[]"
},
{
"description": "Get a single translation for a post by language.",
"name": "get_translation",
"namespace": "posts",
"params": [
{
"name": "post_id",
"required": true,
"type": "string"
},
{
"name": "language",
"required": true,
"type": "string"
}
],
"returns": "table | nil"
},
{
"description": "Get all translations for a post.",
"name": "get_translations",
"namespace": "posts",
"params": [
{
"name": "post_id",
"required": true,
"type": "string"
}
],
"returns": "table[]"
},
{
"description": "Check whether a post has a published version.",
"name": "has_published_version",
"namespace": "posts",
"params": [
{
"name": "post_id",
"required": true,
"type": "string"
}
],
"returns": "boolean"
},
{
"description": "Return whether a slug is available in the current project, optionally excluding one post id.",
"name": "is_slug_available",
"namespace": "posts",
"params": [
{
"name": "slug",
"required": true,
"type": "string"
},
{
"name": "exclude_post_id",
"required": false,
"type": "string"
}
],
"returns": "boolean"
},
{
"description": "Publish a post by id.",
"name": "publish",
"namespace": "posts",
"params": [
{
"name": "id",
"required": true,
"type": "string"
}
],
"returns": "PostData | nil"
},
{
"description": "Publish one translation of a post by language.",
"name": "publish_translation",
"namespace": "posts",
"params": [
{
"name": "post_id",
"required": true,
"type": "string"
},
{
"name": "language",
"required": true,
"type": "string"
}
],
"returns": "table | nil"
},
{
"description": "Rebuild post records from published files.",
"name": "rebuild_from_files",
"namespace": "posts",
"params": [],
"returns": "PostData[] | nil"
},
{
"description": "Rebuild the post link graph for the current project.",
"name": "rebuild_links",
"namespace": "posts",
"params": [],
"returns": "boolean"
},
{
"description": "Reindex post and media search text for the current project.",
"name": "reindex_text",
"namespace": "posts",
"params": [],
"returns": "boolean"
},
{
"description": "Search posts by free-text query.",
"name": "search",
"namespace": "posts",
"params": [
{
"name": "query",
"required": true,
"type": "string"
}
],
"returns": "PostData[] | nil"
},
{
"description": "Delete a media translation by language.",
"name": "delete_translation",
"namespace": "media",
"params": [
{
"name": "media_id",
"required": true,
"type": "string"
},
{
"name": "language",
"required": true,
"type": "string"
}
],
"returns": "boolean"
},
{
"description": "Filter media using year, month, tags, language, or date range fields.",
"name": "filter",
"namespace": "media",
"params": [
{
"name": "filters",
"required": true,
"type": "table"
}
],
"returns": "MediaData[]"
},
{
"description": "Import media into the current project.",
"name": "import",
"namespace": "media",
"params": [
{
"name": "data",
"required": true,
"type": "table"
}
],
"returns": "MediaData | nil"
},
{
"description": "Get media counts grouped by year and month.",
"name": "get_by_year_month",
"namespace": "media",
"params": [],
"returns": "table[]"
},
{
"description": "Return the absolute file path for a media item.",
"name": "get_file_path",
"namespace": "media",
"params": [
{
"name": "media_id",
"required": true,
"type": "string"
}
],
"returns": "string | nil"
},
{
"description": "Update media metadata by id.",
"name": "update",
"namespace": "media",
"params": [
{
"name": "id",
"required": true,
"type": "string"
},
{
"name": "data",
"required": true,
"type": "table"
}
],
"returns": "MediaData | nil"
},
{
"description": "Delete a media item by id.",
"name": "delete",
"namespace": "media",
"params": [
{
"name": "id",
"required": true,
"type": "string"
}
],
"returns": "boolean"
},
{
"description": "Fetch one media item by id.",
"name": "get",
"namespace": "media",
"params": [
{
"name": "id",
"required": true,
"type": "string"
}
],
"returns": "MediaData | nil"
},
{
"description": "Fetch all media in the current project.",
"name": "get_all",
"namespace": "media",
"params": [],
"returns": "MediaData[]"
},
{
"description": "Return tag names used by media in the current project.",
"name": "get_tags",
"namespace": "media",
"params": [],
"returns": "string[]"
},
{
"description": "Return media tags with usage counts.",
"name": "get_tags_with_counts",
"namespace": "media",
"params": [],
"returns": "table[]"
},
{
"description": "Return a media thumbnail as a data URL for the requested size.",
"name": "get_thumbnail",
"namespace": "media",
"params": [
{
"name": "media_id",
"required": true,
"type": "string"
},
{
"name": "size",
"required": false,
"type": "string"
}
],
"returns": "string | nil"
},
{
"description": "Return one media translation by language.",
"name": "get_translation",
"namespace": "media",
"params": [
{
"name": "media_id",
"required": true,
"type": "string"
},
{
"name": "language",
"required": true,
"type": "string"
}
],
"returns": "table | nil"
},
{
"description": "Return all translations for a media item.",
"name": "get_translations",
"namespace": "media",
"params": [
{
"name": "media_id",
"required": true,
"type": "string"
}
],
"returns": "table[]"
},
{
"description": "Return the project-relative public URL path for a media item.",
"name": "get_url",
"namespace": "media",
"params": [
{
"name": "media_id",
"required": true,
"type": "string"
}
],
"returns": "string | nil"
},
{
"description": "Rebuild media records from sidecar files on disk.",
"name": "rebuild_from_files",
"namespace": "media",
"params": [],
"returns": "MediaData[] | nil"
},
{
"description": "Generate thumbnails for media items that are missing them.",
"name": "regenerate_missing_thumbnails",
"namespace": "media",
"params": [],
"returns": "table"
},
{
"description": "Regenerate all thumbnails for one media item.",
"name": "regenerate_thumbnails",
"namespace": "media",
"params": [
{
"name": "media_id",
"required": true,
"type": "string"
}
],
"returns": "table | nil"
},
{
"description": "Reindex post and media search text for the current project.",
"name": "reindex_text",
"namespace": "media",
"params": [],
"returns": "boolean"
},
{
"description": "Replace the binary file behind an existing media item.",
"name": "replace_file",
"namespace": "media",
"params": [
{
"name": "media_id",
"required": true,
"type": "string"
},
{
"name": "source_path",
"required": true,
"type": "string"
}
],
"returns": "MediaData | nil"
},
{
"description": "Search media by free-text query.",
"name": "search",
"namespace": "media",
"params": [
{
"name": "query",
"required": true,
"type": "string"
}
],
"returns": "MediaData[] | nil"
},
{
"description": "Create or update a media translation.",
"name": "upsert_translation",
"namespace": "media",
"params": [
{
"name": "media_id",
"required": true,
"type": "string"
},
{
"name": "language",
"required": true,
"type": "string"
},
{
"name": "data",
"required": true,
"type": "table"
}
],
"returns": "table | nil"
},
{
"description": "Create a script in the current project.",
"name": "create",
"namespace": "scripts",
"params": [
{
"name": "data",
"required": true,
"type": "table"
}
],
"returns": "ScriptData | nil"
},
{
"description": "Update a script by id.",
"name": "update",
"namespace": "scripts",
"params": [
{
"name": "id",
"required": true,
"type": "string"
},
{
"name": "data",
"required": true,
"type": "table"
}
],
"returns": "ScriptData | nil"
},
{
"description": "Delete a script by id.",
"name": "delete",
"namespace": "scripts",
"params": [
{
"name": "id",
"required": true,
"type": "string"
}
],
"returns": "boolean"
},
{
"description": "Fetch one script by id.",
"name": "get",
"namespace": "scripts",
"params": [
{
"name": "id",
"required": true,
"type": "string"
}
],
"returns": "ScriptData | nil"
},
{
"description": "Fetch all scripts in the current project.",
"name": "get_all",
"namespace": "scripts",
"params": [],
"returns": "ScriptData[]"
},
{
"description": "Publish a script by id.",
"name": "publish",
"namespace": "scripts",
"params": [
{
"name": "id",
"required": true,
"type": "string"
}
],
"returns": "ScriptData | nil"
},
{
"description": "Rebuild script records from published files.",
"name": "rebuild_from_files",
"namespace": "scripts",
"params": [],
"returns": "ScriptData[] | nil"
},
{
"description": "Create a template in the current project.",
"name": "create",
"namespace": "templates",
"params": [
{
"name": "data",
"required": true,
"type": "table"
}
],
"returns": "TemplateData | nil"
},
{
"description": "Update a template by id.",
"name": "update",
"namespace": "templates",
"params": [
{
"name": "id",
"required": true,
"type": "string"
},
{
"name": "data",
"required": true,
"type": "table"
}
],
"returns": "TemplateData | nil"
},
{
"description": "Delete a template by id.",
"name": "delete",
"namespace": "templates",
"params": [
{
"name": "id",
"required": true,
"type": "string"
}
],
"returns": "boolean"
},
{
"description": "Fetch one template by id.",
"name": "get",
"namespace": "templates",
"params": [
{
"name": "id",
"required": true,
"type": "string"
}
],
"returns": "TemplateData | nil"
},
{
"description": "Fetch all templates in the current project.",
"name": "get_all",
"namespace": "templates",
"params": [],
"returns": "TemplateData[]"
},
{
"description": "Publish a template by id.",
"name": "publish",
"namespace": "templates",
"params": [
{
"name": "id",
"required": true,
"type": "string"
}
],
"returns": "TemplateData | nil"
},
{
"description": "Fetch enabled templates filtered by kind.",
"name": "get_enabled_by_kind",
"namespace": "templates",
"params": [
{
"name": "kind",
"required": true,
"type": "string"
}
],
"returns": "TemplateData[]"
},
{
"description": "Rebuild template records from published files.",
"name": "rebuild_from_files",
"namespace": "templates",
"params": [],
"returns": "TemplateData[] | nil"
},
{
"description": "Validate Liquid template syntax.",
"name": "validate",
"namespace": "templates",
"params": [
{
"name": "content",
"required": true,
"type": "string"
}
],
"returns": "ValidationResult | nil"
},
{
"description": "Create a tag in the current project.",
"name": "create",
"namespace": "tags",
"params": [
{
"name": "data",
"required": true,
"type": "table"
}
],
"returns": "TagData | nil"
},
{
"description": "Update a tag by id.",
"name": "update",
"namespace": "tags",
"params": [
{
"name": "id",
"required": true,
"type": "string"
},
{
"name": "data",
"required": true,
"type": "table"
}
],
"returns": "TagData | nil"
},
{
"description": "Delete a tag by id.",
"name": "delete",
"namespace": "tags",
"params": [
{
"name": "id",
"required": true,
"type": "string"
}
],
"returns": "boolean"
},
{
"description": "Fetch one tag by id.",
"name": "get",
"namespace": "tags",
"params": [
{
"name": "id",
"required": true,
"type": "string"
}
],
"returns": "TagData | nil"
},
{
"description": "Fetch all tags in the current project.",
"name": "get_all",
"namespace": "tags",
"params": [],
"returns": "TagData[]"
},
{
"description": "Fetch one tag by name.",
"name": "get_by_name",
"namespace": "tags",
"params": [
{
"name": "name",
"required": true,
"type": "string"
}
],
"returns": "TagData | nil"
},
{
"description": "Get post ids using a specific tag.",
"name": "get_posts_with_tag",
"namespace": "tags",
"params": [
{
"name": "tag_id",
"required": true,
"type": "string"
}
],
"returns": "string[]"
},
{
"description": "Fetch tags with usage counts.",
"name": "get_with_counts",
"namespace": "tags",
"params": [],
"returns": "table[]"
},
{
"description": "Merge source tags into a target tag.",
"name": "merge",
"namespace": "tags",
"params": [
{
"name": "source_tag_ids",
"required": true,
"type": "table"
},
{
"name": "target_tag_id",
"required": true,
"type": "string"
}
],
"returns": "boolean"
},
{
"description": "Rename a tag by id.",
"name": "rename",
"namespace": "tags",
"params": [
{
"name": "id",
"required": true,
"type": "string"
},
{
"name": "new_name",
"required": true,
"type": "string"
}
],
"returns": "TagData | nil"
},
{
"description": "Sync tag records from post tags.",
"name": "sync_from_posts",
"namespace": "tags",
"params": [],
"returns": "TagData[] | nil"
},
{
"description": "Fetch one task by id.",
"name": "get",
"namespace": "tasks",
"params": [
{
"name": "id",
"required": true,
"type": "string"
}
],
"returns": "TaskData | nil"
},
{
"description": "Fetch the current task status snapshot.",
"name": "status_snapshot",
"namespace": "tasks",
"params": [],
"returns": "TaskStatus"
},
{
"description": "Cancel a task by id.",
"name": "cancel",
"namespace": "tasks",
"params": [
{
"name": "id",
"required": true,
"type": "string"
}
],
"returns": "boolean"
},
{
"description": "Fetch all tasks currently tracked by the task manager.",
"name": "get_all",
"namespace": "tasks",
"params": [],
"returns": "TaskData[]"
},
{
"description": "Fetch running tasks currently tracked by the task manager.",
"name": "get_running",
"namespace": "tasks",
"params": [],
"returns": "TaskData[]"
},
{
"description": "Clear completed tasks from the in-memory task list.",
"name": "clear_completed",
"namespace": "tasks",
"params": [],
"returns": "boolean"
},
{
"description": "Return whether Git is available on the current machine.",
"name": "check_availability",
"namespace": "sync",
"params": [],
"returns": "boolean"
},
{
"description": "Return repository state for the active project using the GitRepositoryState shape.",
"name": "get_repo_state",
"namespace": "sync",
"params": [],
"returns": "table | nil"
},
{
"description": "Return Git status for the active project using the GitStatusResult shape.",
"name": "get_status",
"namespace": "sync",
"params": [],
"returns": "table | nil"
},
{
"description": "Return commit history for the active project using the GitHistoryResult shape.",
"name": "get_history",
"namespace": "sync",
"params": [],
"returns": "table | nil"
},
{
"description": "Return the GitRepositoryState for the active project, matching the bDS2 remote-state alias.",
"name": "get_remote_state",
"namespace": "sync",
"params": [],
"returns": "table | nil"
},
{
"description": "Fetch and prune remote Git refs for the active project, returning GitNetworkResult; unavailable in airplane mode.",
"name": "fetch",
"namespace": "sync",
"params": [],
"returns": "table | nil"
},
{
"description": "Fast-forward pull the active project, reconcile its cache database, and return GitNetworkResult; unavailable in airplane mode.",
"name": "pull",
"namespace": "sync",
"params": [],
"returns": "table | nil"
},
{
"description": "Push the active project to its configured remote and return GitNetworkResult; unavailable in airplane mode.",
"name": "push",
"namespace": "sync",
"params": [],
"returns": "table | nil"
},
{
"description": "Stage and commit every pending change in the active project, returning GitCommitResult.",
"name": "commit_all",
"namespace": "sync",
"params": [
{
"name": "message",
"required": true,
"type": "string"
}
],
"returns": "table | nil"
},
{
"description": "Upload the rendered site using the provided publishing credentials.",
"name": "upload_site",
"namespace": "publish",
"params": [
{
"name": "credentials",
"required": true,
"type": "table"
}
],
"returns": "TaskData | nil"
},
{
"description": "Detect the language of post title and content.",
"name": "detect_post_language",
"namespace": "chat",
"params": [
{
"name": "title",
"required": true,
"type": "string"
},
{
"name": "content",
"required": true,
"type": "string"
}
],
"returns": "table"
},
{
"description": "Analyze a post using the configured AI runtime.",
"name": "analyze_post",
"namespace": "chat",
"params": [
{
"name": "post_id",
"required": true,
"type": "string"
}
],
"returns": "table | nil"
},
{
"description": "Translate a post and persist the translation.",
"name": "translate_post",
"namespace": "chat",
"params": [
{
"name": "post_id",
"required": true,
"type": "string"
},
{
"name": "language",
"required": true,
"type": "string"
}
],
"returns": "table | nil"
},
{
"description": "Analyze a media image using the configured AI runtime.",
"name": "analyze_media_image",
"namespace": "chat",
"params": [
{
"name": "media_id",
"required": true,
"type": "string"
}
],
"returns": "table | nil"
},
{
"description": "Detect the language of media metadata.",
"name": "detect_media_language",
"namespace": "chat",
"params": [
{
"name": "title",
"required": true,
"type": "string"
},
{
"name": "alt",
"required": false,
"type": "string"
},
{
"name": "caption",
"required": false,
"type": "string"
}
],
"returns": "table"
},
{
"description": "Translate media metadata and persist the translation.",
"name": "translate_media_metadata",
"namespace": "chat",
"params": [
{
"name": "media_id",
"required": true,
"type": "string"
},
{
"name": "language",
"required": true,
"type": "string"
}
],
"returns": "table | nil"
},
{
"description": "Compute similarity scores from one source post to target posts.",
"name": "compute_similarities",
"namespace": "embeddings",
"params": [
{
"name": "post_id",
"required": true,
"type": "string"
},
{
"name": "target_ids",
"required": true,
"type": "table"
}
],
"returns": "table | nil"
},
{
"description": "Dismiss a duplicate candidate pair.",
"name": "dismiss_pair",
"namespace": "embeddings",
"params": [
{
"name": "post_id_a",
"required": true,
"type": "string"
},
{
"name": "post_id_b",
"required": true,
"type": "string"
}
],
"returns": "boolean"
},
{
"description": "Find duplicate post candidates for the current project.",
"name": "find_duplicates",
"namespace": "embeddings",
"params": [],
"returns": "table | nil"
},
{
"description": "Find posts similar to the given post id.",
"name": "find_similar",
"namespace": "embeddings",
"params": [
{
"name": "post_id",
"required": true,
"type": "string"
},
{
"name": "limit",
"required": false,
"type": "integer"
}
],
"returns": "table | nil"
},
{
"description": "Get embedding index progress for the current project.",
"name": "get_progress",
"namespace": "embeddings",
"params": [],
"returns": "table | nil"
},
{
"description": "Index posts missing embeddings for the current project.",
"name": "index_unindexed_posts",
"namespace": "embeddings",
"params": [],
"returns": "table | nil"
},
{
"description": "Suggest tags for a post from semantic similarity.",
"name": "suggest_tags",
"namespace": "embeddings",
"params": [
{
"name": "post_id",
"required": true,
"type": "string"
},
{
"name": "exclude_tags",
"required": false,
"type": "table"
}
],
"returns": "table | nil"
}
],
"root_methods": [
{
"compatibility": "ruds",
"description": "Report progress for the current managed job.",
"name": "report_progress",
"params": [
{
"name": "payload",
"required": true,
"type": "table"
}
],
"returns": "boolean"
}
],
"types": [
{
"description": "Project record stored in the application database.",
"fields": {
"created_at": "ISO-8601 string",
"data_path": "string | nil",
"description": "string | nil",
"id": "string",
"is_active": "boolean",
"name": "string",
"slug": "string",
"updated_at": "ISO-8601 string"
},
"name": "ProjectData"
},
{
"description": "Current project metadata and publishing settings snapshot.",
"fields": {
"blog_languages": "string[]",
"categories": "string[]",
"default_author": "string | nil",
"description": "string | nil",
"main_language": "string | nil",
"name": "string",
"public_url": "string | nil",
"publishing_preferences": "table"
},
"name": "ProjectMetadata"
},
{
"description": "Post record with link graph data added for scripting.",
"fields": {
"backlinks": "table[]",
"categories": "string[]",
"created_at": "ISO-8601 string",
"id": "string",
"language": "string | nil",
"links_to": "table[]",
"project_id": "string",
"slug": "string",
"status": "string",
"tags": "string[]",
"title": "string",
"updated_at": "ISO-8601 string"
},
"name": "PostData"
},
{
"description": "Media record stored for a project.",
"fields": {
"alt": "string | nil",
"caption": "string | nil",
"created_at": "ISO-8601 string",
"file_path": "string",
"id": "string",
"mime_type": "string",
"original_name": "string",
"project_id": "string",
"tags": "string[]",
"title": "string | nil",
"updated_at": "ISO-8601 string"
},
"name": "MediaData"
},
{
"description": "Lua script record.",
"fields": {
"created_at": "ISO-8601 string",
"enabled": "boolean",
"entrypoint": "string",
"id": "string",
"kind": "string",
"project_id": "string",
"slug": "string",
"status": "string",
"title": "string",
"updated_at": "ISO-8601 string"
},
"name": "ScriptData"
},
{
"description": "Template record for site rendering.",
"fields": {
"created_at": "ISO-8601 string",
"enabled": "boolean",
"id": "string",
"kind": "string",
"project_id": "string",
"slug": "string",
"status": "string",
"title": "string",
"updated_at": "ISO-8601 string"
},
"name": "TemplateData"
},
{
"description": "Tag record stored for a project.",
"fields": {
"color": "string | nil",
"created_at": "ISO-8601 string",
"id": "string",
"name": "string",
"post_template_slug": "string | nil",
"project_id": "string",
"updated_at": "ISO-8601 string"
},
"name": "TagData"
},
{
"description": "Public task snapshot returned by the task manager.",
"fields": {
"cancellable": "boolean",
"cancellation_requested": "boolean",
"group_id": "string | nil",
"group_name": "string | nil",
"id": "string",
"message": "string | nil",
"name": "string",
"progress": "number | nil",
"status": "string"
},
"name": "TaskData"
},
{
"description": "Aggregate task status snapshot.",
"fields": {
"active_count": "integer",
"pending_count": "integer",
"running_count": "integer",
"tasks": "TaskData[]"
},
"name": "TaskStatus"
},
{
"description": "Git hosting provider classification used by bDS2 repository state.",
"fields": {
"kind": "string"
},
"name": "GitProviderData"
},
{
"description": "Repository state returned by bds.sync.get_repo_state and get_remote_state.",
"fields": {
"current_branch": "string | nil",
"has_lfs": "boolean",
"is_initialized": "boolean",
"provider": "GitProviderData | nil",
"remote_url": "string | nil"
},
"name": "GitRepositoryState"
},
{
"description": "One changed path in the active repository.",
"fields": {
"old_path": "string | nil",
"path": "string",
"status": "string"
},
"name": "GitFileStatus"
},
{
"description": "Repository working-tree status returned by bds.sync.get_status.",
"fields": {
"files": "GitFileStatus[]"
},
"name": "GitStatusResult"
},
{
"description": "Whether a commit exists locally, remotely, or in both histories.",
"fields": {
"kind": "string"
},
"name": "GitSyncStatus"
},
{
"description": "Commit entry returned in bds.sync history.",
"fields": {
"author": "string | nil",
"date": "ISO-8601 string | nil",
"hash": "string",
"subject": "string | nil",
"sync_status": "GitSyncStatus"
},
"name": "GitCommitData"
},
{
"description": "Commit history returned by bds.sync.get_history.",
"fields": {
"commits": "GitCommitData[]"
},
"name": "GitHistoryResult"
},
{
"description": "Result of a successful bds.sync network operation.",
"fields": {
"output": "string",
"updated": "boolean"
},
"name": "GitNetworkResult"
},
{
"description": "Result of successfully committing all pending repository changes.",
"fields": {
"message": "string",
"output": "string"
},
"name": "GitCommitResult"
},
{
"description": "Template validation result.",
"fields": {
"errors": "string[]",
"valid": "boolean"
},
"name": "ValidationResult"
}
],
"version": "0.4.0"
}