{"ok":true,"site":{"host":"teutonick.github.io","url":"https://teutonick.github.io/NotBad-Halo-Music/","type":"live","desc":"NotBad Halo Music Constructor — a free browser relaxation constructor with eight voices, tunable sounds, 4/8-bar loops and immersive cosmic visuals. No account or installation.","tools":[{"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.","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/NotBad-Halo-Music/","pages":["/NotBad-Halo-Music/"]},{"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.","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/NotBad-Halo-Music/","pages":["/NotBad-Halo-Music/"]},{"name":"halo_get_state","kind":"answer","impl":"imperative","description":"Read the current canonical project, visual settings and revision after an edit. No audio data.","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/NotBad-Halo-Music/","pages":["/NotBad-Halo-Music/"]},{"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.","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":true},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/NotBad-Halo-Music/","pages":["/NotBad-Halo-Music/"]},{"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.","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":true},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/NotBad-Halo-Music/","pages":["/NotBad-Halo-Music/"]},{"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.","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":true},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/NotBad-Halo-Music/","pages":["/NotBad-Halo-Music/"]},{"name":"halo_undo","kind":"act","impl":"imperative","description":"Undo the last applied agent transaction; reject if later manual edits conflict.","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/NotBad-Halo-Music/","pages":["/NotBad-Halo-Music/"]},{"name":"halo_redo","kind":"act","impl":"imperative","description":"Redo the last undone agent transaction; reject conflicting manual edits.","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/NotBad-Halo-Music/","pages":["/NotBad-Halo-Music/"]},{"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.","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"playing":{"type":"boolean"}},"required":["playing"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/NotBad-Halo-Music/","pages":["/NotBad-Halo-Music/"]},{"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.","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/NotBad-Halo-Music/","pages":["/NotBad-Halo-Music/"]}],"category":"Media & Personal","favicon":"/favicons/teutonick.github.io.svg","apiSurface":"spec","toolCount":10}}