distillery_watch
List, add, or remove RSS and GitHub feed sources to control which content gets monitored.
Instructions
Manage monitored feed sources for ambient intelligence.
USE WHEN: listing, adding, or removing RSS/GitHub feed sources that Distillery polls for new content.
PARAMS:
action (str, required): Operation to perform. Valid: [list, add, remove].
url (str, required for add/remove): Feed URL or GitHub owner/repo slug.
source_type (str, required for add): Feed type. Valid: [rss, github].
label (str, optional): Human-readable label for the source.
poll_interval_minutes (int, optional, default=60): Polling frequency in minutes.
trust_weight (float, optional, default=1.0): Source trust weight (0-1).
thresholds (object, optional): Per-source overrides for the global
feeds.thresholdsvalues. Mapping with optional float keysalertand/ordigestin [0.0, 1.0] (when both set,digest <= alert). When omitted, the global cutoffs apply (pre-existing behaviour). Use this to raise the bar for noisy aggregators (HN/Lobsters/Reddit) sincetrust_weightonly attenuates downward.sync_history (bool, optional, default=false): When true and source_type is "github", kicks off an async background import of historical issues/PRs (returns immediately with job_id; use distillery_sync_status to check progress).
purge (bool, optional, default=false): When true and action is "remove", archives all entries from the removed source (soft-delete). Returns the count of archived entries in purged_entries.
probe (bool, optional, default=true): When adding, lightly probe the URL for reachability (HEAD with GET fallback, short timeout). Returns an INVALID_PARAMS error (with details.probe_failed=true) if the probe fails.
force (bool, optional, default=false): When adding, persist the source even if the reachability probe fails (useful for sites that block HEAD but work via the poller).
mode (str, optional, github only): Which content-bearing surface to poll. Valid: [releases, events]. Defaults to "releases" (one body-bearing entry per release). "events" is the opt-in contentless firehose.
RETURNS (success): { sources: list, count: int } (list) or { added: dict, sources: list, sync_job?: dict } (add) or { removed_url: str, removed: bool, sources: list, purged_entries?: int } (remove) RETURNS (error): { error: true, code: "INVALID_PARAMS" | "CONFLICT" | "INTERNAL", message: "..." }
RELATED: distillery_configure (to adjust feed thresholds), distillery_store_batch (for bulk entry ingestion)
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| mode | No | ||
| force | No | ||
| label | No | ||
| probe | No | ||
| purge | No | ||
| action | Yes | ||
| thresholds | No | ||
| source_type | No | ||
| sync_history | No | ||
| trust_weight | No | ||
| poll_interval_minutes | No |