Skip to main content
Glama

Two-ticker read-across

alphai_pair_analysis
Read-onlyIdempotent

Compare two tickers (e.g. NVDA and AMD). Returns news naming BOTH companies — where the cross-ticker read-across lives (a peer's print resetting the other's setup, a shared supplier/customer) — plus each ticker's own recent news for context. The two recent lists are condensed (headline + scalar signals; the full analysis is on BOTH — fetch alphai_article(uid) for a recent item's full write-up). Pair analysis covers active tickers only: any symbol that isn't a recognized active ticker is listed in unknown_tickers and contributes no rows (delisted-symbol history lives in alphai_ticker_news). Informational and AI-generated — not investment advice. Use detail='compact' for headlines, sources, times, tickers, scores and story/search metadata without summary, analysis or SEC detail blocks. Expand uids with alphai_article. detail='full' is default; selection, order, cursors and page metadata are identical.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "ticker_a": "<ticker_a>",
      "ticker_b": "<ticker_b>"
    },
    "name": "alphai_pair_analysis"
  }
}

Input Schema

NameRequiredDescriptionDefault
limitNoMax rows per list (both / each ticker).
detailNofull (default): existing item format. compact: headlines, sources, times, tickers, scores and story/search metadata without summary or analysis. Prefer compact for polling; alphai_article(uid) expands an item.full
ticker_aYesFirst ticker, e.g. 'NVDA'.
ticker_bYesSecond ticker, e.g. 'AMD'.
min_relevanceNoMinimum AI relevance score, 1-10. Default 4 leaves out low-relevance items; 1-3 adds them.

Output Schema

NameRequiredDescriptionDefault
bothNo
a_recentNo
b_recentNo
ticker_aYes
ticker_bYes
unknown_tickersNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / min_relevance / description
      Previous value: -"Minimum AI relevance score, 1-10."New value: +"Minimum AI relevance score, 1-10. Default 4 leaves out low-relevance items; 1-3 adds them."
  2. Changed13 schema fields changed
    • addedInput schema / properties / detail
      Added value: +{
      +  "default": "full",
      +  "description": "full (default): existing item format. compact: headlines, sources, times, tickers, scores and story/search metadata without summary or analysis. Prefer compact for polling; alphai_article(uid) expands an item.",
      +  "enum": [
      +    "full",
      +    "compact"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / a_recent / items / anyOf
      Added value: +[
      +  {
      +    "properties": {
      +      "analysis": {
      +        "anyOf": [
      +          {
      +            "properties": {
      +              "actionability": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "alternative_perspectives": {
      +                "anyOf": [
      +                  {
      +                    "properties": {
      +                      "contrarian_view": {
      +                        "anyOf": [
      +                          {
      +                            "type": "string"
      +                          },
      +                          {
      +                            "type": "null"
      +                          }
      +                        ],
      +                        "default": null
      +                      },
      +                      "overlooked_factors": {
      +                        "anyOf": [
      +                          {
      +                            "type": "string"
      +                          },
      +                          {
      +                            "type": "null"
      +                          }
      +                        ],
      +                        "default": null
      +                      }
      +                    },
      +                    "type": "object"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "background_context": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "indirect_market_effects": {
      +                "anyOf": [
      +                  {
      +                    "properties": {
      +                      "global_market_relevance": {
      +                        "anyOf": [
      +                          {
      +                            "type": "string"
      +                          },
      +                          {
      +                            "type": "null"
      +                          }
      +                        ],
      +                        "default": null
      +                      },
      +                      "regional_market_impact": {
      +                        "anyOf": [
      +                          {
      +                            "type": "string"
      +                          },
      +                          {
      +                            "type": "null"
      +                          }
      +                        ],
      +                        "default": null
      +                      },
      +                      "sector_implications": {
      +                        "anyOf": [
      +                          {
      +                            "type": "string"
      +                          },
      +                          {
      +                            "type": "null"
      +                          }
      +                        ],
      +                        "default": null
      +                      }
      +                    },
      +                    "type": "object"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "information_novelty": {
      +                "anyOf": [
      +                  {
      +                    "type": "integer"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "key_entities": {
      +                "items": {
      +                  "properties": {
      +                    "description": {
      +                      "default": "",
      +                      "type": "string"
      +                    },
      +                    "entity_type": {
      +                      "default": "",
      +                      "type": "string"
      +                    },
      +                    "name": {
      +                      "default": "",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "market_relevance_summary": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "market_sentiment_alignment": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "ticker_analysis": {
      +                "items": {
      +                  "properties": {
      +                    "confidence": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ],
      +                      "default": null
      +                    },
      +                    "price_impact_prediction": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ],
      +                      "default": null
      +                    },
      +                    "reasoning": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ],
      +                      "default": null
      +                    },
      +                    "relevance_context": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ],
      +                      "default": null
      +                    },
      +                    "sentiment": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ],
      +                      "default": null
      +                    },
      +                    "ticker": {
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "ticker"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "timing_relevance": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              }
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "banner_image": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "category": {
      +        "type": "string"
      +      },
      +      "created_at": {
      +        "type": "string"
      +      },
      +      "earnings": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": true,
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "filing": {
      +        "anyOf": [
      +          {
      +            "description": "Structured SEC 8-K filing block (``source_type == \"sec_form8k\"`` items on\nthe news tools).\n\nA read-only projection of the 8-K sidecar\n(``apps.data.models.EightKEventModel``) — same fields and semantics as the\nREST ``/api/news/`` block (openapi.yaml: ``EightKFiling``): ``items`` is\nevery item code the filing carries (the ``item`` filter matches any of\nthem; empty for a header-only filing), ``primary_item`` the one that drove\nthe category, ``accession_number`` the id to cite, ``filed_at`` EDGAR's\nacceptance time, ``event_date`` the filing's own date of report and\n``exhibit_url`` the press-release exhibit the summary was built from.\nDates are ISO strings like the insider block; empty sidecar strings are\n``null``, never ``\"\"``.",
      +            "properties": {
      +              "accession_number": {
      +                "type": "string"
      +              },
      +              "event_date": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "exhibit_url": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "filed_at": {
      +                "type": "string"
      +              },
      +              "items": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "primary_item": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              }
      +            },
      +            "required": [
      +              "items",
      +              "accession_number",
      +              "filed_at"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "insider": {
      +        "anyOf": [
      +          {
      +            "description": "Structured SEC Form 4 event block (``alphai_insider_news`` items only).\n\nAggregate of the news row's whole transaction group — same semantics as the\nREST ``/api/news/insider/`` block (openapi.yaml: ``InsiderEvent``): shares and\nvalue are GROUP sums (a 10b5-1 ladder is one event), ``avg_price_usd`` is\nvalue-weighted over priced tranches, ``is_10b5_1`` is the group OR, the\nlast fill dates the event. ``side`` is the signal label: buy (P) / sell (S)\n/ other (everything else, incl. D — sale to issuer, a buyback/redemption,\nnot an open-market disposition); the raw ``transaction_code`` rides along.\nMoney/share fields are decimal STRINGS (\"25000\", \"187.32\") — flat, precise,\nschema-simple; null when the filing prices no tranche.\n\n``filed_at`` is when EDGAR accepted the filing and ``late_filing`` marks the\nones that missed the SEC's two-business-day deadline; the rule lives in\n``_is_late_filing`` in ``repository.py`` (ported from the backend's\n``apps.insider.services.filing_lateness``). Field reference for both\nsurfaces: ``backend/openapi.yaml`` (``InsiderEvent``).",
      +            "properties": {
      +              "avg_price_usd": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "filed_at": {
      +                "type": "string"
      +              },
      +              "insider_name": {
      +                "type": "string"
      +              },
      +              "insider_title": {
      +                "type": "string"
      +              },
      +              "is_10b5_1": {
      +                "type": "boolean"
      +              },
      +              "is_director": {
      +                "type": "boolean"
      +              },
      +              "is_officer": {
      +                "type": "boolean"
      +              },
      +              "is_ten_percent_owner": {
      +                "type": "boolean"
      +              },
      +              "late_filing": {
      +                "type": "boolean"
      +              },
      +              "shares": {
      +                "type": "string"
      +              },
      +              "side": {
      +                "type": "string"
      +              },
      +              "total_value_usd": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "transaction_code": {
      +                "type": "string"
      +              },
      +              "transaction_date": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "side",
      +              "transaction_code",
      +              "shares",
      +              "is_10b5_1",
      +              "insider_name",
      +              "insider_title",
      +              "is_officer",
      +              "is_director",
      +              "is_ten_percent_owner",
      +              "transaction_date",
      +              "filed_at",
      +              "late_filing"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "ownership_form": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "read_time_minutes": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "relevance_score": {
      +        "type": "integer"
      +      },
      +      "search_match": {
      +        "anyOf": [
      +          {
      +            "description": "Per-item evidence from the text path: ``score`` orders the page (cover\ndensity × recency; comparable within one response, not a probability),\n``terms_matched`` is set in broadened mode, ``context`` marks the matched\nwords in the summary with ``**``.",
      +            "properties": {
      +              "context": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "score": {
      +                "type": "number"
      +              },
      +              "terms_matched": {
      +                "anyOf": [
      +                  {
      +                    "type": "integer"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              }
      +            },
      +            "required": [
      +              "score"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "source": {
      +        "type": "string"
      +      },
      +      "source_domain": {
      +        "type": "string"
      +      },
      +      "source_type": {
      +        "default": "",
      +        "type": "string"
      +      },
      +      "sources": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "sources_count": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "story_id": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "summary": {
      +        "type": "string"
      +      },
      +      "tickers": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "time_published": {
      +        "type": "string"
      +      },
      +      "title": {
      +        "type": "string"
      +      },
      +      "uid": {
      +        "type": "string"
      +      },
      +      "url": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "uid",
      +      "title",
      +      "url",
      +      "source",
      +      "source_domain",
      +      "summary",
      +      "category",
      +      "relevance_score",
      +      "time_published",
      +      "created_at"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "description": "Opt-in feed projection. Expand ``uid`` with ``alphai_article``.\n\nOnly the two scalar analysis signals survive, at the top level. Summary,\nanalysis prose, images and SEC detail blocks are absent, not truncated.\nSearch evidence and Form 4 ownership remain so triage keeps its meaning.",
      +    "properties": {
      +      "actionability": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "category": {
      +        "type": "string"
      +      },
      +      "created_at": {
      +        "type": "string"
      +      },
      +      "information_novelty": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "ownership_form": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "relevance_score": {
      +        "type": "integer"
      +      },
      +      "search_match": {
      +        "anyOf": [
      +          {
      +            "description": "Per-item evidence from the text path: ``score`` orders the page (cover\ndensity × recency; comparable within one response, not a probability),\n``terms_matched`` is set in broadened mode, ``context`` marks the matched\nwords in the summary with ``**``.",
      +            "properties": {
      +              "context": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "score": {
      +                "type": "number"
      +              },
      +              "terms_matched": {
      +                "anyOf": [
      +                  {
      +                    "type": "integer"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              }
      +            },
      +            "required": [
      +              "score"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "source": {
      +        "type": "string"
      +      },
      +      "source_domain": {
      +        "type": "string"
      +      },
      +      "source_type": {
      +        "type": "string"
      +      },
      +      "sources": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "sources_count": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "story_id": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "tickers": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "time_published": {
      +        "type": "string"
      +      },
      +      "title": {
      +        "type": "string"
      +      },
      +      "uid": {
      +        "type": "string"
      +      },
      +      "url": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "uid",
      +      "title",
      +      "url",
      +      "source",
      +      "source_domain",
      +      "source_type",
      +      "time_published",
      +      "created_at",
      +      "tickers",
      +      "category",
      +      "relevance_score",
      +      "actionability",
      +      "information_novelty",
      +      "story_id",
      +      "sources_count",
      +      "sources",
      +      "ownership_form",
      +      "search_match"
      +    ],
      +    "type": "object"
      +  }
      +]
    • removedOutput schema / properties / a_recent / items / properties
      Removed value: -{
      -  "analysis": {
      -    "anyOf": [
      -      {
      -        "properties": {
      -          "actionability": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "alternative_perspectives": {
      -            "anyOf": [
      -              {
      -                "properties": {
      -                  "contrarian_view": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  },
      -                  "overlooked_factors": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "background_context": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "indirect_market_effects": {
      -            "anyOf": [
      -              {
      -                "properties": {
      -                  "global_market_relevance": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  },
      -                  "regional_market_impact": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  },
      -                  "sector_implications": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "information_novelty": {
      -            "anyOf": [
      -              {
      -                "type": "integer"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "key_entities": {
      -            "items": {
      -              "properties": {
      -                "description": {
      -                  "default": "",
      -                  "type": "string"
      -                },
      -                "entity_type": {
      -                  "default": "",
      -                  "type": "string"
      -                },
      -                "name": {
      -                  "default": "",
      -                  "type": "string"
      -                }
      -              },
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "market_relevance_summary": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "market_sentiment_alignment": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "ticker_analysis": {
      -            "items": {
      -              "properties": {
      -                "confidence": {
      -                  "anyOf": [
      -                    {
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "default": null
      -                },
      -                "price_impact_prediction": {
      -                  "anyOf": [
      -                    {
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "default": null
      -                },
      -                "reasoning": {
      -                  "anyOf": [
      -                    {
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "default": null
      -                },
      -                "relevance_context": {
      -                  "anyOf": [
      -                    {
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "default": null
      -                },
      -                "sentiment": {
      -                  "anyOf": [
      -                    {
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "default": null
      -                },
      -                "ticker": {
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "ticker"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "timing_relevance": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          }
      -        },
      -        "type": "object"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "banner_image": {
      -    "anyOf": [
      -      {
      -        "type": "string"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "category": {
      -    "type": "string"
      -  },
      -  "created_at": {
      -    "type": "string"
      -  },
      -  "earnings": {
      -    "anyOf": [
      -      {
      -        "additionalProperties": true,
      -        "type": "object"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "filing": {
      -    "anyOf": [
      -      {
      -        "description": "Structured SEC 8-K filing block (``source_type == \"sec_form8k\"`` items on\nthe news tools).\n\nA read-only projection of the 8-K sidecar\n(``apps.data.models.EightKEventModel``) — same fields and semantics as the\nREST ``/api/news/`` block (openapi.yaml: ``EightKFiling``): ``items`` is\nevery item code the filing carries (the ``item`` filter matches any of\nthem; empty for a header-only filing), ``primary_item`` the one that drove\nthe category, ``accession_number`` the id to cite, ``filed_at`` EDGAR's\nacceptance time, ``event_date`` the filing's own date of report and\n``exhibit_url`` the press-release exhibit the summary was built from.\nDates are ISO strings like the insider block; empty sidecar strings are\n``null``, never ``\"\"``.",
      -        "properties": {
      -          "accession_number": {
      -            "type": "string"
      -          },
      -          "event_date": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "exhibit_url": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "filed_at": {
      -            "type": "string"
      -          },
      -          "items": {
      -            "items": {
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "primary_item": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          }
      -        },
      -        "required": [
      -          "items",
      -          "accession_number",
      -          "filed_at"
      -        ],
      -        "type": "object"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "insider": {
      -    "anyOf": [
      -      {
      -        "description": "Structured SEC Form 4 event block (``alphai_insider_news`` items only).\n\nAggregate of the news row's whole transaction group — same semantics as the\nREST ``/api/news/insider/`` block (openapi.yaml: ``InsiderEvent``): shares and\nvalue are GROUP sums (a 10b5-1 ladder is one event), ``avg_price_usd`` is\nvalue-weighted over priced tranches, ``is_10b5_1`` is the group OR, the\nlast fill dates the event. ``side`` is the signal label: buy (P) / sell (S)\n/ other (everything else, incl. D — sale to issuer, a buyback/redemption,\nnot an open-market disposition); the raw ``transaction_code`` rides along.\nMoney/share fields are decimal STRINGS (\"25000\", \"187.32\") — flat, precise,\nschema-simple; null when the filing prices no tranche.\n\n``filed_at`` is when EDGAR accepted the filing and ``late_filing`` marks the\nones that missed the SEC's two-business-day deadline; the rule lives in\n``_is_late_filing`` in ``repository.py`` (ported from the backend's\n``apps.insider.services.filing_lateness``). Field reference for both\nsurfaces: ``backend/openapi.yaml`` (``InsiderEvent``).",
      -        "properties": {
      -          "avg_price_usd": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "filed_at": {
      -            "type": "string"
      -          },
      -          "insider_name": {
      -            "type": "string"
      -          },
      -          "insider_title": {
      -            "type": "string"
      -          },
      -          "is_10b5_1": {
      -            "type": "boolean"
      -          },
      -          "is_director": {
      -            "type": "boolean"
      -          },
      -          "is_officer": {
      -            "type": "boolean"
      -          },
      -          "is_ten_percent_owner": {
      -            "type": "boolean"
      -          },
      -          "late_filing": {
      -            "type": "boolean"
      -          },
      -          "shares": {
      -            "type": "string"
      -          },
      -          "side": {
      -            "type": "string"
      -          },
      -          "total_value_usd": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "transaction_code": {
      -            "type": "string"
      -          },
      -          "transaction_date": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "side",
      -          "transaction_code",
      -          "shares",
      -          "is_10b5_1",
      -          "insider_name",
      -          "insider_title",
      -          "is_officer",
      -          "is_director",
      -          "is_ten_percent_owner",
      -          "transaction_date",
      -          "filed_at",
      -          "late_filing"
      -        ],
      -        "type": "object"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "ownership_form": {
      -    "anyOf": [
      -      {
      -        "type": "string"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "read_time_minutes": {
      -    "anyOf": [
      -      {
      -        "type": "integer"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "relevance_score": {
      -    "type": "integer"
      -  },
      -  "search_match": {
      -    "anyOf": [
      -      {
      -        "description": "Per-item evidence from the text path: ``score`` orders the page (cover\ndensity × recency; comparable within one response, not a probability),\n``terms_matched`` is set in broadened mode, ``context`` marks the matched\nwords in the summary with ``**``.",
      -        "properties": {
      -          "context": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "score": {
      -            "type": "number"
      -          },
      -          "terms_matched": {
      -            "anyOf": [
      -              {
      -                "type": "integer"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          }
      -        },
      -        "required": [
      -          "score"
      -        ],
      -        "type": "object"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "source": {
      -    "type": "string"
      -  },
      -  "source_domain": {
      -    "type": "string"
      -  },
      -  "source_type": {
      -    "default": "",
      -    "type": "string"
      -  },
      -  "sources": {
      -    "anyOf": [
      -      {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "sources_count": {
      -    "anyOf": [
      -      {
      -        "type": "integer"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "story_id": {
      -    "anyOf": [
      -      {
      -        "type": "string"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "summary": {
      -    "type": "string"
      -  },
      -  "tickers": {
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  "time_published": {
      -    "type": "string"
      -  },
      -  "title": {
      -    "type": "string"
      -  },
      -  "uid": {
      -    "type": "string"
      -  },
      -  "url": {
      -    "type": "string"
      -  }
      -}
    • removedOutput schema / properties / a_recent / items / required
      Removed value: -[
      -  "uid",
      -  "title",
      -  "url",
      -  "source",
      -  "source_domain",
      -  "summary",
      -  "category",
      -  "relevance_score",
      -  "time_published",
      -  "created_at"
      -]
    • removedOutput schema / properties / a_recent / items / type
      Removed value: -"object"
    • addedOutput schema / properties / b_recent / items / anyOf
      Added value: +[
      +  {
      +    "properties": {
      +      "analysis": {
      +        "anyOf": [
      +          {
      +            "properties": {
      +              "actionability": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "alternative_perspectives": {
      +                "anyOf": [
      +                  {
      +                    "properties": {
      +                      "contrarian_view": {
      +                        "anyOf": [
      +                          {
      +                            "type": "string"
      +                          },
      +                          {
      +                            "type": "null"
      +                          }
      +                        ],
      +                        "default": null
      +                      },
      +                      "overlooked_factors": {
      +                        "anyOf": [
      +                          {
      +                            "type": "string"
      +                          },
      +                          {
      +                            "type": "null"
      +                          }
      +                        ],
      +                        "default": null
      +                      }
      +                    },
      +                    "type": "object"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "background_context": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "indirect_market_effects": {
      +                "anyOf": [
      +                  {
      +                    "properties": {
      +                      "global_market_relevance": {
      +                        "anyOf": [
      +                          {
      +                            "type": "string"
      +                          },
      +                          {
      +                            "type": "null"
      +                          }
      +                        ],
      +                        "default": null
      +                      },
      +                      "regional_market_impact": {
      +                        "anyOf": [
      +                          {
      +                            "type": "string"
      +                          },
      +                          {
      +                            "type": "null"
      +                          }
      +                        ],
      +                        "default": null
      +                      },
      +                      "sector_implications": {
      +                        "anyOf": [
      +                          {
      +                            "type": "string"
      +                          },
      +                          {
      +                            "type": "null"
      +                          }
      +                        ],
      +                        "default": null
      +                      }
      +                    },
      +                    "type": "object"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "information_novelty": {
      +                "anyOf": [
      +                  {
      +                    "type": "integer"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "key_entities": {
      +                "items": {
      +                  "properties": {
      +                    "description": {
      +                      "default": "",
      +                      "type": "string"
      +                    },
      +                    "entity_type": {
      +                      "default": "",
      +                      "type": "string"
      +                    },
      +                    "name": {
      +                      "default": "",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "market_relevance_summary": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "market_sentiment_alignment": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "ticker_analysis": {
      +                "items": {
      +                  "properties": {
      +                    "confidence": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ],
      +                      "default": null
      +                    },
      +                    "price_impact_prediction": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ],
      +                      "default": null
      +                    },
      +                    "reasoning": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ],
      +                      "default": null
      +                    },
      +                    "relevance_context": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ],
      +                      "default": null
      +                    },
      +                    "sentiment": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ],
      +                      "default": null
      +                    },
      +                    "ticker": {
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "ticker"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "timing_relevance": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              }
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "banner_image": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "category": {
      +        "type": "string"
      +      },
      +      "created_at": {
      +        "type": "string"
      +      },
      +      "earnings": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": true,
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "filing": {
      +        "anyOf": [
      +          {
      +            "description": "Structured SEC 8-K filing block (``source_type == \"sec_form8k\"`` items on\nthe news tools).\n\nA read-only projection of the 8-K sidecar\n(``apps.data.models.EightKEventModel``) — same fields and semantics as the\nREST ``/api/news/`` block (openapi.yaml: ``EightKFiling``): ``items`` is\nevery item code the filing carries (the ``item`` filter matches any of\nthem; empty for a header-only filing), ``primary_item`` the one that drove\nthe category, ``accession_number`` the id to cite, ``filed_at`` EDGAR's\nacceptance time, ``event_date`` the filing's own date of report and\n``exhibit_url`` the press-release exhibit the summary was built from.\nDates are ISO strings like the insider block; empty sidecar strings are\n``null``, never ``\"\"``.",
      +            "properties": {
      +              "accession_number": {
      +                "type": "string"
      +              },
      +              "event_date": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "exhibit_url": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "filed_at": {
      +                "type": "string"
      +              },
      +              "items": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "primary_item": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              }
      +            },
      +            "required": [
      +              "items",
      +              "accession_number",
      +              "filed_at"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "insider": {
      +        "anyOf": [
      +          {
      +            "description": "Structured SEC Form 4 event block (``alphai_insider_news`` items only).\n\nAggregate of the news row's whole transaction group — same semantics as the\nREST ``/api/news/insider/`` block (openapi.yaml: ``InsiderEvent``): shares and\nvalue are GROUP sums (a 10b5-1 ladder is one event), ``avg_price_usd`` is\nvalue-weighted over priced tranches, ``is_10b5_1`` is the group OR, the\nlast fill dates the event. ``side`` is the signal label: buy (P) / sell (S)\n/ other (everything else, incl. D — sale to issuer, a buyback/redemption,\nnot an open-market disposition); the raw ``transaction_code`` rides along.\nMoney/share fields are decimal STRINGS (\"25000\", \"187.32\") — flat, precise,\nschema-simple; null when the filing prices no tranche.\n\n``filed_at`` is when EDGAR accepted the filing and ``late_filing`` marks the\nones that missed the SEC's two-business-day deadline; the rule lives in\n``_is_late_filing`` in ``repository.py`` (ported from the backend's\n``apps.insider.services.filing_lateness``). Field reference for both\nsurfaces: ``backend/openapi.yaml`` (``InsiderEvent``).",
      +            "properties": {
      +              "avg_price_usd": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "filed_at": {
      +                "type": "string"
      +              },
      +              "insider_name": {
      +                "type": "string"
      +              },
      +              "insider_title": {
      +                "type": "string"
      +              },
      +              "is_10b5_1": {
      +                "type": "boolean"
      +              },
      +              "is_director": {
      +                "type": "boolean"
      +              },
      +              "is_officer": {
      +                "type": "boolean"
      +              },
      +              "is_ten_percent_owner": {
      +                "type": "boolean"
      +              },
      +              "late_filing": {
      +                "type": "boolean"
      +              },
      +              "shares": {
      +                "type": "string"
      +              },
      +              "side": {
      +                "type": "string"
      +              },
      +              "total_value_usd": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "transaction_code": {
      +                "type": "string"
      +              },
      +              "transaction_date": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "side",
      +              "transaction_code",
      +              "shares",
      +              "is_10b5_1",
      +              "insider_name",
      +              "insider_title",
      +              "is_officer",
      +              "is_director",
      +              "is_ten_percent_owner",
      +              "transaction_date",
      +              "filed_at",
      +              "late_filing"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "ownership_form": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "read_time_minutes": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "relevance_score": {
      +        "type": "integer"
      +      },
      +      "search_match": {
      +        "anyOf": [
      +          {
      +            "description": "Per-item evidence from the text path: ``score`` orders the page (cover\ndensity × recency; comparable within one response, not a probability),\n``terms_matched`` is set in broadened mode, ``context`` marks the matched\nwords in the summary with ``**``.",
      +            "properties": {
      +              "context": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "score": {
      +                "type": "number"
      +              },
      +              "terms_matched": {
      +                "anyOf": [
      +                  {
      +                    "type": "integer"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              }
      +            },
      +            "required": [
      +              "score"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "source": {
      +        "type": "string"
      +      },
      +      "source_domain": {
      +        "type": "string"
      +      },
      +      "source_type": {
      +        "default": "",
      +        "type": "string"
      +      },
      +      "sources": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "sources_count": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "story_id": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "summary": {
      +        "type": "string"
      +      },
      +      "tickers": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "time_published": {
      +        "type": "string"
      +      },
      +      "title": {
      +        "type": "string"
      +      },
      +      "uid": {
      +        "type": "string"
      +      },
      +      "url": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "uid",
      +      "title",
      +      "url",
      +      "source",
      +      "source_domain",
      +      "summary",
      +      "category",
      +      "relevance_score",
      +      "time_published",
      +      "created_at"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "description": "Opt-in feed projection. Expand ``uid`` with ``alphai_article``.\n\nOnly the two scalar analysis signals survive, at the top level. Summary,\nanalysis prose, images and SEC detail blocks are absent, not truncated.\nSearch evidence and Form 4 ownership remain so triage keeps its meaning.",
      +    "properties": {
      +      "actionability": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "category": {
      +        "type": "string"
      +      },
      +      "created_at": {
      +        "type": "string"
      +      },
      +      "information_novelty": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "ownership_form": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "relevance_score": {
      +        "type": "integer"
      +      },
      +      "search_match": {
      +        "anyOf": [
      +          {
      +            "description": "Per-item evidence from the text path: ``score`` orders the page (cover\ndensity × recency; comparable within one response, not a probability),\n``terms_matched`` is set in broadened mode, ``context`` marks the matched\nwords in the summary with ``**``.",
      +            "properties": {
      +              "context": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "score": {
      +                "type": "number"
      +              },
      +              "terms_matched": {
      +                "anyOf": [
      +                  {
      +                    "type": "integer"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              }
      +            },
      +            "required": [
      +              "score"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "source": {
      +        "type": "string"
      +      },
      +      "source_domain": {
      +        "type": "string"
      +      },
      +      "source_type": {
      +        "type": "string"
      +      },
      +      "sources": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "sources_count": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "story_id": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "tickers": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "time_published": {
      +        "type": "string"
      +      },
      +      "title": {
      +        "type": "string"
      +      },
      +      "uid": {
      +        "type": "string"
      +      },
      +      "url": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "uid",
      +      "title",
      +      "url",
      +      "source",
      +      "source_domain",
      +      "source_type",
      +      "time_published",
      +      "created_at",
      +      "tickers",
      +      "category",
      +      "relevance_score",
      +      "actionability",
      +      "information_novelty",
      +      "story_id",
      +      "sources_count",
      +      "sources",
      +      "ownership_form",
      +      "search_match"
      +    ],
      +    "type": "object"
      +  }
      +]
    • removedOutput schema / properties / b_recent / items / properties
      Removed value: -{
      -  "analysis": {
      -    "anyOf": [
      -      {
      -        "properties": {
      -          "actionability": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "alternative_perspectives": {
      -            "anyOf": [
      -              {
      -                "properties": {
      -                  "contrarian_view": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  },
      -                  "overlooked_factors": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "background_context": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "indirect_market_effects": {
      -            "anyOf": [
      -              {
      -                "properties": {
      -                  "global_market_relevance": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  },
      -                  "regional_market_impact": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  },
      -                  "sector_implications": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "information_novelty": {
      -            "anyOf": [
      -              {
      -                "type": "integer"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "key_entities": {
      -            "items": {
      -              "properties": {
      -                "description": {
      -                  "default": "",
      -                  "type": "string"
      -                },
      -                "entity_type": {
      -                  "default": "",
      -                  "type": "string"
      -                },
      -                "name": {
      -                  "default": "",
      -                  "type": "string"
      -                }
      -              },
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "market_relevance_summary": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "market_sentiment_alignment": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "ticker_analysis": {
      -            "items": {
      -              "properties": {
      -                "confidence": {
      -                  "anyOf": [
      -                    {
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "default": null
      -                },
      -                "price_impact_prediction": {
      -                  "anyOf": [
      -                    {
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "default": null
      -                },
      -                "reasoning": {
      -                  "anyOf": [
      -                    {
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "default": null
      -                },
      -                "relevance_context": {
      -                  "anyOf": [
      -                    {
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "default": null
      -                },
      -                "sentiment": {
      -                  "anyOf": [
      -                    {
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "default": null
      -                },
      -                "ticker": {
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "ticker"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "timing_relevance": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          }
      -        },
      -        "type": "object"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "banner_image": {
      -    "anyOf": [
      -      {
      -        "type": "string"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "category": {
      -    "type": "string"
      -  },
      -  "created_at": {
      -    "type": "string"
      -  },
      -  "earnings": {
      -    "anyOf": [
      -      {
      -        "additionalProperties": true,
      -        "type": "object"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "filing": {
      -    "anyOf": [
      -      {
      -        "description": "Structured SEC 8-K filing block (``source_type == \"sec_form8k\"`` items on\nthe news tools).\n\nA read-only projection of the 8-K sidecar\n(``apps.data.models.EightKEventModel``) — same fields and semantics as the\nREST ``/api/news/`` block (openapi.yaml: ``EightKFiling``): ``items`` is\nevery item code the filing carries (the ``item`` filter matches any of\nthem; empty for a header-only filing), ``primary_item`` the one that drove\nthe category, ``accession_number`` the id to cite, ``filed_at`` EDGAR's\nacceptance time, ``event_date`` the filing's own date of report and\n``exhibit_url`` the press-release exhibit the summary was built from.\nDates are ISO strings like the insider block; empty sidecar strings are\n``null``, never ``\"\"``.",
      -        "properties": {
      -          "accession_number": {
      -            "type": "string"
      -          },
      -          "event_date": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "exhibit_url": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "filed_at": {
      -            "type": "string"
      -          },
      -          "items": {
      -            "items": {
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "primary_item": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          }
      -        },
      -        "required": [
      -          "items",
      -          "accession_number",
      -          "filed_at"
      -        ],
      -        "type": "object"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "insider": {
      -    "anyOf": [
      -      {
      -        "description": "Structured SEC Form 4 event block (``alphai_insider_news`` items only).\n\nAggregate of the news row's whole transaction group — same semantics as the\nREST ``/api/news/insider/`` block (openapi.yaml: ``InsiderEvent``): shares and\nvalue are GROUP sums (a 10b5-1 ladder is one event), ``avg_price_usd`` is\nvalue-weighted over priced tranches, ``is_10b5_1`` is the group OR, the\nlast fill dates the event. ``side`` is the signal label: buy (P) / sell (S)\n/ other (everything else, incl. D — sale to issuer, a buyback/redemption,\nnot an open-market disposition); the raw ``transaction_code`` rides along.\nMoney/share fields are decimal STRINGS (\"25000\", \"187.32\") — flat, precise,\nschema-simple; null when the filing prices no tranche.\n\n``filed_at`` is when EDGAR accepted the filing and ``late_filing`` marks the\nones that missed the SEC's two-business-day deadline; the rule lives in\n``_is_late_filing`` in ``repository.py`` (ported from the backend's\n``apps.insider.services.filing_lateness``). Field reference for both\nsurfaces: ``backend/openapi.yaml`` (``InsiderEvent``).",
      -        "properties": {
      -          "avg_price_usd": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "filed_at": {
      -            "type": "string"
      -          },
      -          "insider_name": {
      -            "type": "string"
      -          },
      -          "insider_title": {
      -            "type": "string"
      -          },
      -          "is_10b5_1": {
      -            "type": "boolean"
      -          },
      -          "is_director": {
      -            "type": "boolean"
      -          },
      -          "is_officer": {
      -            "type": "boolean"
      -          },
      -          "is_ten_percent_owner": {
      -            "type": "boolean"
      -          },
      -          "late_filing": {
      -            "type": "boolean"
      -          },
      -          "shares": {
      -            "type": "string"
      -          },
      -          "side": {
      -            "type": "string"
      -          },
      -          "total_value_usd": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "transaction_code": {
      -            "type": "string"
      -          },
      -          "transaction_date": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "side",
      -          "transaction_code",
      -          "shares",
      -          "is_10b5_1",
      -          "insider_name",
      -          "insider_title",
      -          "is_officer",
      -          "is_director",
      -          "is_ten_percent_owner",
      -          "transaction_date",
      -          "filed_at",
      -          "late_filing"
      -        ],
      -        "type": "object"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "ownership_form": {
      -    "anyOf": [
      -      {
      -        "type": "string"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "read_time_minutes": {
      -    "anyOf": [
      -      {
      -        "type": "integer"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "relevance_score": {
      -    "type": "integer"
      -  },
      -  "search_match": {
      -    "anyOf": [
      -      {
      -        "description": "Per-item evidence from the text path: ``score`` orders the page (cover\ndensity × recency; comparable within one response, not a probability),\n``terms_matched`` is set in broadened mode, ``context`` marks the matched\nwords in the summary with ``**``.",
      -        "properties": {
      -          "context": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "score": {
      -            "type": "number"
      -          },
      -          "terms_matched": {
      -            "anyOf": [
      -              {
      -                "type": "integer"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          }
      -        },
      -        "required": [
      -          "score"
      -        ],
      -        "type": "object"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "source": {
      -    "type": "string"
      -  },
      -  "source_domain": {
      -    "type": "string"
      -  },
      -  "source_type": {
      -    "default": "",
      -    "type": "string"
      -  },
      -  "sources": {
      -    "anyOf": [
      -      {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "sources_count": {
      -    "anyOf": [
      -      {
      -        "type": "integer"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "story_id": {
      -    "anyOf": [
      -      {
      -        "type": "string"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "summary": {
      -    "type": "string"
      -  },
      -  "tickers": {
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  "time_published": {
      -    "type": "string"
      -  },
      -  "title": {
      -    "type": "string"
      -  },
      -  "uid": {
      -    "type": "string"
      -  },
      -  "url": {
      -    "type": "string"
      -  }
      -}
    • removedOutput schema / properties / b_recent / items / required
      Removed value: -[
      -  "uid",
      -  "title",
      -  "url",
      -  "source",
      -  "source_domain",
      -  "summary",
      -  "category",
      -  "relevance_score",
      -  "time_published",
      -  "created_at"
      -]
    • removedOutput schema / properties / b_recent / items / type
      Removed value: -"object"
    • addedOutput schema / properties / both / items / anyOf
      Added value: +[
      +  {
      +    "properties": {
      +      "analysis": {
      +        "anyOf": [
      +          {
      +            "properties": {
      +              "actionability": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "alternative_perspectives": {
      +                "anyOf": [
      +                  {
      +                    "properties": {
      +                      "contrarian_view": {
      +                        "anyOf": [
      +                          {
      +                            "type": "string"
      +                          },
      +                          {
      +                            "type": "null"
      +                          }
      +                        ],
      +                        "default": null
      +                      },
      +                      "overlooked_factors": {
      +                        "anyOf": [
      +                          {
      +                            "type": "string"
      +                          },
      +                          {
      +                            "type": "null"
      +                          }
      +                        ],
      +                        "default": null
      +                      }
      +                    },
      +                    "type": "object"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "background_context": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "indirect_market_effects": {
      +                "anyOf": [
      +                  {
      +                    "properties": {
      +                      "global_market_relevance": {
      +                        "anyOf": [
      +                          {
      +                            "type": "string"
      +                          },
      +                          {
      +                            "type": "null"
      +                          }
      +                        ],
      +                        "default": null
      +                      },
      +                      "regional_market_impact": {
      +                        "anyOf": [
      +                          {
      +                            "type": "string"
      +                          },
      +                          {
      +                            "type": "null"
      +                          }
      +                        ],
      +                        "default": null
      +                      },
      +                      "sector_implications": {
      +                        "anyOf": [
      +                          {
      +                            "type": "string"
      +                          },
      +                          {
      +                            "type": "null"
      +                          }
      +                        ],
      +                        "default": null
      +                      }
      +                    },
      +                    "type": "object"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "information_novelty": {
      +                "anyOf": [
      +                  {
      +                    "type": "integer"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "key_entities": {
      +                "items": {
      +                  "properties": {
      +                    "description": {
      +                      "default": "",
      +                      "type": "string"
      +                    },
      +                    "entity_type": {
      +                      "default": "",
      +                      "type": "string"
      +                    },
      +                    "name": {
      +                      "default": "",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "market_relevance_summary": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "market_sentiment_alignment": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "ticker_analysis": {
      +                "items": {
      +                  "properties": {
      +                    "confidence": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ],
      +                      "default": null
      +                    },
      +                    "price_impact_prediction": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ],
      +                      "default": null
      +                    },
      +                    "reasoning": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ],
      +                      "default": null
      +                    },
      +                    "relevance_context": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ],
      +                      "default": null
      +                    },
      +                    "sentiment": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ],
      +                      "default": null
      +                    },
      +                    "ticker": {
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "ticker"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "timing_relevance": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              }
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "banner_image": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "category": {
      +        "type": "string"
      +      },
      +      "created_at": {
      +        "type": "string"
      +      },
      +      "earnings": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": true,
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "filing": {
      +        "anyOf": [
      +          {
      +            "description": "Structured SEC 8-K filing block (``source_type == \"sec_form8k\"`` items on\nthe news tools).\n\nA read-only projection of the 8-K sidecar\n(``apps.data.models.EightKEventModel``) — same fields and semantics as the\nREST ``/api/news/`` block (openapi.yaml: ``EightKFiling``): ``items`` is\nevery item code the filing carries (the ``item`` filter matches any of\nthem; empty for a header-only filing), ``primary_item`` the one that drove\nthe category, ``accession_number`` the id to cite, ``filed_at`` EDGAR's\nacceptance time, ``event_date`` the filing's own date of report and\n``exhibit_url`` the press-release exhibit the summary was built from.\nDates are ISO strings like the insider block; empty sidecar strings are\n``null``, never ``\"\"``.",
      +            "properties": {
      +              "accession_number": {
      +                "type": "string"
      +              },
      +              "event_date": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "exhibit_url": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "filed_at": {
      +                "type": "string"
      +              },
      +              "items": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "primary_item": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              }
      +            },
      +            "required": [
      +              "items",
      +              "accession_number",
      +              "filed_at"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "insider": {
      +        "anyOf": [
      +          {
      +            "description": "Structured SEC Form 4 event block (``alphai_insider_news`` items only).\n\nAggregate of the news row's whole transaction group — same semantics as the\nREST ``/api/news/insider/`` block (openapi.yaml: ``InsiderEvent``): shares and\nvalue are GROUP sums (a 10b5-1 ladder is one event), ``avg_price_usd`` is\nvalue-weighted over priced tranches, ``is_10b5_1`` is the group OR, the\nlast fill dates the event. ``side`` is the signal label: buy (P) / sell (S)\n/ other (everything else, incl. D — sale to issuer, a buyback/redemption,\nnot an open-market disposition); the raw ``transaction_code`` rides along.\nMoney/share fields are decimal STRINGS (\"25000\", \"187.32\") — flat, precise,\nschema-simple; null when the filing prices no tranche.\n\n``filed_at`` is when EDGAR accepted the filing and ``late_filing`` marks the\nones that missed the SEC's two-business-day deadline; the rule lives in\n``_is_late_filing`` in ``repository.py`` (ported from the backend's\n``apps.insider.services.filing_lateness``). Field reference for both\nsurfaces: ``backend/openapi.yaml`` (``InsiderEvent``).",
      +            "properties": {
      +              "avg_price_usd": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "filed_at": {
      +                "type": "string"
      +              },
      +              "insider_name": {
      +                "type": "string"
      +              },
      +              "insider_title": {
      +                "type": "string"
      +              },
      +              "is_10b5_1": {
      +                "type": "boolean"
      +              },
      +              "is_director": {
      +                "type": "boolean"
      +              },
      +              "is_officer": {
      +                "type": "boolean"
      +              },
      +              "is_ten_percent_owner": {
      +                "type": "boolean"
      +              },
      +              "late_filing": {
      +                "type": "boolean"
      +              },
      +              "shares": {
      +                "type": "string"
      +              },
      +              "side": {
      +                "type": "string"
      +              },
      +              "total_value_usd": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "transaction_code": {
      +                "type": "string"
      +              },
      +              "transaction_date": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "side",
      +              "transaction_code",
      +              "shares",
      +              "is_10b5_1",
      +              "insider_name",
      +              "insider_title",
      +              "is_officer",
      +              "is_director",
      +              "is_ten_percent_owner",
      +              "transaction_date",
      +              "filed_at",
      +              "late_filing"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "ownership_form": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "read_time_minutes": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "relevance_score": {
      +        "type": "integer"
      +      },
      +      "search_match": {
      +        "anyOf": [
      +          {
      +            "description": "Per-item evidence from the text path: ``score`` orders the page (cover\ndensity × recency; comparable within one response, not a probability),\n``terms_matched`` is set in broadened mode, ``context`` marks the matched\nwords in the summary with ``**``.",
      +            "properties": {
      +              "context": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "score": {
      +                "type": "number"
      +              },
      +              "terms_matched": {
      +                "anyOf": [
      +                  {
      +                    "type": "integer"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              }
      +            },
      +            "required": [
      +              "score"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "source": {
      +        "type": "string"
      +      },
      +      "source_domain": {
      +        "type": "string"
      +      },
      +      "source_type": {
      +        "default": "",
      +        "type": "string"
      +      },
      +      "sources": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "sources_count": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "story_id": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "summary": {
      +        "type": "string"
      +      },
      +      "tickers": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "time_published": {
      +        "type": "string"
      +      },
      +      "title": {
      +        "type": "string"
      +      },
      +      "uid": {
      +        "type": "string"
      +      },
      +      "url": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "uid",
      +      "title",
      +      "url",
      +      "source",
      +      "source_domain",
      +      "summary",
      +      "category",
      +      "relevance_score",
      +      "time_published",
      +      "created_at"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "description": "Opt-in feed projection. Expand ``uid`` with ``alphai_article``.\n\nOnly the two scalar analysis signals survive, at the top level. Summary,\nanalysis prose, images and SEC detail blocks are absent, not truncated.\nSearch evidence and Form 4 ownership remain so triage keeps its meaning.",
      +    "properties": {
      +      "actionability": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "category": {
      +        "type": "string"
      +      },
      +      "created_at": {
      +        "type": "string"
      +      },
      +      "information_novelty": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "ownership_form": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "relevance_score": {
      +        "type": "integer"
      +      },
      +      "search_match": {
      +        "anyOf": [
      +          {
      +            "description": "Per-item evidence from the text path: ``score`` orders the page (cover\ndensity × recency; comparable within one response, not a probability),\n``terms_matched`` is set in broadened mode, ``context`` marks the matched\nwords in the summary with ``**``.",
      +            "properties": {
      +              "context": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "score": {
      +                "type": "number"
      +              },
      +              "terms_matched": {
      +                "anyOf": [
      +                  {
      +                    "type": "integer"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              }
      +            },
      +            "required": [
      +              "score"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "source": {
      +        "type": "string"
      +      },
      +      "source_domain": {
      +        "type": "string"
      +      },
      +      "source_type": {
      +        "type": "string"
      +      },
      +      "sources": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "sources_count": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "story_id": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "tickers": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "time_published": {
      +        "type": "string"
      +      },
      +      "title": {
      +        "type": "string"
      +      },
      +      "uid": {
      +        "type": "string"
      +      },
      +      "url": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "uid",
      +      "title",
      +      "url",
      +      "source",
      +      "source_domain",
      +      "source_type",
      +      "time_published",
      +      "created_at",
      +      "tickers",
      +      "category",
      +      "relevance_score",
      +      "actionability",
      +      "information_novelty",
      +      "story_id",
      +      "sources_count",
      +      "sources",
      +      "ownership_form",
      +      "search_match"
      +    ],
      +    "type": "object"
      +  }
      +]
    • removedOutput schema / properties / both / items / properties
      Removed value: -{
      -  "analysis": {
      -    "anyOf": [
      -      {
      -        "properties": {
      -          "actionability": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "alternative_perspectives": {
      -            "anyOf": [
      -              {
      -                "properties": {
      -                  "contrarian_view": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  },
      -                  "overlooked_factors": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "background_context": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "indirect_market_effects": {
      -            "anyOf": [
      -              {
      -                "properties": {
      -                  "global_market_relevance": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  },
      -                  "regional_market_impact": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  },
      -                  "sector_implications": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "information_novelty": {
      -            "anyOf": [
      -              {
      -                "type": "integer"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "key_entities": {
      -            "items": {
      -              "properties": {
      -                "description": {
      -                  "default": "",
      -                  "type": "string"
      -                },
      -                "entity_type": {
      -                  "default": "",
      -                  "type": "string"
      -                },
      -                "name": {
      -                  "default": "",
      -                  "type": "string"
      -                }
      -              },
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "market_relevance_summary": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "market_sentiment_alignment": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "ticker_analysis": {
      -            "items": {
      -              "properties": {
      -                "confidence": {
      -                  "anyOf": [
      -                    {
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "default": null
      -                },
      -                "price_impact_prediction": {
      -                  "anyOf": [
      -                    {
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "default": null
      -                },
      -                "reasoning": {
      -                  "anyOf": [
      -                    {
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "default": null
      -                },
      -                "relevance_context": {
      -                  "anyOf": [
      -                    {
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "default": null
      -                },
      -                "sentiment": {
      -                  "anyOf": [
      -                    {
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "default": null
      -                },
      -                "ticker": {
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "ticker"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "timing_relevance": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          }
      -        },
      -        "type": "object"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "banner_image": {
      -    "anyOf": [
      -      {
      -        "type": "string"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "category": {
      -    "type": "string"
      -  },
      -  "created_at": {
      -    "type": "string"
      -  },
      -  "earnings": {
      -    "anyOf": [
      -      {
      -        "additionalProperties": true,
      -        "type": "object"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "filing": {
      -    "anyOf": [
      -      {
      -        "description": "Structured SEC 8-K filing block (``source_type == \"sec_form8k\"`` items on\nthe news tools).\n\nA read-only projection of the 8-K sidecar\n(``apps.data.models.EightKEventModel``) — same fields and semantics as the\nREST ``/api/news/`` block (openapi.yaml: ``EightKFiling``): ``items`` is\nevery item code the filing carries (the ``item`` filter matches any of\nthem; empty for a header-only filing), ``primary_item`` the one that drove\nthe category, ``accession_number`` the id to cite, ``filed_at`` EDGAR's\nacceptance time, ``event_date`` the filing's own date of report and\n``exhibit_url`` the press-release exhibit the summary was built from.\nDates are ISO strings like the insider block; empty sidecar strings are\n``null``, never ``\"\"``.",
      -        "properties": {
      -          "accession_number": {
      -            "type": "string"
      -          },
      -          "event_date": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "exhibit_url": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "filed_at": {
      -            "type": "string"
      -          },
      -          "items": {
      -            "items": {
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "primary_item": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          }
      -        },
      -        "required": [
      -          "items",
      -          "accession_number",
      -          "filed_at"
      -        ],
      -        "type": "object"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "insider": {
      -    "anyOf": [
      -      {
      -        "description": "Structured SEC Form 4 event block (``alphai_insider_news`` items only).\n\nAggregate of the news row's whole transaction group — same semantics as the\nREST ``/api/news/insider/`` block (openapi.yaml: ``InsiderEvent``): shares and\nvalue are GROUP sums (a 10b5-1 ladder is one event), ``avg_price_usd`` is\nvalue-weighted over priced tranches, ``is_10b5_1`` is the group OR, the\nlast fill dates the event. ``side`` is the signal label: buy (P) / sell (S)\n/ other (everything else, incl. D — sale to issuer, a buyback/redemption,\nnot an open-market disposition); the raw ``transaction_code`` rides along.\nMoney/share fields are decimal STRINGS (\"25000\", \"187.32\") — flat, precise,\nschema-simple; null when the filing prices no tranche.\n\n``filed_at`` is when EDGAR accepted the filing and ``late_filing`` marks the\nones that missed the SEC's two-business-day deadline; the rule lives in\n``_is_late_filing`` in ``repository.py`` (ported from the backend's\n``apps.insider.services.filing_lateness``). Field reference for both\nsurfaces: ``backend/openapi.yaml`` (``InsiderEvent``).",
      -        "properties": {
      -          "avg_price_usd": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "filed_at": {
      -            "type": "string"
      -          },
      -          "insider_name": {
      -            "type": "string"
      -          },
      -          "insider_title": {
      -            "type": "string"
      -          },
      -          "is_10b5_1": {
      -            "type": "boolean"
      -          },
      -          "is_director": {
      -            "type": "boolean"
      -          },
      -          "is_officer": {
      -            "type": "boolean"
      -          },
      -          "is_ten_percent_owner": {
      -            "type": "boolean"
      -          },
      -          "late_filing": {
      -            "type": "boolean"
      -          },
      -          "shares": {
      -            "type": "string"
      -          },
      -          "side": {
      -            "type": "string"
      -          },
      -          "total_value_usd": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "transaction_code": {
      -            "type": "string"
      -          },
      -          "transaction_date": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "side",
      -          "transaction_code",
      -          "shares",
      -          "is_10b5_1",
      -          "insider_name",
      -          "insider_title",
      -          "is_officer",
      -          "is_director",
      -          "is_ten_percent_owner",
      -          "transaction_date",
      -          "filed_at",
      -          "late_filing"
      -        ],
      -        "type": "object"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "ownership_form": {
      -    "anyOf": [
      -      {
      -        "type": "string"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "read_time_minutes": {
      -    "anyOf": [
      -      {
      -        "type": "integer"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "relevance_score": {
      -    "type": "integer"
      -  },
      -  "search_match": {
      -    "anyOf": [
      -      {
      -        "description": "Per-item evidence from the text path: ``score`` orders the page (cover\ndensity × recency; comparable within one response, not a probability),\n``terms_matched`` is set in broadened mode, ``context`` marks the matched\nwords in the summary with ``**``.",
      -        "properties": {
      -          "context": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "score": {
      -            "type": "number"
      -          },
      -          "terms_matched": {
      -            "anyOf": [
      -              {
      -                "type": "integer"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          }
      -        },
      -        "required": [
      -          "score"
      -        ],
      -        "type": "object"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "source": {
      -    "type": "string"
      -  },
      -  "source_domain": {
      -    "type": "string"
      -  },
      -  "source_type": {
      -    "default": "",
      -    "type": "string"
      -  },
      -  "sources": {
      -    "anyOf": [
      -      {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "sources_count": {
      -    "anyOf": [
      -      {
      -        "type": "integer"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "story_id": {
      -    "anyOf": [
      -      {
      -        "type": "string"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ],
      -    "default": null
      -  },
      -  "summary": {
      -    "type": "string"
      -  },
      -  "tickers": {
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  "time_published": {
      -    "type": "string"
      -  },
      -  "title": {
      -    "type": "string"
      -  },
      -  "uid": {
      -    "type": "string"
      -  },
      -  "url": {
      -    "type": "string"
      -  }
      -}
    • removedOutput schema / properties / both / items / required
      Removed value: -[
      -  "uid",
      -  "title",
      -  "url",
      -  "source",
      -  "source_domain",
      -  "summary",
      -  "category",
      -  "relevance_score",
      -  "time_published",
      -  "created_at"
      -]
    • removedOutput schema / properties / both / items / type
      Removed value: -"object"
  3. Changed4 schema fields changed
    • addedInput schema / properties / ticker_a / maxLength
      Added value: +16
    • addedInput schema / properties / ticker_a / pattern
      Added value: +"^[A-Za-z0-9.\\-]+$"
    • addedInput schema / properties / ticker_b / maxLength
      Added value: +16
    • addedInput schema / properties / ticker_b / pattern
      Added value: +"^[A-Za-z0-9.\\-]+$"
  4. Changed3 schema fields changed
    • addedOutput schema / properties / a_recent / items / properties / search_match
      Added value: +{
      +  "anyOf": [
      +    {
      +      "description": "Per-item evidence from the text path: ``score`` orders the page (cover\ndensity × recency; comparable within one response, not a probability),\n``terms_matched`` is set in broadened mode, ``context`` marks the matched\nwords in the summary with ``**``.",
      +      "properties": {
      +        "context": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        },
      +        "score": {
      +          "type": "number"
      +        },
      +        "terms_matched": {
      +          "anyOf": [
      +            {
      +              "type": "integer"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        }
      +      },
      +      "required": [
      +        "score"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • addedOutput schema / properties / b_recent / items / properties / search_match
      Added value: +{
      +  "anyOf": [
      +    {
      +      "description": "Per-item evidence from the text path: ``score`` orders the page (cover\ndensity × recency; comparable within one response, not a probability),\n``terms_matched`` is set in broadened mode, ``context`` marks the matched\nwords in the summary with ``**``.",
      +      "properties": {
      +        "context": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        },
      +        "score": {
      +          "type": "number"
      +        },
      +        "terms_matched": {
      +          "anyOf": [
      +            {
      +              "type": "integer"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        }
      +      },
      +      "required": [
      +        "score"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • addedOutput schema / properties / both / items / properties / search_match
      Added value: +{
      +  "anyOf": [
      +    {
      +      "description": "Per-item evidence from the text path: ``score`` orders the page (cover\ndensity × recency; comparable within one response, not a probability),\n``terms_matched`` is set in broadened mode, ``context`` marks the matched\nwords in the summary with ``**``.",
      +      "properties": {
      +        "context": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        },
      +        "score": {
      +          "type": "number"
      +        },
      +        "terms_matched": {
      +          "anyOf": [
      +            {
      +              "type": "integer"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        }
      +      },
      +      "required": [
      +        "score"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
  5. Changed3 schema fields changed
    • addedOutput schema / properties / a_recent / items / properties / filing
      Added value: +{
      +  "anyOf": [
      +    {
      +      "description": "Structured SEC 8-K filing block (``source_type == \"sec_form8k\"`` items on\nthe news tools).\n\nA read-only projection of the 8-K sidecar\n(``apps.data.models.EightKEventModel``) — same fields and semantics as the\nREST ``/api/news/`` block (openapi.yaml: ``EightKFiling``): ``items`` is\nevery item code the filing carries (the ``item`` filter matches any of\nthem; empty for a header-only filing), ``primary_item`` the one that drove\nthe category, ``accession_number`` the id to cite, ``filed_at`` EDGAR's\nacceptance time, ``event_date`` the filing's own date of report and\n``exhibit_url`` the press-release exhibit the summary was built from.\nDates are ISO strings like the insider block; empty sidecar strings are\n``null``, never ``\"\"``.",
      +      "properties": {
      +        "accession_number": {
      +          "type": "string"
      +        },
      +        "event_date": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        },
      +        "exhibit_url": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        },
      +        "filed_at": {
      +          "type": "string"
      +        },
      +        "items": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "primary_item": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        }
      +      },
      +      "required": [
      +        "items",
      +        "accession_number",
      +        "filed_at"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • addedOutput schema / properties / b_recent / items / properties / filing
      Added value: +{
      +  "anyOf": [
      +    {
      +      "description": "Structured SEC 8-K filing block (``source_type == \"sec_form8k\"`` items on\nthe news tools).\n\nA read-only projection of the 8-K sidecar\n(``apps.data.models.EightKEventModel``) — same fields and semantics as the\nREST ``/api/news/`` block (openapi.yaml: ``EightKFiling``): ``items`` is\nevery item code the filing carries (the ``item`` filter matches any of\nthem; empty for a header-only filing), ``primary_item`` the one that drove\nthe category, ``accession_number`` the id to cite, ``filed_at`` EDGAR's\nacceptance time, ``event_date`` the filing's own date of report and\n``exhibit_url`` the press-release exhibit the summary was built from.\nDates are ISO strings like the insider block; empty sidecar strings are\n``null``, never ``\"\"``.",
      +      "properties": {
      +        "accession_number": {
      +          "type": "string"
      +        },
      +        "event_date": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        },
      +        "exhibit_url": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        },
      +        "filed_at": {
      +          "type": "string"
      +        },
      +        "items": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "primary_item": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        }
      +      },
      +      "required": [
      +        "items",
      +        "accession_number",
      +        "filed_at"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • addedOutput schema / properties / both / items / properties / filing
      Added value: +{
      +  "anyOf": [
      +    {
      +      "description": "Structured SEC 8-K filing block (``source_type == \"sec_form8k\"`` items on\nthe news tools).\n\nA read-only projection of the 8-K sidecar\n(``apps.data.models.EightKEventModel``) — same fields and semantics as the\nREST ``/api/news/`` block (openapi.yaml: ``EightKFiling``): ``items`` is\nevery item code the filing carries (the ``item`` filter matches any of\nthem; empty for a header-only filing), ``primary_item`` the one that drove\nthe category, ``accession_number`` the id to cite, ``filed_at`` EDGAR's\nacceptance time, ``event_date`` the filing's own date of report and\n``exhibit_url`` the press-release exhibit the summary was built from.\nDates are ISO strings like the insider block; empty sidecar strings are\n``null``, never ``\"\"``.",
      +      "properties": {
      +        "accession_number": {
      +          "type": "string"
      +        },
      +        "event_date": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        },
      +        "exhibit_url": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        },
      +        "filed_at": {
      +          "type": "string"
      +        },
      +        "items": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "primary_item": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        }
      +      },
      +      "required": [
      +        "items",
      +        "accession_number",
      +        "filed_at"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
  6. Changed15 schema fields changed
    • addedOutput schema / properties / a_recent / items / properties / created_at
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / a_recent / items / properties / earnings
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • addedOutput schema / properties / a_recent / items / properties / insider
      Added value: +{
      +  "anyOf": [
      +    {
      +      "description": "Structured SEC Form 4 event block (``alphai_insider_news`` items only).\n\nAggregate of the news row's whole transaction group — same semantics as the\nREST ``/api/news/insider/`` block (openapi.yaml: ``InsiderEvent``): shares and\nvalue are GROUP sums (a 10b5-1 ladder is one event), ``avg_price_usd`` is\nvalue-weighted over priced tranches, ``is_10b5_1`` is the group OR, the\nlast fill dates the event. ``side`` is the signal label: buy (P) / sell (S)\n/ other (everything else, incl. D — sale to issuer, a buyback/redemption,\nnot an open-market disposition); the raw ``transaction_code`` rides along.\nMoney/share fields are decimal STRINGS (\"25000\", \"187.32\") — flat, precise,\nschema-simple; null when the filing prices no tranche.\n\n``filed_at`` is when EDGAR accepted the filing and ``late_filing`` marks the\nones that missed the SEC's two-business-day deadline; the rule lives in\n``_is_late_filing`` in ``repository.py`` (ported from the backend's\n``apps.insider.services.filing_lateness``). Field reference for both\nsurfaces: ``backend/openapi.yaml`` (``InsiderEvent``).",
      +      "properties": {
      +        "avg_price_usd": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        },
      +        "filed_at": {
      +          "type": "string"
      +        },
      +        "insider_name": {
      +          "type": "string"
      +        },
      +        "insider_title": {
      +          "type": "string"
      +        },
      +        "is_10b5_1": {
      +          "type": "boolean"
      +        },
      +        "is_director": {
      +          "type": "boolean"
      +        },
      +        "is_officer": {
      +          "type": "boolean"
      +        },
      +        "is_ten_percent_owner": {
      +          "type": "boolean"
      +        },
      +        "late_filing": {
      +          "type": "boolean"
      +        },
      +        "shares": {
      +          "type": "string"
      +        },
      +        "side": {
      +          "type": "string"
      +        },
      +        "total_value_usd": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        },
      +        "transaction_code": {
      +          "type": "string"
      +        },
      +        "transaction_date": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "side",
      +        "transaction_code",
      +        "shares",
      +        "is_10b5_1",
      +        "insider_name",
      +        "insider_title",
      +        "is_officer",
      +        "is_director",
      +        "is_ten_percent_owner",
      +        "transaction_date",
      +        "filed_at",
      +        "late_filing"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • addedOutput schema / properties / a_recent / items / properties / source_type
      Added value: +{
      +  "default": "",
      +  "type": "string"
      +}
    • changedOutput schema / properties / a_recent / items / required
      Previous value: -[
      -  "uid",
      -  "title",
      -  "url",
      -  "source",
      -  "source_domain",
      -  "summary",
      -  "category",
      -  "relevance_score",
      -  "time_published"
      -]New value: +[
      +  "uid",
      +  "title",
      +  "url",
      +  "source",
      +  "source_domain",
      +  "summary",
      +  "category",
      +  "relevance_score",
      +  "time_published",
      +  "created_at"
      +]
    • addedOutput schema / properties / b_recent / items / properties / created_at
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / b_recent / items / properties / earnings
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • addedOutput schema / properties / b_recent / items / properties / insider
      Added value: +{
      +  "anyOf": [
      +    {
      +      "description": "Structured SEC Form 4 event block (``alphai_insider_news`` items only).\n\nAggregate of the news row's whole transaction group — same semantics as the\nREST ``/api/news/insider/`` block (openapi.yaml: ``InsiderEvent``): shares and\nvalue are GROUP sums (a 10b5-1 ladder is one event), ``avg_price_usd`` is\nvalue-weighted over priced tranches, ``is_10b5_1`` is the group OR, the\nlast fill dates the event. ``side`` is the signal label: buy (P) / sell (S)\n/ other (everything else, incl. D — sale to issuer, a buyback/redemption,\nnot an open-market disposition); the raw ``transaction_code`` rides along.\nMoney/share fields are decimal STRINGS (\"25000\", \"187.32\") — flat, precise,\nschema-simple; null when the filing prices no tranche.\n\n``filed_at`` is when EDGAR accepted the filing and ``late_filing`` marks the\nones that missed the SEC's two-business-day deadline; the rule lives in\n``_is_late_filing`` in ``repository.py`` (ported from the backend's\n``apps.insider.services.filing_lateness``). Field reference for both\nsurfaces: ``backend/openapi.yaml`` (``InsiderEvent``).",
      +      "properties": {
      +        "avg_price_usd": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        },
      +        "filed_at": {
      +          "type": "string"
      +        },
      +        "insider_name": {
      +          "type": "string"
      +        },
      +        "insider_title": {
      +          "type": "string"
      +        },
      +        "is_10b5_1": {
      +          "type": "boolean"
      +        },
      +        "is_director": {
      +          "type": "boolean"
      +        },
      +        "is_officer": {
      +          "type": "boolean"
      +        },
      +        "is_ten_percent_owner": {
      +          "type": "boolean"
      +        },
      +        "late_filing": {
      +          "type": "boolean"
      +        },
      +        "shares": {
      +          "type": "string"
      +        },
      +        "side": {
      +          "type": "string"
      +        },
      +        "total_value_usd": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        },
      +        "transaction_code": {
      +          "type": "string"
      +        },
      +        "transaction_date": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "side",
      +        "transaction_code",
      +        "shares",
      +        "is_10b5_1",
      +        "insider_name",
      +        "insider_title",
      +        "is_officer",
      +        "is_director",
      +        "is_ten_percent_owner",
      +        "transaction_date",
      +        "filed_at",
      +        "late_filing"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • addedOutput schema / properties / b_recent / items / properties / source_type
      Added value: +{
      +  "default": "",
      +  "type": "string"
      +}
    • changedOutput schema / properties / b_recent / items / required
      Previous value: -[
      -  "uid",
      -  "title",
      -  "url",
      -  "source",
      -  "source_domain",
      -  "summary",
      -  "category",
      -  "relevance_score",
      -  "time_published"
      -]New value: +[
      +  "uid",
      +  "title",
      +  "url",
      +  "source",
      +  "source_domain",
      +  "summary",
      +  "category",
      +  "relevance_score",
      +  "time_published",
      +  "created_at"
      +]
    • addedOutput schema / properties / both / items / properties / created_at
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / both / items / properties / earnings
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • addedOutput schema / properties / both / items / properties / insider
      Added value: +{
      +  "anyOf": [
      +    {
      +      "description": "Structured SEC Form 4 event block (``alphai_insider_news`` items only).\n\nAggregate of the news row's whole transaction group — same semantics as the\nREST ``/api/news/insider/`` block (openapi.yaml: ``InsiderEvent``): shares and\nvalue are GROUP sums (a 10b5-1 ladder is one event), ``avg_price_usd`` is\nvalue-weighted over priced tranches, ``is_10b5_1`` is the group OR, the\nlast fill dates the event. ``side`` is the signal label: buy (P) / sell (S)\n/ other (everything else, incl. D — sale to issuer, a buyback/redemption,\nnot an open-market disposition); the raw ``transaction_code`` rides along.\nMoney/share fields are decimal STRINGS (\"25000\", \"187.32\") — flat, precise,\nschema-simple; null when the filing prices no tranche.\n\n``filed_at`` is when EDGAR accepted the filing and ``late_filing`` marks the\nones that missed the SEC's two-business-day deadline; the rule lives in\n``_is_late_filing`` in ``repository.py`` (ported from the backend's\n``apps.insider.services.filing_lateness``). Field reference for both\nsurfaces: ``backend/openapi.yaml`` (``InsiderEvent``).",
      +      "properties": {
      +        "avg_price_usd": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        },
      +        "filed_at": {
      +          "type": "string"
      +        },
      +        "insider_name": {
      +          "type": "string"
      +        },
      +        "insider_title": {
      +          "type": "string"
      +        },
      +        "is_10b5_1": {
      +          "type": "boolean"
      +        },
      +        "is_director": {
      +          "type": "boolean"
      +        },
      +        "is_officer": {
      +          "type": "boolean"
      +        },
      +        "is_ten_percent_owner": {
      +          "type": "boolean"
      +        },
      +        "late_filing": {
      +          "type": "boolean"
      +        },
      +        "shares": {
      +          "type": "string"
      +        },
      +        "side": {
      +          "type": "string"
      +        },
      +        "total_value_usd": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "default": null
      +        },
      +        "transaction_code": {
      +          "type": "string"
      +        },
      +        "transaction_date": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "side",
      +        "transaction_code",
      +        "shares",
      +        "is_10b5_1",
      +        "insider_name",
      +        "insider_title",
      +        "is_officer",
      +        "is_director",
      +        "is_ten_percent_owner",
      +        "transaction_date",
      +        "filed_at",
      +        "late_filing"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • addedOutput schema / properties / both / items / properties / source_type
      Added value: +{
      +  "default": "",
      +  "type": "string"
      +}
    • changedOutput schema / properties / both / items / required
      Previous value: -[
      -  "uid",
      -  "title",
      -  "url",
      -  "source",
      -  "source_domain",
      -  "summary",
      -  "category",
      -  "relevance_score",
      -  "time_published"
      -]New value: +[
      +  "uid",
      +  "title",
      +  "url",
      +  "source",
      +  "source_domain",
      +  "summary",
      +  "category",
      +  "relevance_score",
      +  "time_published",
      +  "created_at"
      +]
  7. Changed1 schema field changed
    • changedOutput schema / description
      Previous value: -"Read-across between two tickers: news naming BOTH (where the cross-ticker\nsignal lives), plus each ticker's own recent news for context."New value: +"Read-across between two tickers: news naming BOTH (where the cross-ticker\nsignal lives), plus each ticker's own recent news for context.\n\n``both`` items carry the full analysis (the read-across). ``a_recent`` /\n``b_recent`` are condensed — identity + summary + the scalar trading signals\n(actionability / novelty / sentiment), with the prose analysis dropped; fetch\n``alphai_article(uid)`` for the full write-up of a recent item."
  8. First observed

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial behavior beyond annotations: active-ticker-only coverage, unknown_tickers reporting, condensed recent lists, identical selection/order/cursors regardless of detail mode, and AI-generated non-advice status. Annotations already confirm read-only/idempotent behavior, and the description does not contradict them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded and most sentences carry useful information about return shape, active ticker constraints, and expansion. It is dense and long, but the length is mostly justified by the tool's multi-part behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema, full parameter descriptions, and annotations already covering safety, the description supplies the remaining operational context an agent needs: what is returned, active ticker limits, unknown_tickers, compact mode, and expansion path.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds useful semantics for detail and uid expansion through alphai_article. It does not add much for limit or min_relevance beyond the schema, but the extra mode behavior is meaningful.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: compare two tickers and return cross-company news plus each ticker's own news. It clearly distinguishes the tool from alphai_article expansion and delisted-symbol history in alphai_ticker_news.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear usage guidance for detail='compact' versus default full mode, and points to alphai_article for expanding uids. It also routes delisted-symbol history to alphai_ticker_news, though it does not explicitly compare against alphai_news_search or other sibling search tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.