Tool tree
gradeNot graded
start_curator_sessionAction
Call this first for a new request. It is safe to call again after a resumed command: it reactivates the visible Agent Mode HUD and confirms that the page crate tools are ready. It does not purchase anything.
View tool JSON
{
"name": "start_curator_session",
"kind": "act",
"impl": "imperative",
"description": "Call this first for a new request. It is safe to call again after a resumed command: it reactivates the visible Agent Mode HUD and confirms that the page crate tools are ready. It does not purchase anything.",
"inputSchema": {
"type": "object",
"properties": {
"intent": {
"type": "string",
"maxLength": 400
}
},
"additionalProperties": false
},
"page": "/"
}get_collection_statsAnswer
Returns compact, metadata-backed collection statistics and the Song DNA dimensions currently available. Read-only.
View tool JSON
{
"name": "get_collection_stats",
"kind": "answer",
"impl": "imperative",
"description": "Returns compact, metadata-backed collection statistics and the Song DNA dimensions currently available. Read-only.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/"
}sort_catalogAction
Changes the visible crate ordering without text search and returns both edges of the sorted list. Use sort=popular for most popular/best-selling releases, sort=oldest for oldest/earliest releases, and sort=latest to restore the curated latest order. Use focus=first for the oldest or most popular release, and focus=last for the least popular release. The physical stack stays stable during an agent sort so a later focus can raise the existing sleeve instead of refreshing the crate.
View tool JSON
{
"name": "sort_catalog",
"kind": "act",
"impl": "imperative",
"description": "Changes the visible crate ordering without text search and returns both edges of the sorted list. Use sort=popular for most popular/best-selling releases, sort=oldest for oldest/earliest releases, and sort=latest to restore the curated latest order. Use focus=first for the oldest or most popular release, and focus=last for the least popular release. The physical stack stays stable during an agent sort so a later focus can raise the existing sleeve instead of refreshing the crate.",
"inputSchema": {
"type": "object",
"properties": {
"sort": {
"type": "string",
"enum": [
"latest",
"popular",
"oldest"
]
},
"focus": {
"type": "string",
"enum": [
"none",
"first",
"last"
]
}
},
"required": [
"sort"
],
"additionalProperties": false
},
"page": "/"
}browse_catalogAction
Navigates the visible Shop crate to the next or previous releases and opens the final sleeve in the existing Song sidebar. Use this for browse, next, previous, or go through the releases; it is navigation, not Song DNA matching. Repeat the tool or set steps up to 12 to move through more than one release.
View tool JSON
{
"name": "browse_catalog",
"kind": "act",
"impl": "imperative",
"description": "Navigates the visible Shop crate to the next or previous releases and opens the final sleeve in the existing Song sidebar. Use this for browse, next, previous, or go through the releases; it is navigation, not Song DNA matching. Repeat the tool or set steps up to 12 to move through more than one release.",
"inputSchema": {
"type": "object",
"properties": {
"direction": {
"type": "string",
"enum": [
"next",
"previous"
]
},
"steps": {
"type": "integer",
"minimum": 1,
"maximum": 12
},
"start_record_id": {
"type": "string",
"maxLength": 160
}
},
"required": [
"direction"
],
"additionalProperties": false
},
"page": "/"
}search_catalogAction
Searches the existing crate surface by release title, artist or curated release category (Original by Seph, Remixes, Edits or Mixed release), then opens the first match in the existing Song sidebar. Use selection=random, or say random/surprise, to choose a random release (optionally scoped by the query) and reveal it through the bounded digging animation. For a normal search, use navigation=digging for a bounded sleeve-by-sleeve reveal; auto uses direct focus for an exact title and digging for broader queries. Use navigation=direct when speed matters. Use dig_by_descriptor for metadata DNA matching.
View tool JSON
{
"name": "search_catalog",
"kind": "act",
"impl": "imperative",
"description": "Searches the existing crate surface by release title, artist or curated release category (Original by Seph, Remixes, Edits or Mixed release), then opens the first match in the existing Song sidebar. Use selection=random, or say random/surprise, to choose a random release (optionally scoped by the query) and reveal it through the bounded digging animation. For a normal search, use navigation=digging for a bounded sleeve-by-sleeve reveal; auto uses direct focus for an exact title and digging for broader queries. Use navigation=direct when speed matters. Use dig_by_descriptor for metadata DNA matching.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"maxLength": 200
},
"max_results": {
"type": "integer",
"minimum": 1,
"maximum": 24
},
"navigation": {
"type": "string",
"enum": [
"auto",
"direct",
"digging"
]
},
"max_steps": {
"type": "integer",
"minimum": 1,
"maximum": 12
},
"selection": {
"type": "string",
"enum": [
"match",
"random"
]
}
},
"additionalProperties": false
},
"page": "/"
}dig_by_descriptorAction
Ranks catalog records against a natural-language producer descriptor using conservative metadata Song DNA signals, then focuses the top records in the visible crate. It does not claim audio analysis.
View tool JSON
{
"name": "dig_by_descriptor",
"kind": "act",
"impl": "imperative",
"description": "Ranks catalog records against a natural-language producer descriptor using conservative metadata Song DNA signals, then focuses the top records in the visible crate. It does not claim audio analysis.",
"inputSchema": {
"type": "object",
"properties": {
"descriptor": {
"type": "string",
"minLength": 2,
"maxLength": 400
},
"max_results": {
"type": "integer",
"minimum": 1,
"maximum": 24
},
"exclude_ids": {
"type": "array",
"items": {
"type": "string",
"maxLength": 160
},
"maxItems": 24
}
},
"required": [
"descriptor"
],
"additionalProperties": false
},
"page": "/"
}focus_recordsAction
Moves the first requested record to the front of the visible crate and records the agent focus without recolouring the artwork.
View tool JSON
{
"name": "focus_records",
"kind": "act",
"impl": "imperative",
"description": "Moves the first requested record to the front of the visible crate and records the agent focus without recolouring the artwork.",
"inputSchema": {
"type": "object",
"properties": {
"record_ids": {
"type": "array",
"items": {
"type": "string",
"maxLength": 160
},
"minItems": 1,
"maxItems": 12
},
"label": {
"type": "string",
"maxLength": 80
}
},
"required": [
"record_ids"
],
"additionalProperties": false
},
"page": "/"
}inspect_recordAction
Opens a record in the existing detail panel and returns its catalog metadata, including the Original by Seph / Remixes / Edits classification, plus conservative Song DNA Lite provenance and missing dimensions. Read-only with visible focus.
View tool JSON
{
"name": "inspect_record",
"kind": "act",
"impl": "imperative",
"description": "Opens a record in the existing detail panel and returns its catalog metadata, including the Original by Seph / Remixes / Edits classification, plus conservative Song DNA Lite provenance and missing dimensions. Read-only with visible focus.",
"inputSchema": {
"type": "object",
"properties": {
"record_id": {
"type": "string",
"minLength": 1,
"maxLength": 160
}
},
"required": [
"record_id"
],
"additionalProperties": false
},
"page": "/"
}get_player_stateAnswer
Reads the visible preview player transport: current release and track, play/pause status, current position, duration, previous/next availability, volume and site audio state. Treat is_playing as the source of truth: a tool call alone does not prove audible playback. It also reactivates Agent Mode when a resumed command needs it. It does not claim BPM, key or other audio analysis.
View tool JSON
{
"name": "get_player_state",
"kind": "answer",
"impl": "imperative",
"description": "Reads the visible preview player transport: current release and track, play/pause status, current position, duration, previous/next availability, volume and site audio state. Treat is_playing as the source of truth: a tool call alone does not prove audible playback. It also reactivates Agent Mode when a resumed command needs it. It does not claim BPM, key or other audio analysis.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/"
}play_trackAction
Loads and plays one catalog track preview in the visible player. Use inspect_record first to obtain track_id and record_id; omit track_id only to resume the already loaded track. Browser autoplay policy is strict: an agent/WebMCP call is not a trusted user gesture. If the user has not already clicked, tapped or pressed a key on this page, audio may be blocked and the result will be PLAYBACK_BLOCKED with requires_user_gesture:true, user_message and next_step. Relay those fields, ask the user to interact with the visible page or player, then retry; never claim playback started until get_player_state reports is_playing:true. This never purchases anything.
View tool JSON
{
"name": "play_track",
"kind": "act",
"impl": "imperative",
"description": "Loads and plays one catalog track preview in the visible player. Use inspect_record first to obtain track_id and record_id; omit track_id only to resume the already loaded track. Browser autoplay policy is strict: an agent/WebMCP call is not a trusted user gesture. If the user has not already clicked, tapped or pressed a key on this page, audio may be blocked and the result will be PLAYBACK_BLOCKED with requires_user_gesture:true, user_message and next_step. Relay those fields, ask the user to interact with the visible page or player, then retry; never claim playback started until get_player_state reports is_playing:true. This never purchases anything.",
"inputSchema": {
"type": "object",
"properties": {
"track_id": {
"type": "string",
"minLength": 1,
"maxLength": 160
},
"record_id": {
"type": "string",
"minLength": 1,
"maxLength": 160
}
},
"additionalProperties": false
},
"page": "/"
}pause_trackAction
Pauses or stops the currently loaded preview and preserves its position for a later play_track call. Use this for pause, stop, stop it, or stop the song. It never changes My Crate or checkout.
View tool JSON
{
"name": "pause_track",
"kind": "act",
"impl": "imperative",
"description": "Pauses or stops the currently loaded preview and preserves its position for a later play_track call. Use this for pause, stop, stop it, or stop the song. It never changes My Crate or checkout.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/"
}stop_trackAction
Stops the currently loaded preview by pausing it and preserving its position. Use this for stop, stop it, stop the song, halt playback, or end the preview. It never changes My Crate or checkout.
View tool JSON
{
"name": "stop_track",
"kind": "act",
"impl": "imperative",
"description": "Stops the currently loaded preview by pausing it and preserving its position. Use this for stop, stop it, stop the song, halt playback, or end the preview. It never changes My Crate or checkout.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/"
}previous_trackAction
Moves the visible preview player to the previous track in the currently loaded release and starts its preview. It does not change My Crate or checkout.
View tool JSON
{
"name": "previous_track",
"kind": "act",
"impl": "imperative",
"description": "Moves the visible preview player to the previous track in the currently loaded release and starts its preview. It does not change My Crate or checkout.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/"
}next_trackAction
Moves the visible preview player to the next track in the currently loaded release and starts its preview. It does not change My Crate or checkout.
View tool JSON
{
"name": "next_track",
"kind": "act",
"impl": "imperative",
"description": "Moves the visible preview player to the next track in the currently loaded release and starts its preview. It does not change My Crate or checkout.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/"
}previous_releaseAction
Moves the visible Shop crate to the previous release and opens its existing Song sidebar. This is release navigation, not track transport, and it never changes My Crate or checkout.
View tool JSON
{
"name": "previous_release",
"kind": "act",
"impl": "imperative",
"description": "Moves the visible Shop crate to the previous release and opens its existing Song sidebar. This is release navigation, not track transport, and it never changes My Crate or checkout.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/"
}next_releaseAction
Moves the visible Shop crate to the next release and opens its existing Song sidebar. This is release navigation, not track transport, and it never changes My Crate or checkout.
View tool JSON
{
"name": "next_release",
"kind": "act",
"impl": "imperative",
"description": "Moves the visible Shop crate to the next release and opens its existing Song sidebar. This is release navigation, not track transport, and it never changes My Crate or checkout.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/"
}seek_trackAction
Moves the currently loaded preview to an absolute position in seconds. This is explicit transport control only; automatic drop/cue-point detection is not implemented yet.
View tool JSON
{
"name": "seek_track",
"kind": "act",
"impl": "imperative",
"description": "Moves the currently loaded preview to an absolute position in seconds. This is explicit transport control only; automatic drop/cue-point detection is not implemented yet.",
"inputSchema": {
"type": "object",
"properties": {
"position_seconds": {
"type": "number",
"minimum": 0,
"maximum": 86400
}
},
"required": [
"position_seconds"
],
"additionalProperties": false
},
"page": "/"
}set_audio_muteAction
Sets the site-wide audio state for the current Agent Mode session, including preview playback and agent behavior cues. This is reversible and does not affect checkout.
View tool JSON
{
"name": "set_audio_mute",
"kind": "act",
"impl": "imperative",
"description": "Sets the site-wide audio state for the current Agent Mode session, including preview playback and agent behavior cues. This is reversible and does not affect checkout.",
"inputSchema": {
"type": "object",
"properties": {
"muted": {
"type": "boolean"
}
},
"required": [
"muted"
],
"additionalProperties": false
},
"page": "/"
}set_player_volumeAction
Sets preview player volume from 0 (silent) to 1 (full). It does not toggle the separate site mute state and never affects My Crate or checkout.
View tool JSON
{
"name": "set_player_volume",
"kind": "act",
"impl": "imperative",
"description": "Sets preview player volume from 0 (silent) to 1 (full). It does not toggle the separate site mute state and never affects My Crate or checkout.",
"inputSchema": {
"type": "object",
"properties": {
"volume": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"volume"
],
"additionalProperties": false
},
"page": "/"
}set_orb_visualAction
Switches the visible Agent orb between the current release cover bubble and a disco-ball visual. Use mode=cover or mode=disco_ball. It does not change playback, My Crate, or checkout.
View tool JSON
{
"name": "set_orb_visual",
"kind": "act",
"impl": "imperative",
"description": "Switches the visible Agent orb between the current release cover bubble and a disco-ball visual. Use mode=cover or mode=disco_ball. It does not change playback, My Crate, or checkout.",
"inputSchema": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"cover",
"disco_ball"
]
}
},
"required": [
"mode"
],
"additionalProperties": false
},
"page": "/"
}set_themeAction
Sets the website color theme (not the browser or agent UI mode) to light, dark, or system. The preference is persisted locally and changes only the visual theme; it does not affect playback, the crate, or checkout.
View tool JSON
{
"name": "set_theme",
"kind": "act",
"impl": "imperative",
"description": "Sets the website color theme (not the browser or agent UI mode) to light, dark, or system. The preference is persisted locally and changes only the visual theme; it does not affect playback, the crate, or checkout.",
"inputSchema": {
"type": "object",
"properties": {
"theme": {
"type": "string",
"enum": [
"light",
"dark",
"system"
]
}
},
"required": [
"theme"
],
"additionalProperties": false
},
"page": "/"
}manage_crateAction
Adds or removes a release from the local My Crate using the existing Add to Crate control. Use add_to_crate for an explicit add request. This is reversible, does not call checkout, and does not purchase anything.
View tool JSON
{
"name": "manage_crate",
"kind": "act",
"impl": "imperative",
"description": "Adds or removes a release from the local My Crate using the existing Add to Crate control. Use add_to_crate for an explicit add request. This is reversible, does not call checkout, and does not purchase anything.",
"inputSchema": {
"type": "object",
"properties": {
"record_id": {
"type": "string",
"minLength": 1,
"maxLength": 160
},
"action": {
"type": "string",
"enum": [
"add",
"remove"
]
}
},
"required": [
"record_id",
"action"
],
"additionalProperties": false
},
"page": "/"
}add_to_crateAction
Adds the requested release to My Crate. Use this for requests such as "add it to my crate", "add this release", or "save it in My Crate". When the user says "it" or "this" after a release was selected or inspected, record_id may be omitted and the current open or active release is used. This only changes the local reversible crate and never starts checkout or purchases anything.
View tool JSON
{
"name": "add_to_crate",
"kind": "act",
"impl": "imperative",
"description": "Adds the requested release to My Crate. Use this for requests such as \"add it to my crate\", \"add this release\", or \"save it in My Crate\". When the user says \"it\" or \"this\" after a release was selected or inspected, record_id may be omitted and the current open or active release is used. This only changes the local reversible crate and never starts checkout or purchases anything.",
"inputSchema": {
"type": "object",
"properties": {
"record_id": {
"type": "string",
"minLength": 1,
"maxLength": 160
}
},
"additionalProperties": false
},
"page": "/"
}return_to_main_crateAction
Returns the visible display to the main Shop crate (not My Crate), closes the release detail drawer, clears transient search, and preserves the preview player. It does not change crate contents or start checkout.
View tool JSON
{
"name": "return_to_main_crate",
"kind": "act",
"impl": "imperative",
"description": "Returns the visible display to the main Shop crate (not My Crate), closes the release detail drawer, clears transient search, and preserves the preview player. It does not change crate contents or start checkout.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/"
}prepare_checkoutSensitive Action
Shows My Crate and returns a checkout summary for human review. It never opens checkout, creates a payment session, or completes a purchase. For an explicit request such as "buy my crate", use start_checkout.
View tool JSON
{
"name": "prepare_checkout",
"kind": "transact",
"impl": "imperative",
"description": "Shows My Crate and returns a checkout summary for human review. It never opens checkout, creates a payment session, or completes a purchase. For an explicit request such as \"buy my crate\", use start_checkout.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/"
}start_checkoutSensitive Action
For an explicit request such as "buy my crate", activates the visible checkout control. On the hackathon demo it opens the short on-site simulator with a pre-signed-in demo profile and stops at review. After the checkout prompt, wait for an explicit confirmation before calling complete_purchase: English examples are "buy now", "buy it", "confirm purchase", "complete purchase", or "do it"; Italian examples are "confermo", "confermo l'acquisto", "compra ora", "procedi", or "vai" when clearly replying to the open checkout. Never treat a general "compra" or "buy" request before review as final confirmation. Otherwise it opens the Lemon overlay or redirects this tab to Lemon, where the final purchase remains human-controlled.
View tool JSON
{
"name": "start_checkout",
"kind": "transact",
"impl": "imperative",
"description": "For an explicit request such as \"buy my crate\", activates the visible checkout control. On the hackathon demo it opens the short on-site simulator with a pre-signed-in demo profile and stops at review. After the checkout prompt, wait for an explicit confirmation before calling complete_purchase: English examples are \"buy now\", \"buy it\", \"confirm purchase\", \"complete purchase\", or \"do it\"; Italian examples are \"confermo\", \"confermo l'acquisto\", \"compra ora\", \"procedi\", or \"vai\" when clearly replying to the open checkout. Never treat a general \"compra\" or \"buy\" request before review as final confirmation. Otherwise it opens the Lemon overlay or redirects this tab to Lemon, where the final purchase remains human-controlled.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/"
}complete_purchaseSensitive Action
When the demo checkout is open, completes the visible no-payment purchase only after the user explicitly confirms the final action. Treat these replies to the open checkout prompt as explicit confirmation: English "buy now", "buy it", "confirm purchase", "complete purchase", or "do it"; Italian "confermo", "confermo l'acquisto", "compra ora", "procedi", or "vai". Then call this tool with confirmed=true. Never infer confirmation from a general "compra" or "buy" request before checkout review is open; a missing or false value leaves the checkout at review. This is the final Buy Now / Complete Purchase action for the hackathon demo; it records a simulated order, shows Purchase Complete, and never contacts Lemon or delivers the original audio. After success, stop at Purchase Complete and wait for a separate explicit user request before calling download_release. Outside the demo simulator it refuses automation and returns the human checkout boundary.
View tool JSON
{
"name": "complete_purchase",
"kind": "transact",
"impl": "imperative",
"description": "When the demo checkout is open, completes the visible no-payment purchase only after the user explicitly confirms the final action. Treat these replies to the open checkout prompt as explicit confirmation: English \"buy now\", \"buy it\", \"confirm purchase\", \"complete purchase\", or \"do it\"; Italian \"confermo\", \"confermo l'acquisto\", \"compra ora\", \"procedi\", or \"vai\". Then call this tool with confirmed=true. Never infer confirmation from a general \"compra\" or \"buy\" request before checkout review is open; a missing or false value leaves the checkout at review. This is the final Buy Now / Complete Purchase action for the hackathon demo; it records a simulated order, shows Purchase Complete, and never contacts Lemon or delivers the original audio. After success, stop at Purchase Complete and wait for a separate explicit user request before calling download_release. Outside the demo simulator it refuses automation and returns the human checkout boundary.",
"inputSchema": {
"type": "object",
"properties": {
"confirmed": {
"type": "boolean",
"description": "Required explicit confirmation from the user for the final purchase action. Set true only after the visible checkout review and an explicit reply to the open checkout prompt, such as English \"buy now\", \"buy it\", \"confirm purchase\", \"complete purchase\", or \"do it\", or Italian \"confermo\", \"confermo l'acquisto\", \"compra ora\", \"procedi\", or \"vai\"."
}
},
"required": [
"confirmed"
],
"additionalProperties": false
},
"page": "/"
}download_releaseAction
Completes the final download step for a purchased release in the on-site hackathon demo and opens the compact Demo Complete message. Call this only after a later explicit user request to finish or download; do not chain it automatically after complete_purchase. The preview intentionally provides no audio file, so this tool never downloads or claims to deliver the original music. Omit record_id to use the currently selected purchased release in My Crate.
View tool JSON
{
"name": "download_release",
"kind": "act",
"impl": "imperative",
"description": "Completes the final download step for a purchased release in the on-site hackathon demo and opens the compact Demo Complete message. Call this only after a later explicit user request to finish or download; do not chain it automatically after complete_purchase. The preview intentionally provides no audio file, so this tool never downloads or claims to deliver the original music. Omit record_id to use the currently selected purchased release in My Crate.",
"inputSchema": {
"type": "object",
"properties": {
"record_id": {
"type": "string",
"maxLength": 160
}
},
"additionalProperties": false
},
"page": "/"
}end_curator_sessionAction
Returns the page to Human Mode through a soft handoff and clears agent-focused record styling. It does not alter My Crate.
View tool JSON
{
"name": "end_curator_session",
"kind": "act",
"impl": "imperative",
"description": "Returns the page to Human Mode through a soft handoff and clears agent-focused record styling. It does not alter My Crate.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/"
}