{"capabilities":{"pushNotifications":false,"stateTransitionHistory":true,"streaming":true},"defaultInputModes":["text/plain","application/json"],"defaultOutputModes":["text/plain","application/json"],"description":"AI-powered radio show episode builder that assembles music tracks, generates DJ talk segments with TTS audio, inserts ad/weather placeholders with SCTE-35 markers, and produces broadcast-ready segment manifests.","name":"Galactic Radio Shows Agent","preferredTransport":"JSONRPC","protocolVersion":"0.3.0","provider":{"organization":"Galactic Radio Network","url":"https://galactic-radio-shows-355622637773.us-central1.run.app"},"security":[{"apiKey":[]},{"bearer":[]}],"securitySchemes":{"apiKey":{"description":"Service or user API key (grs_xxx format for user keys)","in":"header","name":"X-API-Key","type":"apiKey"},"bearer":{"bearerFormat":"JWT","description":"Firebase JWT token","scheme":"bearer","type":"http"}},"skills":[{"description":"Create a new radio show definition with genre, time slot, duration, and DJ assignments. PREFERRED: Send a JSON DataPart with structured fields: {\"name\": \"The Morning Mix\", \"genre\": \"pop\", \"time_slot\": \"6am-9am\", \"duration\": 3600, \"dj_uuids\": [\"a6c317c0-...\"]}. Required: name. Optional: genre (pop|rock|jazz|electronic|hip_hop|country|classical|rnb|indie|mixed, default mixed), time_slot, duration (seconds, default 3600), artwork_url, dj_uuids (list of DJ UUIDs).","examples":["{\"name\": \"The Morning Mix\", \"genre\": \"pop\", \"time_slot\": \"6am-9am\"}","{\"name\": \"Jazz After Dark\", \"genre\": \"jazz\", \"duration\": 7200}"],"id":"create_show","inputModes":["application/json","text/plain"],"name":"Create Radio Show","outputModes":["application/json"],"tags":["show","radio","create","management"]},{"description":"Build a broadcast-ready radio show episode with music tracks, AI-generated DJ talk segments with TTS audio, ad break placeholders with SCTE-35 markers, and an episode manifest. Costs 1 credit. Returns a job ID for tracking progress. PREFERRED: Send a JSON DataPart with structured fields: {\"show_id\": \"abc123\", \"title\": \"Monday Morning Show\", \"track_ids\": [\"t1\", \"t2\", \"t3\"], \"ad_break_interval\": 900}. Required: show_id, title, track_ids. Optional: air_date (YYYY-MM-DD), ad_break_interval (seconds, default 900), include_weather (bool, default true).","examples":["{\"show_id\": \"abc123\", \"title\": \"Monday Morning\", \"track_ids\": [\"t1\", \"t2\"]}","{\"show_id\": \"abc123\", \"title\": \"Friday Night\", \"track_ids\": [\"t1\", \"t2\", \"t3\"], \"ad_break_interval\": 600, \"include_weather\": false}"],"id":"create_episode","inputModes":["application/json","text/plain"],"name":"Build Episode","outputModes":["application/json"],"tags":["episode","build","audio","tts","radio","broadcast","scte35"]},{"description":"Check the status of an episode build job. Free — no credit cost. Returns episode status, job progress, and manifest URL (if complete). PREFERRED: Send a JSON DataPart: {\"episode_id\": \"abc123\"} or {\"job_id\": \"xyz789\"}. Required: episode_id or job_id.","examples":["{\"episode_id\": \"abc123\"}","{\"job_id\": \"xyz789\"}"],"id":"get_episode_status","inputModes":["application/json","text/plain"],"name":"Get Episode Status","outputModes":["application/json"],"tags":["episode","status","job","free"]},{"description":"Bulk import music tracks for use in radio show episodes. PREFERRED: Send a JSON DataPart with a list of tracks: {\"tracks\": [{\"title\": \"Song One\", \"artist\": \"Artist A\", \"duration\": 210.0, \"audio_url\": \"https://...\"}]}. Each track requires: title, artist, duration, audio_url. Optional per track: band_info, artwork_url, genre.","examples":["{\"tracks\": [{\"title\": \"Hit Song\", \"artist\": \"Band Name\", \"duration\": 240.0, \"audio_url\": \"https://storage.example.com/song.mp3\"}]}"],"id":"import_tracks","inputModes":["application/json"],"name":"Import Tracks","outputModes":["application/json"],"tags":["tracks","import","music","bulk"]},{"description":"Retrieve the complete episode manifest JSON with all segments, timings, and metadata for a completed episode. Free — no credit cost. PREFERRED: Send a JSON DataPart: {\"episode_id\": \"abc123\"}. Required: episode_id.","examples":["{\"episode_id\": \"abc123\"}"],"id":"get_episode_manifest","inputModes":["application/json","text/plain"],"name":"Get Episode Manifest","outputModes":["application/json"],"tags":["episode","manifest","segments","free"]},{"description":"Purchase generation credits using an AP2 payment mandate. Send an IntentMandate in a DataPart with key 'ap2.mandates.IntentMandate' to authorize payment. Credits are added to the business account. Price: $1.00 USD per credit.","examples":["Purchase 5 credits for episode generation"],"id":"purchase_credits","inputModes":["application/json"],"name":"Purchase Credits","outputModes":["application/json"],"tags":["credits","payment","ap2","billing"]}],"url":"https://galactic-radio-shows-355622637773.us-central1.run.app/a2a","version":"1.0.0"}