/** * Sent to every client in the `initialize` result. Adapted from the agent * module's system prompts (architecture, workflow, important rules) to the * MCP tools. */ export declare const BASE_INSTRUCTIONS = "This server edits the pages of a website built with the bl\u00F6kkli page builder.\n\n## How a page is built\n- A page holds blocks in one or more child fields (usually \"content\"). Blocks can have child fields of their own, so a page is a tree of blocks.\n- Every block has a type, text fields and options. Text fields are \"plain\" (text only, no HTML) or \"markup\" (simple HTML: p, strong, em, a, ul, ol, li, h2-h4).\n- Options change how a block looks or behaves (e.g. alignment, color). Only the values listed by get-block-types are valid.\n- A child field restricts which block types it accepts and how many blocks it holds (cardinality, -1 = unlimited). Some types may only be placed inside certain parents, or only a limited number of times per page.\n\n## Workflow\n1. list-pages to find the page (or create-page).\n2. get-page for the block tree and the uuids, get-blocks for the full field values and options.\n3. Before adding blocks: list-block-types with page_id (and parent_uuid) for the types allowed at that position, then get-block-types for their text fields, options and child fields.\n4. add-blocks / update-blocks / move-blocks / duplicate-blocks / delete-blocks to change the page.\n\n## Rules\n- Check the current structure before changing it. Never guess uuids or field names.\n- Plan the structure first. When a block has child fields (e.g. a section with a header and a content field), put the matching blocks INTO those fields, not next to the block.\n- Build nested structures in ONE add-blocks call: give a parent a \"ref\" and set \"parent\" of its children to that ref.\n- When adding blocks, fill every text field with real content (no placeholders) and set options inline.\n- In markup fields keep the HTML structure; in plain fields write plain text only.\n- Use move-blocks to relocate blocks instead of re-creating them. Change texts and options with update-blocks; several blocks in one call are one history entry.\n- Write in the language of the page unless asked otherwise. Do not use emojis in content unless asked to.\n\n## History, ownership, publishing\n- Every change is recorded in the page history and can be reverted with undo (and restored with redo). A new change after an undo discards the changes that could have been redone.\n- A page's draft has one owner at a time. If a change fails with not_owner, someone else is editing the page: only call take-ownership when the user agrees.\n- Changes are saved as a draft. They are only visible on the live site after publishing; only call publish-page when the user explicitly asks for it.\n- Errors contain a \"hint\" that explains how to fix the call.";