1[ 2 { 3 "name": "list_sounds", 4 "scope": "play", 5 "description": "The sounds tab of your tab: every sound it has loaded, or one category, with each sound's variants (.n) and how to play it. user and imported sounds exist only in that browser.", 6 "inputSchema": { 7 "type": "object", 8 "properties": { 9 "category": { "type": "string", "enum": ["samples", "drum-machines", "synths", "wavetables", "user", "imported"] }, 10 "filter": { "type": "string", "description": "Only names containing this." }, 11 "limit": { "type": "integer", "minimum": 1, "maximum": 200, "description": "Default 100." }, 12 "cursor": { "type": "string", "description": "From the last page's answer." }, 13 "session_id": { "type": "string", "description": "Which tab, when several are open." } 14 } 15 } 16 }, 17 { 18 "name": "ask_jev_sound", 19 "scope": "play", 20 "description": "Jev picks the sound in your tab that best fits a description: its pick and runners-up with probabilities, and code to play them. One Jev call per 255 candidates or so (charged like any Jev call); narrow with category or filter.", 21 "inputSchema": { 22 "type": "object", 23 "properties": { 24 "description": { "type": "string", "description": "The sound wanted, at most 280 characters." }, 25 "category": { "type": "string", "enum": ["samples", "drum-machines", "synths", "wavetables", "user", "imported"] }, 26 "filter": { "type": "string", "description": "Only names containing this." }, 27 "session_id": { "type": "string", "description": "Which tab, when several are open." } 28 }, 29 "required": ["description"] 30 } 31 }, 32 { 33 "name": "api_reference", 34 "scope": null, 35 "description": "Strudel's function reference (the reference tab): search by name or words with query, or get one function whole (signature, parameters, examples) with name.", 36 "inputSchema": { 37 "type": "object", 38 "properties": { 39 "query": { "type": "string", "description": "Words to find in names, synonyms, tags and descriptions." }, 40 "name": { "type": "string", "description": "A function's name or synonym." } 41 } 42 } 43 }, 44 { 45 "name": "get_settings", 46 "scope": "play", 47 "description": "Your tab's editor settings (theme, font, keybindings, panel, editing options) and the themes it has.", 48 "inputSchema": { "type": "object", "properties": { "session_id": { "type": "string", "description": "Which tab, when several are open." } } } 49 }, 50 { 51 "name": "set_settings", 52 "scope": "play", 53 "description": "Change your tab's editor settings, e.g. {\"theme\":\"dracula\",\"fontSize\":22}. Only the settings get_settings returns.", 54 "inputSchema": { 55 "type": "object", 56 "properties": { 57 "changes": { "type": "object", "description": "setting: value" }, 58 "session_id": { "type": "string", "description": "Which tab, when several are open." } 59 }, 60 "required": ["changes"] 61 } 62 }, 63 { 64 "name": "play_song", 65 "scope": "play", 66 "description": "Play a song in your tab from the top, as clicking its card does: a site song in the page, a listener's in the sandbox.", 67 "inputSchema": { 68 "type": "object", 69 "properties": { 70 "id": { "type": "string", "description": "A site song \"<theme>/<song>\", or \"listener:<id>\"" }, 71 "session_id": { "type": "string", "description": "Which tab, when several are open." } 72 }, 73 "required": ["id"] 74 } 75 }, 76 { 77 "name": "ask_jev_song", 78 "scope": "play", 79 "description": "The mood picker: Jev picks the site song that fits a mood (one Jev call), and with play: true plays it in your tab.", 80 "inputSchema": { 81 "type": "object", 82 "properties": { 83 "mood": { "type": "string", "description": "How the listener feels, at most 280 characters." }, 84 "play": { "type": "boolean" }, 85 "session_id": { "type": "string", "description": "Which tab, when several are open." } 86 }, 87 "required": ["mood"] 88 } 89 }, 90 { 91 "name": "react", 92 "scope": "play", 93 "description": "🔥 or 😴 for the section playing in your tab, as the booth's buttons: Jev hears it before its next choice, and it counts for a site song as written.", 94 "inputSchema": { 95 "type": "object", 96 "properties": { 97 "kind": { "type": "string", "enum": ["fire", "sleep"] }, 98 "session_id": { "type": "string", "description": "Which tab, when several are open." } 99 }, 100 "required": ["kind"] 101 } 102 }, 103 { 104 "name": "vote", 105 "scope": null, 106 "description": "\"Do you agree with Jev?\": of two site songs, pick the one that is more art. Counted anonymously; says whether you agree with Jev's scores.", 107 "inputSchema": { 108 "type": "object", 109 "properties": { 110 "a": { "type": "string", "description": "A site song, \"<theme>/<song>\"" }, 111 "b": { "type": "string", "description": "Another" }, 112 "pick": { "type": "string", "description": "a or b's id" } 113 }, 114 "required": ["a", "b", "pick"] 115 } 116 } 117]