changedInput schema / properties / symbol / anyOf
Previous value: -[
- {
- "maxLength": 20,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9.^=-]+$",
- "type": "string"
- },
- {
- "type": "null"
- }
-]New value: +[
+ {
+ "maxLength": 20,
+ "minLength": 1,
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9-]*$",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+]
addedOutput schema / $defs
Added value: +{
+ "Instrument": {
+ "additionalProperties": true,
+ "description": "Catalog identity row.",
+ "properties": {
+ "asset_class": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Asset Class"
+ },
+ "currency": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Currency"
+ },
+ "display_name": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Display Name"
+ },
+ "exchange_label": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Exchange Label"
+ },
+ "last_close": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Last Close"
+ },
+ "last_close_date": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Last Close Date"
+ },
+ "listing_slug": {
+ "title": "Listing Slug",
+ "type": "string"
+ },
+ "prev_close": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Prev Close"
+ },
+ "sector": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Sector"
+ },
+ "status": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Status"
+ },
+ "ticker": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Ticker"
+ }
+ },
+ "required": [
+ "listing_slug"
+ ],
+ "title": "Instrument",
+ "type": "object"
+ },
+ "InstrumentStats": {
+ "additionalProperties": true,
+ "description": "Buy-and-hold facts plus the six-axis character fingerprint.",
+ "properties": {
+ "asof_date": {
+ "title": "Asof Date",
+ "type": "string"
+ },
+ "cagr": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Cagr"
+ },
+ "fingerprint_axes": {
+ "default": null,
+ "title": "Fingerprint Axes"
+ },
+ "kaufman_er": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Kaufman Er"
+ },
+ "max_drawdown": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Max Drawdown"
+ },
+ "time_underwater_pct": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Time Underwater Pct"
+ },
+ "trend_share_pct": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Trend Share Pct"
+ },
+ "verdict": {
+ "default": null,
+ "title": "Verdict"
+ },
+ "volatility_pct": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Volatility Pct"
+ }
+ },
+ "required": [
+ "asof_date"
+ ],
+ "title": "InstrumentStats",
+ "type": "object"
+ }
+}
addedOutput schema / description
Added value: +"One response shape for both halves of the ``instrument`` tool.\n\nThe tool answers two questions behind one name - the catalog without\n``symbol``, one dossier with it - and the two payloads share no keys. The\nhonest type is a union, but the SDK wraps unions in ``{\"result\": ...}``,\nwhich would change what every existing client reads off the wire for a\npurely internal typing win. Splitting into two tools is the other clean\nanswer and was rejected for the same reason, plus one more: the published\nsurface is deliberately one tool per pillar.\n\nSo both groups live here as optional, and the discriminator is which group\nis populated: ``items`` for the catalog, ``listing_slug`` for the dossier.\nThat publishes every field name - the thing docstring-only fields could not\ndo - and accepts weaker per-field enforcement as the price of not moving\nthe wire."
addedOutput schema / properties
Added value: +{
+ "asset_class": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Asset Class"
+ },
+ "currency": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Currency"
+ },
+ "display_name": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Display Name"
+ },
+ "exchange_label": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Exchange Label"
+ },
+ "items": {
+ "anyOf": [
+ {
+ "items": {
+ "$ref": "#/$defs/Instrument"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Items"
+ },
+ "last_close": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Last Close"
+ },
+ "last_close_date": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Last Close Date"
+ },
+ "limit": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Limit"
+ },
+ "listing_slug": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Listing Slug"
+ },
+ "offset": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Offset"
+ },
+ "prev_close": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Prev Close"
+ },
+ "sector": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Sector"
+ },
+ "stats": {
+ "anyOf": [
+ {
+ "$ref": "#/$defs/InstrumentStats"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null
+ },
+ "status": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Status"
+ },
+ "ticker": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Ticker"
+ },
+ "total": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Total"
+ }
+}
changedOutput schema / title
Previous value: -"instrumentDictOutput"New value: +"InstrumentResult"