{"tools":[{"name":"agent.describe","description":"Describe the Dedupe agent and its contract.","input_schema":{"type":"object","properties":{}}},{"name":"agent.run","description":"Submit a dedupe_outlets or dedupe_assets run.","input_schema":{"type":"object","required":["action","agent_specific_payload"],"properties":{"action":{"enum":["dedupe_outlets","dedupe_assets"]},"triggered_by":{"type":"object"},"context":{"type":"object"},"agent_specific_payload":{"type":"object","required":["input_path"],"properties":{"name":{"type":"string"},"input_path":{"type":"string"},"params":{"type":"object"}}},"callback_url":{"type":"string"},"dry_run":{"type":"boolean"},"idempotency_key":{"type":"string"}}}},{"name":"agent.get_run","description":"Inspect a run by id.","input_schema":{"type":"object","required":["run_id"],"properties":{"run_id":{"type":"string"}}}},{"name":"agent.list_runs","description":"List runs for the tenant.","input_schema":{"type":"object","properties":{}}},{"name":"agent.cancel_run","description":"Cancel a queued or running run.","input_schema":{"type":"object","required":["run_id"],"properties":{"run_id":{"type":"string"}}}},{"name":"agent.simulate","description":"Validate and record a dry-run request without queueing worker execution.","input_schema":{"type":"object","required":["action","agent_specific_payload"],"properties":{"action":{"enum":["dedupe_outlets","dedupe_assets"]},"triggered_by":{"type":"object"},"context":{"type":"object"},"agent_specific_payload":{"type":"object","properties":{"name":{"type":"string"},"input_path":{"type":"string"},"params":{"type":"object"}}},"callback_url":{"type":"string"},"dry_run":{"type":"boolean"},"idempotency_key":{"type":"string"}}}},{"name":"dedupe.preview_file","description":"Preview a local file path and return mapping, blockers, candidate estimate, and optional photo readiness.","input_schema":{"type":"object","required":["input_path"],"properties":{"input_path":{"type":"string"},"max_distance_m":{"type":"number"},"column_mapping":{"type":"object"},"include_photo_readiness":{"type":"boolean"}}}},{"name":"dedupe.get_actions","description":"Get retire, photo-fix, and review recommendations for a run.","input_schema":{"type":"object","required":["run_id"],"properties":{"run_id":{"type":"string"}}}},{"name":"dedupe.get_artifacts","description":"Get concise agent-facing run artifacts: summary, duplicate sets, retirements, photo quality, approval, and export.","input_schema":{"type":"object","required":["run_id"],"properties":{"run_id":{"type":"string"}}}},{"name":"dedupe.get_approval_request","description":"Get the approval requirement for a run before applying writeback.","input_schema":{"type":"object","required":["run_id"],"properties":{"run_id":{"type":"string"}}}},{"name":"dedupe.get_photo_quality","description":"List photo quality records for a run.","input_schema":{"type":"object","required":["run_id"],"properties":{"run_id":{"type":"string"},"label":{"type":"string"},"review_status":{"type":"string"},"page_size":{"type":"integer"},"offset":{"type":"integer"}}}},{"name":"dedupe.update_photo_quality","description":"Bulk-update photo quality review status.","input_schema":{"type":"object","required":["run_id","outlets","review_status"],"properties":{"run_id":{"type":"string"},"outlets":{"type":"array","items":{"type":"string"}},"review_status":{"type":"string"},"reviewer":{"type":"string"},"notes":{"type":"string"}}}},{"name":"dedupe.get_duplicate_sets","description":"List duplicate sets for a run.","input_schema":{"type":"object","required":["run_id"],"properties":{"run_id":{"type":"string"},"status":{"type":"string"},"page_size":{"type":"integer"},"offset":{"type":"integer"}}}},{"name":"dedupe.get_duplicate_set","description":"Get one duplicate set with members and reasoning.","input_schema":{"type":"object","required":["cluster_id"],"properties":{"cluster_id":{"type":"integer"}}}},{"name":"dedupe.confirm_duplicate_set","description":"Confirm a duplicate set.","input_schema":{"type":"object","required":["cluster_id"],"properties":{"cluster_id":{"type":"integer"},"reviewer":{"type":"string"},"notes":{"type":"string"}}}},{"name":"dedupe.dismiss_duplicate_set","description":"Dismiss a duplicate set.","input_schema":{"type":"object","required":["cluster_id"],"properties":{"cluster_id":{"type":"integer"},"reviewer":{"type":"string"},"notes":{"type":"string"}}}},{"name":"dedupe.choose_primary_record","description":"Choose the record/source Outlet ID to keep for a duplicate set.","input_schema":{"type":"object","required":["cluster_id","canonical_outlet"],"properties":{"cluster_id":{"type":"integer"},"canonical_outlet":{"type":"string"},"reviewer":{"type":"string"}}}},{"name":"dedupe.get_pair_checks","description":"Get bounded pair review queue by default.","input_schema":{"type":"object","required":["run_id"],"properties":{"run_id":{"type":"string"},"state":{"type":"string"},"verdict":{"type":"string"},"review_queue":{"type":"boolean"},"page_size":{"type":"integer"},"offset":{"type":"integer"}}}},{"name":"dedupe.review_pair","description":"Persist a pair-level reviewer decision.","input_schema":{"type":"object","required":["run_id","pair_key","verdict"],"properties":{"run_id":{"type":"string"},"pair_key":{"type":"string"},"verdict":{"type":"string"},"reviewer":{"type":"string"},"notes":{"type":"string"}}}},{"name":"dedupe.export_run","description":"Return export endpoint metadata for a run.","input_schema":{"type":"object","required":["run_id"],"properties":{"run_id":{"type":"string"}}}},{"name":"dedupe.list_sources","description":"List supported input sources and mutation capabilities.","input_schema":{"type":"object","properties":{}}},{"name":"dedupe.fa_get_hierarchy","description":"Get permitted FA geography hierarchy for the trusted company context.","input_schema":{"type":"object","properties":{}}},{"name":"dedupe.fa_discover_trino","description":"Read-only Trino metadata discovery for FA outlet-master adapter setup.","input_schema":{"type":"object","properties":{}}},{"name":"dedupe.fa_preview_outlets","description":"Preview FA outlets for selected geography before staging a run.","input_schema":{"type":"object","properties":{"scope":{"type":"object"},"max_distance_m":{"type":"number"}}}},{"name":"dedupe.fa_run","description":"Submit a dedupe run from FA outlet master context.","input_schema":{"type":"object","properties":{"name":{"type":"string"},"scope":{"type":"object"},"params":{"type":"object"},"idempotency_key":{"type":"string"}}}},{"name":"dedupe.get_retirements","description":"Get records-to-retire recommendations for a run.","input_schema":{"type":"object","required":["run_id"],"properties":{"run_id":{"type":"string"}}}},{"name":"dedupe.preview_retirements","description":"Validate which retirement recommendations are apply-ready.","input_schema":{"type":"object","required":["run_id"],"properties":{"run_id":{"type":"string"}}}},{"name":"dedupe.apply_retirements","description":"Apply ready retirements if a mutation adapter is connected.","input_schema":{"type":"object","required":["run_id"],"properties":{"run_id":{"type":"string"},"idempotency_key":{"type":"string"},"dry_run":{"type":"boolean"}}}}]}