{"openapi":"3.0.3","info":{"title":"Eloquent Surfaces","version":"1.0.0","contact":{"email":"ops@eloquentanalytics.com"}},"servers":[{"url":"https://surfaces.eloquentanalytics.com"}],"paths":{"/robots.txt":{"get":{"operationId":"getRobotsTxt","summary":"Robots.txt with AI bot rules","description":"robots.txt with User-agent directives for AI crawlers and Content-Signal usage permissions.","tags":["Discovery"],"responses":{"200":{"description":"Robots.txt file","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/sitemap.xml":{"get":{"operationId":"getSitemap","summary":"XML sitemap","description":"Standard sitemap.xml listing public pages and discovery endpoints.","tags":["Discovery"],"responses":{"200":{"description":"XML sitemap","content":{"application/xml":{"schema":{"type":"string"}}}}}}},"/.well-known/oauth-protected-resource":{"get":{"operationId":"getOauthProtectedResource","summary":"OAuth Protected Resource metadata (RFC 9728)","description":"Declares which authorization servers can issue tokens for this resource.","tags":["Discovery"],"responses":{"200":{"description":"Protected resource metadata","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/.well-known/api-catalog":{"get":{"operationId":"getApiCatalog","summary":"API catalog (RFC 9727)","description":"RFC 9727 API catalog in linkset+json format.","tags":["Discovery"],"responses":{"200":{"description":"API catalog linkset","content":{"application/linkset+json":{"schema":{"type":"object"}}}}}}},"/.well-known/mcp/server-card.json":{"get":{"operationId":"getMcpServerCard","summary":"MCP Server Card (SEP-1649)","description":"MCP server card describing server info, transport endpoint, capabilities, and tools.","tags":["Discovery"],"responses":{"200":{"description":"MCP server card","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/.well-known/agent.json":{"get":{"operationId":"getA2AAgentCard","summary":"A2A agent card","description":"Returns the A2A agent card describing skills and capabilities.","tags":["Agent Discovery"],"responses":{"200":{"description":"A2A agent card","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/llms.txt":{"get":{"operationId":"getLlmsTxt","summary":"LLM documentation index","description":"Markdown index of the service and its discovery/interaction surfaces.","tags":["Discovery"],"responses":{"200":{"description":"llms.txt","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/.well-known/agent-skills/index.json":{"get":{"operationId":"getAgentSkillsIndex","summary":"Agent Skills index","description":"Agent Skills Discovery index (RFC v0.2.0) listing all available skills with name, type, description, URL, and SHA256 digest for content verification.","tags":["Discovery"],"responses":{"200":{"description":"Agent skills index","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/profiles":{"get":{"operationId":"getProfiles","summary":"List behavioral profiles","description":"Returns named profiles (conservative, balanced, quick) that map to preset+threshold+cost combinations for simplified invocation.","tags":["Invocation"],"responses":{"200":{"description":"Available profiles","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/.well-known/ai-plugin.json":{"get":{"operationId":"getAIPluginManifest","summary":"AI plugin manifest","description":"OpenAI-compatible plugin manifest for agent discovery. Describes the service, authentication, and links to the OpenAPI spec.","tags":["Agent Discovery"],"responses":{"200":{"description":"AI plugin manifest","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/agent-card":{"get":{"operationId":"getAgentCard","summary":"Unified agent card","description":"Comprehensive agent card listing all capabilities, authentication methods, interfaces (REST, MCP, A2A), and the full interaction-surfaces catalog.","tags":["Agent Discovery"],"responses":{"200":{"description":"Agent card","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/routing-descriptions.json":{"get":{"operationId":"getRoutingDescriptions","summary":"Machine-readable routing descriptions","description":"Returns enhanced route metadata with x-agent-hints including cost estimates, latency estimates, and usage guidance for each endpoint.","tags":["Agent Discovery"],"responses":{"200":{"description":"Routing descriptions with agent hints","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/errors/catalog":{"get":{"operationId":"getErrorCatalog","summary":"Error catalog with recovery actions","description":"Returns all known error codes with RFC 9457 Problem Details format and machine-readable recovery actions.","tags":["Developer Tools"],"responses":{"200":{"description":"Error catalog","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/reputation":{"get":{"operationId":"getServiceReputation","summary":"Service reputation metrics","description":"Returns aggregate service metrics including uptime, success rate, average latency, and cost. Cached for 5 minutes.","tags":["Analytics"],"responses":{"200":{"description":"Service metrics","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/reputation/models":{"get":{"operationId":"getModelReputation","summary":"Per-model reputation metrics","description":"Returns per-model performance stats including success rate, latency, and cost based on recent invocations.","tags":["Analytics"],"responses":{"200":{"description":"Model metrics","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/graph/node-spec":{"get":{"operationId":"getGraphNodeSpec","summary":"Graph node specification","description":"Returns this service as a composable graph node with JSON Schema, OpenAPI ref, and LangChain Tool spec formats.","tags":["Developer Tools"],"responses":{"200":{"description":"Node specifications in multiple formats","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/invoke/estimate":{"get":{"operationId":"getInvokeEstimate","summary":"Estimate tool invocation cost and latency","description":"Returns cost and latency estimates for a tool invocation without calling any LLMs. Use to preview costs before running.","tags":["Invocation"],"parameters":[{"name":"preset","in":"query","schema":{"type":"string"},"description":"Tag-based model preset (e.g. generalist, efficient, frontier_quality)"},{"name":"options","in":"query","schema":{"type":"integer","default":2},"description":"Number of options"},{"name":"confidence_threshold","in":"query","schema":{"type":"number"},"description":"Confidence threshold (0-1)"}],"responses":{"200":{"description":"Cost and latency estimates","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid preset"}}}},"/api/feedback":{"post":{"operationId":"submitFeedback","summary":"Submit invocation feedback","description":"Record whether a tool invocation outcome was correct, with optional confidence score and notes. Requires authentication.","tags":["Analytics"],"security":[{"bearerApiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["invocation_id"],"properties":{"invocation_id":{"type":"string"},"outcome_correct":{"type":"boolean","nullable":true},"confidence":{"type":"number","nullable":true},"notes":{"type":"string","nullable":true}}}}}},"responses":{"201":{"description":"Feedback recorded","content":{"application/json":{"schema":{"type":"object","properties":{"feedback_id":{"type":"string"},"invocation_id":{"type":"string"},"recorded":{"type":"boolean"}}}}}},"400":{"description":"invocation_id is required"},"401":{"description":"Authentication required"}}}},"/api/feedback/{id}":{"get":{"operationId":"getFeedback","summary":"Get invocation feedback","description":"Returns all feedback entries for a tool invocation with accuracy statistics.","tags":["Analytics"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Feedback summary and entries","content":{"application/json":{"schema":{"type":"object","properties":{"invocation_id":{"type":"string"},"total_feedback":{"type":"integer"},"correct":{"type":"integer"},"incorrect":{"type":"integer"},"unrated":{"type":"integer"},"accuracy_rate":{"type":"number","nullable":true},"feedbacks":{"type":"array"}}}}}}}}},"/api/intents":{"get":{"operationId":"listIntents","summary":"List intent signatures","description":"Returns all registered intent signatures with trigger phrases and parameter schemas for matching natural language to tool-invocation patterns.","tags":["Developer Tools"],"responses":{"200":{"description":"Intent signatures","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/intents/match":{"post":{"operationId":"matchIntent","summary":"Match text to intent","description":"Matches a natural language string against registered intent signatures and returns scored matches.","tags":["Developer Tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"Natural language text to match against intents"}}}}}},"responses":{"200":{"description":"Intent matches","content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"},"matches":{"type":"array","items":{"type":"object"}},"best_match":{"type":"object","nullable":true}}}}}},"400":{"description":"Missing text field"}}}},"/api/examples":{"get":{"operationId":"listExamples","summary":"List available code examples","description":"Returns available example languages and their endpoints.","tags":["Developer Tools"],"responses":{"200":{"description":"Available examples","content":{"application/json":{"schema":{"type":"object","properties":{"available":{"type":"array","items":{"type":"string"}},"endpoints":{"type":"array","items":{"type":"string"}}}}}}}}}},"/api/examples/{language}":{"get":{"operationId":"getExample","summary":"Get code example","description":"Returns a ready-to-use code example for the specified language (curl, typescript, python, mcp-config).","tags":["Developer Tools"],"parameters":[{"name":"language","in":"path","required":true,"schema":{"type":"string","enum":["curl","typescript","python","mcp-config"]}}],"responses":{"200":{"description":"Code example in requested language"},"404":{"description":"Unknown language"}}}},"/api/invoke/dry-run":{"post":{"operationId":"dryRunInvoke","summary":"Dry run invocation","description":"Validate invocation input and return cost estimates without executing. Requires authentication. Returns validation errors and estimates.","tags":["Invocation"],"security":[{"bearerApiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"question":{"type":"string"},"options":{"type":"array","items":{"type":"string"}},"preset":{"type":"string"},"confidence_threshold":{"type":"number"},"max_cost_usd":{"type":"number"}}}}}},"responses":{"200":{"description":"Dry run result","content":{"application/json":{"schema":{"type":"object","properties":{"dry_run":{"type":"boolean"},"valid":{"type":"boolean"},"errors":{"type":"array","items":{"type":"string"}},"estimates":{"type":"object"}}}}}},"401":{"description":"Authentication required"}}}},"/api/a2a/tasks/send":{"post":{"operationId":"sendA2ATask","summary":"Send A2A task","description":"Submit a task via Google A2A protocol. Message parts should contain JSON with tool arguments.","tags":["Agent Discovery"],"security":[{"bearerApiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Task completed","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/webmcp.js":{"get":{"operationId":"getWebMcpScript","summary":"WebMCP initialization script","description":"JavaScript snippet that registers all available tools with navigator.modelContext for in-browser AI agents.","tags":["Discovery"],"responses":{"200":{"description":"WebMCP initialization script","content":{"application/javascript":{"schema":{"type":"string"}}}}}}},"/api/invoke (free)":{"post":{"operationId":"invokeFree","summary":"Free invocation (no auth)","description":"Unauthenticated tool invocation using free open-weight models. Accepts question/options in shorthand formats but with tighter limits (question: 1000 chars, options: 50 chars, max 5 options). Cost is always 0. The free tier is detected automatically when no Authorization header is present.","tags":["Invocation"],"security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"question":{"type":"string","description":"Question text (max 1000 chars)"},"options":{"type":"array","items":{"type":"string"},"description":"Answer choices (2–5, max 50 chars each)"},"q":{"type":"string","description":"Alias for question"},"o":{"type":"array","items":{"type":"string"},"description":"Alias for options"},"poll":{"type":"string","description":"Combined shorthand format: 'Question? [Option A, Option B]'"}}}}}},"responses":{"200":{"description":"Free invocation result","content":{"application/json":{"schema":{"type":"object","properties":{"question":{"type":"string"},"options":{"type":"array","items":{"type":"string"}},"answer":{"type":"string","nullable":true},"reasoning":{"type":"string"},"cost":{"type":"number","description":"Always 0 for free invocations"},"invocation_id":{"type":"string","description":"Result identifier (e.g. EP-2026-04-10-abc123)"},"result_url":{"type":"string","description":"URL to fetch the full result"}}}}}},"400":{"description":"Validation error — input exceeds free-tier limits or is malformed"},"429":{"description":"Rate limit exceeded for the anonymous free tier"}}}},"/api/models":{"get":{"operationId":"getModels","summary":"List tool variants","description":"Tool variant registry derived from registered tools. Returns all available tool variants with name, description, and capability metadata.","tags":["Discovery"],"responses":{"200":{"description":"Tool variant registry","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer"},"variants":{"type":"array","items":{"type":"object"}}}}}}}}}},"/api/invoke/stream":{"post":{"operationId":"invokeStream","summary":"Invoke a tool with streaming progress (SSE)","description":"Invoke a tool and receive real-time Server-Sent Events as it executes. Returns events: started, progress, complete, error.","tags":["Async Invocation"],"security":[{"bearerApiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["tool"],"properties":{"tool":{"type":"string","description":"The tool name to invoke"},"args":{"type":"object","description":"Tool arguments"}}}}}},"responses":{"200":{"description":"SSE event stream","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Validation error"},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/.cursor/skills/mirror/SKILL.md":{"get":{"summary":"Mirrored SKILL.md (nested skill layout)","description":"YAML frontmatter + body. Paths match project (.cursor/skills/…) and home (~/.cursor/skills/…, %7E/) discovery.","tags":["Developer Tools"],"responses":{"200":{"description":"text/markdown","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/.cursor/mirror/SKILL.md":{"get":{"summary":"Mirrored SKILL.md (nested skill layout)","description":"YAML frontmatter + body. Paths match project (.cursor/skills/…) and home (~/.cursor/skills/…, %7E/) discovery.","tags":["Developer Tools"],"responses":{"200":{"description":"text/markdown","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/.claude/skills/mirror/SKILL.md":{"get":{"summary":"Mirrored SKILL.md (nested skill layout)","description":"YAML frontmatter + body. Paths match project (.cursor/skills/…) and home (~/.cursor/skills/…, %7E/) discovery.","tags":["Developer Tools"],"responses":{"200":{"description":"text/markdown","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/.claude/skills/mirror.md":{"get":{"summary":"Mirrored SKILL.md (nested skill layout)","description":"YAML frontmatter + body. Paths match project (.cursor/skills/…) and home (~/.cursor/skills/…, %7E/) discovery.","tags":["Developer Tools"],"responses":{"200":{"description":"text/markdown","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/.codex/skills/mirror/SKILL.md":{"get":{"summary":"Mirrored SKILL.md (nested skill layout)","description":"YAML frontmatter + body. Paths match project (.cursor/skills/…) and home (~/.cursor/skills/…, %7E/) discovery.","tags":["Developer Tools"],"responses":{"200":{"description":"text/markdown","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/.agents/skills/mirror/SKILL.md":{"get":{"summary":"Mirrored SKILL.md (nested skill layout)","description":"YAML frontmatter + body. Paths match project (.cursor/skills/…) and home (~/.cursor/skills/…, %7E/) discovery.","tags":["Developer Tools"],"responses":{"200":{"description":"text/markdown","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/~/.cursor/skills/mirror/SKILL.md":{"get":{"summary":"Mirrored SKILL.md (nested skill layout)","description":"YAML frontmatter + body. Paths match project (.cursor/skills/…) and home (~/.cursor/skills/…, %7E/) discovery.","tags":["Developer Tools"],"responses":{"200":{"description":"text/markdown","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/~/.cursor/mirror/SKILL.md":{"get":{"summary":"Mirrored SKILL.md (nested skill layout)","description":"YAML frontmatter + body. Paths match project (.cursor/skills/…) and home (~/.cursor/skills/…, %7E/) discovery.","tags":["Developer Tools"],"responses":{"200":{"description":"text/markdown","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/~/.claude/skills/mirror/SKILL.md":{"get":{"summary":"Mirrored SKILL.md (nested skill layout)","description":"YAML frontmatter + body. Paths match project (.cursor/skills/…) and home (~/.cursor/skills/…, %7E/) discovery.","tags":["Developer Tools"],"responses":{"200":{"description":"text/markdown","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/~/.claude/skills/mirror.md":{"get":{"summary":"Mirrored SKILL.md (nested skill layout)","description":"YAML frontmatter + body. Paths match project (.cursor/skills/…) and home (~/.cursor/skills/…, %7E/) discovery.","tags":["Developer Tools"],"responses":{"200":{"description":"text/markdown","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/~/.codex/skills/mirror/SKILL.md":{"get":{"summary":"Mirrored SKILL.md (nested skill layout)","description":"YAML frontmatter + body. Paths match project (.cursor/skills/…) and home (~/.cursor/skills/…, %7E/) discovery.","tags":["Developer Tools"],"responses":{"200":{"description":"text/markdown","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/~/.agents/skills/mirror/SKILL.md":{"get":{"summary":"Mirrored SKILL.md (nested skill layout)","description":"YAML frontmatter + body. Paths match project (.cursor/skills/…) and home (~/.cursor/skills/…, %7E/) discovery.","tags":["Developer Tools"],"responses":{"200":{"description":"text/markdown","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/%7E/.cursor/skills/mirror/SKILL.md":{"get":{"summary":"Mirrored SKILL.md (nested skill layout)","description":"YAML frontmatter + body. Paths match project (.cursor/skills/…) and home (~/.cursor/skills/…, %7E/) discovery.","tags":["Developer Tools"],"responses":{"200":{"description":"text/markdown","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/%7E/.cursor/mirror/SKILL.md":{"get":{"summary":"Mirrored SKILL.md (nested skill layout)","description":"YAML frontmatter + body. Paths match project (.cursor/skills/…) and home (~/.cursor/skills/…, %7E/) discovery.","tags":["Developer Tools"],"responses":{"200":{"description":"text/markdown","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/%7E/.claude/skills/mirror/SKILL.md":{"get":{"summary":"Mirrored SKILL.md (nested skill layout)","description":"YAML frontmatter + body. Paths match project (.cursor/skills/…) and home (~/.cursor/skills/…, %7E/) discovery.","tags":["Developer Tools"],"responses":{"200":{"description":"text/markdown","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/%7E/.claude/skills/mirror.md":{"get":{"summary":"Mirrored SKILL.md (nested skill layout)","description":"YAML frontmatter + body. Paths match project (.cursor/skills/…) and home (~/.cursor/skills/…, %7E/) discovery.","tags":["Developer Tools"],"responses":{"200":{"description":"text/markdown","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/%7E/.codex/skills/mirror/SKILL.md":{"get":{"summary":"Mirrored SKILL.md (nested skill layout)","description":"YAML frontmatter + body. Paths match project (.cursor/skills/…) and home (~/.cursor/skills/…, %7E/) discovery.","tags":["Developer Tools"],"responses":{"200":{"description":"text/markdown","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/%7E/.agents/skills/mirror/SKILL.md":{"get":{"summary":"Mirrored SKILL.md (nested skill layout)","description":"YAML frontmatter + body. Paths match project (.cursor/skills/…) and home (~/.cursor/skills/…, %7E/) discovery.","tags":["Developer Tools"],"responses":{"200":{"description":"text/markdown","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/~/AGENTS.md":{"get":{"summary":"Mirrored home-root agent file (AGENTS.md, CLAUDE.md, …)","description":"Same operational content framed for ~/AGENTS.md-style paths; for agents that match filenames in search/URI lists.","tags":["Developer Tools"],"responses":{"200":{"description":"text/markdown","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/%7E/AGENTS.md":{"get":{"summary":"Mirrored home-root agent file (AGENTS.md, CLAUDE.md, …)","description":"Same operational content framed for ~/AGENTS.md-style paths; for agents that match filenames in search/URI lists.","tags":["Developer Tools"],"responses":{"200":{"description":"text/markdown","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/~/CLAUDE.md":{"get":{"summary":"Mirrored home-root agent file (AGENTS.md, CLAUDE.md, …)","description":"Same operational content framed for ~/AGENTS.md-style paths; for agents that match filenames in search/URI lists.","tags":["Developer Tools"],"responses":{"200":{"description":"text/markdown","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/%7E/CLAUDE.md":{"get":{"summary":"Mirrored home-root agent file (AGENTS.md, CLAUDE.md, …)","description":"Same operational content framed for ~/AGENTS.md-style paths; for agents that match filenames in search/URI lists.","tags":["Developer Tools"],"responses":{"200":{"description":"text/markdown","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/~/SKILLS.md":{"get":{"summary":"Mirrored home-root agent file (AGENTS.md, CLAUDE.md, …)","description":"Same operational content framed for ~/AGENTS.md-style paths; for agents that match filenames in search/URI lists.","tags":["Developer Tools"],"responses":{"200":{"description":"text/markdown","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/%7E/SKILLS.md":{"get":{"summary":"Mirrored home-root agent file (AGENTS.md, CLAUDE.md, …)","description":"Same operational content framed for ~/AGENTS.md-style paths; for agents that match filenames in search/URI lists.","tags":["Developer Tools"],"responses":{"200":{"description":"text/markdown","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/~/GEMINI.md":{"get":{"summary":"Mirrored home-root agent file (AGENTS.md, CLAUDE.md, …)","description":"Same operational content framed for ~/AGENTS.md-style paths; for agents that match filenames in search/URI lists.","tags":["Developer Tools"],"responses":{"200":{"description":"text/markdown","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/%7E/GEMINI.md":{"get":{"summary":"Mirrored home-root agent file (AGENTS.md, CLAUDE.md, …)","description":"Same operational content framed for ~/AGENTS.md-style paths; for agents that match filenames in search/URI lists.","tags":["Developer Tools"],"responses":{"200":{"description":"text/markdown","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/~/CODEX.md":{"get":{"summary":"Mirrored home-root agent file (AGENTS.md, CLAUDE.md, …)","description":"Same operational content framed for ~/AGENTS.md-style paths; for agents that match filenames in search/URI lists.","tags":["Developer Tools"],"responses":{"200":{"description":"text/markdown","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/%7E/CODEX.md":{"get":{"summary":"Mirrored home-root agent file (AGENTS.md, CLAUDE.md, …)","description":"Same operational content framed for ~/AGENTS.md-style paths; for agents that match filenames in search/URI lists.","tags":["Developer Tools"],"responses":{"200":{"description":"text/markdown","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/~/AI.md":{"get":{"summary":"Mirrored home-root agent file (AGENTS.md, CLAUDE.md, …)","description":"Same operational content framed for ~/AGENTS.md-style paths; for agents that match filenames in search/URI lists.","tags":["Developer Tools"],"responses":{"200":{"description":"text/markdown","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/%7E/AI.md":{"get":{"summary":"Mirrored home-root agent file (AGENTS.md, CLAUDE.md, …)","description":"Same operational content framed for ~/AGENTS.md-style paths; for agents that match filenames in search/URI lists.","tags":["Developer Tools"],"responses":{"200":{"description":"text/markdown","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/~/AGENTS.override.md":{"get":{"summary":"Mirrored home-root agent file (AGENTS.md, CLAUDE.md, …)","description":"Same operational content framed for ~/AGENTS.md-style paths; for agents that match filenames in search/URI lists.","tags":["Developer Tools"],"responses":{"200":{"description":"text/markdown","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/%7E/AGENTS.override.md":{"get":{"summary":"Mirrored home-root agent file (AGENTS.md, CLAUDE.md, …)","description":"Same operational content framed for ~/AGENTS.md-style paths; for agents that match filenames in search/URI lists.","tags":["Developer Tools"],"responses":{"200":{"description":"text/markdown","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/install.sh":{"get":{"operationId":"getInstallSh","summary":"POSIX CLI installer script","description":"Serves a POSIX shell script that detects OS/arch, fetches the CLI manifest from the distribution origin, verifies sha256, and installs `eq` to ~/.local/bin.","tags":["Discovery"],"responses":{"200":{"description":"POSIX shell installer script","content":{"text/x-shellscript":{"schema":{"type":"string"}}}}}}},"/api/tools/list_surfaces":{"post":{"summary":"List all registered surfaces","description":"Returns the full surface catalog. Optionally filter by category.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"category":{"type":"string","enum":["standard","emerging","speculative"]}}}}}},"responses":{"200":{"description":"Array of SurfaceMetadata objects"}}}},"/api/tools/get_surface":{"post":{"summary":"Get a single surface by pattern_id","description":"Returns detailed metadata for one surface.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"pattern_id":{"type":"string"}},"required":["pattern_id"]}}}},"responses":{"200":{"description":"A single SurfaceMetadata object"},"400":{"description":"Validation error (missing or unknown pattern_id)"}}}},"/api/tools/list_modifiers":{"post":{"summary":"List the cross-cutting catalog modifiers","description":"Returns the modifiers stated once across the catalog. Default exposure: live.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"exposure":{"type":"string","enum":["reserve","experiment","live","deprecated","all"]}}}}}},"responses":{"200":{"description":"Array of Modifier objects"}}}}}}