{"ok":true,"site":{"host":"sushidaw.com","url":"https://sushidaw.com/","type":"live","desc":"Sushi is a browser-based workspace for importing, writing, and arranging music with Tidal Cycles syntax.","tools":[{"name":"open_studio_session","kind":"act","impl":"imperative","description":"Return the current Sushi project, source revision, tracks, diagnostics, and runtime state.","title":"Open Sushi studio session","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"inspect_strudel_state","kind":"act","impl":"imperative","description":"Inspect parsed source blocks, recognized source controls, diagnostics, and the derived Strudel runtime.","title":"Inspect Strudel state","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"read_strudel_source","kind":"answer","impl":"imperative","description":"Read the editable draft and last-valid Strudel source, including the current revision and diagnostics.","title":"Read Strudel source","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"which":{"type":"string","enum":["draft","lastValid"]}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"list_editor_templates","kind":"answer","impl":"imperative","description":"List the curated Sushi editor templates available to load, including each template’s stable ID, description, tempo, key, and lane count. Source text is omitted; use view_editor_template for a full source preview.","title":"List Sushi editor templates","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"query":{"type":"string","maxLength":120},"limit":{"type":"integer","minimum":1,"maximum":12}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"view_editor_template","kind":"act","impl":"imperative","description":"Read one curated Sushi editor template’s metadata and complete Strudel source without changing the current project.","title":"View a Sushi editor template","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"templateId":{"type":"string","minLength":1,"maxLength":128}},"required":["templateId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"load_editor_template","kind":"act","impl":"imperative","description":"Replace the current source with a curated Sushi editor template and activate it after Strudel validation. Requires the current source revision and an idempotency transaction ID.","title":"Load a Sushi editor template","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"templateId":{"type":"string","minLength":1,"maxLength":128},"baseRevision":{"type":"integer","minimum":0},"transactionId":{"type":"string","minLength":1,"maxLength":128}},"required":["templateId","baseRevision","transactionId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"write_strudel_source","kind":"act","impl":"imperative","description":"Replace the source draft, validate it through Strudel, and activate it only when valid. Requires the current revision and an idempotency transaction ID.","title":"Write Strudel source","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"source":{"type":"string","maxLength":200000},"baseRevision":{"type":"integer","minimum":0},"transactionId":{"type":"string","minLength":1,"maxLength":128}},"required":["source","baseRevision","transactionId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"patch_strudel_source","kind":"act","impl":"imperative","description":"Apply exact, non-overlapping UTF-16 text edits to the current source revision, then validate through Strudel.","title":"Patch Strudel source","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"edits":{"type":"array","maxItems":100,"items":{"type":"object","properties":{"start":{"type":"integer","minimum":0},"end":{"type":"integer","minimum":0},"text":{"type":"string"}},"required":["start","end","text"],"additionalProperties":false}},"baseRevision":{"type":"integer","minimum":0},"transactionId":{"type":"string","minLength":1,"maxLength":128}},"required":["edits","baseRevision","transactionId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_tempo","kind":"act","impl":"imperative","description":"Set the source tempo from 0 to 300 BPM. Sushi writes this as setcpm(bpm / quarterNotesPerCycle) and validates it through Strudel.","title":"Set BPM","inputSchema":{"type":"object","properties":{"bpm":{"type":"number","minimum":0,"maximum":300},"baseRevision":{"type":"integer","minimum":0},"transactionId":{"type":"string","minLength":1,"maxLength":128}},"required":["bpm","baseRevision","transactionId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_key","kind":"act","impl":"imperative","description":"Update the canonical const key source declaration and validate it through Strudel.","title":"Set musical key","inputSchema":{"type":"object","properties":{"key":{"type":"string","minLength":1,"maxLength":64},"baseRevision":{"type":"integer","minimum":0},"transactionId":{"type":"string","minLength":1,"maxLength":128}},"required":["key","baseRevision","transactionId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"delete_track","kind":"transact","impl":"imperative","description":"Delete a source-defined track by ID, 1-based track number, or exact track name. Requires the current source revision.","title":"Delete track","inputSchema":{"type":"object","properties":{"trackNumber":{"type":"integer","minimum":1},"trackId":{"type":"string","minLength":1,"maxLength":128},"trackName":{"type":"string","minLength":1,"maxLength":120},"name":{"type":"string","minLength":1,"maxLength":120},"baseRevision":{"type":"integer","minimum":0},"transactionId":{"type":"string","minLength":1,"maxLength":128}},"required":["baseRevision","transactionId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"rename_track","kind":"act","impl":"imperative","description":"Rename a source-defined track by ID, 1-based track number, or exact track name. The new name is written into the Sushi source marker.","title":"Rename track","inputSchema":{"type":"object","properties":{"trackNumber":{"type":"integer","minimum":1},"trackId":{"type":"string","minLength":1,"maxLength":128},"trackName":{"type":"string","minLength":1,"maxLength":120},"name":{"type":"string","minLength":1,"maxLength":120},"newName":{"type":"string","minLength":1,"maxLength":120},"baseRevision":{"type":"integer","minimum":0},"transactionId":{"type":"string","minLength":1,"maxLength":128}},"required":["newName","baseRevision","transactionId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_track_range","kind":"act","impl":"imperative","description":"Move or resize a track by ID, 1-based track number, or exact track name to exact musical cycle boundaries. Use 0.25 increments for quarter-bar precision; in the default four-quarter-note cycle, cycle 1 is the start of bar 2.","title":"Set track range","inputSchema":{"type":"object","properties":{"trackNumber":{"type":"integer","minimum":1},"trackId":{"type":"string","minLength":1,"maxLength":128},"trackName":{"type":"string","minLength":1,"maxLength":120},"name":{"type":"string","minLength":1,"maxLength":120},"startCycle":{"type":"number","minimum":0},"endCycle":{"type":"number","minimum":0},"baseRevision":{"type":"integer","minimum":0},"transactionId":{"type":"string","minLength":1,"maxLength":128}},"required":["startCycle","endCycle","baseRevision","transactionId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"extend_timeline","kind":"act","impl":"imperative","description":"Advance the editable timeline by the next 30-bar page, capped at the 137-bar maximum. This changes project timeline metadata without changing source text.","title":"Extend timeline","inputSchema":{"type":"object","properties":{"baseRevision":{"type":"integer","minimum":0},"transactionId":{"type":"string","minLength":1,"maxLength":128}},"required":["baseRevision","transactionId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"validate_strudel_source","kind":"act","impl":"imperative","description":"Evaluate candidate Strudel source for diagnostics without changing the project draft or active revision.","title":"Validate Strudel source","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"source":{"type":"string","maxLength":200000}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"lookup_strudel_reference","kind":"answer","impl":"imperative","description":"Search Sushi’s versioned local Strudel reference for functions, sounds, templates, and starter patterns.","title":"Lookup Strudel reference","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"query":{"type":"string"},"kind":{"type":"string","enum":["function","sound","template","pattern"]},"limit":{"type":"integer","minimum":1,"maximum":12}},"required":["query"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"control_playback","kind":"act","impl":"imperative","description":"Start, pause, resume, stop, or seek the Strudel runtime. Seeking uses musical cycle positions.","title":"Control playback","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["play","pause","resume","stop","seek"]},"cycle":{"type":"number","minimum":0}},"required":["action"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"undo_source_edit","kind":"act","impl":"imperative","description":"Undo the latest shared human or agent source edit when the supplied base revision is still current.","title":"Undo source edit","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"baseRevision":{"type":"integer","minimum":0},"transactionId":{"type":"string","minLength":1,"maxLength":128}},"required":["baseRevision","transactionId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"redo_source_edit","kind":"act","impl":"imperative","description":"Redo the latest shared source edit when the supplied base revision is still current.","title":"Redo source edit","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"baseRevision":{"type":"integer","minimum":0},"transactionId":{"type":"string","minLength":1,"maxLength":128}},"required":["baseRevision","transactionId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Media & Personal","favicon":"/favicons/sushidaw.com.png","apiSurface":"spec","toolCount":19}}