{"ok":true,"site":{"host":"xyle.dev","url":"https://xyle.dev/demo/","type":"live","desc":"Xyle browser demo","tools":[{"name":"list_editable_content","kind":"answer","impl":"imperative","description":"List the current page regions that Xyle can edit.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo/"},{"name":"list_groups","kind":"answer","impl":"imperative","description":"List source-backed repeating Groups and their safe items.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo/"},{"name":"get_content","kind":"answer","impl":"imperative","description":"Read the current content of one Xyle editable region.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"The editable Xyle node id."}},"required":["id"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo/"},{"name":"list_changes","kind":"answer","impl":"imperative","description":"List the current unsaved Xyle changes.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo/"},{"name":"apply_change_set","kind":"act","impl":"imperative","description":"Apply several safe Xyle edits as one reviewable and undoable task.","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"label":{"type":"string","description":"A short name for this editing task."},"changes":{"type":"array","minItems":1,"maxItems":20,"items":{"type":"object","properties":{"type":{"type":"string","enum":["text","link","asset","formatting","sectionVisibility","moveSection"]},"id":{"type":"string","description":"The current Xyle node id."},"targetId":{"type":"string","description":"The sibling section target id."},"before":{"type":"boolean","description":"Move before the target when true."},"visible":{"type":"boolean","description":"Whether the section should be shown."},"text":{"type":"string","description":"Replacement text."},"href":{"type":"string","description":"A safe URL or path."},"src":{"type":"string","description":"A safe image URL or path."},"alt":{"type":"string","description":"Alternative text for an image."},"format":{"type":"string","enum":["bold","italic","underline","strikethrough","paragraph","heading-1","heading-2","heading-3","heading-4","heading-5","heading-6","unordered-list","ordered-list"]}},"required":["type","id"]}}},"required":["label","changes"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo/"},{"name":"undo_change_set","kind":"act","impl":"imperative","description":"Undo every current Xyle change created by one editing task.","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"changeSetId":{"type":"string","description":"The Xyle change-set id."}},"required":["changeSetId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo/"},{"name":"revert_change","kind":"act","impl":"imperative","description":"Revert one current unsaved Xyle Change to its original state.","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"changeId":{"type":"string","description":"The Xyle change id."}},"required":["changeId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo/"},{"name":"update_link","kind":"act","impl":"imperative","description":"Update the text or safe destination of one Xyle link.","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"The editable Xyle link id."},"text":{"type":"string","description":"Optional replacement link text."},"href":{"type":"string","description":"Optional safe URL or path."}},"required":["id"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo/"},{"name":"replace_asset","kind":"act","impl":"imperative","description":"Replace one Xyle image source and optionally update its alt text.","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"The current Xyle image id."},"src":{"type":"string","description":"A safe image URL or site path."},"alt":{"type":"string","description":"Optional alternative text."}},"required":["id","src"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo/"},{"name":"update_media","kind":"act","impl":"imperative","description":"Safely update one image source, crop, focus point, or alt text.","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"The current Xyle image id."},"src":{"type":"string","description":"A safe image URL or site path."},"alt":{"type":"string","description":"Alternative text for the image."},"fit":{"type":"string","enum":["cover","contain"]},"crop":{"type":["object","null"],"properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1}}},"focus":{"type":["object","null"],"properties":{"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1}}}},"required":["id"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo/"},{"name":"get_seo","kind":"answer","impl":"imperative","description":"Read the current page SEO metadata.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo/"},{"name":"update_seo","kind":"act","impl":"imperative","description":"Update one safe page SEO metadata field for human review.","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"field":{"type":"string","enum":["title","description","canonical","ogTitle","ogDescription","ogImage"]},"value":{"type":"string"}},"required":["field","value"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo/"},{"name":"update_formatting","kind":"act","impl":"imperative","description":"Apply safe inline formatting, paragraph/heading styles, or a safe single-item list style to one Xyle text region.","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"The current Xyle text or link id."},"format":{"type":"string","enum":["bold","italic","underline","strikethrough","paragraph","heading-1","heading-2","heading-3","heading-4","heading-5","heading-6","unordered-list","ordered-list"]}},"required":["id","format"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo/"},{"name":"update_list","kind":"act","impl":"imperative","description":"Group contiguous sibling text blocks into one safe ordered or bulleted list.","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"ids":{"type":"array","minItems":1,"maxItems":20,"items":{"type":"string"},"description":"The current contiguous sibling text block ids in document order."},"format":{"type":"string","enum":["unordered-list","ordered-list"]}},"required":["ids","format"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo/"},{"name":"set_section_visibility","kind":"act","impl":"imperative","description":"Show or hide one safe Xyle section for human review.","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"The current Xyle section id."},"visible":{"type":"boolean","description":"Whether the section should be shown."}},"required":["id","visible"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo/"},{"name":"move_section","kind":"act","impl":"imperative","description":"Move one safe Xyle section before or after a sibling section.","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"The section to move."},"targetId":{"type":"string","description":"The sibling section to move relative to."},"before":{"type":"boolean","description":"Move before the target when true; after when false."}},"required":["id","targetId","before"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo/"},{"name":"duplicate_section","kind":"act","impl":"imperative","description":"Duplicate one safe Xyle section immediately after itself.","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"The safe section to duplicate."}},"required":["id"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo/"},{"name":"delete_section","kind":"transact","impl":"imperative","description":"Delete one safe Xyle area from the draft. A human must publish the change.","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"The safe area to delete."}},"required":["id"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo/"},{"name":"duplicate_group_item","kind":"act","impl":"imperative","description":"Duplicate one source-backed item in a safe Xyle Group.","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"groupId":{"type":"string","description":"The source-backed Group id."},"itemId":{"type":"string","description":"The source-backed Group item id."}},"required":["groupId","itemId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo/"},{"name":"list_layout_options","kind":"answer","impl":"imperative","description":"List the safe layout options for one validated area.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"targetId":{"type":"string","description":"The safe section id."}},"required":["targetId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo/"},{"name":"change_layout","kind":"act","impl":"imperative","description":"Change a validated area to Above and below, Text left, or Image left as one reversible draft action.","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"targetId":{"type":"string","description":"The safe area id."},"outcome":{"type":"string","enum":["above-and-below","text-left","image-left"]}},"required":["targetId","outcome"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo/"},{"name":"move_group_item","kind":"act","impl":"imperative","description":"Move one source-backed Group item before or after another source-backed item.","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"groupId":{"type":"string","description":"The source-backed Group id."},"itemId":{"type":"string","description":"The source-backed item to move."},"targetItemId":{"type":"string","description":"The source-backed destination item."},"position":{"type":"string","enum":["before","after"]}},"required":["groupId","itemId","targetItemId","position"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo/"},{"name":"insert_paragraph","kind":"act","impl":"imperative","description":"Split one paragraph or heading at a text offset. The new block is a paragraph.","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"The editable Xyle text node id."},"offset":{"type":"integer","minimum":0,"description":"Zero-based text offset at which to create the paragraph."}},"required":["id","offset"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo/"},{"name":"insert_line_break","kind":"act","impl":"imperative","description":"Insert a line break in one multiline Xyle text block at a text offset.","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"The editable Xyle text node id."},"offset":{"type":"integer","minimum":0,"description":"Zero-based text offset at which to insert the line break."}},"required":["id","offset"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo/"},{"name":"create_link","kind":"act","impl":"imperative","description":"Turn a text range into a safe link in one Xyle text block.","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"The editable Xyle text node id."},"start":{"type":"integer","minimum":0,"description":"Zero-based start offset of the linked text."},"end":{"type":"integer","minimum":1,"description":"Zero-based exclusive end offset of the linked text."},"href":{"type":"string","description":"The safe link destination."}},"required":["id","start","end","href"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo/"},{"name":"update_text","kind":"act","impl":"imperative","description":"Replace the text in one current Xyle editable region.","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"The editable Xyle node id."},"text":{"type":"string","description":"The replacement plain text."}},"required":["id","text"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo/"}],"category":"Productivity & Business","favicon":"/favicons/xyle.dev.png","apiSurface":"spec","toolCount":26}}