{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://api-production-22727.up.railway.app/schemas/capability_event.v1.json","title":"CapabilityEvent","description":"A single agent-relevant capability release, delivered on the AgentWire bus.","type":"object","required":["id","slug","kind","title","summary","published_at","source"],"properties":{"id":{"type":"string","description":"UUID v4 assigned by AgentWire when the event is published.","format":"uuid"},"slug":{"type":"string","description":"Human- and URL-friendly identifier. Immutable once published.","pattern":"^[a-z0-9][a-z0-9-]{2,80}$"},"kind":{"type":"string","description":"The class of capability released.","enum":["sdk_release","model_release","mcp_server","library_release","framework_release","tool_release","protocol_update","api_change","cli_release","dataset_release","research","announcement"]},"title":{"type":"string","description":"One-line headline. <=140 chars.","maxLength":140},"summary":{"type":"string","description":"One-paragraph explainer for a human. <=480 chars.","maxLength":480},"capability_delta":{"type":"string","description":"What an agent can now do that it couldn't before, phrased as a capability. <=280 chars.","maxLength":280},"vendor":{"type":"string","description":"Publishing entity. E.g. \"Anthropic\", \"OpenAI\", \"community/langchain\"."},"package":{"type":"object","description":"Machine-installable package identity (when applicable).","properties":{"registry":{"type":"string","enum":["pypi","npm","cargo","go","github","docker","brew","none"]},"name":{"type":"string"},"version":{"type":"string"},"install_command":{"type":"string","description":"One-liner: e.g. \"pip install anthropic==0.75.0\"."}}},"example_code":{"type":"object","description":"A minimal working snippet exercising the new capability.","properties":{"language":{"type":"string","enum":["python","typescript","javascript","bash","rust","go","curl","json","yaml","toml","other"]},"source":{"type":"string"}}},"mcp":{"type":"object","description":"MCP server discovery metadata (when kind=mcp_server).","properties":{"server_name":{"type":"string"},"transport":{"type":"string","enum":["stdio","streamable_http","sse"]},"url":{"type":"string","format":"uri"},"manifest_url":{"type":"string","format":"uri"},"tools":{"type":"array","items":{"type":"string"}}}},"tags":{"type":"array","items":{"type":"string"},"description":"Free-form labels for filtering (agent-frameworks, coding, retrieval, vision, voice, ...)."},"categories":{"type":"array","items":{"type":"string","enum":["models","sdks","mcp","agents","tools","protocols","eval","orchestration","runtime","infra","browsing","coding","retrieval","multimodal","voice","vision"]}},"source":{"type":"object","description":"Where this capability was first discovered.","required":["kind","url"],"properties":{"kind":{"type":"string","enum":["github_release","pypi","npm","rss","hn","arxiv","blog","mcp_registry","twitter","manual","other"]},"url":{"type":"string","format":"uri"},"hash":{"type":"string","description":"Content hash used for dedupe."}}},"links":{"type":"array","description":"Related URLs — docs, blog, announcement, changelog.","items":{"type":"object","required":["rel","url"],"properties":{"rel":{"type":"string","enum":["docs","changelog","blog","release","repo","package","manifest","demo","paper","discussion"]},"url":{"type":"string","format":"uri"},"title":{"type":"string"}}}},"curator_note":{"type":"string","description":"Editorial commentary from AgentWire. Optional. <=400 chars.","maxLength":400},"confidence":{"type":"number","description":"LLM classifier confidence (0..1) that this is genuinely agent-relevant.","minimum":0,"maximum":1},"published_at":{"type":"string","format":"date-time","description":"ISO8601 UTC time when AgentWire published this event."},"source_published_at":{"type":"string","format":"date-time","description":"When the vendor originally published the underlying capability."}},"additionalProperties":false}