{
  "enabled": true,
  "tools": {
    "health_stub": {
      "enabled": true,
      "description": "Tunnel/health stub — TW-326"
    },
    "catalog_search": {
      "enabled": true,
      "description": "Business catalog search — TW-300"
    },
    "get_entity_definition": {
      "enabled": true,
      "description": "Catalog entity definition — TW-327"
    },
    "adcenter_get_campaign": {
      "enabled": true,
      "description": "AdCenter campaign read — TW-303"
    },
    "adcenter_list_campaigns": {
      "enabled": true,
      "description": "AdCenter campaign list — TW-303"
    },
    "adcenter_get_campaign_creatives": {
      "enabled": true,
      "description": "AdCenter campaign creatives — TW-303"
    },
    "adcenter_get_creative": {
      "enabled": true,
      "description": "AdCenter creative read — TW-304"
    },
    "adcenter_list_creatives": {
      "enabled": true,
      "description": "AdCenter creative list — TW-304"
    },
    "adcenter_get_creative_sizes": {
      "enabled": true,
      "description": "AdCenter creative sizes — TW-304"
    },
    "adcenter_get_report": {
      "enabled": true,
      "description": "AdCenter summary report — TW-305"
    },
    "adcenter_get_campaign_report": {
      "enabled": true,
      "description": "AdCenter campaign report — TW-305"
    },
    "adcenter_get_creative_report": {
      "enabled": true,
      "description": "AdCenter creative report — TW-305"
    },
    "adcenter_list_lists": {
      "enabled": true,
      "description": "AdCenter targeting list catalog — TW-302"
    },
    "adcenter_get_list": {
      "enabled": true,
      "description": "AdCenter targeting list detail — TW-302"
    },
    "adcenter_get_keyword_targetids": {
      "enabled": true,
      "description": "AdCenter keyword target ids — TW-302"
    },
    "adcenter_get_retargeting_pixel": {
      "enabled": true,
      "description": "AdCenter retargeting pixels — TW-302"
    },
    "adcenter_list_channels": {
      "enabled": true,
      "description": "AdCenter targeting channels — TW-302"
    },
    "adcenter_sm_get_campaign": {
      "enabled": true,
      "description": "AdCenter SM campaign read — TW-302"
    },
    "adcenter_sm_get_adset": {
      "enabled": true,
      "description": "AdCenter SM adset read — TW-302"
    },
    "adcenter_sm_get_ad": {
      "enabled": true,
      "description": "AdCenter SM ad read — TW-302"
    },
    "adcenter_sm_get_media": {
      "enabled": true,
      "description": "AdCenter SM media read — TW-302"
    },
    "adcenter_sm_get_adaccount": {
      "enabled": true,
      "description": "AdCenter SM ad account read — TW-302"
    },
    "adcenter_sm_get_pixel": {
      "enabled": true,
      "description": "AdCenter SM pixel read — TW-302"
    },
    "adcenter_sm_list_pages": {
      "enabled": true,
      "description": "AdCenter SM pages list — TW-302"
    },
    "adcenter_sm_get_instagram": {
      "enabled": true,
      "description": "AdCenter SM Instagram read — TW-302"
    },
    "adcenter_sm_targeting": {
      "enabled": true,
      "description": "AdCenter SM targeting helpers — TW-302"
    },
    "adcenter_sm_get_delivery_estimate": {
      "enabled": true,
      "description": "AdCenter SM delivery estimate — TW-302"
    },
    "adcenter_sm_api_search": {
      "enabled": true,
      "description": "AdCenter SM API search — TW-302"
    },
    "adcenter_sm_get_split_test": {
      "enabled": true,
      "description": "AdCenter SM split test — TW-302"
    },
    "adcenter_adwords_get_campaign": {
      "enabled": true,
      "description": "AdCenter AdWords campaign read — TW-302"
    },
    "adcenter_adwords_get_adgroup": {
      "enabled": true,
      "description": "AdCenter AdWords adgroup read — TW-302"
    },
    "adcenter_adwords_get_keywords": {
      "enabled": true,
      "description": "AdCenter AdWords keywords read — TW-302"
    },
    "adcenter_adwords_get_ads": {
      "enabled": true,
      "description": "AdCenter AdWords ads read — TW-302"
    },
    "adcenter_adwords_get_responsive_ads": {
      "enabled": true,
      "description": "AdCenter AdWords responsive ads — TW-302"
    },
    "adcenter_adwords_get_image_ads": {
      "enabled": true,
      "description": "AdCenter AdWords image ads — TW-302"
    },
    "adcenter_adwords_get_budget": {
      "enabled": true,
      "description": "AdCenter AdWords budget read — TW-302"
    },
    "adcenter_adwords_get_adaccount": {
      "enabled": true,
      "description": "AdCenter AdWords ad account read — TW-302"
    },
    "adcenter_adwords_get_targeting": {
      "enabled": true,
      "description": "AdCenter AdWords targeting read — TW-302"
    },
    "adcenter_adwords_get_audience": {
      "enabled": true,
      "description": "AdCenter creative read — TW-303"
    },
    "get_advertiser": {
      "enabled": true,
      "description": "MNGT advertiser read via lucos_ro_advertiser — TW-311"
    },
    "get_publisher": {
      "enabled": true,
      "description": "MNGT publisher read via lucos_ro_publisher — TW-311"
    },
    "get_campaign_budget": {
      "enabled": true,
      "description": "MNGT campaign budget read via lucos_ro_campaign_budget — TW-312"
    },
    "get_publisher_caps": {
      "enabled": true,
      "description": "MNGT publisher caps read via lucos_ro_publisher_caps — TW-312"
    },
    "get_publisher_agreement_status": {
      "enabled": true,
      "description": "MNGT agreement status (signed|missing) via lucos_ro_publisher_agreement — TW-313"
    },
    "get_publisher_spaf_status": {
      "enabled": true,
      "description": "MNGT SPAF status (uploaded|missing) via lucos_ro_publisher_spaf — TW-313"
    },
    "summarize_advertisers_by_status": {
      "enabled": true,
      "description": "MNGT advertiser counts by status — TW-328"
    },
    "summarize_publishers_by_status": {
      "enabled": true,
      "description": "MNGT publisher counts by status — TW-328"
    },
    "search_advertisers": {
      "enabled": true,
      "description": "MNGT advertiser name search — TW-328"
    },
    "search_publishers": {
      "enabled": true,
      "description": "MNGT publisher name search — TW-328"
    },
    "list_publishers_pending_approval": {
      "enabled": true,
      "description": "MNGT pending publisher approval queue — TW-328"
    },
    "list_publishers_missing_agreement": {
      "enabled": true,
      "description": "MNGT missing-agreement publisher queue — TW-328"
    },
    "list_publishers_missing_spaf": {
      "enabled": true,
      "description": "MNGT missing-SPAF publisher queue — TW-328"
    },
    "list_campaigns": {
      "enabled": true,
      "description": "MNGT campaigns for an advertiser — TW-328"
    },
    "list_traffic_channels": {
      "enabled": true,
      "description": "MNGT product-tag catalog (traffic_channels) — TW-328"
    },
    "list_campaigns_by_product_tag": {
      "enabled": true,
      "description": "MNGT campaigns by product tag (Search_31 / contextual banner) — TW-328"
    },
    "search_campaigns_by_domain_targeting": {
      "enabled": true,
      "description": "MNGT campaigns by domain whitelist/blacklist membership — TW-328"
    },
    "search_oos_site_mapping": {
      "enabled": true,
      "description": "MNGT SERP OOS site mapping search — TW-328"
    },
    "list_advertisers_by_budget": {
      "enabled": true,
      "description": "MNGT advertisers ranked by prepaid credit balance (Advertiser_budget.budget) — query-gaps"
    },
    "list_advertisers_without_recent_campaigns": {
      "enabled": true,
      "description": "MNGT advertisers with no campaigns created in window — TW-330"
    },
    "list_publishers_onboarded": {
      "enabled": true,
      "description": "MNGT publishers onboarded in date window — TW-331"
    },
    "list_campaigns_at_cap": {
      "enabled": true,
      "description": "MNGT campaigns currently at budget cap — TW-334"
    },
    "list_campaigns_capped_frequently": {
      "enabled": true,
      "description": "MNGT campaigns with frequent daily budget exhaustion — TW-335"
    },
    "get_advertiser_report": {
      "enabled": true,
      "description": "Cake advertiser report — TW-314"
    },
    "get_campaign_performance_report": {
      "enabled": true,
      "description": "Cake campaign-grain performance report + analysis modes — TW-329"
    },
    "compare_campaign_performance": {
      "enabled": true,
      "description": "Cake campaign period-over-period compare (unscoped ROAS/MoM predicates) — TW-338"
    },
    "compare_affiliate_performance": {
      "enabled": true,
      "description": "Cake affiliate period-over-period compare (click/earnings drop/surge, Q6-Q14) — query-gaps"
    },
    "get_affiliate_report": {
      "enabled": true,
      "description": "Cake affiliate report — TW-314"
    },
    "search_affiliates": {
      "enabled": true,
      "description": "Cake affiliate_id lookup via lucos_ro_affiliate_directory (AffiliateIDs)"
    },
    "list_publisher_offers": {
      "enabled": true,
      "description": "Cake assigned publisher offers via lucos_ro_affiliate_offers (AffiliateIDs → mappings → live offers)"
    },
    "list_affiliates_on_multiple_advertisers": {
      "enabled": true,
      "description": "Cake affiliates on 2+ advertisers in window — TW-332"
    },
    "list_advertisers_low_traffic_concentration": {
      "enabled": true,
      "description": "Cake advertisers with many active camps and low top-campaign click share — TW-337"
    },
    "list_advertisers_high_revenue_concentration": {
      "enabled": true,
      "description": "Cake advertisers with high campaign-revenue concentration + 20% top-campaign risk — TW-340"
    },
    "get_campaign_affiliate_report": {
      "enabled": true,
      "description": "Cake campaign × affiliate CPC clicks and affiliate_earning (no sales_revenue) — TW-341"
    },
    "get_datafeed_traffic_report": {
      "enabled": true,
      "description": "Cake affiliate CPC clicks on datafeed-tagged campaigns"
    },
    "get_click_monitor_report": {
      "enabled": true,
      "description": "Shorty validate_click_monitor shard aggregate by affiliate/campaign — TW-342"
    },
    "get_arb_report": {
      "enabled": true,
      "description": "ARB buy (Google Ads + Meta) vs sell (Shorty arb_click) per campaign or day — mirrors adsense /arb/aggregated-report"
    },
    "get_publisher_report": {
      "enabled": true,
      "description": "Publisher performance as members.admedia.com reports it (net clicks, net revenue, fraud/dropped) — Admin daily_stats"
    },
    "get_publisher_merchant_report": {
      "enabled": true,
      "description": "Members merchant conversion + merchant level quality per publisher/advertiser — adv_cmp_performance + validated revenue"
    },
    "get_publisher_click_report": {
      "enabled": true,
      "description": "Members detailed CPC / custom click listing for one publisher — aff_cpc_summary click grain, capped at 31 days and 500 rows"
    },
    "get_publisher_keyword_report": {
      "enabled": true,
      "description": "Members keyword details — valid clicks per keyword/sub id from Shorty click shards (no revenue; the portal's is not attributable)"
    },
    "get_publisher_pixel_report": {
      "enabled": true,
      "description": "Members estimated pixel fire — conversion postbacks (scrubbed=0) per day or campaign"
    },
    "get_publisher_conversion_report": {
      "enabled": true,
      "description": "Members conversion report by click id — orders and sales from conversion_mapping_data monthly shards"
    },
    "get_publisher_tq_report": {
      "enabled": true,
      "description": "Members TQ detail — ClearTrust risk dimensions per publisher from whale day shards"
    },
    "get_cpa_publisher_report": {
      "enabled": true,
      "description": "CPA publisher payout and conversions — keywords cpa_aff_* unioned per month"
    },
    "list_advertisers_affiliate_concentration": {
      "enabled": true,
      "description": "Cake advertisers ranked by single-affiliate click/revenue share — TW-339"
    },
    "list_advertisers_with_affiliates": {
      "enabled": true,
      "description": "Cake top advertisers by sales_revenue with per-advertiser affiliate breakdown"
    },
    "list_publishers_by_active_campaigns": {
      "enabled": true,
      "description": "Cake publishers ranked by active campaigns in window — TW-333"
    },
    "list_publishers_traffic_to_inactive_campaigns": {
      "enabled": true,
      "description": "Cake clicks on currently inactive campaigns — TW-336"
    },
    "list_campaigns_without_traffic": {
      "enabled": true,
      "description": "Cake identity LEFT JOIN zeros (active camps with no CPC in window) — query-gaps"
    },
    "get_postback_report": {
      "enabled": true,
      "description": "Cake postback report — TW-314"
    },
    "get_ivt_report": {
      "enabled": true,
      "description": "Cake IVT report — TW-314"
    },
    "jira_search_issues": {
      "enabled": true,
      "description": "Collaboration Jira issue search via slack-bot-service — TW-338"
    },
    "jira_get_issue": {
      "enabled": true,
      "description": "Collaboration Jira issue detail via slack-bot-service — TW-338"
    },
    "confluence_search_pages": {
      "enabled": true,
      "description": "Collaboration Confluence page search via slack-bot-service — TW-338"
    },
    "confluence_get_page": {
      "enabled": true,
      "description": "Collaboration Confluence page body via slack-bot-service — TW-338"
    },
    "confluence_get_comments": {
      "enabled": true,
      "description": "Collaboration Confluence page comments via slack-bot-service — TW-338"
    },
    "confluence_list_children": {
      "enabled": true,
      "description": "Collaboration Confluence child pages via slack-bot-service — TW-338"
    },
    "confluence_list_spaces": {
      "enabled": true,
      "description": "Collaboration Confluence space list via slack-bot-service — TW-338"
    },
    "confluence_list_attachments": {
      "enabled": true,
      "description": "Collaboration Confluence attachments via slack-bot-service — TW-338"
    },
    "confluence_get_versions": {
      "enabled": true,
      "description": "Collaboration Confluence page versions via slack-bot-service — TW-338"
    },
    "confluence_search_users": {
      "enabled": true,
      "description": "Collaboration Confluence user search via slack-bot-service — TW-338"
    },
    "confluence_get_space_permissions": {
      "enabled": true,
      "description": "Collaboration Confluence space ACL via slack-bot-service — TW-338"
    },
    "confluence_get_user_space_access": {
      "enabled": true,
      "description": "Collaboration Confluence per-user space access via slack-bot-service — TW-338"
    },
    "confluence_create_page": {
      "enabled": true,
      "description": "Collaboration Confluence page create via slack-bot-service — TW-338 write tool"
    },
    "confluence_update_page": {
      "enabled": true,
      "description": "Collaboration Confluence page update via slack-bot-service — TW-338 write tool"
    },
    "confluence_add_comment": {
      "enabled": true,
      "description": "Collaboration Confluence page comment via slack-bot-service — TW-338 write tool"
    },
    "confluence_edit_comment": {
      "enabled": true,
      "description": "Collaboration Confluence comment edit via slack-bot-service — TW-338 write tool"
    },
    "confluence_upload_attachment": {
      "enabled": true,
      "description": "Collaboration Confluence attachment upload via slack-bot-service — TW-338 write tool"
    },
    "slack_search_messages": {
      "enabled": true,
      "description": "Collaboration Slack message search via slack-bot-service — TW-338"
    },
    "slack_list_channels": {
      "enabled": true,
      "description": "Collaboration Slack channel list via slack-bot-service — TW-338"
    },
    "slack_get_latest_messages": {
      "enabled": true,
      "description": "Collaboration Slack latest channel messages via slack-bot-service — TW-338"
    },
    "gdrive_search_files": {
      "enabled": true,
      "description": "Collaboration Google Drive file search via slack-bot-service — TW-338"
    },
    "gdrive_read_file": {
      "enabled": true,
      "description": "Collaboration Google Drive file read via slack-bot-service — TW-338"
    },
    "gdrive_query_sheet": {
      "enabled": true,
      "description": "Collaboration Google Sheet structured query via slack-bot-service — TW-338"
    },
    "gdrive_list_workspaces": {
      "enabled": true,
      "description": "Collaboration Google Shared drive list via slack-bot-service — TW-338"
    },
    "gdrive_drive_overview": {
      "enabled": true,
      "description": "Collaboration Google Drive sidebar overview via slack-bot-service — TW-338"
    },
    "gdrive_user_drive_info": {
      "enabled": true,
      "description": "Collaboration per-user Google Drive overview via slack-bot-service — TW-338"
    },
    "gdrive_find_duplicates": {
      "enabled": true,
      "description": "Collaboration Google Drive duplicate-file scan via slack-bot-service — TW-338"
    },
    "gdrive_lookup_owned_file": {
      "enabled": true,
      "description": "Collaboration Google Drive owner-index lookup via slack-bot-service — TW-338"
    },
    "gdrive_list_recent_activity": {
      "enabled": true,
      "description": "Collaboration Google Drive Activity list via slack-bot-service — TW-338"
    },
    "gdrive_list_permissions": {
      "enabled": true,
      "description": "Collaboration Google Drive file permissions list via slack-bot-service — TW-338"
    },
    "gdrive_list_revisions": {
      "enabled": true,
      "description": "Collaboration Google Drive file revisions list via slack-bot-service — TW-338"
    },
    "gdrive_list_comments": {
      "enabled": true,
      "description": "Collaboration Google Drive file comments list via slack-bot-service — TW-338"
    },
    "gcal_list_events": {
      "enabled": true,
      "description": "Collaboration Google Calendar event list via slack-bot-service — TW-338"
    },
    "gcal_get_event": {
      "enabled": true,
      "description": "Collaboration Google Calendar event get via slack-bot-service — TW-338"
    },
    "gcal_list_resources": {
      "enabled": true,
      "description": "Collaboration Google Calendar room/resource list via slack-bot-service — TW-338"
    },
    "gcal_propose_rsvp": {
      "enabled": true,
      "description": "Collaboration Google Calendar RSVP propose via slack-bot-service — TW-338"
    },
    "gcal_confirm_write": {
      "enabled": true,
      "description": "Collaboration Google Calendar confirm write via slack-bot-service — TW-338"
    },
    "gcal_cancel_write": {
      "enabled": true,
      "description": "Collaboration Google Calendar cancel write via slack-bot-service — TW-338"
    },
    "gmail_list_users": {
      "enabled": true,
      "description": "Collaboration Google Workspace Directory user list via slack-bot-service — TW-338"
    },
    "gmail_get_user": {
      "enabled": true,
      "description": "Collaboration Google Workspace Directory user get via slack-bot-service — TW-338"
    },
    "gmail_list_labels": {
      "enabled": true,
      "description": "Collaboration Gmail label list via slack-bot-service — TW-338"
    },
    "gmail_list_messages": {
      "enabled": true,
      "description": "Collaboration Gmail message list via slack-bot-service — TW-338"
    },
    "gmail_get_message": {
      "enabled": true,
      "description": "Collaboration Gmail message get via slack-bot-service — TW-338"
    },
    "gmail_list_threads": {
      "enabled": true,
      "description": "Collaboration Gmail thread list via slack-bot-service — TW-338"
    },
    "gmail_get_thread": {
      "enabled": true,
      "description": "Collaboration Gmail thread get via slack-bot-service — TW-338"
    },
    "gmail_get_attachment": {
      "enabled": true,
      "description": "Collaboration Gmail attachment get via slack-bot-service — skipped unless GMAIL_ATTACHMENTS_ENABLED (TW-338)"
    },
    "gmail_propose_send": {
      "enabled": true,
      "description": "Collaboration Gmail send propose via slack-bot-service — TW-338"
    },
    "gmail_propose_reply": {
      "enabled": true,
      "description": "Collaboration Gmail reply propose via slack-bot-service — TW-338"
    },
    "gmail_propose_forward": {
      "enabled": true,
      "description": "Collaboration Gmail forward propose via slack-bot-service — TW-338"
    },
    "gmail_propose_draft": {
      "enabled": true,
      "description": "Collaboration Gmail draft propose via slack-bot-service — TW-338"
    },
    "gmail_propose_modify_labels": {
      "enabled": true,
      "description": "Collaboration Gmail label modify propose via slack-bot-service — TW-338"
    },
    "gmail_confirm_write": {
      "enabled": true,
      "description": "Collaboration Gmail confirm write via slack-bot-service — TW-338"
    },
    "gmail_cancel_write": {
      "enabled": true,
      "description": "Collaboration Gmail cancel write via slack-bot-service — TW-338"
    },
    "fireflies_search_meetings": {
      "enabled": true,
      "description": "Collaboration Fireflies meeting search via slack-bot-service — TW-338"
    },
    "fireflies_get_meeting": {
      "enabled": true,
      "description": "Collaboration Fireflies meeting get via slack-bot-service — TW-338"
    },
    "fireflies_list_users": {
      "enabled": true,
      "description": "Collaboration Fireflies user list via slack-bot-service — TW-338"
    },
    "fireflies_ingest_recent": {
      "enabled": true,
      "description": "Collaboration Fireflies meeting ingest via slack-bot-service — TW-338"
    },
    "fireflies_list_indexed": {
      "enabled": true,
      "description": "Collaboration Fireflies indexed meeting list via slack-bot-service — TW-338"
    },
    "fireflies_find_duplicates": {
      "enabled": true,
      "description": "Collaboration Fireflies duplicate meeting find via slack-bot-service — TW-338"
    },
    "fireflies_correlate_meeting": {
      "enabled": true,
      "description": "Collaboration Fireflies meeting correlate via slack-bot-service — TW-338"
    },
    "fireflies_ensure_fred_invite": {
      "enabled": true,
      "description": "Collaboration Fireflies Fred invite ensure via slack-bot-service — TW-338"
    },
    "jira_list_projects": {
      "enabled": true,
      "description": "Collaboration Jira project list via slack-bot-service — TW-338"
    },
    "jira_get_project": {
      "enabled": true,
      "description": "Collaboration Jira project detail via slack-bot-service — TW-338"
    },
    "jira_list_boards": {
      "enabled": true,
      "description": "Collaboration Jira board list via slack-bot-service — TW-338"
    },
    "jira_list_sprints": {
      "enabled": true,
      "description": "Collaboration Jira sprint list via slack-bot-service — TW-338"
    },
    "jira_list_sprint_issues": {
      "enabled": true,
      "description": "Collaboration Jira sprint issues via slack-bot-service — TW-338"
    },
    "jira_list_users": {
      "enabled": true,
      "description": "Collaboration Jira user search via slack-bot-service — TW-338"
    },
    "jira_list_versions": {
      "enabled": true,
      "description": "Collaboration Jira version list via slack-bot-service — TW-338"
    },
    "jira_create_issue": {
      "enabled": true,
      "description": "Collaboration Jira issue create via slack-bot-service — TW-338 write tool"
    },
    "jira_modify_issue": {
      "enabled": true,
      "description": "Collaboration Jira issue modify via slack-bot-service — TW-338 write tool"
    },
    "jira_upload_attachment": {
      "enabled": true,
      "description": "Collaboration Jira attachment upload via slack-bot-service — TW-338 write tool"
    },
    "jira_edit_comment": {
      "enabled": true,
      "description": "Collaboration Jira comment edit via slack-bot-service — TW-338 write tool"
    },
    "slack_ask": {
      "enabled": true,
      "description": "Collaboration Slack RAG ask via slack-bot-service — TW-338"
    },
    "slack_get_file": {
      "enabled": true,
      "description": "Collaboration Slack file/screenshot download via slack-bot-service — TW-338"
    },
    "slack_list_users": {
      "enabled": true,
      "description": "Collaboration Slack workspace user list via slack-bot-service — TW-338"
    },
    "slack_get_user": {
      "enabled": true,
      "description": "Collaboration Slack user lookup via slack-bot-service — TW-338"
    },
    "slack_check_scopes": {
      "enabled": true,
      "description": "Collaboration Slack token/scope diagnostic via slack-bot-service — TW-338"
    },
    "user_map": {
      "enabled": true,
      "description": "Collaboration Slack-to-Google-Workspace user directory correlation via slack-bot-service — TW-338"
    },
    "bb_list_projects": {
      "enabled": true,
      "description": "Collaboration Bitbucket project list via slack-bot-service — TW-338"
    },
    "bb_list_repos": {
      "enabled": true,
      "description": "Collaboration Bitbucket repo list via slack-bot-service — TW-338"
    },
    "bb_list_prs": {
      "enabled": true,
      "description": "Collaboration Bitbucket PR list via slack-bot-service — TW-338"
    },
    "bb_get_pr": {
      "enabled": true,
      "description": "Collaboration Bitbucket PR detail via slack-bot-service — TW-338"
    },
    "bb_list_branches": {
      "enabled": true,
      "description": "Collaboration Bitbucket branch list via slack-bot-service — TW-338"
    },
    "bb_list_commits": {
      "enabled": true,
      "description": "Collaboration Bitbucket commit list via slack-bot-service — TW-338"
    },
    "bb_file_diff": {
      "enabled": true,
      "description": "Collaboration Bitbucket file diff via slack-bot-service — TW-338"
    },
    "hubspot_list_accounts": {
      "enabled": true,
      "description": "Collaboration HubSpot CRM account list via slack-bot-service — TW-331"
    },
    "hubspot_search_contacts": {
      "enabled": true,
      "description": "Collaboration HubSpot CRM contact search via slack-bot-service — TW-331"
    },
    "hubspot_get_contact": {
      "enabled": true,
      "description": "Collaboration HubSpot CRM contact detail via slack-bot-service — TW-331"
    },
    "hubspot_get_contact_related": {
      "enabled": true,
      "description": "Collaboration HubSpot CRM contact associations via slack-bot-service — TW-331"
    },
    "hubspot_search_companies": {
      "enabled": true,
      "description": "Collaboration HubSpot CRM company search via slack-bot-service — TW-331"
    },
    "hubspot_get_company": {
      "enabled": true,
      "description": "Collaboration HubSpot CRM company detail via slack-bot-service — TW-331"
    },
    "hubspot_search_deals": {
      "enabled": true,
      "description": "Collaboration HubSpot CRM deal search via slack-bot-service — TW-331"
    },
    "hubspot_get_deal": {
      "enabled": true,
      "description": "Collaboration HubSpot CRM deal detail via slack-bot-service — TW-331"
    },
    "hubspot_search_tickets": {
      "enabled": true,
      "description": "Collaboration HubSpot CRM ticket search via slack-bot-service — TW-331"
    },
    "hubspot_get_ticket": {
      "enabled": true,
      "description": "Collaboration HubSpot CRM ticket detail via slack-bot-service — TW-331"
    },
    "hubspot_list_list_members": {
      "enabled": true,
      "description": "Collaboration HubSpot list memberships via slack-bot-service — TW-331"
    },
    "hubspot_list_lists": {
      "enabled": true,
      "description": "Collaboration HubSpot CRM lists catalog via slack-bot-service — TW-331"
    },
    "hubspot_list_owners": {
      "enabled": true,
      "description": "Collaboration HubSpot CRM owner list via slack-bot-service — TW-331"
    },
    "hubspot_list_pipelines": {
      "enabled": true,
      "description": "Collaboration HubSpot CRM pipelines catalog via slack-bot-service — TW-331"
    },
    "hubspot_list_properties": {
      "enabled": true,
      "description": "Collaboration HubSpot CRM properties catalog via slack-bot-service — TW-331"
    },
    "hubspot_get_owner": {
      "enabled": true,
      "description": "Collaboration HubSpot CRM owner detail via slack-bot-service — TW-331"
    },
    "hubspot_search_notes": {
      "enabled": true,
      "description": "Collaboration HubSpot CRM note search via slack-bot-service — TW-331"
    },
    "hubspot_get_note": {
      "enabled": true,
      "description": "Collaboration HubSpot CRM note detail via slack-bot-service — TW-331"
    },
    "hubspot_list_associations": {
      "enabled": true,
      "description": "Collaboration HubSpot CRM associations via slack-bot-service — TW-331"
    },
    "hubspot_get_timeline": {
      "enabled": true,
      "description": "Collaboration HubSpot CRM activity timeline via slack-bot-service — TW-331"
    },
    "hubspot_search_activities": {
      "enabled": true,
      "description": "Collaboration HubSpot CRM activity search via slack-bot-service — TW-331"
    },
    "hubspot_get_attachment": {
      "enabled": true,
      "description": "Collaboration HubSpot CRM file attachment via slack-bot-service — TW-331"
    },
    "hubspot_propose_create_note": {
      "enabled": true,
      "description": "Collaboration HubSpot CRM propose note write via slack-bot-service — TW-331"
    },
    "hubspot_confirm_write": {
      "enabled": true,
      "description": "Collaboration HubSpot CRM confirm write via slack-bot-service — TW-331"
    },
    "hubspot_cancel_write": {
      "enabled": true,
      "description": "Collaboration HubSpot CRM cancel write via slack-bot-service — TW-331"
    },
    "code_search": {
      "enabled": true,
      "description": "Engineering code search via RAG — TW-307"
    },
    "request_code_change": {
      "enabled": false,
      "description": "Engineering code change submission via Lucos Code Orchestrator — TW-337"
    },
    "get_code_change_status": {
      "enabled": false,
      "description": "Engineering code change job status via Lucos Code Orchestrator — TW-337"
    },
    "get_file": {
      "enabled": true,
      "description": "Engineering file chunk hydration via RAG — TW-308"
    },
    "get_file_lines": {
      "enabled": true,
      "description": "Engineering file line-range chunk hydration via RAG — TW-308"
    },
    "kb_rules": {
      "enabled": true,
      "description": "KB advertiser policy rules via kb.admedia.com data API (rules.rules) — kb-rules"
    },
    "kb_rule_history": {
      "enabled": true,
      "description": "KB rule edit history via kb.admedia.com data API (rules.rules_history) — kb-rules"
    },
    "monitor_jira_activity": {
      "enabled": true,
      "description": "Monitor per-person Jira activity via Admin DB aggregates — monitor"
    },
    "monitor_slack_activity": {
      "enabled": true,
      "description": "Monitor per-person Slack activity via Admin DB aggregates — monitor"
    },
    "monitor_bitbucket_activity": {
      "enabled": true,
      "description": "Monitor per-person Bitbucket PR activity via Admin DB aggregates — monitor"
    },
    "monitor_team_activity": {
      "enabled": true,
      "description": "Monitor composite per-person Jira/Slack/Bitbucket activity — monitor"
    },
    "monitor_identity_lookup": {
      "enabled": true,
      "description": "Monitor cross-platform identity resolution via user_identity — monitor"
    },
    "adhoc_explore": {
      "enabled": true,
      "description": "Ad-hoc read-only spec-compiled query (staging only, TW-XXX). Last-resort AI check after approved tools fail."
    },
    "analyst_agent": {
      "enabled": true,
      "description": "Autonomous multi-step analyst sub-agent over approved reads (staging only, TW-XXX)."
    },
    "recommend_actions": {
      "enabled": true,
      "description": "Staging-only optimization recommendations from approved Cake/MNGT reads + deterministic solvers (TW-XXX)."
    }
  }
}
