Tool tree
gradeNot graded
halo_get_contextAction
HALO is a local music instrument, not an AI chat. The external agent composes original MIDI parts. Read halo_get_context first; pause transport for stable long edits, then use baseRevision with one batch of up to 256 operations. Use exact:true, steps and noteEvents for explicit notes. Re-read state to verify. User track 6 is index 5. No mouse/keyboard emulation, model key, server or manual JSON exchange is needed. Audio stays local; no microphone permission or raw recordings are exposed. See registry for 4/4, role ranges, fixed orbit geometry and unavailable per-note parameters. Returns catalog, limits, current score, resolved notes, visual state and history counts.
View tool JSON
{
"name": "halo_get_context",
"kind": "act",
"impl": "imperative",
"description": "HALO is a local music instrument, not an AI chat. The external agent composes original MIDI parts. Read halo_get_context first; pause transport for stable long edits, then use baseRevision with one batch of up to 256 operations. Use exact:true, steps and noteEvents for explicit notes. Re-read state to verify. User track 6 is index 5. No mouse/keyboard emulation, model key, server or manual JSON exchange is needed. Audio stays local; no microphone permission or raw recordings are exposed. See registry for 4/4, role ranges, fixed orbit geometry and unavailable per-note parameters. Returns catalog, limits, current score, resolved notes, visual state and history counts.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/NotBad-Halo-Music/"
}halo_get_capabilitiesAnswer
Read actual built-in sounds/sample metadata, role compatibility, MIDI/key/FX/master/visual limits and operation fields. No PCM.
View tool JSON
{
"name": "halo_get_capabilities",
"kind": "answer",
"impl": "imperative",
"description": "Read actual built-in sounds/sample metadata, role compatibility, MIDI/key/FX/master/visual limits and operation fields. No PCM.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/NotBad-Halo-Music/"
}halo_get_stateAnswer
Read the current canonical project, visual settings and revision after an edit. No audio data.
View tool JSON
{
"name": "halo_get_state",
"kind": "answer",
"impl": "imperative",
"description": "Read the current canonical project, visual settings and revision after an edit. No audio data.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/NotBad-Halo-Music/"
}halo_validate_operationsAction
Validate an entire musical transaction without changes. Return precise errors; fix invalid commands instead of inventing capabilities.
View tool JSON
{
"name": "halo_validate_operations",
"kind": "act",
"impl": "imperative",
"description": "Validate an entire musical transaction without changes. Return precise errors; fix invalid commands instead of inventing capabilities.",
"inputSchema": {
"type": "object",
"properties": {
"transaction": {
"type": "object",
"required": [
"schemaVersion",
"baseRevision",
"operations"
],
"additionalProperties": false,
"properties": {
"schemaVersion": {
"type": "integer",
"const": 1
},
"baseRevision": {
"type": "integer",
"minimum": 0
},
"operations": {
"type": "array",
"minItems": 1,
"maxItems": 256,
"items": {
"type": "object",
"required": [
"op"
],
"properties": {
"op": {
"type": "string",
"enum": [
"track.patch",
"phrase.patch",
"master.patch",
"project.patch",
"composition.replace",
"project.replace",
"visual.patch"
]
},
"trackIndex": {
"type": "integer",
"minimum": 0,
"maximum": 7
},
"phraseId": {
"type": "integer",
"minimum": 1
},
"values": {
"type": "object"
},
"project": {
"type": "object"
}
},
"additionalProperties": false
}
}
}
}
},
"required": [
"transaction"
],
"additionalProperties": false
},
"page": "/NotBad-Halo-Music/"
}halo_preview_operationsAction
Compute before/after project and visual state on copies. Does not play or apply. A stale revision fails.
View tool JSON
{
"name": "halo_preview_operations",
"kind": "act",
"impl": "imperative",
"description": "Compute before/after project and visual state on copies. Does not play or apply. A stale revision fails.",
"inputSchema": {
"type": "object",
"properties": {
"transaction": {
"type": "object",
"required": [
"schemaVersion",
"baseRevision",
"operations"
],
"additionalProperties": false,
"properties": {
"schemaVersion": {
"type": "integer",
"const": 1
},
"baseRevision": {
"type": "integer",
"minimum": 0
},
"operations": {
"type": "array",
"minItems": 1,
"maxItems": 256,
"items": {
"type": "object",
"required": [
"op"
],
"properties": {
"op": {
"type": "string",
"enum": [
"track.patch",
"phrase.patch",
"master.patch",
"project.patch",
"composition.replace",
"project.replace",
"visual.patch"
]
},
"trackIndex": {
"type": "integer",
"minimum": 0,
"maximum": 7
},
"phraseId": {
"type": "integer",
"minimum": 1
},
"values": {
"type": "object"
},
"project": {
"type": "object"
}
},
"additionalProperties": false
}
}
}
}
},
"required": [
"transaction"
],
"additionalProperties": false
},
"page": "/NotBad-Halo-Music/"
}halo_apply_operationsAction
Apply one validated batch to the actual open HALO score, with session Undo/Redo and autosave. Supports tracks/notes, phrases, complete arrangements, FX, master and supported visual modes. Musical loading pauses playback; no automatic download or microphone access.
View tool JSON
{
"name": "halo_apply_operations",
"kind": "act",
"impl": "imperative",
"description": "Apply one validated batch to the actual open HALO score, with session Undo/Redo and autosave. Supports tracks/notes, phrases, complete arrangements, FX, master and supported visual modes. Musical loading pauses playback; no automatic download or microphone access.",
"inputSchema": {
"type": "object",
"properties": {
"transaction": {
"type": "object",
"required": [
"schemaVersion",
"baseRevision",
"operations"
],
"additionalProperties": false,
"properties": {
"schemaVersion": {
"type": "integer",
"const": 1
},
"baseRevision": {
"type": "integer",
"minimum": 0
},
"operations": {
"type": "array",
"minItems": 1,
"maxItems": 256,
"items": {
"type": "object",
"required": [
"op"
],
"properties": {
"op": {
"type": "string",
"enum": [
"track.patch",
"phrase.patch",
"master.patch",
"project.patch",
"composition.replace",
"project.replace",
"visual.patch"
]
},
"trackIndex": {
"type": "integer",
"minimum": 0,
"maximum": 7
},
"phraseId": {
"type": "integer",
"minimum": 1
},
"values": {
"type": "object"
},
"project": {
"type": "object"
}
},
"additionalProperties": false
}
}
}
}
},
"required": [
"transaction"
],
"additionalProperties": false
},
"page": "/NotBad-Halo-Music/"
}halo_undoAction
Undo the last applied agent transaction; reject if later manual edits conflict.
View tool JSON
{
"name": "halo_undo",
"kind": "act",
"impl": "imperative",
"description": "Undo the last applied agent transaction; reject if later manual edits conflict.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/NotBad-Halo-Music/"
}halo_redoAction
Redo the last undone agent transaction; reject conflicting manual edits.
View tool JSON
{
"name": "halo_redo",
"kind": "act",
"impl": "imperative",
"description": "Redo the last undone agent transaction; reject conflicting manual edits.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/NotBad-Halo-Music/"
}halo_playbackAction
Request play/pause through HALO transport. Play may still need a browser audio gesture; inspect the returned playing flag and never claim sound if blocked.
View tool JSON
{
"name": "halo_playback",
"kind": "act",
"impl": "imperative",
"description": "Request play/pause through HALO transport. Play may still need a browser audio gesture; inspect the returned playing flag and never claim sound if blocked.",
"inputSchema": {
"type": "object",
"properties": {
"playing": {
"type": "boolean"
}
},
"required": [
"playing"
],
"additionalProperties": false
},
"page": "/NotBad-Halo-Music/"
}halo_export_projectAction
Read a portable project object for saving by the external agent. The live score is already autosaved locally. No audio or model configuration.
View tool JSON
{
"name": "halo_export_project",
"kind": "act",
"impl": "imperative",
"description": "Read a portable project object for saving by the external agent. The live score is already autosaved locally. No audio or model configuration.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/NotBad-Halo-Music/"
}