← Receivers

pages:templates

pages family

mcp

Browse the page templates (store, sales, webinar, course, about, …) — list them with their block line-up, or read one template's full blocks to start a page from

Effect
ask
Awaits an outcome — the call returns the response below.
Cost
free
What one call costs, so you can budget before acting.
Reversible
yes
The effect can be undone by a later call.
Idempotent
yes
Safe to retry as-is.

Send it with your agent

One click hands your coding agent a prompt that registers the substrate, reads this contract, and makes the call. Launch opens the app; the others copy the prompt.

Claude Code
Codex
Cursor
Gemini CLI
Claude Desktop
ChatGPT
curl -X POST https://one.ie/api/ask/pages:templates \
  -H "Authorization: Bearer $ONE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"data": { "search": "store" }}'

The key is never in a link. npx -y @oneie/cli login writes it to ~/.config/oneie/key on your machine.

Request

Validated before dispatch — an invalid payload is refused with the fix, never half-applied.

  • id string optional A template id. Present → that template's full blocks (`{ id, type, props }`) and its rewrite guidance. Absent → the list.
  • search string optional List mode: case-insensitive substring over id, name and description.

Response

What comes back from the call.

  • ok boolean
  • templates object[] List mode. Every template — the list is small (tens) and never paged.
  • template object Read mode.
  • error string

Traffic

Every call to pages:templates, counted where it is dispatched — over HTTP or in-process alike. Aggregate only — no actor, no payload, no workspace.

Counting…

Wiring

Every place in the open source that names pages:templates, and the file that answers it. Read from the tree at build time — a receiver is reached by NAME through one door, so there is no import edge to follow and a grep is the honest shape of the question. Structure, not volume — the count is in Traffic above.

Called from

API route 1
  • one.ie/web/src/lib/receiver-index.generated.ts:263
Agent runtime 1
  • channels/src/tools/pages.ts:278
→
JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "description": "A template id. Present → that template's full blocks (`{ id, type, props }`) and its rewrite guidance. Absent → the list.",
      "type": "string"
    },
    "search": {
      "description": "List mode: case-insensitive substring over id, name and description.",
      "type": "string"
    }
  }
}
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "templates": {
      "description": "List mode. Every template — the list is small (tens) and never paged.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "blocks": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The template's top-level blocks in order, as `Type` or `Type/variant`"
          },
          "pageCount": {
            "description": "Present ⟺ a PACK: it seeds this many pages through `seedReceiver`, and `pages:create {template}` refuses it",
            "type": "number"
          },
          "seedReceiver": {
            "type": "string"
          },
          "strength": {
            "description": "How many of the template-strength checks it passes (lib/puck/template-strength.ts)",
            "type": "object",
            "properties": {
              "score": {
                "type": "number"
              },
              "max": {
                "type": "number"
              }
            },
            "required": [
              "score",
              "max"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "description",
          "blocks"
        ]
      }
    },
    "template": {
      "description": "Read mode.",
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "guidance": {
          "type": "string",
          "description": "How to rewrite this template for a real business"
        },
        "root": {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {}
        },
        "blocks": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "type": {
                "type": "string"
              },
              "props": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              }
            },
            "required": [
              "id",
              "type",
              "props"
            ]
          }
        },
        "pageCount": {
          "type": "number"
        },
        "seedReceiver": {
          "type": "string"
        }
      },
      "required": [
        "id",
        "name",
        "description",
        "guidance",
        "blocks"
      ]
    },
    "error": {
      "type": "string"
    }
  },
  "required": [
    "ok"
  ]
}