Tool tree
gradeNot graded
music_get_stateAnswer
Read the current lesson, catalogue, revision, player phase, capabilities, and last completed actual human take. Guitar catalogue indices are stringIndex × 13 + relativeFret (0–77); capo changes pitch, never index. Guitar strums preserve direction and grouped string membership in completed takes. lastCompletedTake is null until a human finishes Try alone. No camera images, audio recordings, or cloud requests.
View tool JSON
{
"name": "music_get_state",
"kind": "answer",
"impl": "imperative",
"description": "Read the current lesson, catalogue, revision, player phase, capabilities, and last completed actual human take. Guitar catalogue indices are stringIndex × 13 + relativeFret (0–77); capo changes pitch, never index. Guitar strums preserve direction and grouped string membership in completed takes. lastCompletedTake is null until a human finishes Try alone. No camera images, audio recordings, or cloud requests.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}music_list_lessonsAnswer
List structured music lessons available in this teaching session. It does not fabricate data or make cloud requests.
View tool JSON
{
"name": "music_list_lessons",
"kind": "answer",
"impl": "imperative",
"description": "List structured music lessons available in this teaching session. It does not fabricate data or make cloud requests.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}music_open_lessonAction
Open a selected structured lesson by lesson ID.
View tool JSON
{
"name": "music_open_lesson",
"kind": "act",
"impl": "imperative",
"description": "Open a selected structured lesson by lesson ID.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"lessonId"
],
"properties": {
"lessonId": {
"type": "string",
"minLength": 1,
"maxLength": 80
}
}
}
}music_playAction
Start an example (demo), untimed guidance (guided), or a scored human round (take); stop cancels the active round. Returns immediately with actual player state. Sound may require a human click. Wait for completion before reading the take; never treat demonstration notes as human playing.
View tool JSON
{
"name": "music_play",
"kind": "act",
"impl": "imperative",
"description": "Start an example (demo), untimed guidance (guided), or a scored human round (take); stop cancels the active round. Returns immediately with actual player state. Sound may require a human click. Wait for completion before reading the take; never treat demonstration notes as human playing.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"mode"
],
"properties": {
"mode": {
"enum": [
"demo",
"guided",
"take",
"stop"
]
}
}
}
}music_propose_exerciseAction
Propose a structured exercise for a human to review. Guitar proposals require a standard-tuning guitar snapshot, capo 0–5, preset, six frets, and reviewed shapes. Guitar events are plucks or directed down/up strums with spread and at most one fret per string. Proposals require the HUMAN Apply button and never auto-apply.
View tool JSON
{
"name": "music_propose_exercise",
"kind": "act",
"impl": "imperative",
"description": "Propose a structured exercise for a human to review. Guitar proposals require a standard-tuning guitar snapshot, capo 0–5, preset, six frets, and reviewed shapes. Guitar events are plucks or directed down/up strums with spread and at most one fret per string. Proposals require the HUMAN Apply button and never auto-apply.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"baseRevision",
"title",
"reason",
"instrument",
"beats",
"bpm",
"events"
],
"properties": {
"baseRevision": {
"type": "integer",
"minimum": 0
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"reason": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"instrument": {
"enum": [
"drums",
"keys",
"guitar"
]
},
"beats": {
"enum": [
4,
8,
16
]
},
"bpm": {
"type": "integer",
"minimum": 40,
"maximum": 120
},
"guitar": {
"type": "object",
"additionalProperties": false,
"properties": {
"tuning": {
"type": "array",
"minItems": 6,
"maxItems": 6,
"items": {
"type": "integer"
}
},
"capo": {
"type": "integer",
"minimum": 0,
"maximum": 5
},
"preset": {
"enum": [
"acoustic",
"clean",
"overdrive"
]
},
"frets": {
"type": "array",
"minItems": 6,
"maxItems": 6,
"items": {
"type": [
"integer",
"null"
],
"minimum": 0,
"maximum": 12
}
},
"shapes": {
"type": "array",
"minItems": 1,
"maxItems": 10,
"items": {
"type": "string"
},
"uniqueItems": true
}
}
},
"events": {
"type": "array",
"minItems": 1,
"maxItems": 64,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"beat",
"notes"
],
"properties": {
"beat": {
"type": "number",
"minimum": 0
},
"notes": {
"type": "array",
"minItems": 1,
"maxItems": 6,
"items": {
"type": "integer"
},
"uniqueItems": true
},
"duration": {
"type": "number",
"minimum": 0.05,
"maximum": 4
},
"velocity": {
"type": "number",
"minimum": 0.1,
"maximum": 1
},
"kind": {
"enum": [
"pluck",
"strum"
]
},
"direction": {
"enum": [
"down",
"up"
]
},
"spread": {
"type": "number",
"minimum": 0,
"maximum": 0.12
}
}
}
}
}
}
}music_explainAction
Display your advice in the visible browser-agent panel. Base advice on music_get_state; this tool does not call a model.
View tool JSON
{
"name": "music_explain",
"kind": "act",
"impl": "imperative",
"description": "Display your advice in the visible browser-agent panel. Base advice on music_get_state; this tool does not call a model.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"message"
],
"properties": {
"message": {
"type": "string",
"minLength": 1,
"maxLength": 500
}
}
}
}music_focusAction
Focus a structured lesson event by its event index.
View tool JSON
{
"name": "music_focus",
"kind": "act",
"impl": "imperative",
"description": "Focus a structured lesson event by its event index.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"eventIndex"
],
"properties": {
"eventIndex": {
"type": "integer",
"minimum": 0,
"maximum": 63
}
}
}
}