Tool tree
gradeNot graded
open_studio_sessionAction
Return the current Sushi project, source revision, tracks, diagnostics, and runtime state.
View tool JSON
{
"name": "open_studio_session",
"kind": "act",
"impl": "imperative",
"description": "Return the current Sushi project, source revision, tracks, diagnostics, and runtime state.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}inspect_strudel_stateAction
Inspect parsed source blocks, recognized source controls, diagnostics, and the derived Strudel runtime.
View tool JSON
{
"name": "inspect_strudel_state",
"kind": "act",
"impl": "imperative",
"description": "Inspect parsed source blocks, recognized source controls, diagnostics, and the derived Strudel runtime.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}read_strudel_sourceAnswer
Read the editable draft and last-valid Strudel source, including the current revision and diagnostics.
View tool JSON
{
"name": "read_strudel_source",
"kind": "answer",
"impl": "imperative",
"description": "Read the editable draft and last-valid Strudel source, including the current revision and diagnostics.",
"inputSchema": {
"type": "object",
"properties": {
"which": {
"type": "string",
"enum": [
"draft",
"lastValid"
]
}
},
"additionalProperties": false
}
}list_editor_templatesAnswer
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.
View tool JSON
{
"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.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"maxLength": 120
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 12
}
},
"additionalProperties": false
}
}view_editor_templateAction
Read one curated Sushi editor template’s metadata and complete Strudel source without changing the current project.
View tool JSON
{
"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.",
"inputSchema": {
"type": "object",
"properties": {
"templateId": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
"required": [
"templateId"
],
"additionalProperties": false
}
}load_editor_templateAction
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.
View tool JSON
{
"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.",
"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
}
}write_strudel_sourceAction
Replace the source draft, validate it through Strudel, and activate it only when valid. Requires the current revision and an idempotency transaction ID.
View tool JSON
{
"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.",
"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
}
}patch_strudel_sourceAction
Apply exact, non-overlapping UTF-16 text edits to the current source revision, then validate through Strudel.
View tool JSON
{
"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.",
"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
}
}set_tempoAction
Set the source tempo from 0 to 300 BPM. Sushi writes this as setcpm(bpm / quarterNotesPerCycle) and validates it through Strudel.
View tool JSON
{
"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.",
"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
}
}set_keyAction
Update the canonical const key source declaration and validate it through Strudel.
View tool JSON
{
"name": "set_key",
"kind": "act",
"impl": "imperative",
"description": "Update the canonical const key source declaration and validate it through Strudel.",
"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
}
}delete_trackSensitive Action
Delete a source-defined track by ID, 1-based track number, or exact track name. Requires the current source revision.
View tool JSON
{
"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.",
"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
}
}rename_trackAction
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.
View tool JSON
{
"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.",
"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
}
}set_track_rangeAction
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.
View tool JSON
{
"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.",
"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
}
}extend_timelineAction
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.
View tool JSON
{
"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.",
"inputSchema": {
"type": "object",
"properties": {
"baseRevision": {
"type": "integer",
"minimum": 0
},
"transactionId": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
"required": [
"baseRevision",
"transactionId"
],
"additionalProperties": false
}
}validate_strudel_sourceAction
Evaluate candidate Strudel source for diagnostics without changing the project draft or active revision.
View tool JSON
{
"name": "validate_strudel_source",
"kind": "act",
"impl": "imperative",
"description": "Evaluate candidate Strudel source for diagnostics without changing the project draft or active revision.",
"inputSchema": {
"type": "object",
"properties": {
"source": {
"type": "string",
"maxLength": 200000
}
},
"additionalProperties": false
}
}lookup_strudel_referenceAnswer
Search Sushi’s versioned local Strudel reference for functions, sounds, templates, and starter patterns.
View tool JSON
{
"name": "lookup_strudel_reference",
"kind": "answer",
"impl": "imperative",
"description": "Search Sushi’s versioned local Strudel reference for functions, sounds, templates, and starter patterns.",
"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
}
}control_playbackAction
Start, pause, resume, stop, or seek the Strudel runtime. Seeking uses musical cycle positions.
View tool JSON
{
"name": "control_playback",
"kind": "act",
"impl": "imperative",
"description": "Start, pause, resume, stop, or seek the Strudel runtime. Seeking uses musical cycle positions.",
"inputSchema": {
"type": "object",
"properties": {
"action": {
"type": "string",
"enum": [
"play",
"pause",
"resume",
"stop",
"seek"
]
},
"cycle": {
"type": "number",
"minimum": 0
}
},
"required": [
"action"
],
"additionalProperties": false
}
}undo_source_editAction
Undo the latest shared human or agent source edit when the supplied base revision is still current.
View tool JSON
{
"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.",
"inputSchema": {
"type": "object",
"properties": {
"baseRevision": {
"type": "integer",
"minimum": 0
},
"transactionId": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
"required": [
"baseRevision",
"transactionId"
],
"additionalProperties": false
}
}redo_source_editAction
Redo the latest shared source edit when the supplied base revision is still current.
View tool JSON
{
"name": "redo_source_edit",
"kind": "act",
"impl": "imperative",
"description": "Redo the latest shared source edit when the supplied base revision is still current.",
"inputSchema": {
"type": "object",
"properties": {
"baseRevision": {
"type": "integer",
"minimum": 0
},
"transactionId": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
"required": [
"baseRevision",
"transactionId"
],
"additionalProperties": false
}
}