{
  "schemaVersion": "mamaki-space-manifest-v1",
  "id": "space_character_creator",
  "owner": {
    "kind": "mamaki",
    "id": "mamaki",
    "handle": "mamaki",
    "displayName": "Mamaki"
  },
  "slug": "character-creator",
  "version": "0.1.0",
  "status": "live",
  "audience": "kid",
  "trustTier": "isolated-worker",
  "artifact": {
    "kind": "cloudflare-artifact",
    "repo": "mamaki-fun",
    "ref": "refs/heads/main",
    "commit": "pending",
    "manifestPath": "src/spaces/catalog.ts",
    "manifestHash": "character-creator-0.1.0"
  },
  "copy": {
    "title": "Character Creator",
    "tagline": "Design a character → turn it into a coloring book, stickers, and a printed storybook.",
    "lede": "Describe a character — a brave little fox astronaut, a sleepy cloud dragon, your own superhero — and we draw it in full color. Then make a whole kit from it: a coloring book, a sticker sheet, and a printed mini storybook starring your character. Free to make, no signup.",
    "description": "Design your own character and turn it into a coloring book, stickers, and a printed storybook. Free to make, no signup. Made for kids."
  },
  "presentation": {
    "swatch": "linear-gradient(135deg, #ffd6a5, #c2b3ff 55%, #a0e7e5)",
    "emoji": "🦊",
    "doodle": "pencil"
  },
  "capabilities": [
    "generate-image",
    "download",
    "remix",
    "print",
    "mcp-control"
  ],
  "safety": {
    "audience": "kid",
    "promptMode": "free-roam",
    "maxPromptChars": 280,
    "persistence": "none",
    "moderation": "policy-filter",
    "rateLimits": [
      {
        "key": "ip",
        "limit": 12,
        "windowSeconds": 3600,
        "burst": 3
      }
    ]
  },
  "runtimes": [
    {
      "kind": "shared-renderer",
      "renderer": "mamaki-shared",
      "component": "Generator",
      "apiBase": "/api/workflows/runs"
    },
    {
      "kind": "mcp-app",
      "resourceUri": "ui://mamaki/character-creator.html",
      "tools": [
        "open-character-creator"
      ]
    },
    {
      "kind": "dynamic-worker",
      "dispatchNamespace": "mamaki-spaces",
      "workerName": "space-character-creator",
      "publicOrigin": "https://character-creator.mamaki.fun",
      "routePrefix": "/spaces/character-creator/",
      "isolation": "trusted",
      "grants": [
        {
          "kind": "service",
          "binding": "OPENROUTER",
          "adapter": "mamaki-openrouter-adapter",
          "upstream": "openrouter.ai"
        }
      ]
    }
  ],
  "actions": [
    {
      "name": "generate_character",
      "title": "Generate Character",
      "description": "Generate one ephemeral full-color kid character from a kid-safe prompt — the hero of the print kit.",
      "visibility": "model",
      "capabilities": [
        "generate-image",
        "download"
      ],
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "prompt"
        ],
        "properties": {
          "prompt": {
            "type": "string",
            "minLength": 1,
            "maxLength": 280
          },
          "topic": {
            "type": "string",
            "maxLength": 80
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "runId",
          "status"
        ],
        "properties": {
          "runId": {
            "type": "string"
          },
          "viewUUID": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "statusUrl": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        }
      }
    },
    {
      "name": "get_workflow_run",
      "title": "Get Workflow Run",
      "description": "Check a queued character run and return the result URL when complete.",
      "visibility": "app-only",
      "capabilities": [
        "generate-image",
        "download"
      ],
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "runId"
        ],
        "properties": {
          "runId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "runId",
          "status"
        ],
        "properties": {
          "runId": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "error": {
            "type": "string"
          }
        }
      }
    }
  ],
  "examples": [
    {
      "id": "fox-astronaut",
      "title": "Fox astronaut",
      "action": "generate_character",
      "input": {
        "prompt": "A brave little fox astronaut with a tiny rocket backpack and a big helmet"
      },
      "tags": [
        "animal",
        "space",
        "hero"
      ]
    },
    {
      "id": "cloud-dragon",
      "title": "Sleepy cloud dragon",
      "action": "generate_character",
      "input": {
        "prompt": "A soft, sleepy baby dragon made of fluffy clouds with tiny wings"
      },
      "tags": [
        "fantasy",
        "gentle"
      ]
    },
    {
      "id": "boba-hero",
      "title": "Boba superhero",
      "action": "generate_character",
      "input": {
        "prompt": "A cheerful boba milk tea cup superhero with a little cape and a big smile"
      },
      "tags": [
        "food",
        "hero",
        "cute"
      ]
    },
    {
      "id": "garden-bunny",
      "title": "Garden bunny friend",
      "action": "generate_character",
      "input": {
        "prompt": "A kind little bunny gardener in overalls holding a tiny watering can"
      },
      "tags": [
        "animal",
        "cozy"
      ]
    }
  ],
  "publishing": {
    "canonicalPath": "/agents/character-creator/",
    "aliases": [
      {
        "path": "/spaces/character-creator/",
        "kind": "legacy",
        "redirectToCanonical": true
      }
    ],
    "indexable": true,
    "sitemap": true,
    "homepageTile": true
  }
}