Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,070Paid calls: 1,524Letters: 13Defects: 1,322counted 3 min ago
teppi

Server definition

Hash
sha256:ed030813b63339e187af229645ce697f143712f021465d516d4a2ac354e0470e
What it is
What a remote MCP server returned when asked what it offers: 20 tools

The blob, as servednamed by its sha256

{ "instructions": "Read-only access to Rayana AI's market-research engine: model-portfolio rankings, per-ticker scores, aggregator signals, cluster rotation, attention trends, daily briefs, and the broadcast model portfolios. All content is impersonal — computed once and served identically to every caller, same as the Rayana AI REST API this mirrors. The research tools require a Pro-tier or higher API key passed as the X-API-Key header on the MCP connection. Three tools work without one: rayana_ai_plans, rayana_ai_start_checkout and rayana_ai_complete_setup, which are how an agent whose principal has no subscription yet can read the pricing, hand them a checkout link, and configure itself afterwards.", "tools": [ { "description": "The portfolio-analyst brief with its per-ticker views — the broadcast\n opinion layer, identical for every caller.", "inputSchema": { "properties": { "date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Date" } }, "title": "rayana_ai_analyst_briefArguments", "type": "object" }, "name": "rayana_ai_analyst_brief", "outputSchema": { "properties": { "brief": { "additionalProperties": true, "title": "Brief", "type": "object" }, "views": { "items": { "additionalProperties": true, "type": "object" }, "title": "Views", "type": "array" } }, "required": [ "brief", "views" ], "title": "AnalystBriefResponse", "type": "object" } }, { "description": "The public articles feed, newest first, when ``slug`` is omitted; one\n published article's full body when ``slug`` is given.", "inputSchema": { "properties": { "limit": { "default": 30, "title": "Limit", "type": "integer" }, "offset": { "default": 0, "title": "Offset", "type": "integer" }, "slug": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Slug" } }, "title": "rayana_ai_articlesArguments", "type": "object" }, "name": "rayana_ai_articles", "outputSchema": { "$defs": { "ArticleDetail": { "properties": { "body_md": { "title": "Body Md", "type": "string" }, "created_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Created At" }, "dek": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Dek" }, "headline": { "title": "Headline", "type": "string" }, "published_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Published At" }, "slug": { "title": "Slug", "type": "string" }, "ticker": { "title": "Ticker", "type": "string" }, "trigger_type": { "title": "Trigger Type", "type": "string" } }, "required": [ "slug", "ticker", "headline", "body_md", "trigger_type" ], "title": "ArticleDetail", "type": "object" }, "ArticleSummary": { "properties": { "dek": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Dek" }, "headline": { "title": "Headline", "type": "string" }, "published_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Published At" }, "slug": { "title": "Slug", "type": "string" }, "ticker": { "title": "Ticker", "type": "string" }, "trigger_type": { "title": "Trigger Type", "type": "string" } }, "required": [ "slug", "ticker", "headline", "trigger_type" ], "title": "ArticleSummary", "type": "object" }, "ArticlesResponse": { "properties": { "articles": { "items": { "$ref": "#/$defs/ArticleSummary" }, "title": "Articles", "type": "array" }, "count": { "title": "Count", "type": "integer" }, "limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Limit" }, "offset": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Offset" }, "total": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Total" } }, "required": [ "count", "articles" ], "title": "ArticlesResponse", "type": "object" } }, "properties": { "result": { "anyOf": [ { "$ref": "#/$defs/ArticlesResponse" }, { "$ref": "#/$defs/ArticleDetail" } ], "title": "Result" } }, "required": [ "result" ], "title": "rayana_ai_articlesOutput", "type": "object" } }, { "description": "Exchange a pairing code from your principal's account page for an API\n key. Ask them to confirm before you call this: it issues a new key and\n immediately invalidates the account's previous one, so any other client\n already using a key will stop working until it is given the new value.\n\n The key comes back once and is not retrievable afterwards — only a hash of\n it is stored. Put it in the ``X-API-Key`` header on this connection and on\n any REST call. Codes are single-use, expire in 15 minutes, and are burnt\n after a few wrong guesses; if one is refused, ask for a fresh one rather\n than retrying.", "inputSchema": { "properties": { "code": { "title": "Code", "type": "string" } }, "required": [ "code" ], "title": "rayana_ai_complete_setupArguments", "type": "object" }, "name": "rayana_ai_complete_setup", "outputSchema": { "description": "The result of redeeming a pairing code: a usable API key, once.", "properties": { "api_key": { "title": "Api Key", "type": "string" }, "header_name": { "title": "Header Name", "type": "string" }, "mcp_url": { "title": "Mcp Url", "type": "string" }, "note": { "title": "Note", "type": "string" }, "rest_base_url": { "title": "Rest Base Url", "type": "string" }, "tier": { "title": "Tier", "type": "string" } }, "required": [ "api_key", "tier", "rest_base_url", "mcp_url", "header_name", "note" ], "title": "AgentSetup", "type": "object" } }, { "description": "Per-source consensus snapshots (insider trades, congressional trades,\n earnings beats, dated catalysts, on-chain flows, 13F filings, AI\n news-beneficiary reads). Omit ``source`` for every source at once, or\n pass one of the slugs returned in a rankings/signals row's source list.\n\n ``limit`` caps rows per source. The sources are very unevenly sized —\n institutional holdings runs to ~1700 rows where on-chain flows may have\n two — so a source that comes back with exactly ``limit`` rows probably has\n more, and narrowing with ``source`` and raising ``limit`` reads that one\n layer deeply for far less context than raising ``limit`` across all\n seven.", "inputSchema": { "properties": { "limit": { "default": 25, "title": "Limit", "type": "integer" }, "source": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Source" } }, "title": "rayana_ai_consensusArguments", "type": "object" }, "name": "rayana_ai_consensus", "outputSchema": { "$defs": { "CaptradesConsensusRow": { "properties": { "buy_usd": { "title": "Buy Usd", "type": "number" }, "buyers": { "title": "Buyers", "type": "integer" }, "company": { "title": "Company", "type": "string" }, "net_politicians": { "title": "Net Politicians", "type": "integer" }, "net_usd": { "title": "Net Usd", "type": "number" }, "run_at": { "title": "Run At", "type": "string" }, "sell_usd": { "title": "Sell Usd", "type": "number" }, "sellers": { "title": "Sellers", "type": "integer" }, "ticker": { "title": "Ticker", "type": "string" }, "trades": { "title": "Trades", "type": "integer" } }, "required": [ "ticker", "company", "buyers", "sellers", "net_politicians", "buy_usd", "sell_usd", "net_usd", "trades", "run_at" ], "title": "CaptradesConsensusRow", "type": "object" }, "CatalystConsensusRow": { "properties": { "category": { "title": "Category", "type": "string" }, "confidence": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Confidence" }, "entity": { "title": "Entity", "type": "string" }, "event": { "title": "Event", "type": "string" }, "event_date": { "title": "Event Date", "type": "string" }, "exchange": { "title": "Exchange", "type": "string" }, "feed": { "title": "Feed", "type": "string" }, "note": { "title": "Note", "type": "string" }, "run_at": { "title": "Run At", "type": "string" }, "ticker": { "title": "Ticker", "type": "string" } }, "required": [ "feed", "category", "event", "event_date", "ticker", "entity", "exchange", "note", "run_at" ], "title": "CatalystConsensusRow", "type": "object" }, "DataromaConsensusRow": { "properties": { "buy_usd": { "title": "Buy Usd", "type": "number" }, "buyers": { "title": "Buyers", "type": "integer" }, "company": { "title": "Company", "type": "string" }, "holders": { "title": "Holders", "type": "integer" }, "net_managers": { "title": "Net Managers", "type": "integer" }, "net_usd": { "title": "Net Usd", "type": "number" }, "run_at": { "title": "Run At", "type": "string" }, "sell_usd": { "title": "Sell Usd", "type": "number" }, "sellers": { "title": "Sellers", "type": "integer" }, "ticker": { "title": "Ticker", "type": "string" } }, "required": [ "ticker", "company", "buyers", "sellers", "holders", "buy_usd", "sell_usd", "net_usd", "net_managers", "run_at" ], "title": "DataromaConsensusRow", "type": "object" }, "EarningsConsensusRow": { "properties": { "company": { "title": "Company", "type": "string" }, "eps_actual": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Eps Actual" }, "eps_estimate": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Eps Estimate" }, "fiscal_period": { "title": "Fiscal Period", "type": "string" }, "market_cap": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Market Cap" }, "num_estimates": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Num Estimates" }, "report_date": { "title": "Report Date", "type": "string" }, "report_time": { "title": "Report Time", "type": "string" }, "run_at": { "title": "Run At", "type": "string" }, "surprise_pct": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Surprise Pct" }, "ticker": { "title": "Ticker", "type": "string" } }, "required": [ "ticker", "company", "report_date", "report_time", "fiscal_period", "run_at" ], "title": "EarningsConsensusRow", "type": "object" }, "Form4ConsensusRow": { "properties": { "best_role": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Best Role" }, "buys": { "title": "Buys", "type": "integer" }, "company": { "title": "Company", "type": "string" }, "insiders": { "title": "Insiders", "type": "integer" }, "run_at": { "title": "Run At", "type": "string" }, "ticker": { "title": "Ticker", "type": "string" }, "top_title": { "title": "Top Title", "type": "string" }, "total_value": { "title": "Total Value", "type": "number" } }, "required": [ "ticker", "company", "insiders", "top_title", "total_value", "buys", "run_at" ], "title": "Form4ConsensusRow", "type": "object" }, "NewsBeneficiaryConsensusRow": { "properties": { "company": { "title": "Company", "type": "string" }, "confidence": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Confidence" }, "direction": { "title": "Direction", "type": "string" }, "headline": { "title": "Headline", "type": "string" }, "horizon": { "title": "Horizon", "type": "string" }, "mechanism": { "title": "Mechanism", "type": "string" }, "obviousness": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Obviousness" }, "order_hops": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Order Hops" }, "run_at": { "title": "Run At", "type": "string" }, "score": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Score" }, "snapshot_date": { "title": "Snapshot Date", "type": "string" }, "source": { "title": "Source", "type": "string" }, "ticker": { "title": "Ticker", "type": "string" }, "url": { "title": "Url", "type": "string" }, "validated": { "title": "Validated", "type": "integer" } }, "required": [ "ticker", "company", "direction", "mechanism", "horizon", "validated", "headline", "source", "url", "run_at", "snapshot_date" ], "title": "NewsBeneficiaryConsensusRow", "type": "object" }, "OnchainConsensusRow": { "properties": { "best_tier": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Best Tier" }, "chains": { "title": "Chains", "type": "string" }, "run_at": { "title": "Run At", "type": "string" }, "symbol": { "title": "Symbol", "type": "string" }, "top_label": { "title": "Top Label", "type": "string" }, "total_value": { "title": "Total Value", "type": "number" }, "transfers": { "title": "Transfers", "type": "integer" }, "wallets": { "title": "Wallets", "type": "integer" } }, "required": [ "symbol", "wallets", "top_label", "total_value", "transfers", "chains", "run_at" ], "title": "OnchainConsensusRow", "type": "object" } }, "properties": { "ai-news-analysis": { "anyOf": [ { "items": { "$ref": "#/$defs/NewsBeneficiaryConsensusRow" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Ai-News-Analysis" }, "congressional-trading": { "anyOf": [ { "items": { "$ref": "#/$defs/CaptradesConsensusRow" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Congressional-Trading" }, "earnings-surprise": { "anyOf": [ { "items": { "$ref": "#/$defs/EarningsConsensusRow" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Earnings-Surprise" }, "event-calendar": { "anyOf": [ { "items": { "$ref": "#/$defs/CatalystConsensusRow" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Event-Calendar" }, "insider-activity": { "anyOf": [ { "items": { "$ref": "#/$defs/Form4ConsensusRow" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Insider-Activity" }, "institutional-holdings": { "anyOf": [ { "items": { "$ref": "#/$defs/DataromaConsensusRow" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Institutional-Holdings" }, "onchain-flows": { "anyOf": [ { "items": { "$ref": "#/$defs/OnchainConsensusRow" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Onchain-Flows" } }, "title": "ConsensusResponse", "type": "object" } }, { "description": "Which lanes (daily/turtle/mr) currently have a batch available.", "inputSchema": { "properties": {}, "title": "rayana_ai_lanesArguments", "type": "object" }, "name": "rayana_ai_lanes", "outputSchema": { "additionalProperties": { "type": "boolean" }, "title": "rayana_ai_lanesDictOutput", "type": "object" } }, { "description": "The daily market brief: a generic engine-wide read with no\n recommendations, descriptive only. Latest by default; pass\n ``date`` (YYYY-MM-DD) for a specific day.", "inputSchema": { "properties": { "date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Date" } }, "title": "rayana_ai_market_briefArguments", "type": "object" }, "name": "rayana_ai_market_brief", "outputSchema": { "properties": { "brief": { "additionalProperties": true, "title": "Brief", "type": "object" }, "notes": { "items": { "additionalProperties": true, "type": "object" }, "title": "Notes", "type": "array" } }, "required": [ "brief", "notes" ], "title": "MarketBriefResponse", "type": "object" } }, { "description": "What Rayana AI costs and what each tier unlocks. No API key needed —\n call this first if a research tool refused you for want of one.\n\n API and MCP access start at the Pro tier. Prices are USD; annual billing\n is ten months' price for twelve. Use ``rayana_ai_start_checkout`` to turn\n a choice here into a link your principal can open.", "inputSchema": { "properties": {}, "title": "rayana_ai_plansArguments", "type": "object" }, "name": "rayana_ai_plans", "outputSchema": { "$defs": { "Plan": { "properties": { "api_access": { "title": "Api Access", "type": "boolean" }, "includes": { "items": { "type": "string" }, "title": "Includes", "type": "array" }, "limits": { "$ref": "#/$defs/PlanLimits" }, "name": { "title": "Name", "type": "string" }, "price_annual_usd": { "title": "Price Annual Usd", "type": "integer" }, "price_monthly_usd": { "title": "Price Monthly Usd", "type": "integer" }, "summary": { "title": "Summary", "type": "string" }, "tier": { "enum": [ "free", "standard", "pro", "elite" ], "title": "Tier", "type": "string" } }, "required": [ "tier", "name", "summary", "price_monthly_usd", "price_annual_usd", "includes", "limits", "api_access" ], "title": "Plan", "type": "object" }, "PlanLimits": { "properties": { "per_day": { "title": "Per Day", "type": "integer" }, "per_minute": { "title": "Per Minute", "type": "integer" } }, "required": [ "per_minute", "per_day" ], "title": "PlanLimits", "type": "object" } }, "properties": { "access_note": { "title": "Access Note", "type": "string" }, "annual_note": { "title": "Annual Note", "type": "string" }, "checkout_url": { "title": "Checkout Url", "type": "string" }, "currency": { "title": "Currency", "type": "string" }, "plans": { "items": { "$ref": "#/$defs/Plan" }, "title": "Plans", "type": "array" }, "pricing_url": { "title": "Pricing Url", "type": "string" } }, "required": [ "plans", "currency", "annual_note", "pricing_url", "checkout_url", "access_note" ], "title": "PlansResponse", "type": "object" } }, { "description": "One model portfolio's full detail: holdings, overlay legs, event feed,\n NAV series, and windowed returns. Returns an error if the slug's tier\n (e.g. an Elite-only book) is above this key's own tier — a Pro key does\n not get Elite content just because it has MCP access.", "inputSchema": { "properties": { "slug": { "title": "Slug", "type": "string" } }, "required": [ "slug" ], "title": "rayana_ai_portfolioArguments", "type": "object" }, "name": "rayana_ai_portfolio", "outputSchema": { "$defs": { "BookEvent": { "description": "One row of the public event feed — the projection of the diff log, not\nthe log. ``reason`` has already been rewritten into the fixed public\nvocabulary by ``_public_reason``; the stored text never reaches here, and\n``source_metric`` (the number behind it) is undeclared on purpose.", "properties": { "action": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Action" }, "delta_weight_pct": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Delta Weight Pct" }, "event_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Event Date" }, "instrument_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Instrument Type" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Name" }, "reason": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Reason" }, "side": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Side" }, "ticker": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Ticker" } }, "title": "BookEvent", "type": "object" }, "Contract": { "description": "The option contract an overlay leg is written on: its identity\n(expiry/strike/right, per ``_contract_id`` in strategy/model_portfolios.py)\nplus what a reader needs to price it.\n\nDeliberately absent: ``delta`` and ``implied_vol`` — the leg already\npublishes ``assignment_prob``, which IS |delta| — and ``iv_rank`` / ``vrp``\n/ ``timing_mult``, the overlay's timing provenance, which is selection\nmechanism (strategy/premium_overlay.py::contract_spec).", "properties": { "contract": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Contract" }, "dte": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Dte" }, "expiry": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Expiry" }, "multiplier": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Multiplier" }, "premium": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Premium" }, "right": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Right" }, "strike": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Strike" }, "underlying": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Underlying" } }, "title": "Contract", "type": "object" }, "DistributionSummary": { "description": "The book's distribution record (docs/distribution_layer.md §5). ``None``\non ``PortfolioMetrics.distribution`` means not a distributing book at all;\npresent with ``since`` and ``distributions_to_date_pct`` None means it IS\ndistributing but no session has crossed the seam yet — a real state, and it\nrenders differently. Nothing here is annualised. Any surface rendering a\ndistribution or yield figure must render ``sustain_gap_pct`` and\n``return_of_capital_pct`` beside it (spec §11, D3).", "properties": { "covered_12m": { "default": false, "title": "Covered 12M", "type": "boolean" }, "distributions_to_date_pct": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Distributions To Date Pct" }, "policy": { "title": "Policy", "type": "string" }, "return_of_capital_pct": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Return Of Capital Pct" }, "since": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Since" }, "sustain_gap_pct": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Sustain Gap Pct" }, "trailing_12m_yield_pct": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Trailing 12M Yield Pct" } }, "required": [ "policy" ], "title": "DistributionSummary", "type": "object" }, "Holding": { "description": "One equity (or cash) position in today's snapshot.\n\n``weight_pct`` is the only position quantity that exists — no shares, no\ndollars, by construction of the tables themselves (the FIREWALL note on the\nmodel_portfolio_* DDL in data/db.py). ``side`` is 'long' (NULL = long) or\n'short', and ``weight_pct`` stays POSITIVE either way.\n\nDeliberately absent, all of which the ``list[dict]`` this replaced shipped:\n``rationale`` — engine text that names the selection mechanism and quotes\nits live cut-points (\"invest composite 72 (BUY); tech 68 / fund 55\",\n\"Donchian breakdown below the 200-SMA; 2N buy-stop $41.80\"), i.e. exactly\nthe disclosure ``_public_events`` rewrites event reasons to prevent, one\ntable over; ``metrics`` — the per-name selection metrics JSON, whose\npublishable aggregate is ``PortfolioMetrics`` below; ``stop_price`` and\n``target_price`` — the exit rule's live cut-points; and the row's internal\nidentity (``id`` / ``portfolio_id`` / ``run_id`` / ``recorded_at``).\n\n``assigned`` / ``effective_basis`` are the one allowlisted lift OUT of that\ndropped ``metrics`` block (data/reads.py::_assigned_view), and they are not an\nexception to the rule above: an assignment is an OUTCOME the event feed\nalready publishes in full, not a selection decision. Without them the single\nrow in the book that the picker did NOT choose arrives indistinguishable from\none it did — a new ticker with ``select_metric: null`` and no basis — which is\nthe whole of docs/subscriber_followability.md §5.", "properties": { "assigned": { "default": false, "title": "Assigned", "type": "boolean" }, "cluster": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Cluster" }, "effective_basis": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Effective Basis" }, "entry_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Entry Date" }, "instrument_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Instrument Type" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Name" }, "price": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Price" }, "rank": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Rank" }, "sector": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Sector" }, "sel_metric_kind": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Sel Metric Kind" }, "select_metric": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Select Metric" }, "side": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Side" }, "ticker": { "title": "Ticker", "type": "string" }, "weight_pct": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Weight Pct" } }, "required": [ "ticker" ], "title": "Holding", "type": "object" }, "NavPoint": { "description": "One session on the track record. ``nav`` is TOTAL return indexed to 100\nat inception and is never restated; ``capital_nav`` is the parallel curve a\nholder sees if they take the distributions out (docs/distribution_layer.md).\n``distribution_pct`` NULL means the book does not distribute at all — 0.0\nmeans it does and nothing settled this session.", "properties": { "benchmark_ret_pct": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Benchmark Ret Pct" }, "capital_nav": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Capital Nav" }, "cum_distribution_pct": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Cum Distribution Pct" }, "cum_return_pct": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Cum Return Pct" }, "daily_return_pct": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Daily Return Pct" }, "distribution_pct": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Distribution Pct" }, "drawdown_pct": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Drawdown Pct" }, "n_holdings": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "N Holdings" }, "nav": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Nav" }, "nav_date": { "title": "Nav Date", "type": "string" }, "turnover_pct": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Turnover Pct" } }, "required": [ "nav_date" ], "title": "NavPoint", "type": "object" }, "NavWindow": { "description": "MTD / 3M / 6M / 12M / ITD total return. ``covered`` False (with\n``return_pct`` None) means the record does not yet reach back past that\nwindow's cutoff — render it as unavailable, never as the ITD number.", "properties": { "capital_return_pct": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Capital Return Pct" }, "covered": { "default": false, "title": "Covered", "type": "boolean" }, "distribution_pct": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Distribution Pct" }, "from_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "From Date" }, "label": { "title": "Label", "type": "string" }, "return_pct": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Return Pct" } }, "required": [ "label" ], "title": "NavWindow", "type": "object" }, "OverlayLeg": { "description": "One written CSP / covered-call leg currently open against the core.\n\nA leg carries the SAME ticker as the underlying it is written against and\nis sized by NOTIONAL, not book weight — the two must never be summed, which\nis why the read layer splits them out of ``holdings`` by ``instrument_type``.\n\n``premium_yield_pct`` and ``assignment_prob`` are 0-1 FRACTIONS, unlike\nevery other ``_pct`` field in this API (strategy/premium_overlay.py's\n``annual_yield`` / ``abs(delta)``) — clients must format them accordingly.", "properties": { "assignment_prob": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Assignment Prob" }, "instrument": { "$ref": "#/$defs/Contract", "default": { "contract": null, "dte": null, "expiry": null, "multiplier": null, "premium": null, "right": null, "strike": null, "underlying": null } }, "instrument_type": { "title": "Instrument Type", "type": "string" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Name" }, "notional_weight_pct": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Notional Weight Pct" }, "position_group": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Position Group" }, "premium_yield_pct": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Premium Yield Pct" }, "price": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Price" }, "ticker": { "title": "Ticker", "type": "string" } }, "required": [ "ticker", "instrument_type" ], "title": "OverlayLeg", "type": "object" }, "PortfolioMetrics": { "description": "Book-level aggregates over today's snapshot (data/reads.py's\n``_book_metrics``). The income figures are weight-weighted over the book's\nTOTAL weight, so an unmeasured name drags the average down rather than being\nassumed to yield like its peers.", "properties": { "distribution": { "anyOf": [ { "$ref": "#/$defs/DistributionSummary" }, { "type": "null" } ], "default": null }, "income_coverage": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Income Coverage" }, "n_holdings": { "default": 0, "title": "N Holdings", "type": "integer" }, "n_overlay": { "default": 0, "title": "N Overlay", "type": "integer" }, "overlay_annual_yield": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Overlay Annual Yield" }, "sel_metric_kind": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Sel Metric Kind" }, "sleeve_state": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Sleeve State" }, "total_income_yield": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Total Income Yield" }, "total_weight_pct": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Total Weight Pct" }, "weighted_income_rate": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Weighted Income Rate" }, "weighted_reinvest_required": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Weighted Reinvest Required" }, "weighted_select_metric": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Weighted Select Metric" }, "weighted_sustainable_yield": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Weighted Sustainable Yield" } }, "title": "PortfolioMetrics", "type": "object" }, "PortfolioRegistry": { "description": "The book's registry row as its detail page sees it: the same\nmerchandising identity as ``ShelfCard``, plus the parsed construction and\nminus the per-caller flags (the detail endpoint's own gate already answered\nthose).", "properties": { "asset_class": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Asset Class" }, "benchmark": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Benchmark" }, "construction": { "$ref": "#/$defs/PublicConstruction", "default": { "distribution_policy": null, "exit_rule": null, "holdings_max": null, "holdings_min": null, "turnover_tier": null } }, "display_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Display Name" }, "inception_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Inception Date" }, "mechanism_blurb": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Mechanism Blurb" }, "objective": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Objective" }, "risk_tier": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Risk Tier" }, "slug": { "title": "Slug", "type": "string" }, "status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Status" }, "tier": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Tier" } }, "required": [ "slug" ], "title": "PortfolioRegistry", "type": "object" }, "PublicConstruction": { "description": "The book's construction rules, trimmed to what is safe to publish — the\nsame set ``_PUBLIC_CONSTRUCTION_KEYS`` names in api/routers/portfolios.py,\nwhich stays the enforcing copy (it runs before this model is built).", "properties": { "distribution_policy": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Distribution Policy" }, "exit_rule": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Exit Rule" }, "holdings_max": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Holdings Max" }, "holdings_min": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Holdings Min" }, "turnover_tier": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Turnover Tier" } }, "title": "PublicConstruction", "type": "object" } }, "properties": { "asof": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Asof" }, "book": { "$ref": "#/$defs/PortfolioRegistry" }, "delayed_to": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Delayed To" }, "events": { "default": [], "items": { "$ref": "#/$defs/BookEvent" }, "title": "Events", "type": "array" }, "holdings": { "default": [], "items": { "$ref": "#/$defs/Holding" }, "title": "Holdings", "type": "array" }, "metrics": { "$ref": "#/$defs/PortfolioMetrics", "default": { "distribution": null, "income_coverage": null, "n_holdings": 0, "n_overlay": 0, "overlay_annual_yield": null, "sel_metric_kind": null, "sleeve_state": null, "total_income_yield": null, "total_weight_pct": null, "weighted_income_rate": null, "weighted_reinvest_required": null, "weighted_select_metric": null, "weighted_sustainable_yield": null } }, "nav": { "default": [], "items": { "$ref": "#/$defs/NavPoint" }, "title": "Nav", "type": "array" }, "overlay": { "default": [], "items": { "$ref": "#/$defs/OverlayLeg" }, "title": "Overlay", "type": "array" }, "slug": { "title": "Slug", "type": "string" }, "windows": { "default": [], "items": { "$ref": "#/$defs/NavWindow" }, "title": "Windows", "type": "array" } }, "required": [ "slug", "book" ], "title": "PortfolioBook", "type": "object" } }, { "description": "The full shelf of Rayana AI's broadcast model portfolios as\n merchandising cards, with each card's tier/openable/delayed flags.", "inputSchema": { "properties": { "include_retired": { "default": false, "title": "Include Retired", "type": "boolean" } }, "title": "rayana_ai_portfoliosArguments", "type": "object" }, "name": "rayana_ai_portfolios", "outputSchema": { "$defs": { "ShelfCard": { "description": "One merchandising card on the shelf.\n\n``openable``/``delayed`` are computed per caller by the router, not stored.\n``last_update``/``n_holdings`` arrive already collapsed to the pair this\ncaller's access level entitles them to (``_public_card``) — the internal\n``last_published_update``/``n_published_holdings`` pair is undeclared here\nand so cannot ship even if that collapse were ever skipped.\n\nDeliberately absent: ``source_lane`` and ``scoring_mode`` (internal lane\nprovenance — they name the engine that picks the book), the numeric ``id``,\nand the gate configuration (``publish_delay_min``, ``draft_gate_enabled``,\n``consumer_delay_min``), which is policy input rather than reader-facing\ncontent — a reader sees its *effect*, as ``delayed``.", "properties": { "asset_class": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Asset Class" }, "benchmark": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Benchmark" }, "cagr_pct": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Cagr Pct" }, "cum_return_pct": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Cum Return Pct" }, "delayed": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Delayed" }, "display_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Display Name" }, "drawdown_pct": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Drawdown Pct" }, "inception_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Inception Date" }, "last_update": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Last Update" }, "mechanism_blurb": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Mechanism Blurb" }, "n_holdings": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "N Holdings" }, "nav": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Nav" }, "objective": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Objective" }, "openable": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Openable" }, "risk_tier": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Risk Tier" }, "slug": { "title": "Slug", "type": "string" }, "status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Status" }, "tier": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Tier" } }, "required": [ "slug" ], "title": "ShelfCard", "type": "object" } }, "properties": { "count": { "title": "Count", "type": "integer" }, "portfolios": { "items": { "$ref": "#/$defs/ShelfCard" }, "title": "Portfolios", "type": "array" }, "tier": { "title": "Tier", "type": "string" } }, "required": [ "count", "tier", "portfolios" ], "title": "PortfolioShelf", "type": "object" } }, { "description": "Latest ranked candidate batch for a lane: daily (the main research\n lane), turtle (breakout system), or mr (mean-reversion). Rows come back in\n rank order, best first, so the default page is the top of the batch.\n\n ``total`` in the response is the batch size; when it exceeds ``count``,\n page with ``offset``. ``include_assessment`` adds each row's technical\n blob (pattern and cluster validation, volume profile) — it triples the\n response, so prefer ``rayana_ai_ticker`` for one name's detail and leave\n this off when scanning.", "inputSchema": { "properties": { "include_assessment": { "default": false, "title": "Include Assessment", "type": "boolean" }, "lane": { "default": "daily", "enum": [ "daily", "turtle", "mr" ], "title": "Lane", "type": "string" }, "limit": { "default": 25, "title": "Limit", "type": "integer" }, "offset": { "default": 0, "title": "Offset", "type": "integer" } }, "title": "rayana_ai_rankingsArguments", "type": "object" }, "name": "rayana_ai_rankings", "outputSchema": { "$defs": { "RankedCandidate": { "properties": { "adx": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Adx" }, "agg_score": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Agg Score" }, "alignment": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Alignment" }, "assessment": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Assessment" }, "atr": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Atr" }, "bb_squeeze_pctile": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Bb Squeeze Pctile" }, "breakout_confidence": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Breakout Confidence" }, "breakout_sys1": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Breakout Sys1" }, "breakout_sys2": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Breakout Sys2" }, "catastrophe_stop": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Catastrophe Stop" }, "composite": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Composite" }, "conviction": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Conviction" }, "cycle_score": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Cycle Score" }, "cycle_zone": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Cycle Zone" }, "dist_to_breakout_pct": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Dist To Breakout Pct" }, "donchian_10l": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Donchian 10L" }, "donchian_20h": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Donchian 20H" }, "donchian_20l": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Donchian 20L" }, "donchian_55h": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Donchian 55H" }, "efficiency_ratio": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Efficiency Ratio" }, "exit_proximity": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Exit Proximity" }, "exit_rsi_level": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Exit Rsi Level" }, "exit_sma5": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Exit Sma5" }, "fund_score": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Fund Score" }, "hurst": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Hurst" }, "initial_stop": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Initial Stop" }, "n": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "N" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Name" }, "price": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Price" }, "rank": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Rank" }, "readiness": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Readiness" }, "readiness_label": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Readiness Label" }, "recorded_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Recorded At" }, "regime_choppy": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Regime Choppy" }, "rsi2": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Rsi2" }, "scorer_signal": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Scorer Signal" }, "sector": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Sector" }, "signal_confirmed": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Signal Confirmed" }, "signal_count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Signal Count" }, "sma200": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Sma200" }, "sma5": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Sma5" }, "sources": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Sources" }, "systems_triggered": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Systems Triggered" }, "tech_score": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Tech Score" }, "ticker": { "title": "Ticker", "type": "string" }, "time_stop_bars": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Time Stop Bars" }, "trend_ok": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Trend Ok" }, "vramp": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Vramp" }, "vscore": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Vscore" } }, "required": [ "ticker" ], "title": "RankedCandidate", "type": "object" } }, "properties": { "asof_hint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Asof Hint" }, "candidates": { "items": { "$ref": "#/$defs/RankedCandidate" }, "title": "Candidates", "type": "array" }, "count": { "title": "Count", "type": "integer" }, "lane": { "title": "Lane", "type": "string" }, "total": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Total" }, "truncated": { "default": false, "title": "Truncated", "type": "boolean" } }, "required": [ "lane", "count", "candidates" ], "title": "RankingsResponse", "type": "object" } }, { "description": "Cluster-rotation layer. ``summary``: latest per-cluster RRG\n quadrant/rank rows with deltas, plus the most recent quadrant-crossing\n events (``days`` controls the window both are computed over).\n ``laggards``: members trailing a firing cluster's leader. ``discovered``:\n unsupervised cluster-discovery cohorts the structural taxonomy misses.\n ``members``: structural cluster membership.\n\n On ``summary``, two blocks are trimmed because together they are 80% of\n the response while answering a narrower question than the rows do.\n ``include_trajectory`` adds each cluster's full rank series — a chart\n payload, off by default. ``events`` returns the newest 25 crossings; if\n exactly 25 come back there are probably older ones, and a wider ``days``\n is not what returns them.", "inputSchema": { "properties": { "days": { "default": 45, "title": "Days", "type": "integer" }, "include_trajectory": { "default": false, "title": "Include Trajectory", "type": "boolean" }, "view": { "default": "summary", "enum": [ "summary", "laggards", "discovered", "members" ], "title": "View", "type": "string" } }, "title": "rayana_ai_rotationArguments", "type": "object" }, "name": "rayana_ai_rotation", "outputSchema": { "$defs": { "ClusterLaggardRow": { "properties": { "also_surfaced": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Also Surfaced" }, "cluster_move_10d": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Cluster Move 10D" }, "cluster_name": { "title": "Cluster Name", "type": "string" }, "gap_10d": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Gap 10D" }, "lag_z": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Lag Z" }, "leader": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Leader" }, "leader_catalyst": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Leader Catalyst" }, "leader_move_10d": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Leader Move 10D" }, "participation": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Participation" }, "snapshot_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Snapshot Date" }, "ticker": { "title": "Ticker", "type": "string" } }, "required": [ "cluster_name", "ticker" ], "title": "ClusterLaggardRow", "type": "object" }, "ClusterMembersEntry": { "properties": { "leads": { "default": [], "items": { "type": "string" }, "title": "Leads", "type": "array" }, "members": { "default": [], "items": { "type": "string" }, "title": "Members", "type": "array" }, "note": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Note" } }, "title": "ClusterMembersEntry", "type": "object" }, "ClusterMomentumRow": { "properties": { "asof": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Asof" }, "breadth": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Breadth" }, "cluster_name": { "title": "Cluster Name", "type": "string" }, "cohesion": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Cohesion" }, "id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Id" }, "mom_20d": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Mom 20D" }, "mom_5d": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Mom 5D" }, "mom_60d": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Mom 60D" }, "n_members": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "N Members" }, "quadrant": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Quadrant" }, "quadrant_prev": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Quadrant Prev" }, "rank": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Rank" }, "rank_delta": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Rank Delta" }, "rank_pct": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Rank Pct" }, "rank_prev": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Rank Prev" }, "recorded_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Recorded At" }, "rs_mom": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Rs Mom" }, "rs_ratio": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Rs Ratio" }, "snapshot_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Snapshot Date" } }, "required": [ "cluster_name" ], "title": "ClusterMomentumRow", "type": "object" }, "ClusterRotationEvent": { "properties": { "cluster": { "title": "Cluster", "type": "string" }, "date": { "title": "Date", "type": "string" }, "flow": { "title": "Flow", "type": "string" }, "from": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "From" }, "to": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "To" } }, "required": [ "date", "cluster", "flow" ], "title": "ClusterRotationEvent", "type": "object" }, "ClusterTrajectory": { "properties": { "cluster": { "title": "Cluster", "type": "string" }, "series": { "items": { "$ref": "#/$defs/ClusterTrajectoryPoint" }, "title": "Series", "type": "array" } }, "required": [ "cluster", "series" ], "title": "ClusterTrajectory", "type": "object" }, "ClusterTrajectoryPoint": { "properties": { "date": { "title": "Date", "type": "string" }, "rank": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Rank" } }, "required": [ "date" ], "title": "ClusterTrajectoryPoint", "type": "object" }, "DiscoveredClusterRow": { "properties": { "cluster_uid": { "title": "Cluster Uid", "type": "string" }, "cohesion": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Cohesion" }, "is_new": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Is New" }, "label": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Label" }, "label_source": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Label Source" }, "members": { "default": [], "items": { "type": "string" }, "title": "Members", "type": "array" }, "size": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Size" }, "snapshot_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Snapshot Date" }, "structural_match": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Structural Match" } }, "required": [ "cluster_uid" ], "title": "DiscoveredClusterRow", "type": "object" }, "RotationResponse": { "properties": { "asof": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Asof" }, "events": { "items": { "$ref": "#/$defs/ClusterRotationEvent" }, "title": "Events", "type": "array" }, "latest": { "items": { "$ref": "#/$defs/ClusterMomentumRow" }, "title": "Latest", "type": "array" }, "prior_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Prior Date" }, "snapshots": { "items": { "type": "string" }, "title": "Snapshots", "type": "array" }, "trajectory": { "items": { "$ref": "#/$defs/ClusterTrajectory" }, "title": "Trajectory", "type": "array" } }, "required": [ "latest", "trajectory", "events", "snapshots" ], "title": "RotationResponse", "type": "object" } }, "properties": { "result": { "anyOf": [ { "$ref": "#/$defs/RotationResponse" }, { "items": { "$ref": "#/$defs/ClusterLaggardRow" }, "type": "array" }, { "items": { "$ref": "#/$defs/DiscoveredClusterRow" }, "type": "array" }, { "additionalProperties": { "$ref": "#/$defs/ClusterMembersEntry" }, "type": "object" } ], "title": "Result" } }, "required": [ "result" ], "title": "rayana_ai_rotationOutput", "type": "object" } }, { "description": "Resolve free text (ticker or company name) to known Rayana AI symbols,\n best match first. Pure resolution — never accrues signal.", "inputSchema": { "properties": { "limit": { "default": 8, "title": "Limit", "type": "integer" }, "q": { "title": "Q", "type": "string" } }, "required": [ "q" ], "title": "rayana_ai_searchArguments", "type": "object" }, "name": "rayana_ai_search", "outputSchema": { "$defs": { "SearchMatch": { "properties": { "name": { "default": "", "title": "Name", "type": "string" }, "ticker": { "title": "Ticker", "type": "string" } }, "required": [ "ticker" ], "title": "SearchMatch", "type": "object" } }, "properties": { "result": { "items": { "$ref": "#/$defs/SearchMatch" }, "title": "Result", "type": "array" } }, "required": [ "result" ], "title": "rayana_ai_searchOutput", "type": "object" } }, { "description": "Latest aggregator-consensus batch for one asset lane: which tickers\n cleared the signal pipeline, blended agg_score, confirming source count.", "inputSchema": { "properties": { "lane": { "default": "equity", "enum": [ "equity", "crypto", "commodity" ], "title": "Lane", "type": "string" }, "limit": { "default": 60, "title": "Limit", "type": "integer" } }, "title": "rayana_ai_signalsArguments", "type": "object" }, "name": "rayana_ai_signals", "outputSchema": { "$defs": { "SignalRow": { "properties": { "agg_score": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Agg Score" }, "signal_count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Signal Count" }, "sources": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Sources" }, "ticker": { "title": "Ticker", "type": "string" } }, "required": [ "ticker" ], "title": "SignalRow", "type": "object" } }, "properties": { "count": { "title": "Count", "type": "integer" }, "lane": { "title": "Lane", "type": "string" }, "signals": { "items": { "$ref": "#/$defs/SignalRow" }, "title": "Signals", "type": "array" }, "truncated": { "default": false, "title": "Truncated", "type": "boolean" } }, "required": [ "lane", "count", "signals" ], "title": "SignalsResponse", "type": "object" } }, { "description": "Get a link your principal opens in a browser to subscribe. No API key\n needed. Give them the URL — you cannot complete this yourself, and should\n not try: they sign in, accept the Terms and authenticate the payment.\n\n If the tier includes API access, their account page then shows a short\n pairing code; read it back into ``rayana_ai_complete_setup`` to get your\n API key without them pasting a secret into this conversation. **Standard\n does not include API or MCP access** — if the point of the purchase is a\n key for you, ask for pro or elite.", "inputSchema": { "properties": { "interval": { "default": "month", "enum": [ "month", "year" ], "title": "Interval", "type": "string" }, "tier": { "default": "pro", "enum": [ "standard", "pro", "elite" ], "title": "Tier", "type": "string" } }, "title": "rayana_ai_start_checkoutArguments", "type": "object" }, "name": "rayana_ai_start_checkout", "outputSchema": { "description": "What an agent hands its human to subscribe. Deliberately NOT a Stripe\nCheckout URL: this link lands on a Rayana page that signs the human in,\ntakes their assent to the Terms, and only then starts Stripe's own hosted\nCheckout. See api/mcp_server.py's `rayana_ai_start_checkout` for why the\nindirection is the point rather than an extra hop.", "properties": { "interval": { "title": "Interval", "type": "string" }, "next_steps": { "items": { "type": "string" }, "title": "Next Steps", "type": "array" }, "pairing_note": { "title": "Pairing Note", "type": "string" }, "price_usd": { "title": "Price Usd", "type": "integer" }, "tier": { "title": "Tier", "type": "string" }, "url": { "title": "Url", "type": "string" } }, "required": [ "url", "tier", "interval", "price_usd", "next_steps", "pairing_note" ], "title": "CheckoutHandoff", "type": "object" } }, { "description": "Full per-ticker research view: score, lane membership, per-source\n signals, virality, consensus, cluster-rotation position, forward returns.", "inputSchema": { "properties": { "symbol": { "title": "Symbol", "type": "string" } }, "required": [ "symbol" ], "title": "rayana_ai_tickerArguments", "type": "object" }, "name": "rayana_ai_ticker", "outputSchema": { "$defs": { "TickerScoreRow": { "properties": { "composite": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Composite" }, "fund_score": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Fund Score" }, "hurst": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Hurst" }, "price": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Price" }, "rank": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Rank" }, "regime": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Regime" }, "run_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Run At" }, "script": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Script" }, "signal": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Signal" }, "tech_score": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Tech Score" } }, "title": "TickerScoreRow", "type": "object" } }, "properties": { "detail": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Detail" }, "score": { "anyOf": [ { "$ref": "#/$defs/TickerScoreRow" }, { "type": "null" } ], "default": null }, "ticker": { "title": "Ticker", "type": "string" }, "truncated": { "title": "Truncated", "type": "boolean" } }, "required": [ "ticker", "truncated" ], "title": "TickerResponse", "type": "object" } }, { "description": "Today's cached AI ticker-analyst read (lean, conviction, thesis,\n evidence for/against, invalidation condition). Never triggers a new\n model call; 404s if nothing was generated today for this ticker.", "inputSchema": { "properties": { "symbol": { "title": "Symbol", "type": "string" } }, "required": [ "symbol" ], "title": "rayana_ai_ticker_analystArguments", "type": "object" }, "name": "rayana_ai_ticker_analyst", "outputSchema": { "properties": { "analysis_date": { "title": "Analysis Date", "type": "string" }, "cached": { "default": true, "title": "Cached", "type": "boolean" }, "conviction": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Conviction" }, "cost_usd": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Cost Usd" }, "created_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Created At" }, "evidence_against": { "default": [], "items": { "type": "string" }, "title": "Evidence Against", "type": "array" }, "evidence_for": { "default": [], "items": { "type": "string" }, "title": "Evidence For", "type": "array" }, "invalidation": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Invalidation" }, "lean": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Lean" }, "model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Model" }, "thesis": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Thesis" }, "ticker": { "title": "Ticker", "type": "string" } }, "required": [ "ticker", "analysis_date" ], "title": "TickerAnalystBrief", "type": "object" } }, { "description": "One ticker's published article history, newest first.", "inputSchema": { "properties": { "symbol": { "title": "Symbol", "type": "string" } }, "required": [ "symbol" ], "title": "rayana_ai_ticker_articlesArguments", "type": "object" }, "name": "rayana_ai_ticker_articles", "outputSchema": { "$defs": { "ArticleSummary": { "properties": { "dek": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Dek" }, "headline": { "title": "Headline", "type": "string" }, "published_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Published At" }, "slug": { "title": "Slug", "type": "string" }, "ticker": { "title": "Ticker", "type": "string" }, "trigger_type": { "title": "Trigger Type", "type": "string" } }, "required": [ "slug", "ticker", "headline", "trigger_type" ], "title": "ArticleSummary", "type": "object" } }, "properties": { "articles": { "items": { "$ref": "#/$defs/ArticleSummary" }, "title": "Articles", "type": "array" }, "count": { "title": "Count", "type": "integer" }, "limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Limit" }, "offset": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Offset" }, "total": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Total" } }, "required": [ "count", "articles" ], "title": "ArticlesResponse", "type": "object" } }, { "description": "Daily close-price history for one ticker over the given period.\n\n Long periods are evenly sampled down to ``max_points`` bars rather than\n cut short, so the series still spans the whole period — ``5Y`` and ``MAX``\n return the shape of the history, not its last year. ``last_close``,\n ``change_pct`` and the ``range_low``/``range_high`` extremes are computed\n over every bar regardless of sampling.", "inputSchema": { "properties": { "max_points": { "default": 260, "title": "Max Points", "type": "integer" }, "period": { "default": "1Y", "enum": [ "1M", "6M", "YTD", "1Y", "5Y", "MAX" ], "title": "Period", "type": "string" }, "symbol": { "title": "Symbol", "type": "string" } }, "required": [ "symbol" ], "title": "rayana_ai_ticker_priceArguments", "type": "object" }, "name": "rayana_ai_ticker_price", "outputSchema": { "$defs": { "PricePoint": { "properties": { "close": { "title": "Close", "type": "number" }, "date": { "title": "Date", "type": "string" } }, "required": [ "date", "close" ], "title": "PricePoint", "type": "object" } }, "properties": { "change_pct": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Change Pct" }, "last_close": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Last Close" }, "period": { "title": "Period", "type": "string" }, "points": { "items": { "$ref": "#/$defs/PricePoint" }, "title": "Points", "type": "array" }, "range_high": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Range High" }, "range_low": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Range Low" }, "ticker": { "title": "Ticker", "type": "string" } }, "required": [ "ticker", "period", "points" ], "title": "PriceHistoryResponse", "type": "object" } }, { "description": "The attention leaderboard: latest virality snapshot ranked by VScore,\n with the full intensity/breadth/slope/vramp decomposition.", "inputSchema": { "properties": { "limit": { "default": 40, "title": "Limit", "type": "integer" } }, "title": "rayana_ai_trendsArguments", "type": "object" }, "name": "rayana_ai_trends", "outputSchema": { "$defs": { "TrendRow": { "properties": { "breadth": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Breadth" }, "distinct_days": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Distinct Days" }, "distinct_sources": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Distinct Sources" }, "intensity": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Intensity" }, "slope": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Slope" }, "source_list": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Source List" }, "ticker": { "title": "Ticker", "type": "string" }, "viral_score": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Viral Score" }, "vramp": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Vramp" } }, "required": [ "ticker" ], "title": "TrendRow", "type": "object" } }, "properties": { "asof": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Asof" }, "count": { "title": "Count", "type": "integer" }, "leaders": { "items": { "$ref": "#/$defs/TrendRow" }, "title": "Leaders", "type": "array" }, "truncated": { "default": false, "title": "Truncated", "type": "boolean" } }, "required": [ "count", "leaders" ], "title": "TrendsResponse", "type": "object" } }, { "description": "The attention layer's raw texture. ``sources``: per-source reach today.\n ``heat``: per-(ticker, source) attention contributions. ``search``:\n rising/breakout consumer search queries. ``video``: rising video-view\n velocity. ``limit`` applies to search/video only; omit it to use that\n view's own default.", "inputSchema": { "properties": { "limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Limit" }, "view": { "enum": [ "sources", "heat", "search", "video" ], "title": "View", "type": "string" } }, "required": [ "view" ], "title": "rayana_ai_trends_detailArguments", "type": "object" }, "name": "rayana_ai_trends_detail", "outputSchema": { "$defs": { "SearchTrendRow": { "properties": { "day": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Day" }, "query": { "title": "Query", "type": "string" }, "section": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Section" }, "value": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Value" } }, "required": [ "query" ], "title": "SearchTrendRow", "type": "object" }, "SourceBreadthRow": { "properties": { "avg_intensity": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Avg Intensity" }, "max_intensity": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Max Intensity" }, "source": { "title": "Source", "type": "string" }, "tickers": { "title": "Tickers", "type": "integer" } }, "required": [ "source", "tickers" ], "title": "SourceBreadthRow", "type": "object" }, "SourceHeatRow": { "properties": { "days_active": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Days Active" }, "intensity": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Intensity" }, "last_score": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Last Score" }, "recent_age": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Recent Age" }, "source": { "title": "Source", "type": "string" }, "ticker": { "title": "Ticker", "type": "string" } }, "required": [ "ticker", "source" ], "title": "SourceHeatRow", "type": "object" }, "VideoTrendRow": { "properties": { "age_hours": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Age Hours" }, "channel": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Channel" }, "company_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Company Name" }, "link": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Link" }, "published_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Published Date" }, "ticker": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Ticker" }, "title": { "title": "Title", "type": "string" }, "velocity_score": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Velocity Score" }, "velocity_vph": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Velocity Vph" }, "views": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Views" } }, "required": [ "title" ], "title": "VideoTrendRow", "type": "object" } }, "properties": { "result": { "anyOf": [ { "items": { "$ref": "#/$defs/SourceBreadthRow" }, "type": "array" }, { "items": { "$ref": "#/$defs/SourceHeatRow" }, "type": "array" }, { "items": { "$ref": "#/$defs/SearchTrendRow" }, "type": "array" }, { "items": { "$ref": "#/$defs/VideoTrendRow" }, "type": "array" } ], "title": "Result" } }, "required": [ "result" ], "title": "rayana_ai_trends_detailOutput", "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:ed030813b63339e187af229645ce697f143712f021465d516d4a2ac354e0470e | sha256sum