{
  "openapi": "3.1.0",
  "info": {
    "title": "AgentEmblem public catalog API",
    "version": "0.2.0",
    "description": "Public read-only package catalog and documentation. Rendering happens locally in React; there is no hosted model or rendering service.",
    "license": {
      "name": "MIT",
      "url": "https://opensource.org/license/mit"
    }
  },
  "servers": [
    {
      "url": "https://agent-emblem.vercel.app",
      "description": "Public AgentEmblem website"
    }
  ],
  "security": [],
  "externalDocs": {
    "url": "https://agent-emblem.vercel.app/developers/",
    "description": "Developer portal and configuration sandbox"
  },
  "paths": {
    "/api/manifest.json": {
      "get": {
        "operationId": "getAgentEmblemPackage",
        "summary": "Get package identity, installation, states, defaults, and documentation links",
        "responses": {
          "200": {
            "description": "Package catalog",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "package": {
                      "type": "string"
                    },
                    "version": {
                      "type": "string"
                    },
                    "license": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    },
                    "officialWebsite": {
                      "type": "string",
                      "format": "uri"
                    },
                    "repository": {
                      "type": "string",
                      "format": "uri"
                    },
                    "npm": {
                      "type": "string",
                      "format": "uri"
                    },
                    "install": {
                      "type": "string"
                    },
                    "runtime": {
                      "type": "string"
                    },
                    "peerDependencies": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "string"
                      }
                    },
                    "authentication": {
                      "type": "string"
                    },
                    "apiScope": {
                      "type": "string"
                    },
                    "presets": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "states": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "shapes": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "componentDefaults": {
                      "type": "object"
                    },
                    "docs": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "name",
                    "package",
                    "version",
                    "presets",
                    "states",
                    "docs"
                  ]
                },
                "example": {
                  "name": "AgentEmblem",
                  "package": "agent-emblem",
                  "version": "0.2.0",
                  "license": "MIT",
                  "description": "Animated AI status indicators for React, with built-in marks or optional custom SVG/PNG artwork.",
                  "officialWebsite": "https://agent-emblem.vercel.app/",
                  "repository": "https://github.com/pologarcia/agent-emblem",
                  "npm": "https://www.npmjs.com/package/agent-emblem",
                  "install": "npm install agent-emblem",
                  "runtime": "React web; browser canvas",
                  "peerDependencies": {
                    "react": ">=18",
                    "react-dom": ">=18"
                  },
                  "authentication": "none",
                  "apiScope": "Public read-only package catalog and documentation. Rendering happens locally in React; there is no hosted model or rendering service.",
                  "presets": [
                    "circle",
                    "square",
                    "spark",
                    "cursor"
                  ],
                  "states": [
                    "idle",
                    "thinking",
                    "loading",
                    "composing",
                    "talking",
                    "researching",
                    "listening"
                  ],
                  "shapes": [
                    "circle",
                    "square",
                    "diamond",
                    "plus"
                  ],
                  "componentDefaults": {
                    "preset": "circle",
                    "state": "idle",
                    "size": 240,
                    "colorMode": "system",
                    "animateVisibility": false,
                    "animateMotion": false
                  },
                  "docs": {
                    "developers": "/developers/",
                    "guide": "/docs/agent-guide.md",
                    "reference": "/llms-full.txt",
                    "openapi": "/openapi.json",
                    "configurationSchema": "/api/configuration.schema.json"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/presets.json": {
      "get": {
        "operationId": "getAgentEmblemPresets",
        "summary": "Get the four built-in marks as reusable SVG strings",
        "responses": {
          "200": {
            "description": "Built-in artwork included with the MIT-licensed package",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "package": {
                      "type": "string"
                    },
                    "version": {
                      "type": "string"
                    },
                    "license": {
                      "type": "string"
                    },
                    "presets": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "enum": [
                              "circle",
                              "square",
                              "spark",
                              "cursor"
                            ]
                          },
                          "svg": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "name",
                          "svg"
                        ]
                      }
                    }
                  },
                  "required": [
                    "package",
                    "version",
                    "license",
                    "presets"
                  ]
                },
                "example": {
                  "package": "agent-emblem",
                  "version": "0.2.0",
                  "license": "MIT",
                  "presets": [
                    {
                      "name": "circle",
                      "svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"><circle cx=\"50\" cy=\"50\" r=\"42\"/></svg>"
                    },
                    {
                      "name": "square",
                      "svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"><rect x=\"9\" y=\"9\" width=\"82\" height=\"82\" rx=\"4\"/></svg>"
                    },
                    {
                      "name": "spark",
                      "svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"><path d=\"M50 4c3 26 20 43 46 46-26 3-43 20-46 46C47 70 30 53 4 50 30 47 47 30 50 4Z\"/></svg>"
                    },
                    {
                      "name": "cursor",
                      "svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"><path d=\"M23 14 78 57 52 62 39 87Z\" stroke=\"#000\" stroke-width=\"9\" stroke-linejoin=\"round\"/></svg>"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/configuration.schema.json": {
      "get": {
        "operationId": "getAgentEmblemConfigurationSchema",
        "summary": "Get JSON Schema for the browser snippet generator",
        "responses": {
          "200": {
            "description": "JSON Schema document",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "$id": "https://agent-emblem.vercel.app/api/configuration.schema.json",
                  "title": "AgentEmblem snippet configuration",
                  "description": "Inputs for the website's code generator. These are sandbox defaults and bounds, not a replacement for the full React prop types.",
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "preset": {
                      "type": "string",
                      "enum": [
                        "circle",
                        "square",
                        "spark",
                        "cursor"
                      ],
                      "default": "circle"
                    },
                    "state": {
                      "type": "string",
                      "enum": [
                        "idle",
                        "thinking",
                        "loading",
                        "composing",
                        "talking",
                        "researching",
                        "listening"
                      ],
                      "default": "thinking"
                    },
                    "size": {
                      "type": "integer",
                      "minimum": 16,
                      "maximum": 240,
                      "default": 24
                    },
                    "showText": {
                      "type": "boolean",
                      "default": true,
                      "description": "Use AgentEmblemThinking instead of the mark-only AgentEmblem."
                    },
                    "text": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 160
                    },
                    "source": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40000,
                      "description": "Optional SVG string or image URL, emitted as a literal. No asset is fetched by the generator."
                    },
                    "color": {
                      "type": "string",
                      "pattern": "^#[0-9a-fA-F]{6}$"
                    },
                    "colorMode": {
                      "type": "string",
                      "enum": [
                        "system",
                        "light",
                        "dark"
                      ],
                      "default": "system"
                    },
                    "shape": {
                      "type": "string",
                      "enum": [
                        "circle",
                        "square",
                        "diamond",
                        "plus"
                      ]
                    },
                    "thinkingStyle": {
                      "type": "string",
                      "enum": [
                        "trace",
                        "bounce"
                      ]
                    },
                    "markScale": {
                      "type": "number",
                      "minimum": 0.5,
                      "maximum": 1
                    },
                    "particleCount": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 4096
                    },
                    "particleUniformity": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 1
                    },
                    "particlePositionUniformity": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 1
                    },
                    "animateVisibility": {
                      "type": "boolean",
                      "default": true
                    },
                    "animateMotion": {
                      "type": "boolean",
                      "default": true
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/docs/agent-guide.md": {
      "get": {
        "operationId": "getAgentEmblemGuide",
        "summary": "Read task fit, complete React recipes, API rules, and troubleshooting",
        "responses": {
          "200": {
            "description": "Markdown implementation guide",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/llms-full.txt": {
      "get": {
        "operationId": "getAgentEmblemFullReference",
        "summary": "Read the complete README and implementation guide in one response",
        "responses": {
          "200": {
            "description": "Full Markdown reference served as plain text",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    }
  }
}
