OneQAZ Trading Intelligence
Server Details
Verifiable crypto/KR/US market intelligence for AI agents: signals, hash-chained ledger. Not advice.
- Status
- Healthy
- Uptime
- 98.9% over 80 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- oneqaz-trading/oneqaz-trading-mcp
- GitHub Stars
- 0
- Server Listing
- oneqaz-trading-mcp
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 21 tools
The five '*_context' tools (symbol/group/market/macro/news) explicitly point at each other ('Not for a single stock (use get_symbol_context)'), which is best-practice disambiguation. Real overlap remains in clusters — get_signals vs get_symbol_context vs explain_decision all answer 'how does X look / why', and get_daily_brief overlaps get_market_context for 'how's crypto doing' — plus four accuracy surfaces (prediction_accuracy, signal_calibration, structure_calibration, performance_metrics) that differ only by layer.
18 of 21 tools follow a strict get_<noun> pattern (get_signals, get_symbol_context, get_prediction_accuracy, ...), which is highly predictable. Deviations are explain_decision (different verb) plus the connector-standard search/fetch pair, which are recognizable conventions rather than noise.
21 tools places this in the heavy band; while each maps to a distinct layer (signals, four context layers, prediction lifecycle, three calibration surfaces, ledger integrity, paper-trading performance, account), the surface feels layered-on rather than consolidated. Several calibration/accuracy tools could plausibly be one parameterized tool, so it lands borderline rather than well-scoped.
Coverage of the stated scope is strong: signal retrieval and explanation, entity context at symbol/group/market/macro/news levels, forecast lifecycle (active -> resolved -> accuracy -> hash-chain integrity), calibration at three levels, paper-trade history, performance metrics, and account state. Gaps are minor and partly deliberate exclusions — no symbol/universe browsing tool independent of get_system_card, no historical price or signal time-series retrieval, and no comparison-across-symbols operation.
Available Tools
21 toolsexplain_decisionExplain a DecisionARead-onlyIdempotentInspect
Call this when the user asks why a symbol's signal reads the way it does — a structured, multi-layer
"why" for one symbol; include=["history","feedback","roles"] adds signal history, pattern feedback and
the per-timeframe role view.
Purpose: Combines (1) technical score_trace from the signals store, (2) Thompson + regime
scores from the virtual decision log (Thompson = Bayesian bandit sampling used for
strategy selection), (3) news causality context.
Triggers (casual questions too): "why is BTC bullish?", "이 종목 신호 근거가 뭐야?",
"explain that signal", "판단 근거 설명해줘", "walk me through the reasoning",
"is BTC bullish across timeframes?", "시간대별 신호가 일치해?", "signal history for AAPL?".
When to call: when the user asks "why is this signal bullish/bearish?".
Prerequisites: identify the symbol via get_signals first.
Next steps: none (this completes the explanation chain).
Caveats: symbol must match the per-symbol signal store filename (lowercase).
Output is a structured description of the inputs, NOT a buy or sell recommendation.
Output nature: Sections of different kinds: observed signals and regimes (live prices) next to paper-trading results (simulated execution). See meta.data_type_sections.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Symbol to explain (e.g., btc, eth, 005930) | |
| include | No | Optional extra sections under `included`: history (latest combined signal + recent history), feedback (pattern feedback from paper-trade outcomes), roles (per-role multi-timeframe alignment: timing / trend / swing / regime). Default none = the explanation only. | |
| market_id | Yes | Market identifier (crypto, kr_stock, us_stock; aliases coin/kr/us) |
Output Schema
| Name | Required | Description |
|---|---|---|
| full_data | No | |
| timestamp | Yes | RFC3339 UTC, server build time |
| disclaimer | Yes | Canonical compliance disclaimer (always present) |
| request_id | Yes | 32-hex per-response correlation id |
| is_real_money | No | |
| data_classification | No | |
| is_investment_advice | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnly/idempotent annotations: warns that `symbol` must match the store filename, that output is a description of inputs and NOT a recommendation, and that sections mix live observed data with simulated paper-trading results flagged via meta.data_type_sections. That last caveat is exactly the kind of interpretive warning an agent could not infer from structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Labeled sections (Purpose / Triggers / When to call / Prerequisites / Next steps / Caveats / Output nature) make it scannable, and the core when-to-use line is front-loaded. It loses a point for redundancy: 'When to call' restates the trigger list, and the 'why is BTC bullish' style example appears twice.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, the description needn't explain return fields — yet it still characterizes the mixed live/simulated nature of the output, which the schema alone may not convey. Prerequisites, caveats, and scope are all covered for a three-parameter read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, so the include enum and market_id enum are documented in-schema; the description still adds the lowercase-filename constraint on `symbol` and restates the include values. Useful, but largely duplicative of the schema's own include description, keeping it below a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ('structured, multi-layer "why" for one symbol') and enumerates the three data sources it fuses (score_trace, Thompson/regime scores, news causality). An agent can distinguish it from get_signals or get_symbol_context without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to call ('why is this signal bullish/bearish?'), lists concrete trigger utterances including non-English ones, names a prerequisite ('identify the symbol via get_signals first'), and states next steps are none. This is about as complete a routing instruction as a description can give.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetchFetch DocumentARead-onlyIdempotentInspect
Purpose: ChatGPT-connector-standard document fetch by id from search results.
Namespaces: tool:{name} returns the tool's full documentation and how to
call it; resource:{uri} returns the resource's live data (core resources
resolved server-side — also the bridge for clients without MCP resource
support, e.g. Gemini); signal:{market}:{symbol} returns the symbol's
latest combined signal.
Triggers: ChatGPT connectors / Deep Research call this after search. Clients
without MCP resource support can call it directly with a known resource id,
e.g. fetch("resource:market://global/summary").
When to call: whenever the full content behind a search result id is needed.
Prerequisites: a valid id — from search results or a known namespace id.
Next steps: for tool docs, call the named tool via tools/call; for signals,
explain_decision for deeper evidence.
Caveats: uncovered resource uris return description-only text (no fabricated
data). text is a JSON document for resource/signal ids.
Output: {id, title, text, url, metadata, disclaimer, is_investment_advice,
data_classification} — flat envelope, OpenAI fixed shape.
Output nature: Observed signal state computed from live market prices each cycle. signal_score is an internal ranking score, not a probability; bias is its sign. Context for the user's question, not investment advice.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | document id — "tool:{name}", "resource:{uri}", or "signal:{market}:{symbol}" (market: crypto / kr_stock / us_stock) |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| url | No | |
| text | No | |
| title | No | |
| metadata | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/idempotent/closed-world, so the description doesn't need to argue safety; instead it adds real behavioral context — uncovered resource URIs return description-only text with no fabricated data, `text` is a JSON document for resource/signal ids, and the signal output is a live per-cycle observed state. It stops short of covering auth or rate-limit/pagination behavior, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Labeled sections (Purpose / Namespaces / Triggers / When to call / Prerequisites / Next steps / Caveats / Output) make it skimmable and front-loaded. It is on the long side and the trailing 'Output nature' paragraph drifts into investment-advice framing that is only loosely about fetching.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a multi-namespace dispatcher this covers the full calling lifecycle — what ids look like, where they come from, what happens on a miss, and where to go next — while an output schema already handles return-value detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is satisfied by the schema alone, but the description adds genuine meaning: the three namespace prefixes, the market enum values (crypto / kr_stock / us_stock), and a concrete call example fetch("resource:market://global/summary").
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening line states a specific verb and resource ('document fetch by id') and immediately scopes it to `search` results, distinguishing it from the `search` sibling. The namespace list (`tool:`, `resource:`, `signal:`) further pins down exactly what can be fetched.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit triggers ('ChatGPT connectors / Deep Research call this after `search`'), an explicit when-to-call rule, prerequisites (a valid id from search or a known namespace id), and next steps routing to tools/call or explain_decision. Alternatives are named rather than left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_statusAccount StatusARead-onlyIdempotentInspect
Purpose: Show which OneQAZ account (or API key) this connection uses, its plan and its rate limits. Requires a connected OneQAZ account — calling it without one prompts your AI app to connect (free, no API key needed; Pro users can use their key). All other tools work without an account. Triggers: "is my OneQAZ account connected?", "what plan am I on?", "내 OneQAZ 계정 상태", "남은 호출 한도". When to call: only when the user asks about their own account or limits. Output: full_data { principal (oauth|api_key), plan, usage {daily_limit, daily_used, minute_limit, ...}, account_id & connected_app (oauth only) }. Output nature: Service status and catalog information.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, it discloses important connection behavior: the tool requires a connected OneQAZ account, calling it without one prompts the AI app to connect, free use needs no API key, and Pro users can use their key. This is exactly the kind of auth and precondition context the annotations do not supply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and organized into Purpose, Triggers, When to call, Output, and Output nature. It is efficient overall, though the Output section duplicates detail already available in the output schema and 'Output nature' is somewhat vague.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the zero-parameter schema, existing output schema, and read-only annotations, the description is complete enough for correct invocation. It covers purpose, triggers, preconditions, and output shape without leaving material gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The empty input schema is fully consistent with the description, and there are no parameter semantics that need further explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: it shows which OneQAZ account or API key the connection uses, plus plan and rate limits. It also clearly distinguishes this from other tools by noting that all other tools work without an account, so an agent can identify it as the account-status tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit triggers such as 'is my OneQAZ account connected?' and 'what plan am I on?', and states 'When to call: only when the user asks about their own account or limits.' It also clarifies that other tools do not require an account, which helps route the agent away from this tool for non-account queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_active_predictionsActive PredictionsARead-onlyIdempotentInspect
Purpose: Currently pending predictions (outcome IS NULL). Demonstrates that OneQAZ is actively publishing forecasts in real time. Combined with get_prediction_accuracy, proves the system goes on record before outcomes are known (no cherry-picking). Triggers (casual questions too): "what are you predicting right now?", "지금 어떤 예측 걸려 있어?", "current forecasts?", "예측을 미리 기록해 두는 거야?", "anything on the record before it resolves?". When to call: to verify ongoing prediction activity. Prerequisites: none. Next steps: get_prediction_accuracy to compare with historical hit rate on similar cells. Caveats: returns most recent first. Output nature: Past calls and their realized outcomes, judged after the fact, with sample sizes and baselines. Past hit rates describe the past, not future outcomes.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max active predictions to return (default 20) | |
| target_market | No | Optional target market filter (coin_market, kr_market, us_market). Aliases coin/kr/us and any letter case are accepted. |
Output Schema
| Name | Required | Description |
|---|---|---|
| full_data | No | |
| timestamp | Yes | RFC3339 UTC, server build time |
| disclaimer | Yes | Canonical compliance disclaimer (always present) |
| request_id | Yes | 32-hex per-response correlation id |
| is_real_money | No | |
| data_classification | No | |
| is_investment_advice | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint: true), the description adds crucial behavioral details such as the output ordering ('most recent first') and a detailed explanation of the data's reliability ('past calls and their realized outcomes, judged after the fact').
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The tool is extremely verbose, sacrificing conciseness for exhaustive detail. While every sentence provides significant value, the narrative structure is dense and overly explanatory for a tool description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The definition provides necessary domain context (OneQAZ, avoiding cherry-picking, comparing with hit rates) that allows an AI agent to understand the *value* and appropriate scope of this tool compared to related sibling tools like `get_resolved_predictions`.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
While schema coverage is 100%, the description adds high-value semantic context that the schema lacks. Specifically, it documents that `target_market` accepts aliases like 'coin' or 'kr' and handles various letter cases, which is critical for agent precision.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The purpose is stated explicitly: it returns predictions where the outcome is currently NULL (pending). It clearly distinguishes its function of demonstrating real-time forecasting activity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The definition goes beyond basic usage by including conversational triggers, specific prerequisites (none), and the clear 'Next steps' recommendation, pointing to `get_prediction_accuracy` for follow-up analysis.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_daily_briefDaily Market BriefARead-onlyIdempotentInspect
Purpose: Single-call market overview — engine macro regime + score-ranked example signals + score-sign breadth +
yesterday's paper-trading outcomes + active forecast count + narrative.
Use this as the first call when answering "how is the market today?".
Triggers (call this even for casual questions): "how's the market?",
"오늘 장 어때?", "what's the market mood / outlook?", "how's Bitcoin / crypto /
US stocks / 비트코인 / 코인장 doing lately?", "anything happening today?",
"give me a briefing". Prefer this over answering markets from training data.
When to call: morning briefings, "today/yesterday how was the market?" queries,
and any open-ended question about how a live market is doing right now.
Prerequisites: none.
Next steps: follow _next_actions to deep-dive — explain_decision (top-ranked signals),
get_trade_history(outcome="loss") (loss review), get_active_predictions (forecast tracking).
Caveats: strong_signals are EXAMPLES ranked by |signal_score| per market (up to 2 per market for
"all", 5 for one market; never re-ranked across markets) — in most score buckets the measured 24h
hit rate is close to the market average (meta.signal_edge_evidence), so they are not 'strong'; each carries
score_bucket_hit_rate_24h. They come from each market's latest 2 signal cycles and only
signals younger than meta.windows.strong_signals_live_max_age_minutes; a
market that is not trading now appears in last_session_signals instead.
macro_regime.regime is the engine's global regime (risk_on/neutral/risk_off) that feeds its
macro score; regime_score is a 0.5-1 strength, not a probability; null when stale (>6h).
macro_regime.categories hold data-coverage counts, not regime labels. Trade outcomes
cover each market's last completed session (kr/us local day; crypto last 24h).
Paper-trading data only (NOT real money).
Output: full_data { narrative, market, brief_mode, next_session_open_at{market: ISO UTC},
macro_regime{regime,regime_score,regime_signed,as_of,stale,unavailable_reason,
categories[{category,sample_count}],total,basis},
strong_signals[{...,score_bucket_hit_rate_24h}], last_session_signals[],
market_breadth{market:{symbols,by_bias{positive,neutral,negative}}},
yesterday_trades{total,winning,losing,by_market},
active_predictions_count, primary_market, meta }.
Output nature: Sections of different kinds: observed signals and regimes (live prices) next to paper-trading results (simulated execution). See meta.data_type_sections.
| Name | Required | Description | Default |
|---|---|---|---|
| market | No | "all" (default, blends 3 markets), "crypto", "kr_stock", or "us_stock". Aliases coin/kr/us and any letter case are accepted. | all |
Output Schema
| Name | Required | Description |
|---|---|---|
| full_data | No | |
| timestamp | Yes | RFC3339 UTC, server build time |
| disclaimer | Yes | Canonical compliance disclaimer (always present) |
| request_id | Yes | 32-hex per-response correlation id |
| is_real_money | No | |
| data_classification | No | |
| is_investment_advice | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, closed-world, but the description adds substantial context they cannot carry: strong_signals are explicitly reframed as EXAMPLES whose measured 24h hit rate is near market average, staleness rules (regime_score null when stale >6h, signals older than meta.windows.strong_signals_live_max_age_minutes excluded, non-trading markets routed to last_session_signals), and the caveat that all trade data is paper trading, not real money. It also warns that the response mixes observed live data with simulated execution, which is exactly the kind of disclosure annotations are silent on.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is dense and long, but deliberately structured with labeled blocks (Purpose, Triggers, When to call, Prerequisites, Next steps, Caveats, Output) and the core purpose is front-loaded, so an agent can stop reading early. The one deduction is that the 'Output' block restates the full_data structure that the existing output schema already defines, which is low-value duplication.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool this is thoroughly complete: prerequisites, alternatives, next-step routing, staleness semantics, per-section interpretation traps (categories are coverage counts not regime labels; regime_score is strength not probability), and a note on the mixed data nature of the response. With an output schema present, it correctly focuses on interpretation rather than raw field shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single enum parameter is fully documented with its default, alias handling, and case-insensitivity in the schema itself. The description adds only indirect meaning — that 'all' blends three markets and that per-market signal caps differ (2 per market for 'all', 5 for one market) — which is a useful behavioral nuance but not a substitute for parameter documentation. Baseline 3 applies since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening line names a specific verb and resource — a single-call market overview — and enumerates exactly which components it bundles (macro regime, ranked example signals, breadth, paper-trade outcomes, forecast count, narrative). That enumeration also distinguishes it from siblings like get_macro_context or get_signals, which cover only one slice.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use guidance ('first call when answering how is the market today'), a trigger list including casual phrasings in two languages, an explicit preference over answering from training data, and a 'Next steps' block routing to specific siblings (explain_decision, get_trade_history, get_active_predictions). Prerequisites are stated as none, so nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_group_contextGroup ContextARead-onlyIdempotentInspect
Use when the question is about a sector, theme, ETF basket or index basket — its structure state and its members. Returns headline claims, the group's regime state per interval, its market, groups that co-move with it, member symbols with their latest signal bias, symbols the basket leads, and gaps. Not for a single stock (use get_symbol_context) or a whole market (use get_market_context). Provides regime, signal-score and linkage context with sample sizes and measured hit rates; every link carries its evidence and every empty section is listed in gaps. Not a real-time quote, fundamentals, or full-text news source. Output nature: Self-contained context for one entity: observed state, tracked links with their evidence and sample sizes, and explicit gaps. Not investment advice.
| Name | Required | Description | Default |
|---|---|---|---|
| group | Yes | OneQAZ structure group id (kr_semiconductor, technology, broad_index), a sector word (반도체, energy) or an ETF ticker that belongs to a group (QQQ). | |
| limit | No | Max links per section (default 8, max 50; members default 10). | |
| question | No | Optional. The user's original question, used only for service improvement analytics. Does not change the response. Do not include personal information. | |
| market_id | No | Optional. crypto / kr_stock / us_stock (aliases coin/kr/us). Group ids repeat across markets. |
Output Schema
| Name | Required | Description |
|---|---|---|
| gaps | No | |
| meta | No | |
| news | No | |
| self | No | |
| peers | No | |
| entity | No | |
| headline | No | |
| upstream | No | |
| timestamp | Yes | RFC3339 UTC, server build time |
| disclaimer | Yes | Canonical compliance disclaimer (always present) |
| downstream | No | |
| request_id | Yes | 32-hex per-response correlation id |
| resolution | No | |
| data_classification | No | |
| is_investment_advice | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only and idempotent behavior, but the description adds substantial context beyond them: it lists returned sections, sample sizes, measured hit rates, evidence attached to every link, gaps for empty sections, and exclusions such as not a real-time quote, fundamentals, or full-text news source.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with usage guidance and is generally efficient. It has some repetition between 'Returns...', 'Provides...', and 'Output nature...', but every sentence still contributes to scope or expectations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich schema, annotations, and existing output schema, the description is complete enough for correct invocation: it covers purpose, scope, alternatives, exclusions, and the nature of the response without needing to explain return schema fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents group, limit, question, and market_id. The description provides examples of acceptable group concepts but adds no syntax or constraints beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource and scope: sector, theme, ETF basket, or index basket structure state and members. It explicitly distinguishes itself from get_symbol_context for a single stock and get_market_context for a whole market, so an agent can select it without opening sibling schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use guidance ('Use when the question is about a sector, theme, ETF basket or index basket') and clear when-not-to-use alternatives ('Not for a single stock (use get_symbol_context) or a whole market (use get_market_context)').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ledger_integrityPrediction Ledger IntegrityARead-onlyIdempotentInspect
Purpose: Tamper-evidence for the prediction ledger — a daily SHA-256 hash chain over all created/resolved prediction rows, with the exact canonical recipe published so any third party can recompute and verify. Archive a chain_hash today; if history is ever silently edited, recomputation will not match. Triggers: "how do I know these predictions weren't backfilled?", "is the track record tamper-proof?", "예측 조작 안 했다는 증거 있어?", "verify ledger integrity". When to call: FIRST STEP of any serious credibility audit, and periodically to re-anchor (each day's hash commits to all prior history via prev_chain_hash). Prerequisites: none. Raw rows for recomputation: get_resolved_predictions. Next steps: get_resolved_predictions (fetch a day's raw rows, recompute its hash). Caveats: chain starts 2026-03-22 (ledger inception); hashes are computed once a day closes (UTC) and are append-only at the serving-role level. Output: full_data { recipe_version, recipe, chain_length, first_day, last_day, entries[] {day, created_count, resolved_count, created_hash, resolved_hash, prev_chain_hash, chain_hash, computed_at}, verification_hint }. Output nature: Past calls and their realized outcomes, judged after the fact, with sample sizes and baselines. Past hit rates describe the past, not future outcomes.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | how many most-recent chain entries to return (max 400) |
Output Schema
| Name | Required | Description |
|---|---|---|
| full_data | No | |
| timestamp | Yes | RFC3339 UTC, server build time |
| disclaimer | Yes | Canonical compliance disclaimer (always present) |
| request_id | Yes | 32-hex per-response correlation id |
| is_real_money | No | |
| data_classification | No | |
| is_investment_advice | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnly/idempotent/openWorld annotations: discloses that the chain begins 2026-03-22, that hashes are computed once per UTC day close, that entries are append-only at the serving-role level, and the failure semantics of recomputation (a mismatch reveals silent edits). This is exactly the behavioral context annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Labeled sections (Purpose/Triggers/When to call/Prerequisites/Next steps/Caveats) make it front-loaded and scannable, but the explicit field-by-field enumeration of full_data duplicates the existing output schema, and the trailing 'Output nature' sentence about past hit rates and sample sizes reads as template boilerplate that does not apply to a hash-chain integrity tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an audit/verification tool this is complete: chain inception date, computation cadence, immutability guarantees, the companion tool for recomputation, and the verification workflow are all stated. The output schema handles return-value structure, so nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single 'days' parameter is documented in the schema with its max of 400. The description does not add syntax, default, or interpretation guidance for it beyond noting that each entry commits to all prior history. Baseline 3 applies when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: a daily SHA-256 hash chain providing tamper-evidence over prediction ledger rows, with the canonical recipe published for third-party recomputation. This is clearly distinct from sibling tools like get_resolved_predictions (raw rows) and get_prediction_accuracy (hit rates).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit triggers in multiple phrasings, a named ordering rule ('FIRST STEP of any serious credibility audit'), a periodic re-anchor rationale, an explicit alternative for raw rows (get_resolved_predictions), and stated prerequisites (none). When-to-use, when-else, and next steps are all covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_macro_contextMacro ContextARead-onlyIdempotentInspect
Use when the question is about a macro factor — rates and bonds, the dollar and FX, VIX, credit, liquidity, inflation, commodities or energy — and which markets or stocks it is linked to. Returns headline claims, the macro category's regime state per interval and its instruments, macro categories with tracked lead-lag links to it, the markets the engine assumes it affects (tuned priors), symbols its instruments lead, topic-tagged news, and gaps. Not for one stock (use get_symbol_context) or a whole market (use get_market_context). Provides regime, signal-score and linkage context with sample sizes and measured hit rates; every link carries its evidence and every empty section is listed in gaps. Not a real-time quote, fundamentals, or full-text news source. Output nature: Self-contained context for one entity: observed state, tracked links with their evidence and sample sizes, and explicit gaps. Not investment advice.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max links per section (default 8, max 50). | |
| macro | Yes | Macro category id (bonds, commodities, credit, energy, forex, inflation, liquidity, vix), a macro word (금리, 달러, 유가, 변동성, high yield) or an instrument (^VIX, HYG, DX-Y.NYB). | |
| question | No | Optional. The user's original question, used only for service improvement analytics. Does not change the response. Do not include personal information. |
Output Schema
| Name | Required | Description |
|---|---|---|
| gaps | No | |
| meta | No | |
| news | No | |
| self | No | |
| peers | No | |
| entity | No | |
| headline | No | |
| upstream | No | |
| timestamp | Yes | RFC3339 UTC, server build time |
| disclaimer | Yes | Canonical compliance disclaimer (always present) |
| downstream | No | |
| request_id | Yes | 32-hex per-response correlation id |
| resolution | No | |
| data_classification | No | |
| is_investment_advice | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, closed-world), so the description is free to add semantics and does: regime state per interval, tuned priors, lead-lag links with evidence, sample sizes and measured hit rates, and the guarantee that empty sections appear in `gaps`. It also flags that 'tuned priors' are engine assumptions rather than observed facts, which is exactly the kind of caveat annotations can't express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The trigger condition is front-loaded and the not-for clauses land before the return inventory, so the important routing information is never buried. It is dense and somewhat run-on, packing the entire return surface into one long sentence, but little of it is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a rich, multi-section context tool, yet the description names every section an agent will encounter, sets expectations about evidence/sample sizes and gaps, and delimits the non-goals. With an output schema present it doesn't need to spell out return values, so nothing material is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains `macro` (category id, macro word, or instrument), `limit`, and the analytics-only `question` param. The description adds no parameter-level detail beyond that, which meets the baseline-3 expectation when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource and enumerates the macro domains it covers (rates, FX, VIX, credit, liquidity, inflation, commodities, energy), then lists exactly what the response contains. It explicitly distinguishes itself from get_symbol_context and get_market_context, and rules out real-time quotes, fundamentals, and full-text news — an agent can place it precisely among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use when the question is about a macro factor ... and which markets or stocks it is linked to" gives an explicit trigger condition, and "Not for one stock (use get_symbol_context) or a whole market (use get_market_context)" names both exclusions and the correct alternatives. Nothing about routing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_contextMarket ContextARead-onlyIdempotentInspect
Use when the question is about a whole market (KR, US, CRYPTO) — its structure regime and how its groups are positioned. Returns headline claims, the market's structure and global macro regime, the macro categories assumed to affect it (with tuned lags), its groups ordered by distance from the middle regime stage, market-tagged news, and gaps. Not for one sector or stock (use get_group_context or get_symbol_context). Provides regime, signal-score and linkage context with sample sizes and measured hit rates; every link carries its evidence and every empty section is listed in gaps. Not a real-time quote, fundamentals, or full-text news source. Output nature: Self-contained context for one entity: observed state, tracked links with their evidence and sample sizes, and explicit gaps. Not investment advice.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max links per section (default 8, max 50). | |
| market | Yes | crypto / kr_stock / us_stock, or a market word (KR, 국장, 코스피, US, 미장, 나스닥, 코인). | |
| question | No | Optional. The user's original question, used only for service improvement analytics. Does not change the response. Do not include personal information. |
Output Schema
| Name | Required | Description |
|---|---|---|
| gaps | No | |
| meta | No | |
| news | No | |
| self | No | |
| peers | No | |
| entity | No | |
| headline | No | |
| upstream | No | |
| timestamp | Yes | RFC3339 UTC, server build time |
| disclaimer | Yes | Canonical compliance disclaimer (always present) |
| downstream | No | |
| request_id | Yes | 32-hex per-response correlation id |
| resolution | No | |
| data_classification | No | |
| is_investment_advice | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/closed-world, and the description still adds substantive context: sections returned (headline claims, structure regime, macro categories with tuned lags, groups ordered by distance, market news, gaps), evidence quality (sample sizes, measured hit rates, per-link evidence), and explicit gaps listing. It also sets expectations about staleness and non-advice, neither of which is in the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the trigger condition and sibling routing, then boundary statements, which is the right order. It is a bit long and the 'output nature' sentence partly duplicates earlier statements about evidence and gaps, so not quite maximally tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema already defines return shape and annotations cover safety, the description fills the remaining agent-relevant gaps: scope, alternatives, content sections, evidence quality, explicit gaps, and non-advice framing. Nothing needed to call or interpret this tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so limit, market, and question are fully documented by the schema; the description only echoes the market values (KR, US, CRYPTO). Baseline 3 is appropriate since the schema does the heavy lifting and the description adds no syntax or format detail beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific scope (whole market: KR, US, CRYPTO), what it returns conceptually (structure regime, group positioning), and explicitly names the sibling tools for narrower scopes (get_group_context, get_symbol_context). An agent can route between these three without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Opens with an explicit when-to-use condition ('when the question is about a whole market'), names the alternatives for sector/stock questions, and adds negative boundaries ('Not a real-time quote, fundamentals, or full-text news source'). Both positive and negative selection criteria are present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_news_contextNews ContextARead-onlyIdempotentInspect
Use when the question is about a specific news item or a news keyword or event (FOMC, 반도체, tariff) — which markets, symbols and topics it is tagged with. Returns headline claims, the item (or keyword match counts), its title-similarity cluster, the market, symbol and topic tags assigned by the collection pipeline (counted across matches for a keyword), the matching items, and gaps. Not for market impact estimates or article text (tags are pipeline rules, not measured impact). Provides regime, signal-score and linkage context with sample sizes and measured hit rates; every link carries its evidence and every empty section is listed in gaps. Not a real-time quote, fundamentals, or full-text news source. Output nature: Self-contained context for one entity: observed state, tracked links with their evidence and sample sizes, and explicit gaps. Not investment advice.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Keyword window in days (default 7, max 14). Ignored for a news id. | |
| news | Yes | A news id from another response (news:…) or a keyword of 2-60 characters matched against news titles (original and English). | |
| limit | No | Max links per section (default 8, max 50). | |
| question | No | Optional. The user's original question, used only for service improvement analytics. Does not change the response. Do not include personal information. |
Output Schema
| Name | Required | Description |
|---|---|---|
| gaps | No | |
| meta | No | |
| news | No | |
| self | No | |
| peers | No | |
| entity | No | |
| headline | No | |
| upstream | No | |
| timestamp | Yes | RFC3339 UTC, server build time |
| disclaimer | Yes | Canonical compliance disclaimer (always present) |
| downstream | No | |
| request_id | Yes | 32-hex per-response correlation id |
| resolution | No | |
| data_classification | No | |
| is_investment_advice | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds real interpretive context beyond annotations: tags come from pipeline rules and are not measured impact, every link carries its evidence and sample size, empty sections are surfaced in gaps, and the `question` parameter explicitly does not change the response. That last disclosure is especially useful because it prevents pointless attempts to steer the output. Missing: any sense of latency, size limits of the response, or what happens when a keyword returns zero matches.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Correctly front-loads the 'Use when' trigger, but then sprawls across three long sentences with a separate 'Output nature' block that largely restates the return descriptions. Impact caveats are repeated three times ('Not for market impact estimates', 'tags are pipeline rules, not measured impact', 'Not investment advice'), which is redundant given an output schema already covers returns.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Parameters are fully covered by schema and return values by the output schema, and the description still supplies the interpretive caveat an agent needs (tag provenance, gaps disclosure). Only small gaps remain around failure modes for a no-match keyword or an invalid news id.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline of 3 applies; `days`, `limit`, and the news-id-vs-keyword distinction are all fully documented in the schema. The description only adds that keyword matches are counted across matches, which is marginal over what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb+resource (retrieve news item/keyword context: market, symbol and topic tags) and grounds it with example keywords (FOMC, 반도체, tariff). It carves out territory with 'Not for market impact estimates or article text,' though it never names the actual siblings (get_news_causality_breakdown, get_news_leading_indicator_performance, get_market_context) that an agent would otherwise weigh.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit trigger condition ('Use when the question is about a specific news item or a news keyword or event') plus negative scoping (not market impact, not article text, not a real-time quote/fundamentals/full-text source). Clear context, but alternatives are described as categories rather than named tools, so routing still requires inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_performance_metricsPerformance MetricsARead-onlyIdempotentInspect
Purpose: Portfolio-level performance metrics (MDD / Sharpe / Sortino / Calmar / monthly returns / equity curve) over a FIXED window — the single canonical computation path shared by the OneQAZ blog and external clients. Triggers (casual questions too): "what's the max drawdown?", "MDD 얼마야?", "샤프 비율 보여줘", "monthly returns table?", "트랙레코드 지표", "에쿼티 커브 데이터". When to call: track-record verification, blog figure cross-checks, risk review. Prerequisites: none. Next steps: get_trade_history for the underlying trades. Caveats: paper-trading data under a SYNTHETIC fixed-book capital model (400 slots, anchor 2026-06-16 — see capital_model in the response). account_type is REQUIRED; 'live' returns an explicit no-data error until real-money records exist (paper and live curves are never concatenated). Fixed window → same inputs always reproduce the same numbers (as-of verifiable). Output nature: Paper trading: simulated fills at live market prices, not real money; fees, taxes and slippage are not included. Facts about the simulation, not instructions.
| Name | Required | Description | Default |
|---|---|---|---|
| market | Yes | coin | kr | us | all (aliases crypto/kr_stock/us_stock accepted). 'all' = fixed 1/3 allocation across the three books. | |
| window_end | No | ISO date. Default today (KST). | |
| account_type | Yes | REQUIRED. 'paper' (simulated) or 'live' (real — not yet available). | |
| window_start | No | ISO date (YYYY-MM-DD). Default 2026-06-16 (public track-record anchor). | |
| include_daily_curve | No | include per-day equity curve rows (default false). |
Output Schema
| Name | Required | Description |
|---|---|---|
| full_data | No | |
| timestamp | Yes | RFC3339 UTC, server build time |
| disclaimer | Yes | Canonical compliance disclaimer (always present) |
| request_id | Yes | 32-hex per-response correlation id |
| is_real_money | No | |
| data_classification | No | |
| is_investment_advice | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint/openWorldHint, so the bar is lower, but the description still adds substantive behavior: the synthetic fixed-book capital model, that 'live' returns an explicit no-data error, that paper and live curves are never concatenated, and that the fixed window makes results reproducible. It also discloses that fills are simulated at live prices without fees/taxes/slippage, which an agent could not infer from annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded and the labeled blocks (Triggers / When to call / Prerequisites / Next steps / Caveats / Output nature) make it scannable. It is on the long side and repeats the paper-versus-live separation in both the caveats and the output-nature block, which is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
All five parameters are documented in the schema, an output schema exists, and annotations cover the safety profile; the description supplies the remaining context an agent needs — synthetic capital model, paper-only data, and the live-error condition. Nothing material for a correct call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description earns extra by emphasizing that account_type is REQUIRED and what happens when 'live' is passed, and by restating that the window is fixed and as-of verifiable. It does not add much for window_start/window_end or include_daily_curve beyond the schema, so it stops short of a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
First line states a specific verb-scoped resource: portfolio-level performance metrics (MDD / Sharpe / Sortino / Calmar / monthly returns / equity curve) over a FIXED window, plus its role as the canonical computation path. This is clearly distinguishable from siblings such as get_trade_history, which is explicitly named later as the route to underlying trades.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It enumerates concrete trigger phrasings (including non-English ones), names when-to-call scenarios (track-record verification, blog figure cross-checks, risk review), states 'Prerequisites: none', and directs the agent to get_trade_history as the next step. Explicit routing plus trigger examples is the top of the scale.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_prediction_accuracyPrediction AccuracyARead-onlyIdempotentInspect
Call this first when judging how OneQAZ's macro calls have held up — per-cell hit rates with honest baselines; granularity="monthly" for the month-by-month trend. Purpose: Per-cell (category, target_market, lag_bucket) hit rates WITH the honest baselines (schema 1.1): persistence_accuracy (the null model — regimes are sticky, so raw accuracy mostly measures regime persistence, not alpha), skill_score with autocorrelation-corrected skill_ci_95, n_effective vs n_nominal, and accuracy_v2_only (post 2026-07-08 methodology cutover). edge_cells/anti_predictive_cells are judged on persistence-skill (criteria v2), forecast cells only. Triggers (casual questions too): "how accurate are your predictions?", "예측 잘 맞아?", "track record 있어?", "can I trust these forecasts?", "적중률 보여줘", "does macro actually predict these markets?". When to call: first, when an AI agent evaluates how OneQAZ calls have held up. Prerequisites: none. Next steps: get_ledger_integrity (tamper-evidence for these numbers), granularity="monthly" (time series), get_signal_calibration (Level-1 signal confidence reliability). Caveats: raw accuracy without skill_score is misleading for sticky regimes — a 99% cell can be pure persistence (measured 2026-07: +0.05pp over null). Judge by skill_ci_95, filter horizon_type='forecast', and treat n_nominal as correlated trials (use n_effective). Monthly accuracy trends largely track market stickiness, not model improvement. Output nature: Past calls and their realized outcomes, judged after the fact, with sample sizes and baselines. Past hit rates describe the past, not future outcomes.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of cells to return (response carries total/returned/truncated). | |
| compact | No | Compact view (default true): per cell only the baselined hit-rate object plus lifecycle and skill; methodology, known_biases and ledger_health become pointers. false returns every field. | |
| category | No | Optional macro category filter (bonds, forex, vix, commodities, credit, liquidity, inflation, energy) | |
| granularity | No | cell (default) = per-cell hit rates with baselines; monthly = monthly accuracy time series per (category, target_market, lag_bucket) — compact / forecast_only / limit do not apply. | cell |
| forecast_only | No | Only forecast cells (exclude nowcast). Default false. | |
| target_market | No | Optional target market filter (coin_market, kr_market, us_market). Aliases coin/kr/us and any letter case are accepted. |
Output Schema
| Name | Required | Description |
|---|---|---|
| full_data | No | |
| timestamp | Yes | RFC3339 UTC, server build time |
| disclaimer | Yes | Canonical compliance disclaimer (always present) |
| request_id | Yes | 32-hex per-response correlation id |
| is_real_money | No | |
| data_classification | No | |
| is_investment_advice | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/closed-world, yet the description adds substantive behavioral context: that raw accuracy mostly measures regime persistence, that a 99% cell can be pure persistence (+0.05pp over null), the 2026-07-08 methodology cutover behind accuracy_v2_only, and that n_nominal should be treated as correlated trials. It also closes with an 'output nature' statement framing results as retrospective.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded and information-dense, but padded by restatement: 'Call this first when judging how OneQAZ's macro calls have held up' is repeated almost verbatim under 'When to call'. The stitched multi-section layout with wrapped lines makes it longer than the payload warrants.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the description still covers the interpretive caveats an agent needs (skill_ci_95 judging, n_effective, persistence baselines, monthly trend caveat). Nothing required to call this correctly on a 6-parameter, zero-required tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 real meaning: granularity="monthly" is called out twice and correctly noted as overriding compact/limit. One flaw: it advises 'filter horizon_type=\'forecast\'' whereas the actual parameter is the boolean forecast_only, a slight parameter-naming mismatch.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: per-cell (category, target_market, lag_bucket) hit rates with honest baselines, plus a monthly time-series mode. It explicitly distinguishes itself from siblings get_ledger_integrity (tamper evidence) and get_signal_calibration (Level-1 signal reliability), so an agent can route correctly without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-call ('first, when an AI agent evaluates how OneQAZ calls have held up'), prerequisites ('none'), concrete natural-language triggers including Korean phrasings, and named next steps to alternatives. This is about as complete a routing block as a tool description can carry.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_resolved_predictionsResolved PredictionsARead-onlyIdempotentInspect
Purpose: Raw, row-level prediction ledger — every macro regime prediction's full lifecycle (created_at -> resolved_at -> outcome). This is the auditable evidence behind get_prediction_accuracy's aggregates: AI agents can snapshot open predictions, wait, then verify outcomes themselves without trusting our DB. Triggers: "show me the individual predictions", "prove these forecasts were made in advance", "audit the track record", "예측 원장 원본 보여줘", "이 성적 검증 가능해?". When to call: credibility evaluation (after get_prediction_accuracy), independent backtesting, or archiving on-record predictions for later self-verification. Prerequisites: none. Pairs with get_ledger_integrity for tamper-evidence. Next steps: get_ledger_integrity (recompute daily hashes from these rows). Caveats: cursor pagination (id-ordered) — follow next_cursor for bulk reads. Paper-research forecasts, not investment advice. Output: full_data { predictions[] {id, source_category, source_regime_change, target_market, predicted_regime_shift, lag_hours, confidence, created_at, resolved_at, outcome, actual_regime_shift}, count, next_cursor, has_more, meta }. Output nature: Past calls and their realized outcomes, judged after the fact, with sample sizes and baselines. Past hit rates describe the past, not future outcomes.
| Name | Required | Description | Default |
|---|---|---|---|
| day | No | filter by created day "YYYY-MM-DD" (UTC, string prefix of created_at) | |
| limit | No | page size (max 500) | |
| cursor | No | last id from previous page (0 = start) | |
| status | No | "all" | "resolved" | "open" | all |
| target_market | No | filter e.g. "coin_market" / "kr_market" / "us_market". Aliases coin/kr/us and any letter case are accepted. | |
| source_category | No | filter e.g. "vix", "bonds", "commodities" |
Output Schema
| Name | Required | Description |
|---|---|---|
| full_data | No | |
| timestamp | Yes | RFC3339 UTC, server build time |
| disclaimer | Yes | Canonical compliance disclaimer (always present) |
| request_id | Yes | 32-hex per-response correlation id |
| is_real_money | No | |
| data_classification | No | |
| is_investment_advice | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/closed-world, so the description earns credit for adding real context: cursor pagination is id-ordered and bulk reads require following next_cursor, plus the caveat that these are paper-research forecasts rather than advice. It stops short of stating volume expectations or auth/quota constraints, which would push it to a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with Purpose and tightly labeled sections (Triggers, When to call, Prerequisites, Next steps, Caveats) that make scanning easy. It loses a point because the Output block enumerates every field of a response that already has an output schema, which is redundant text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Six optional parameters, an output schema, and rich annotations are all accounted for; the description supplies the audit/provenance framing, pagination handling, and the interpretive caveat about past hit rates. Nothing an agent needs in order to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — day, limit, cursor, status, target_market, and source_category are all documented inline, including alias handling for target_market. The description adds only the id-ordered cursor mechanic and a partial field listing from the output, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — a raw row-level prediction ledger covering each prediction's full lifecycle (created_at -> resolved_at -> outcome) — and explicitly positions it as the row-level evidence underneath get_prediction_accuracy's aggregates. An agent can distinguish it from the aggregate sibling without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit triggers (quoted user phrasings, including Korean), a 'When to call' list, a sequencing note (after get_prediction_accuracy), and a next step (get_ledger_integrity). The gap is the closest sibling: get_active_predictions overlaps heavily with status="open" here, and the description never tells the agent which to prefer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_signal_calibrationSignal CalibrationARead-onlyIdempotentInspect
Purpose: Reliability diagram data for Level-1 signal confidence — realized hit rate per confidence bucket ([0.5,0.6) ... [0.9,1.0]) with ECE summary. Lets an agent verify whether a 0.9-confidence signal actually hits ~90%. Triggers (casual questions too): "is your confidence calibrated?", "confidence 0.9 믿어도 돼?", "시그널 확신도 실제 적중률 보여줘", "how reliable are signal confidences?". When to call: before trusting get_signals confidence values as probabilities. Prerequisites: none. Next steps: get_prediction_accuracy (macro-layer skill), get_signals. Caveats: snapshot is daily (per-market day; markets[].stale flags a lagging market); read the observation window from markets[].observation_window_utc; every interval is judged 30 minutes after the signal (meta.judgment_horizon); n is nominal (correlated trials — see meta.sample_caveat); read intervals[*].quality.status before citing a cell (withheld / degenerate / non_monotone) and cite all_intervals_excluding_withheld, not all_intervals. Output nature: Past calls and their realized outcomes, judged after the fact, with sample sizes and baselines. Past hit rates describe the past, not future outcomes.
| Name | Required | Description | Default |
|---|---|---|---|
| variant | No | "v1" (raw heuristic confidence, default) or "v2" (outcome-based shadow confidence — RCA C2, accumulating since 2026-07-21) | v1 |
| interval | No | Optional candle interval filter (e.g. 15m, 30m, 240m, 1d) | |
| market_id | No | Optional filter (crypto | kr_stock | us_stock) |
Output Schema
| Name | Required | Description |
|---|---|---|
| full_data | No | |
| timestamp | Yes | RFC3339 UTC, server build time |
| disclaimer | Yes | Canonical compliance disclaimer (always present) |
| request_id | Yes | 32-hex per-response correlation id |
| is_real_money | No | |
| data_classification | No | |
| is_investment_advice | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint=false, and the description goes well beyond them by disclosing the daily snapshot cadence, per-market staleness flags, the 30-minute judgment horizon, the correlated-trials caveat on n, and which quality.status values (withheld/degenerate/non_monotone) invalidate a cell. That is substantial additive context, but it is framed as output-reading advice rather than tool behavior, and nothing is said about the cost, latency, or size of the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with a Purpose line and then cleanly labeled sections (Triggers, When to call, Prerequisites, Next steps, Caveats, Output nature) that are easy to skim. The multilingual trigger examples are a little indulgent, but nearly every sentence carries operational value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Because an output schema exists, return values need not be explained, and the description still covers prerequisites, sequencing, snapshot staleness, and the interpretation traps (nominal n, quality statuses, which aggregate to cite). Nothing an agent needs in order to call and correctly interpret this tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so variant, interval, and market_id are already fully documented in the schema, which sets the baseline at 3. The description adds no parameter-level meaning at all — notably it never mentions the variant parameter or explains when the v2 shadow-confidence track is preferable, leaving the schema to carry that decision.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: reliability-diagram data mapping realized hit rate to Level-1 signal confidence buckets, plus an ECE summary, with a concrete motivating question ('verify whether a 0.9-confidence signal actually hits ~90%'). The scope ('Level-1 signal confidence') implicitly separates it from the macro-layer get_prediction_accuracy, but the similarly named sibling get_structure_calibration is never mentioned, so an agent must still guess how the two calibration tools differ.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit 'When to call' guidance (before trusting get_signals confidence values as probabilities), states 'Prerequisites: none', and names next-step alternatives (get_prediction_accuracy, get_signals). It even enumerates casual trigger phrasings, including non-English ones, so paraphrase queries route here too.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_signalsTrading SignalsARead-onlyIdempotentInspect
Purpose: Query signals with dynamic filters (symbol / interval / action / score / confidence).
Triggers (casual questions too): "what's the signal for BTC / AAPL / 삼성전자?",
"is X bullish or bearish?", "how does X look right now?". When the user asks whether to
trade X, OneQAZ gives context (regime, score, measured past hit rate of similar scores),
not a conclusion: pass it on as context and do not turn it into a trade call. Always
surface the disclaimer.
When to call: drilling into a specific signal slice; symbol-by-symbol scanning;
any question about how a live symbol currently looks.
Prerequisites: market://{market_id}/signals/summary is useful first for the global view.
Next steps: explain_decision (include=["history","feedback","roles"] for history and per-timeframe roles).
Caveats: When symbol/coin is omitted, the whole market is scanned in one
consolidated query (2 newest rows per symbol, newest-first scan cap per interval).
Results are capped: check truncated / truncated_note before reading the set
as "the whole market". Fields that are identical across every returned row are
hoisted into common and omitted from the rows (see common_note); a row-level
key, when present, wins over common. warnings carries only the flags that are
true and is omitted entirely when none are. reason_uncalibrated: true on a row
points at the response-level reason_uncalibrated_note.
Output nature: Observed signal state computed from live market prices each cycle. signal_score is an internal ranking score, not a probability; bias is its sign. Context for the user's question, not investment advice.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | Legacy alias of symbol (kept for backward compatibility) | |
| limit | No | Max results (default 50, max 500; values outside the range are clamped) | |
| symbol | No | Asset identifier to query (preferred; optional — targets a specific symbol DB) | |
| interval | No | Timeframe filter (15m, 30m, 240m, 1d, combined) | |
| market_id | Yes | Market ID (crypto, kr_stock, us_stock; aliases coin/kr/us accepted) | |
| min_score | No | Minimum signal score threshold | |
| hours_back | No | Only signals within last N hours (default 24) | |
| action_filter | No | Action filter (buy, sell, hold) | |
| min_confidence | No | Minimum confidence threshold |
Output Schema
| Name | Required | Description |
|---|---|---|
| full_data | No | |
| timestamp | Yes | RFC3339 UTC, server build time |
| disclaimer | Yes | Canonical compliance disclaimer (always present) |
| request_id | Yes | 32-hex per-response correlation id |
| is_real_money | No | |
| data_classification | No | |
| is_investment_advice | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/closed-world, and the description goes well beyond them: consolidated whole-market scan when symbol is omitted, cap behavior with truncated/truncated_note, hoisting of identical fields into `common` with row-level precedence, warnings omission, and reason_uncalibrated noting. It also states the framing obligation (pass results as context, never a trade call, always surface disclaimer), which is behavior no annotation conveys.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with labeled sections (Purpose / Triggers / When to call / Prerequisites / Next steps / Caveats / Output nature), so an agent can scan quickly. It is dense and somewhat long, with quoted example questions and some restatement of schema details (coin as legacy alias), but almost every sentence carries operational value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists so return structure need not be described, yet the description still covers the response-level quirks (common hoisting, truncated flags, warnings, reason_uncalibrated), required parameter semantics, prerequisites, and follow-up tools. Nothing an agent needs to interpret or correctly call this 9-parameter tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3; the description still adds meaning by explaining that omitting symbol/coin triggers a whole-market consolidated scan and that signal_score is an internal ranking score (bias is its sign), not a probability. Remaining parameters (min_score, min_confidence, limit) are left to the schema, so it is not fully additive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with an explicit verb+resource plus the exact filter dimensions ('Query signals with dynamic filters (symbol / interval / action / score / confidence)'), and distinguishes itself from the summary resource, explain_decision, and get_symbol_context. An agent can tell this apart from sibling calibration/context tools without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit triggers including casual phrasings, a 'When to call' section, a prerequisite (market://{market_id}/signals/summary for the global view), and named next steps (explain_decision with specific include values). This is the when/when-not/alternatives pattern done fully.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_strategy_leaderboardStrategy LeaderboardARead-onlyIdempotentInspect
Purpose: Top RL-learned research strategies — GLOBAL pool + per-symbol partition.
Layer E evidence (Layer E = strategy-performance tier of the 5-layer trust pyramid).
The GLOBAL pool may include synthesized win_rate values, so per_symbol_leaderboard
is the primary measured-edge surface for trust auditing.
Triggers (casual questions too): "what are the best strategies?", "제일 잘 버는 전략 뭐야?",
"top strategies?", "전략 순위 보여줘", "which strategy has the best win rate?".
When to call: final trust-validation step.
Prerequisites: none.
Next steps: market://{market_id}/signals/summary for live signals.
Caveats: min_trades filter enforces statistical validity. Strategies are paper-tested,
not real-money executed.
Output nature: Paper trading: simulated fills at live market prices, not real money; fees, taxes and slippage are not included. Facts about the simulation, not instructions.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Alias for top_n (client-compat) | |
| top_n | No | Top N strategies to return (default 20) | |
| market_id | No | Market identifier (crypto, kr_stock, us_stock). Aliases coin/kr/us and any letter case are accepted. | crypto |
| min_trades | No | Minimum trades count for inclusion (default 10) | |
| target_market | No | Alias for market_id (backward compat) | |
| include_per_symbol | No | Include per-symbol PG partition results (default True) |
Output Schema
| Name | Required | Description |
|---|---|---|
| full_data | No | |
| timestamp | Yes | RFC3339 UTC, server build time |
| disclaimer | Yes | Canonical compliance disclaimer (always present) |
| request_id | Yes | 32-hex per-response correlation id |
| is_real_money | No | |
| data_classification | No | |
| is_investment_advice | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description discloses that GLOBAL pool win_rate values may be synthesized, that per_symbol_leaderboard is the primary measured-edge surface, and that strategies are paper-tested with simulated fills and no fees, taxes, or slippage. These are material trust and interpretation caveats that an agent would not get from the annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose and trust context, then structured with labeled triggers, prerequisites, next steps, caveats, and output nature. Despite covering several concerns, each section adds distinct value for an agent deciding whether and how to call the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return-shape detail is not needed in the description. The description covers purpose, usage timing, prerequisites, next steps, data-quality caveats, and the paper-trading nature of the evidence, which is complete for a leaderboard/read-only analysis tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameters are already documented. The description still adds semantic value by explaining that min_trades enforces statistical validity and that per-symbol results are the primary measured-edge surface, though it does not clarify the limit/top_n or target_market aliases beyond what the schema already says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource and scope: top RL-learned research strategies, split into GLOBAL pool and per-symbol partition. It also distinguishes the GLOBAL pool's synthesized win_rate from the per_symbol_leaderboard's measured-edge surface, so an agent can understand what this leaderboard uniquely provides.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit trigger examples, states this is the final trust-validation step, lists prerequisites as none, and names a next step. It does not explicitly compare against sibling alternatives such as get_strategy_distribution or get_performance_metrics, which keeps it from a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_structure_calibrationStructure Calibration (Level 2)ARead-onlyIdempotentInspect
Call this to see how well sector / ETF-basket direction calls held up against a majority-class baseline;
include_history=True adds the day-by-day validation trend.
Purpose: Level 2 (ETF / basket / sector granularity — Level 1 is individual symbols)
prediction calibration. Returns hit_rate_ema per (market, group, interval,
regime_bucket) with sample counts, plus the majority-class baseline needed to
interpret them. This is measurement, NOT a claim of edge — as of 2026-09-18 the
measured skill (accuracy minus baseline) is negative in all three markets.
Triggers (casual questions too): "how good are your sector calls?", "섹터 예측 잘 맞아?",
"sector rotation accuracy?", "그룹 단위 적중률 보여줘", "sector accuracy over time?",
"요즘 섹터 예측 성적 어때?".
When to call: when an AI wants to see Layer D evidence (Layer D = sector-structure
tier of the 5-layer trust pyramid).
Prerequisites: none.
Next steps: include_history=True for the daily trend.
Caveats: empty until structure-learning cycles complete.
Rows are paginated — read total_available (not len(calibration)) for the
whole-set size. baseline, meta.total_entries and meta.total_samples are
always whole-set. Rows keep their dimension keys (market_id / interval /
regime_bucket); they are never hoisted out of the row.
Output nature: Past calls and their realized outcomes, judged after the fact, with sample sizes and baselines. Past hit rates describe the past, not future outcomes.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | include_history: lookback window in days (default 90) | |
| limit | No | Max results (default 50, max 500). Rows are truncated; see `total_available` and `truncated` in the response. `baseline` and `meta` counts stay whole-set. | |
| market_id | No | Optional market filter (crypto, kr_stock, us_stock). Aliases coin/kr/us and any letter case are accepted. | |
| group_name | No | Optional group/sector filter (e.g., layer1, defi, sector, broad_index) | |
| include_history | No | Also return the daily validation history (hit_rate per day, overall_hit_rate) as `history`. Default false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| full_data | No | |
| timestamp | Yes | RFC3339 UTC, server build time |
| disclaimer | Yes | Canonical compliance disclaimer (always present) |
| request_id | Yes | 32-hex per-response correlation id |
| is_real_money | No | |
| data_classification | No | |
| is_investment_advice | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/closed-world, but the description adds substantial context: it may be empty until structure-learning cycles complete, pagination means `total_available` rather than `len(calibration)` gives the whole-set size, `baseline`/`meta` counts are always whole-set, and rows retain their dimension keys. It also honestly discloses that measured skill is currently negative in all three markets — a behaviorally important caveat not in any structured field. It stops short of describing the response envelope in full, but the output schema covers that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Labeled sections (Purpose, Triggers, When to call, Prerequisites, Next steps, Caveats, Output nature) front-load the key distinction and are easy to scan. Some waste exists: the include_history tip appears twice (opening line and 'Next steps'), and the six-item bilingual trigger list is heavier than needed for an agent audience.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only calibration query with a full output schema and complete annotations, the description covers the empty-state caveat, pagination traps, baseline interpretation, and the epistemic caveat that past hit rates do not imply future edge. Nothing an agent needs to call this correctly — or to avoid misreading the numbers — is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline would be 3, but the description adds interpretation guidance the schema does not: include_history returns a `history` series, `days` scopes the history lookback, and limit truncation must be read via `total_available`/`truncated` because baseline and meta stay whole-set. That is genuine meaning beyond the parameter definitions, though group_name semantics (layer1, defi, broad_index) are left entirely to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — measuring how well sector/ETF-basket direction calls held up against a majority-class baseline — and explicitly scopes itself as Level 2 (ETF/basket/sector) versus Level 1 (individual symbols). The returned entity (hit_rate_ema per market/group/interval/regime_bucket) is named, so an agent can separate it from sibling calibration tools like get_signal_calibration or get_prediction_accuracy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'When to call' clause ties invocation to Layer D evidence in a named trust pyramid, plus concrete trigger phrasings in two languages, a 'Prerequisites: none' statement, and a 'Next steps' pointer to include_history=True. Alternatives are implicitly routed by the Level 1 vs Level 2 distinction, leaving little to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_symbol_contextSymbol ContextARead-onlyIdempotentInspect
Use when the question is about one stock or coin — its current signal state, the OneQAZ structure group it belongs to, and which assets have tracked lead-lag links to it. Returns self-contained headline claims first, then the symbol's observed state, upstream links (its group, macro/ETF/basket instruments and symbols that move before it), peers (symbols that follow it), tagged news, and gaps that say what is not tracked. Not for sector-wide questions (use get_group_context) or whole-market questions (use get_market_context). Provides regime, signal-score and linkage context with sample sizes and measured hit rates; every link carries its evidence and every empty section is listed in gaps. Not a real-time quote, fundamentals, or full-text news source. Accepts tickers, KRX codes or names; ambiguous inputs return candidates instead of a guess. Output nature: Self-contained context for one entity: observed state, tracked links with their evidence and sample sizes, and explicit gaps. Not investment advice.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max links per section (default 8, max 50). | |
| symbol | Yes | Ticker (NVDA), KRX 6-digit code (005930), coin base ticker (BTC) or name (삼성전자, Samsung Electronics). Ambiguous names return candidates, not a guess. | |
| question | No | Optional. The user's original question, used only for service improvement analytics. Does not change the response. Do not include personal information. | |
| market_id | No | Optional. crypto / kr_stock / us_stock (aliases coin/kr/us). Narrows name resolution. |
Output Schema
| Name | Required | Description |
|---|---|---|
| gaps | No | |
| meta | No | |
| news | No | |
| self | No | |
| peers | No | |
| entity | No | |
| headline | No | |
| upstream | No | |
| timestamp | Yes | RFC3339 UTC, server build time |
| disclaimer | Yes | Canonical compliance disclaimer (always present) |
| downstream | No | |
| request_id | Yes | 32-hex per-response correlation id |
| resolution | No | |
| data_classification | No | |
| is_investment_advice | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description discloses return ordering ('headline claims first'), content sections, evidence and sample sizes on links, explicit gaps for untracked items, and ambiguous-input behavior. This gives the agent operational context the annotations do not cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the use case and exclusions, and most sentences add useful detail about returns, evidence, gaps, and limitations. There is slight redundancy in the 'Output nature' sentence restating that the context is self-contained, but overall it is efficient for a complex tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema, 100% parameter schema coverage, and existing annotations, the description is complete enough for an agent to call the tool correctly. It covers what is returned, how links are evidenced, how gaps are handled, and what the tool is not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters in detail. The description repeats the symbol format and ambiguity behavior already present in the schema, and does not explain the optional limit, question, or market_id parameters beyond what the schema provides; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: returns signal state, structure group membership, and lead-lag links for one stock or coin. It explicitly distinguishes itself from get_group_context and get_market_context, so an agent can select it for single-symbol questions without opening another schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance ('question is about one stock or coin'), when-not guidance ('Not for sector-wide questions... or whole-market questions'), and names the alternative tools for those excluded cases. It also clarifies that it is not a real-time quote, fundamentals, or full-text news source.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_system_cardSystem CardARead-onlyIdempotentInspect
Purpose: Start here. One-page card for an agent meeting OneQAZ for the first time: what it is (public beta, operated by an individual, SLA: none), coverage (markets, bar intervals, universe sizes), data freshness (ok / degraded per pipeline component), and the measured track record with weak spots. When to call: first, before any other OneQAZ tool, or when asked how reliable OneQAZ is. Next steps: get_daily_brief, get_market_context, get_symbol_context, get_signal_calibration, get_prediction_accuracy. Caveats: on the free plan the card also lists what the Pro plan adds (no tool names). Every number is read from the judgment ledgers at request time (cached 15 minutes). Cells below their minimum sample (track_record.*.min_n) show n and days but no rates. Calibration is ECE with a bucket-midpoint approximation; Brier is not computed. Profit metrics are not in this card. Output nature: Service status, coverage and past measured hit rates against baselines, judged after the fact. Past hit rates do not guarantee future outcomes.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond the readOnly/idempotent/closed-world annotations: numbers are read from judgment ledgers at request time with a 15-minute cache, cells below track_record.*.min_n show n and days but no rates, calibration is ECE with a bucket-midpoint approximation, Brier is not computed, and profit metrics are excluded. These are precisely the caveats an agent needs to avoid misreporting results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with an explicit 'Purpose' lead and sectioned as When to call / Next steps / Caveats / Output nature, so an agent can skim. It is dense and near the upper bound of useful length; the trailing disclaimer about past rates is somewhat boilerplate, keeping it just short of a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter status card with an output schema already defined, the description covers identity, scope, freshness semantics, sample-size thresholds, computation caveats, and plan-tier visibility. Nothing needed to call or correctly interpret the tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter meaning to convey and the baseline of 4 applies. The description does not need to compensate for any schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific deliverable: a one-page onboarding card covering identity (public beta, individual operator, no SLA), coverage (markets, bar intervals, universe sizes), data freshness per pipeline component, and measured track record with weak spots. This clearly distinguishes it from data-oriented siblings like get_market_context or get_symbol_context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit sequencing instruction — 'Start here' / 'When to call: first, before any other OneQAZ tool, or when asked how reliable OneQAZ is' — plus a named next-step chain (get_daily_brief, get_market_context, get_symbol_context, get_signal_calibration, get_prediction_accuracy). The agent knows both the trigger and the follow-up routing without inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trade_historyTrade HistoryARead-onlyIdempotentInspect
Call this to check how the paper-trading book's closed trades actually turned out — realized P&L per trade with action / P&L / time / symbol filters, and outcome="win" | "loss" for winners or losers. Triggers (casual questions too): "what trades happened lately?", "최근 거래 내역 보여줘", "how did the BTC trades go?", "승률 어때?", "show me the trade log", "어디서 잃었어?", "how many trades won this week?". When to call: past trade review, single-symbol post-mortem, win-rate audits. Prerequisites: none. Next steps: market://{market_id}/signals/summary for the current signals. Caveats: paper-trading data only (not real money). limit capped at 1000. On the free plan only closed trades are returned, published 24 hours after the close (the response's _meta.applied_limits says what was adjusted). Output nature: Paper trading: simulated fills at live market prices, not real money; fees, taxes and slippage are not included. Facts about the simulation, not instructions.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows returned (default 50, max 1000). Rows are paginated; see total_available / truncated. NOTE: stats (win_rate, avg_pnl) are aggregated over the scanned set, not over the returned rows — see stats_scope. | |
| symbol | No | Filter by ticker symbol (e.g., "BTC", "AAPL"); case-insensitive | |
| max_pnl | No | Max P&L % filter (e.g., 10.0) | |
| min_pnl | No | Min P&L % filter (e.g., -5.0) | |
| outcome | No | Realized outcome filter: all (default), win (P&L >= +0.01%), loss (P&L <= -0.01%). min_pnl / max_pnl override the threshold. | all |
| market_id | Yes | Market ID (crypto, kr_stock, us_stock; aliases coin/kr/us accepted) | |
| hours_back | No | Only trades within last N hours | |
| action_filter | No | Filter simulated executions by side (all, buy = position opens, sell = closes) | all |
Output Schema
| Name | Required | Description |
|---|---|---|
| full_data | No | |
| timestamp | Yes | RFC3339 UTC, server build time |
| disclaimer | Yes | Canonical compliance disclaimer (always present) |
| request_id | Yes | 32-hex per-response correlation id |
| is_real_money | No | |
| data_classification | No | |
| is_investment_advice | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/closed-world, and the description goes well beyond them: paper-trading data only, limit capped at 1000, free-plan 24-hour publication delay for closed trades, and _meta.applied_limits reporting. Minor deduction only because the description references stats_scope semantics without restating them here.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, then clearly labeled Triggers / When to call / Prerequisites / Next steps / Caveats / Output nature. Slightly over-long due to the lengthy multi-language trigger list, but every section carries real routing value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema, rich annotations, and 8 parameters, the description supplies everything an agent needs: dataset provenance, plan limitations, pagination caveat, and next-step routing. No material gap remains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all 8 parameters are already documented, and the description largely repeats them (action / P&L / time / symbol filters, outcome win|loss, limit cap). It adds little syntax or interpretation beyond the schema, which is the expected baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: check how the paper-trading book's closed trades turned out, with realized P&L per trade. Scoping to closed trades and the outcome filter separates it cleanly from siblings like get_performance_metrics or get_signals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-call conditions (past trade review, single-symbol post-mortem, win-rate audits), a concrete trigger phrase list, declared prerequisites (none), and a named next step (market://{market_id}/signals/summary). Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchSearchARead-onlyIdempotentInspect
Purpose: ChatGPT-connector-standard discovery search over OneQAZ's live surface —
tools, resources, and the latest score-ranked combined signals across crypto /
kr_stock / us_stock. Returns result ids consumable by the fetch tool.
Triggers: ChatGPT connectors and Deep Research call this automatically for any
user query routed to OneQAZ ("bitcoin signal", "prediction accuracy",
"korean stocks today", ...). Other AI clients may use it as a keyword
starting point when unsure which tool/resource to call.
When to call: first step of connector-style discovery. MCP-native clients can
instead browse tools/list + resources/list directly.
Prerequisites: none.
Next steps: pass any result id to fetch for the full document.
Caveats: corpus is rebuilt at most every 10 minutes (tool/resource catalog +
top-20 signals by |score| per market). Ticker / company-name queries (BTC, NVDA,
삼성전자) resolve to signal:{market}:{symbol} first; market words (S&P, KOSPI,
crypto) surface that market's resources. Every result id is fetchable. Empty
results come with a note explaining coverage.
Output: {results: [{id, title, url}], disclaimer, is_investment_advice,
data_classification} — flat envelope, OpenAI fixed shape.
Output nature: Observed signal state computed from live market prices each cycle. signal_score is an internal ranking score, not a probability; bias is its sign. Context for the user's question, not investment advice.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | free-text search string (English/Korean, symbols like BTC/AAPL) |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond readOnly/idempotent/openWorld annotations: a 10-minute corpus rebuild cadence, the exact corpus composition (tool/resource catalog plus top-20 signals by |score| per market), query-resolution rules for tickers and market words, and the behavior on empty results (a `note` explaining coverage). These are freshness and edge-case traits the annotations cannot express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Labeled sections (Purpose/Triggers/When to call/Prerequisites/Next steps/Caveats/Output) make it strongly front-loaded and skimmable. Minor waste: the explicit `Output:` envelope restates the return shape that an output schema already carries, and "Output nature" partially overlaps the disclaimer note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter discovery tool with an output schema and safety annotations, everything an agent needs is present: freshness limits, query interpretation, sibling routing, failure mode, and the non-advice framing. No material gap remains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single `query` param is documented in-schema, so baseline would be 3; the description earns extra credit by explaining how query text is interpreted — English/Korean free text, tickers resolving to `signal:{market}:{symbol}`, and market words surfacing that market's resources. That is meaningfully more than the schema's "free-text search string".
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (discovery search) over a specific resource set (tools, resources, top-20 score-ranked signals across crypto/kr_stock/us_stock), and explicitly ties its output to the `fetch` sibling by result id. An agent can distinguish it from `get_signals` or `fetch` without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit triggers (ChatGPT connectors/Deep Research auto-routing), a when-to-call rule ("first step of connector-style discovery"), a named alternative for MCP-native clients (tools/list + resources/list), and a next-step handoff to `fetch`. When-not guidance is also present via the alternative path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
get_daily_brief1 field changed- changed
Output schema / properties / full_data / anyOfPrevious value: -[ - { - "additionalProperties": true, - "description": "`full_data` for get_daily_brief.", - "properties": { - "active_predictions_count": { - "default": 0, - "type": "integer" - }, - "losing_count": { - "default": 0, - "type": "integer" - }, - "macro_regime": { - "additionalProperties": true, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "categories": { - "items": {}, - "type": "array" - }, - "regime": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "regime_score": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "regime_signed": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "stale": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": null - }, - "total": { - "default": 0, - "type": "integer" - }, - "unavailable_reason": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "type": "object" - }, - "market": { - "type": "string" - }, - "market_breadth": { - "additionalProperties": true, - "type": "object" - }, - "meta": { - "additionalProperties": true, - "properties": { - "data_window": { - "default": "last_24h", - "type": "string" - }, - "interpretation": { - "default": "", - "type": "string" - }, - "source": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "narrative": { - "type": "string" - }, - "primary_market": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "strong_signals": { - "anyOf": [ - { - "items": { - "additionalProperties": true, - "properties": { - "bias": { - "anyOf": [ - { - "enum": [ - "positive", - "neutral", - "negative" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "confidence": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "interval": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "market_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "price": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "reason_uncalibrated": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": null - }, - "signal_score": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "symbol": { - "type": "string" - }, - "timestamp": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "warnings": { - "anyOf": [ - { - "additionalProperties": { - "type": "boolean" - }, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "symbol" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "default": null - }, - "top_ranked_signals": { - "anyOf": [ - { - "items": { - "additionalProperties": true, - "properties": { - "bias": { - "anyOf": [ - { - "enum": [ - "positive", - "neutral", - "negative" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "confidence": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "interval": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "market_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "price": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "reason_uncalibrated": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": null - }, - "signal_score": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "symbol": { - "type": "string" - }, - "timestamp": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "warnings": { - "anyOf": [ - { - "additionalProperties": { - "type": "boolean" - }, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "symbol" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "default": null - }, - "winning_count": { - "default": 0, - "type": "integer" - }, - "yesterday_trades": { - "additionalProperties": true, - "properties": { - "by_market": { - "additionalProperties": { - "additionalProperties": true, - "type": "object" - }, - "type": "object" - }, - "losing": { - "default": 0, - "type": "integer" - }, - "total": { - "default": 0, - "type": "integer" - }, - "winning": { - "default": 0, - "type": "integer" - } - }, - "type": "object" - } - }, - "required": [ - "market", - "narrative" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": true, + "description": "`full_data` for get_daily_brief.", + "properties": { + "active_predictions_count": { + "default": 0, + "type": "integer" + }, + "brief_mode": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "losing_count": { + "default": 0, + "type": "integer" + }, + "macro_regime": { + "additionalProperties": true, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "categories": { + "items": {}, + "type": "array" + }, + "regime": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "regime_score": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "regime_signed": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "stale": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null + }, + "total": { + "default": 0, + "type": "integer" + }, + "unavailable_reason": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "type": "object" + }, + "market": { + "type": "string" + }, + "market_breadth": { + "additionalProperties": true, + "type": "object" + }, + "meta": { + "additionalProperties": true, + "properties": { + "data_window": { + "default": "last_completed_session", + "type": "string" + }, + "interpretation": { + "default": "", + "type": "string" + }, + "source": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "narrative": { + "type": "string" + }, + "next_session_open_at": { + "anyOf": [ + { + "additionalProperties": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "primary_market": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "strong_signals": { + "anyOf": [ + { + "items": { + "additionalProperties": true, + "properties": { + "bias": { + "anyOf": [ + { + "enum": [ + "positive", + "neutral", + "negative" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "confidence": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "interval": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "market_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "price": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "reason_uncalibrated": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null + }, + "signal_score": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "symbol": { + "type": "string" + }, + "timestamp": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "warnings": { + "anyOf": [ + { + "additionalProperties": { + "type": "boolean" + }, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "symbol" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null + }, + "top_ranked_signals": { + "anyOf": [ + { + "items": { + "additionalProperties": true, + "properties": { + "bias": { + "anyOf": [ + { + "enum": [ + "positive", + "neutral", + "negative" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "confidence": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "interval": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "market_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "price": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "reason_uncalibrated": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null + }, + "signal_score": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "symbol": { + "type": "string" + }, + "timestamp": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "warnings": { + "anyOf": [ + { + "additionalProperties": { + "type": "boolean" + }, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "symbol" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null + }, + "winning_count": { + "default": 0, + "type": "integer" + }, + "yesterday_trades": { + "additionalProperties": true, + "properties": { + "by_market": { + "additionalProperties": { + "additionalProperties": true, + "type": "object" + }, + "type": "object" + }, + "losing": { + "default": 0, + "type": "integer" + }, + "total": { + "default": 0, + "type": "integer" + }, + "winning": { + "default": 0, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "market", + "narrative" + ], + "type": "object" + }, + { + "type": "null" + } +]
29 tool updates
- Removed
analyze_trades - Changed
explain_decision1 field changed- added
Input schema / properties / includeAdded value: +{ + "anyOf": [ + { + "items": { + "enum": [ + "history", + "feedback", + "roles" + ], + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Optional extra sections under `included`: history (latest combined signal + recent history), feedback (pattern feedback from paper-trade outcomes), roles (per-role multi-timeframe alignment: timing / trend / swing / regime). Default none = the explanation only." +}
- Removed
get_backtest_tuning_state - Removed
get_cross_market_correlation - Removed
get_feature_governance_state - Removed
get_feature_governance_status_tool - Removed
get_latest_decisions - Removed
get_llm_trading_decisions - Removed
get_losing_positions - Removed
get_losing_trades - Removed
get_macro_causality_graph_tool - Removed
get_macro_influence_map - Removed
get_monthly_accuracy_trend - Removed
get_news_causality_breakdown - Removed
get_news_leading_indicator_performance - Removed
get_position_detail - Removed
get_positions - Changed
get_prediction_accuracy2 fields changed- added
Input schema / properties / granularityAdded value: +{ + "default": "cell", + "description": "cell (default) = per-cell hit rates with baselines; monthly = monthly accuracy time series per (category, target_market, lag_bucket) — compact / forecast_only / limit do not apply.", + "enum": [ + "cell", + "monthly" + ], + "type": "string" +} - changed
Output schema / properties / full_data / anyOfPrevious value: -[ - { - "additionalProperties": true, - "description": "`full_data` for get_prediction_accuracy.", - "properties": { - "meta": { - "additionalProperties": true, - "properties": { - "baseline_accuracy": { - "type": "number" - }, - "interpretation": { - "type": "string" - }, - "sample_count_filter": { - "type": "string" - }, - "source": { - "type": "string" - }, - "total_category_target_lag_cells": { - "type": "integer" - }, - "total_samples": { - "type": "integer" - } - }, - "required": [ - "total_category_target_lag_cells", - "total_samples", - "sample_count_filter", - "source", - "baseline_accuracy", - "interpretation" - ], - "type": "object" - }, - "summary": { - "additionalProperties": { - "additionalProperties": { - "additionalProperties": { - "additionalProperties": true, - "type": "object" - }, - "type": "object" - }, - "type": "object" - }, - "type": "object" - } - }, - "required": [ - "summary", - "meta" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": true, + "description": "`full_data` for get_prediction_accuracy.", + "properties": { + "meta": { + "additionalProperties": true, + "properties": { + "baseline_accuracy": { + "type": "number" + }, + "interpretation": { + "type": "string" + }, + "sample_count_filter": { + "type": "string" + }, + "source": { + "type": "string" + }, + "total_category_target_lag_cells": { + "type": "integer" + }, + "total_samples": { + "type": "integer" + } + }, + "required": [ + "total_category_target_lag_cells", + "total_samples", + "sample_count_filter", + "source", + "baseline_accuracy", + "interpretation" + ], + "type": "object" + }, + "summary": { + "additionalProperties": { + "additionalProperties": { + "additionalProperties": { + "additionalProperties": true, + "type": "object" + }, + "type": "object" + }, + "type": "object" + }, + "type": "object" + } + }, + "required": [ + "summary", + "meta" + ], + "type": "object" + }, + { + "additionalProperties": true, + "description": "`full_data` for get_monthly_accuracy_trend.", + "properties": { + "meta": { + "additionalProperties": true, + "type": "object" + }, + "trend": { + "items": { + "additionalProperties": true, + "properties": { + "accuracy": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "category": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "lag_bucket": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "month": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "sample_count": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "target_market": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + { + "type": "null" + } +]
- Removed
get_profitable_positions - Removed
get_role_analysis - Removed
get_sector_correlations_tool - Removed
get_signal_detail - Removed
get_strategy_distribution - Changed
get_structure_calibration2 fields changed- added
Input schema / properties / daysAdded value: +{ + "default": 90, + "description": "include_history: lookback window in days (default 90)", + "type": "integer" +} - added
Input schema / properties / include_historyAdded value: +{ + "default": false, + "description": "Also return the daily validation history (hit_rate per day, overall_hit_rate) as `history`. Default false.", + "type": "boolean" +}
- Removed
get_structure_validation_history - Removed
get_symbol_peer_links_tool - Changed
get_trade_history1 field changed- added
Input schema / properties / outcomeAdded value: +{ + "default": "all", + "description": "Realized outcome filter: all (default), win (P&L >= +0.01%), loss (P&L <= -0.01%). min_pnl / max_pnl override the threshold.", + "enum": [ + "all", + "win", + "loss" + ], + "type": "string" +}
- Removed
get_trade_outcomes_bulk - Removed
get_winning_trades
1 tool update
- Added
get_system_card
1 tool update
- Changed
analyze_trades2 fields changed- added
Input schema / properties / sort_byAdded value: +{ + "default": "trades", + "description": "Ordering for coin_stats and pattern_stats: trades (default), sum_of_trade_pct or mean_trade_pct.", + "enum": [ + "trades", + "sum_of_trade_pct", + "mean_trade_pct" + ], + "type": "string" +} - added
Input schema / properties / top_nAdded value: +{ + "default": 10, + "description": "How many symbols / patterns to list in coin_stats and pattern_stats (default 10, max 500); the response carries total / returned / truncated.", + "maximum": 500, + "minimum": 0, + "type": "integer" +}
2 tool updates
- Changed
get_cross_market_correlation1 field changed- added
Input schema / properties / include_withheld_rowsAdded value: +{ + "default": false, + "description": "When the quality gate withholds correlation_score (saturated), rows are replaced by a withheld summary. true lists the rows anyway (values stay null). Default false.", + "type": "boolean" +}
- Changed
get_prediction_accuracy3 fields changed- added
Input schema / properties / compactAdded value: +{ + "default": true, + "description": "Compact view (default true): per cell only the baselined hit-rate object plus lifecycle and skill; methodology, known_biases and ledger_health become pointers. false returns every field.", + "type": "boolean" +} - added
Input schema / properties / forecast_onlyAdded value: +{ + "default": false, + "description": "Only forecast cells (exclude nowcast). Default false.", + "type": "boolean" +} - added
Input schema / properties / limitAdded value: +{ + "anyOf": [ + { + "maximum": 200, + "minimum": 0, + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Maximum number of cells to return (response carries total/returned/truncated)." +}
6 tool updates
- Changed
get_group_context4 fields changed- changed
Output schema / properties / downstream / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": true, - "properties": { - "evidence": { - "additionalProperties": true, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "kind": { - "enum": [ - "statistical", - "definitional", - "tag", - "hypothesis" - ], - "type": "string" - }, - "metric": { - "type": "string" - }, - "n": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "source_table": { - "type": "string" - }, - "validation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - }, - "value": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "kind", - "metric", - "source_table" - ], - "type": "object" - }, - "relation": { - "description": "Reads '<entity> <relation> <target>'", - "enum": [ - "leads", - "lags", - "co_moves", - "member_of", - "has_member", - "mentioned_in", - "tagged_with", - "affects", - "affected_by" - ], - "type": "string" - }, - "scope": { - "default": "direct", - "enum": [ - "direct", - "group", - "market_wide" - ], - "type": "string" - }, - "target": { - "additionalProperties": true, - "type": "object" - }, - "target_observation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "target", - "relation", - "evidence" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": true, + "properties": { + "evidence": { + "additionalProperties": true, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "kind": { + "enum": [ + "statistical", + "definitional", + "tag", + "hypothesis" + ], + "type": "string" + }, + "metric": { + "type": "string" + }, + "n": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "source_table": { + "type": "string" + }, + "validation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "kind", + "metric", + "source_table" + ], + "type": "object" + }, + "relation": { + "description": "Reads '<entity> <relation> <target>'", + "enum": [ + "leads", + "lags", + "co_moves", + "member_of", + "has_member", + "mentioned_in", + "tagged_with", + "affects", + "affected_by", + "market_wide_context" + ], + "type": "string" + }, + "scope": { + "default": "direct", + "enum": [ + "direct", + "group", + "market_wide" + ], + "type": "string" + }, + "target": { + "additionalProperties": true, + "type": "object" + }, + "target_observation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "target", + "relation", + "evidence" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Output schema / properties / news / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": true, - "properties": { - "evidence": { - "additionalProperties": true, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "kind": { - "enum": [ - "statistical", - "definitional", - "tag", - "hypothesis" - ], - "type": "string" - }, - "metric": { - "type": "string" - }, - "n": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "source_table": { - "type": "string" - }, - "validation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - }, - "value": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "kind", - "metric", - "source_table" - ], - "type": "object" - }, - "relation": { - "description": "Reads '<entity> <relation> <target>'", - "enum": [ - "leads", - "lags", - "co_moves", - "member_of", - "has_member", - "mentioned_in", - "tagged_with", - "affects", - "affected_by" - ], - "type": "string" - }, - "scope": { - "default": "direct", - "enum": [ - "direct", - "group", - "market_wide" - ], - "type": "string" - }, - "target": { - "additionalProperties": true, - "type": "object" - }, - "target_observation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "target", - "relation", - "evidence" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": true, + "properties": { + "evidence": { + "additionalProperties": true, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "kind": { + "enum": [ + "statistical", + "definitional", + "tag", + "hypothesis" + ], + "type": "string" + }, + "metric": { + "type": "string" + }, + "n": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "source_table": { + "type": "string" + }, + "validation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "kind", + "metric", + "source_table" + ], + "type": "object" + }, + "relation": { + "description": "Reads '<entity> <relation> <target>'", + "enum": [ + "leads", + "lags", + "co_moves", + "member_of", + "has_member", + "mentioned_in", + "tagged_with", + "affects", + "affected_by", + "market_wide_context" + ], + "type": "string" + }, + "scope": { + "default": "direct", + "enum": [ + "direct", + "group", + "market_wide" + ], + "type": "string" + }, + "target": { + "additionalProperties": true, + "type": "object" + }, + "target_observation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "target", + "relation", + "evidence" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Output schema / properties / peers / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": true, - "properties": { - "evidence": { - "additionalProperties": true, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "kind": { - "enum": [ - "statistical", - "definitional", - "tag", - "hypothesis" - ], - "type": "string" - }, - "metric": { - "type": "string" - }, - "n": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "source_table": { - "type": "string" - }, - "validation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - }, - "value": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "kind", - "metric", - "source_table" - ], - "type": "object" - }, - "relation": { - "description": "Reads '<entity> <relation> <target>'", - "enum": [ - "leads", - "lags", - "co_moves", - "member_of", - "has_member", - "mentioned_in", - "tagged_with", - "affects", - "affected_by" - ], - "type": "string" - }, - "scope": { - "default": "direct", - "enum": [ - "direct", - "group", - "market_wide" - ], - "type": "string" - }, - "target": { - "additionalProperties": true, - "type": "object" - }, - "target_observation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "target", - "relation", - "evidence" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": true, + "properties": { + "evidence": { + "additionalProperties": true, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "kind": { + "enum": [ + "statistical", + "definitional", + "tag", + "hypothesis" + ], + "type": "string" + }, + "metric": { + "type": "string" + }, + "n": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "source_table": { + "type": "string" + }, + "validation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "kind", + "metric", + "source_table" + ], + "type": "object" + }, + "relation": { + "description": "Reads '<entity> <relation> <target>'", + "enum": [ + "leads", + "lags", + "co_moves", + "member_of", + "has_member", + "mentioned_in", + "tagged_with", + "affects", + "affected_by", + "market_wide_context" + ], + "type": "string" + }, + "scope": { + "default": "direct", + "enum": [ + "direct", + "group", + "market_wide" + ], + "type": "string" + }, + "target": { + "additionalProperties": true, + "type": "object" + }, + "target_observation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "target", + "relation", + "evidence" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Output schema / properties / upstream / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": true, - "properties": { - "evidence": { - "additionalProperties": true, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "kind": { - "enum": [ - "statistical", - "definitional", - "tag", - "hypothesis" - ], - "type": "string" - }, - "metric": { - "type": "string" - }, - "n": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "source_table": { - "type": "string" - }, - "validation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - }, - "value": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "kind", - "metric", - "source_table" - ], - "type": "object" - }, - "relation": { - "description": "Reads '<entity> <relation> <target>'", - "enum": [ - "leads", - "lags", - "co_moves", - "member_of", - "has_member", - "mentioned_in", - "tagged_with", - "affects", - "affected_by" - ], - "type": "string" - }, - "scope": { - "default": "direct", - "enum": [ - "direct", - "group", - "market_wide" - ], - "type": "string" - }, - "target": { - "additionalProperties": true, - "type": "object" - }, - "target_observation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "target", - "relation", - "evidence" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": true, + "properties": { + "evidence": { + "additionalProperties": true, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "kind": { + "enum": [ + "statistical", + "definitional", + "tag", + "hypothesis" + ], + "type": "string" + }, + "metric": { + "type": "string" + }, + "n": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "source_table": { + "type": "string" + }, + "validation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "kind", + "metric", + "source_table" + ], + "type": "object" + }, + "relation": { + "description": "Reads '<entity> <relation> <target>'", + "enum": [ + "leads", + "lags", + "co_moves", + "member_of", + "has_member", + "mentioned_in", + "tagged_with", + "affects", + "affected_by", + "market_wide_context" + ], + "type": "string" + }, + "scope": { + "default": "direct", + "enum": [ + "direct", + "group", + "market_wide" + ], + "type": "string" + }, + "target": { + "additionalProperties": true, + "type": "object" + }, + "target_observation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "target", + "relation", + "evidence" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +]
- Changed
get_macro_context4 fields changed- changed
Output schema / properties / downstream / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": true, - "properties": { - "evidence": { - "additionalProperties": true, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "kind": { - "enum": [ - "statistical", - "definitional", - "tag", - "hypothesis" - ], - "type": "string" - }, - "metric": { - "type": "string" - }, - "n": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "source_table": { - "type": "string" - }, - "validation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - }, - "value": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "kind", - "metric", - "source_table" - ], - "type": "object" - }, - "relation": { - "description": "Reads '<entity> <relation> <target>'", - "enum": [ - "leads", - "lags", - "co_moves", - "member_of", - "has_member", - "mentioned_in", - "tagged_with", - "affects", - "affected_by" - ], - "type": "string" - }, - "scope": { - "default": "direct", - "enum": [ - "direct", - "group", - "market_wide" - ], - "type": "string" - }, - "target": { - "additionalProperties": true, - "type": "object" - }, - "target_observation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "target", - "relation", - "evidence" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": true, + "properties": { + "evidence": { + "additionalProperties": true, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "kind": { + "enum": [ + "statistical", + "definitional", + "tag", + "hypothesis" + ], + "type": "string" + }, + "metric": { + "type": "string" + }, + "n": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "source_table": { + "type": "string" + }, + "validation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "kind", + "metric", + "source_table" + ], + "type": "object" + }, + "relation": { + "description": "Reads '<entity> <relation> <target>'", + "enum": [ + "leads", + "lags", + "co_moves", + "member_of", + "has_member", + "mentioned_in", + "tagged_with", + "affects", + "affected_by", + "market_wide_context" + ], + "type": "string" + }, + "scope": { + "default": "direct", + "enum": [ + "direct", + "group", + "market_wide" + ], + "type": "string" + }, + "target": { + "additionalProperties": true, + "type": "object" + }, + "target_observation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "target", + "relation", + "evidence" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Output schema / properties / news / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": true, - "properties": { - "evidence": { - "additionalProperties": true, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "kind": { - "enum": [ - "statistical", - "definitional", - "tag", - "hypothesis" - ], - "type": "string" - }, - "metric": { - "type": "string" - }, - "n": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "source_table": { - "type": "string" - }, - "validation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - }, - "value": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "kind", - "metric", - "source_table" - ], - "type": "object" - }, - "relation": { - "description": "Reads '<entity> <relation> <target>'", - "enum": [ - "leads", - "lags", - "co_moves", - "member_of", - "has_member", - "mentioned_in", - "tagged_with", - "affects", - "affected_by" - ], - "type": "string" - }, - "scope": { - "default": "direct", - "enum": [ - "direct", - "group", - "market_wide" - ], - "type": "string" - }, - "target": { - "additionalProperties": true, - "type": "object" - }, - "target_observation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "target", - "relation", - "evidence" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": true, + "properties": { + "evidence": { + "additionalProperties": true, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "kind": { + "enum": [ + "statistical", + "definitional", + "tag", + "hypothesis" + ], + "type": "string" + }, + "metric": { + "type": "string" + }, + "n": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "source_table": { + "type": "string" + }, + "validation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "kind", + "metric", + "source_table" + ], + "type": "object" + }, + "relation": { + "description": "Reads '<entity> <relation> <target>'", + "enum": [ + "leads", + "lags", + "co_moves", + "member_of", + "has_member", + "mentioned_in", + "tagged_with", + "affects", + "affected_by", + "market_wide_context" + ], + "type": "string" + }, + "scope": { + "default": "direct", + "enum": [ + "direct", + "group", + "market_wide" + ], + "type": "string" + }, + "target": { + "additionalProperties": true, + "type": "object" + }, + "target_observation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "target", + "relation", + "evidence" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Output schema / properties / peers / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": true, - "properties": { - "evidence": { - "additionalProperties": true, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "kind": { - "enum": [ - "statistical", - "definitional", - "tag", - "hypothesis" - ], - "type": "string" - }, - "metric": { - "type": "string" - }, - "n": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "source_table": { - "type": "string" - }, - "validation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - }, - "value": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "kind", - "metric", - "source_table" - ], - "type": "object" - }, - "relation": { - "description": "Reads '<entity> <relation> <target>'", - "enum": [ - "leads", - "lags", - "co_moves", - "member_of", - "has_member", - "mentioned_in", - "tagged_with", - "affects", - "affected_by" - ], - "type": "string" - }, - "scope": { - "default": "direct", - "enum": [ - "direct", - "group", - "market_wide" - ], - "type": "string" - }, - "target": { - "additionalProperties": true, - "type": "object" - }, - "target_observation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "target", - "relation", - "evidence" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": true, + "properties": { + "evidence": { + "additionalProperties": true, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "kind": { + "enum": [ + "statistical", + "definitional", + "tag", + "hypothesis" + ], + "type": "string" + }, + "metric": { + "type": "string" + }, + "n": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "source_table": { + "type": "string" + }, + "validation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "kind", + "metric", + "source_table" + ], + "type": "object" + }, + "relation": { + "description": "Reads '<entity> <relation> <target>'", + "enum": [ + "leads", + "lags", + "co_moves", + "member_of", + "has_member", + "mentioned_in", + "tagged_with", + "affects", + "affected_by", + "market_wide_context" + ], + "type": "string" + }, + "scope": { + "default": "direct", + "enum": [ + "direct", + "group", + "market_wide" + ], + "type": "string" + }, + "target": { + "additionalProperties": true, + "type": "object" + }, + "target_observation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "target", + "relation", + "evidence" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Output schema / properties / upstream / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": true, - "properties": { - "evidence": { - "additionalProperties": true, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "kind": { - "enum": [ - "statistical", - "definitional", - "tag", - "hypothesis" - ], - "type": "string" - }, - "metric": { - "type": "string" - }, - "n": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "source_table": { - "type": "string" - }, - "validation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - }, - "value": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "kind", - "metric", - "source_table" - ], - "type": "object" - }, - "relation": { - "description": "Reads '<entity> <relation> <target>'", - "enum": [ - "leads", - "lags", - "co_moves", - "member_of", - "has_member", - "mentioned_in", - "tagged_with", - "affects", - "affected_by" - ], - "type": "string" - }, - "scope": { - "default": "direct", - "enum": [ - "direct", - "group", - "market_wide" - ], - "type": "string" - }, - "target": { - "additionalProperties": true, - "type": "object" - }, - "target_observation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "target", - "relation", - "evidence" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": true, + "properties": { + "evidence": { + "additionalProperties": true, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "kind": { + "enum": [ + "statistical", + "definitional", + "tag", + "hypothesis" + ], + "type": "string" + }, + "metric": { + "type": "string" + }, + "n": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "source_table": { + "type": "string" + }, + "validation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "kind", + "metric", + "source_table" + ], + "type": "object" + }, + "relation": { + "description": "Reads '<entity> <relation> <target>'", + "enum": [ + "leads", + "lags", + "co_moves", + "member_of", + "has_member", + "mentioned_in", + "tagged_with", + "affects", + "affected_by", + "market_wide_context" + ], + "type": "string" + }, + "scope": { + "default": "direct", + "enum": [ + "direct", + "group", + "market_wide" + ], + "type": "string" + }, + "target": { + "additionalProperties": true, + "type": "object" + }, + "target_observation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "target", + "relation", + "evidence" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +]
- Changed
get_market_context4 fields changed- changed
Output schema / properties / downstream / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": true, - "properties": { - "evidence": { - "additionalProperties": true, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "kind": { - "enum": [ - "statistical", - "definitional", - "tag", - "hypothesis" - ], - "type": "string" - }, - "metric": { - "type": "string" - }, - "n": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "source_table": { - "type": "string" - }, - "validation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - }, - "value": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "kind", - "metric", - "source_table" - ], - "type": "object" - }, - "relation": { - "description": "Reads '<entity> <relation> <target>'", - "enum": [ - "leads", - "lags", - "co_moves", - "member_of", - "has_member", - "mentioned_in", - "tagged_with", - "affects", - "affected_by" - ], - "type": "string" - }, - "scope": { - "default": "direct", - "enum": [ - "direct", - "group", - "market_wide" - ], - "type": "string" - }, - "target": { - "additionalProperties": true, - "type": "object" - }, - "target_observation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "target", - "relation", - "evidence" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": true, + "properties": { + "evidence": { + "additionalProperties": true, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "kind": { + "enum": [ + "statistical", + "definitional", + "tag", + "hypothesis" + ], + "type": "string" + }, + "metric": { + "type": "string" + }, + "n": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "source_table": { + "type": "string" + }, + "validation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "kind", + "metric", + "source_table" + ], + "type": "object" + }, + "relation": { + "description": "Reads '<entity> <relation> <target>'", + "enum": [ + "leads", + "lags", + "co_moves", + "member_of", + "has_member", + "mentioned_in", + "tagged_with", + "affects", + "affected_by", + "market_wide_context" + ], + "type": "string" + }, + "scope": { + "default": "direct", + "enum": [ + "direct", + "group", + "market_wide" + ], + "type": "string" + }, + "target": { + "additionalProperties": true, + "type": "object" + }, + "target_observation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "target", + "relation", + "evidence" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Output schema / properties / news / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": true, - "properties": { - "evidence": { - "additionalProperties": true, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "kind": { - "enum": [ - "statistical", - "definitional", - "tag", - "hypothesis" - ], - "type": "string" - }, - "metric": { - "type": "string" - }, - "n": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "source_table": { - "type": "string" - }, - "validation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - }, - "value": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "kind", - "metric", - "source_table" - ], - "type": "object" - }, - "relation": { - "description": "Reads '<entity> <relation> <target>'", - "enum": [ - "leads", - "lags", - "co_moves", - "member_of", - "has_member", - "mentioned_in", - "tagged_with", - "affects", - "affected_by" - ], - "type": "string" - }, - "scope": { - "default": "direct", - "enum": [ - "direct", - "group", - "market_wide" - ], - "type": "string" - }, - "target": { - "additionalProperties": true, - "type": "object" - }, - "target_observation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "target", - "relation", - "evidence" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": true, + "properties": { + "evidence": { + "additionalProperties": true, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "kind": { + "enum": [ + "statistical", + "definitional", + "tag", + "hypothesis" + ], + "type": "string" + }, + "metric": { + "type": "string" + }, + "n": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "source_table": { + "type": "string" + }, + "validation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "kind", + "metric", + "source_table" + ], + "type": "object" + }, + "relation": { + "description": "Reads '<entity> <relation> <target>'", + "enum": [ + "leads", + "lags", + "co_moves", + "member_of", + "has_member", + "mentioned_in", + "tagged_with", + "affects", + "affected_by", + "market_wide_context" + ], + "type": "string" + }, + "scope": { + "default": "direct", + "enum": [ + "direct", + "group", + "market_wide" + ], + "type": "string" + }, + "target": { + "additionalProperties": true, + "type": "object" + }, + "target_observation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "target", + "relation", + "evidence" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Output schema / properties / peers / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": true, - "properties": { - "evidence": { - "additionalProperties": true, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "kind": { - "enum": [ - "statistical", - "definitional", - "tag", - "hypothesis" - ], - "type": "string" - }, - "metric": { - "type": "string" - }, - "n": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "source_table": { - "type": "string" - }, - "validation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - }, - "value": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "kind", - "metric", - "source_table" - ], - "type": "object" - }, - "relation": { - "description": "Reads '<entity> <relation> <target>'", - "enum": [ - "leads", - "lags", - "co_moves", - "member_of", - "has_member", - "mentioned_in", - "tagged_with", - "affects", - "affected_by" - ], - "type": "string" - }, - "scope": { - "default": "direct", - "enum": [ - "direct", - "group", - "market_wide" - ], - "type": "string" - }, - "target": { - "additionalProperties": true, - "type": "object" - }, - "target_observation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "target", - "relation", - "evidence" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": true, + "properties": { + "evidence": { + "additionalProperties": true, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "kind": { + "enum": [ + "statistical", + "definitional", + "tag", + "hypothesis" + ], + "type": "string" + }, + "metric": { + "type": "string" + }, + "n": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "source_table": { + "type": "string" + }, + "validation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "kind", + "metric", + "source_table" + ], + "type": "object" + }, + "relation": { + "description": "Reads '<entity> <relation> <target>'", + "enum": [ + "leads", + "lags", + "co_moves", + "member_of", + "has_member", + "mentioned_in", + "tagged_with", + "affects", + "affected_by", + "market_wide_context" + ], + "type": "string" + }, + "scope": { + "default": "direct", + "enum": [ + "direct", + "group", + "market_wide" + ], + "type": "string" + }, + "target": { + "additionalProperties": true, + "type": "object" + }, + "target_observation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "target", + "relation", + "evidence" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Output schema / properties / upstream / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": true, - "properties": { - "evidence": { - "additionalProperties": true, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "kind": { - "enum": [ - "statistical", - "definitional", - "tag", - "hypothesis" - ], - "type": "string" - }, - "metric": { - "type": "string" - }, - "n": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "source_table": { - "type": "string" - }, - "validation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - }, - "value": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "kind", - "metric", - "source_table" - ], - "type": "object" - }, - "relation": { - "description": "Reads '<entity> <relation> <target>'", - "enum": [ - "leads", - "lags", - "co_moves", - "member_of", - "has_member", - "mentioned_in", - "tagged_with", - "affects", - "affected_by" - ], - "type": "string" - }, - "scope": { - "default": "direct", - "enum": [ - "direct", - "group", - "market_wide" - ], - "type": "string" - }, - "target": { - "additionalProperties": true, - "type": "object" - }, - "target_observation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "target", - "relation", - "evidence" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": true, + "properties": { + "evidence": { + "additionalProperties": true, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "kind": { + "enum": [ + "statistical", + "definitional", + "tag", + "hypothesis" + ], + "type": "string" + }, + "metric": { + "type": "string" + }, + "n": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "source_table": { + "type": "string" + }, + "validation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "kind", + "metric", + "source_table" + ], + "type": "object" + }, + "relation": { + "description": "Reads '<entity> <relation> <target>'", + "enum": [ + "leads", + "lags", + "co_moves", + "member_of", + "has_member", + "mentioned_in", + "tagged_with", + "affects", + "affected_by", + "market_wide_context" + ], + "type": "string" + }, + "scope": { + "default": "direct", + "enum": [ + "direct", + "group", + "market_wide" + ], + "type": "string" + }, + "target": { + "additionalProperties": true, + "type": "object" + }, + "target_observation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "target", + "relation", + "evidence" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +]
- Changed
get_news_context4 fields changed- changed
Output schema / properties / downstream / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": true, - "properties": { - "evidence": { - "additionalProperties": true, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "kind": { - "enum": [ - "statistical", - "definitional", - "tag", - "hypothesis" - ], - "type": "string" - }, - "metric": { - "type": "string" - }, - "n": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "source_table": { - "type": "string" - }, - "validation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - }, - "value": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "kind", - "metric", - "source_table" - ], - "type": "object" - }, - "relation": { - "description": "Reads '<entity> <relation> <target>'", - "enum": [ - "leads", - "lags", - "co_moves", - "member_of", - "has_member", - "mentioned_in", - "tagged_with", - "affects", - "affected_by" - ], - "type": "string" - }, - "scope": { - "default": "direct", - "enum": [ - "direct", - "group", - "market_wide" - ], - "type": "string" - }, - "target": { - "additionalProperties": true, - "type": "object" - }, - "target_observation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "target", - "relation", - "evidence" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": true, + "properties": { + "evidence": { + "additionalProperties": true, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "kind": { + "enum": [ + "statistical", + "definitional", + "tag", + "hypothesis" + ], + "type": "string" + }, + "metric": { + "type": "string" + }, + "n": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "source_table": { + "type": "string" + }, + "validation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "kind", + "metric", + "source_table" + ], + "type": "object" + }, + "relation": { + "description": "Reads '<entity> <relation> <target>'", + "enum": [ + "leads", + "lags", + "co_moves", + "member_of", + "has_member", + "mentioned_in", + "tagged_with", + "affects", + "affected_by", + "market_wide_context" + ], + "type": "string" + }, + "scope": { + "default": "direct", + "enum": [ + "direct", + "group", + "market_wide" + ], + "type": "string" + }, + "target": { + "additionalProperties": true, + "type": "object" + }, + "target_observation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "target", + "relation", + "evidence" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Output schema / properties / news / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": true, - "properties": { - "evidence": { - "additionalProperties": true, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "kind": { - "enum": [ - "statistical", - "definitional", - "tag", - "hypothesis" - ], - "type": "string" - }, - "metric": { - "type": "string" - }, - "n": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "source_table": { - "type": "string" - }, - "validation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - }, - "value": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "kind", - "metric", - "source_table" - ], - "type": "object" - }, - "relation": { - "description": "Reads '<entity> <relation> <target>'", - "enum": [ - "leads", - "lags", - "co_moves", - "member_of", - "has_member", - "mentioned_in", - "tagged_with", - "affects", - "affected_by" - ], - "type": "string" - }, - "scope": { - "default": "direct", - "enum": [ - "direct", - "group", - "market_wide" - ], - "type": "string" - }, - "target": { - "additionalProperties": true, - "type": "object" - }, - "target_observation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "target", - "relation", - "evidence" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": true, + "properties": { + "evidence": { + "additionalProperties": true, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "kind": { + "enum": [ + "statistical", + "definitional", + "tag", + "hypothesis" + ], + "type": "string" + }, + "metric": { + "type": "string" + }, + "n": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "source_table": { + "type": "string" + }, + "validation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "kind", + "metric", + "source_table" + ], + "type": "object" + }, + "relation": { + "description": "Reads '<entity> <relation> <target>'", + "enum": [ + "leads", + "lags", + "co_moves", + "member_of", + "has_member", + "mentioned_in", + "tagged_with", + "affects", + "affected_by", + "market_wide_context" + ], + "type": "string" + }, + "scope": { + "default": "direct", + "enum": [ + "direct", + "group", + "market_wide" + ], + "type": "string" + }, + "target": { + "additionalProperties": true, + "type": "object" + }, + "target_observation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "target", + "relation", + "evidence" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Output schema / properties / peers / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": true, - "properties": { - "evidence": { - "additionalProperties": true, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "kind": { - "enum": [ - "statistical", - "definitional", - "tag", - "hypothesis" - ], - "type": "string" - }, - "metric": { - "type": "string" - }, - "n": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "source_table": { - "type": "string" - }, - "validation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - }, - "value": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "kind", - "metric", - "source_table" - ], - "type": "object" - }, - "relation": { - "description": "Reads '<entity> <relation> <target>'", - "enum": [ - "leads", - "lags", - "co_moves", - "member_of", - "has_member", - "mentioned_in", - "tagged_with", - "affects", - "affected_by" - ], - "type": "string" - }, - "scope": { - "default": "direct", - "enum": [ - "direct", - "group", - "market_wide" - ], - "type": "string" - }, - "target": { - "additionalProperties": true, - "type": "object" - }, - "target_observation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "target", - "relation", - "evidence" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": true, + "properties": { + "evidence": { + "additionalProperties": true, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "kind": { + "enum": [ + "statistical", + "definitional", + "tag", + "hypothesis" + ], + "type": "string" + }, + "metric": { + "type": "string" + }, + "n": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "source_table": { + "type": "string" + }, + "validation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "kind", + "metric", + "source_table" + ], + "type": "object" + }, + "relation": { + "description": "Reads '<entity> <relation> <target>'", + "enum": [ + "leads", + "lags", + "co_moves", + "member_of", + "has_member", + "mentioned_in", + "tagged_with", + "affects", + "affected_by", + "market_wide_context" + ], + "type": "string" + }, + "scope": { + "default": "direct", + "enum": [ + "direct", + "group", + "market_wide" + ], + "type": "string" + }, + "target": { + "additionalProperties": true, + "type": "object" + }, + "target_observation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "target", + "relation", + "evidence" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Output schema / properties / upstream / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": true, - "properties": { - "evidence": { - "additionalProperties": true, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "kind": { - "enum": [ - "statistical", - "definitional", - "tag", - "hypothesis" - ], - "type": "string" - }, - "metric": { - "type": "string" - }, - "n": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "source_table": { - "type": "string" - }, - "validation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - }, - "value": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "kind", - "metric", - "source_table" - ], - "type": "object" - }, - "relation": { - "description": "Reads '<entity> <relation> <target>'", - "enum": [ - "leads", - "lags", - "co_moves", - "member_of", - "has_member", - "mentioned_in", - "tagged_with", - "affects", - "affected_by" - ], - "type": "string" - }, - "scope": { - "default": "direct", - "enum": [ - "direct", - "group", - "market_wide" - ], - "type": "string" - }, - "target": { - "additionalProperties": true, - "type": "object" - }, - "target_observation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "target", - "relation", - "evidence" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": true, + "properties": { + "evidence": { + "additionalProperties": true, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "kind": { + "enum": [ + "statistical", + "definitional", + "tag", + "hypothesis" + ], + "type": "string" + }, + "metric": { + "type": "string" + }, + "n": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "source_table": { + "type": "string" + }, + "validation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "kind", + "metric", + "source_table" + ], + "type": "object" + }, + "relation": { + "description": "Reads '<entity> <relation> <target>'", + "enum": [ + "leads", + "lags", + "co_moves", + "member_of", + "has_member", + "mentioned_in", + "tagged_with", + "affects", + "affected_by", + "market_wide_context" + ], + "type": "string" + }, + "scope": { + "default": "direct", + "enum": [ + "direct", + "group", + "market_wide" + ], + "type": "string" + }, + "target": { + "additionalProperties": true, + "type": "object" + }, + "target_observation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "target", + "relation", + "evidence" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +]
- Changed
get_role_analysis1 field changed- changed
Output schema / properties / full_data / anyOfPrevious value: -[ - { - "additionalProperties": true, - "description": "`full_data` for get_role_analysis — 실응답에서 추출(2026-09-23).", - "properties": { - "combined": { - "additionalProperties": true, - "type": "object" - }, - "hierarchy": { - "additionalProperties": true, - "type": "object" - }, - "market_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "roles": { - "additionalProperties": true, - "type": "object" - }, - "symbol": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "timestamp": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": true, + "description": "`full_data` for get_role_analysis — 실응답에서 추출(2026-09-23).", + "properties": { + "combined": { + "additionalProperties": true, + "type": "object" + }, + "hierarchy": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "market_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "roles": { + "additionalProperties": true, + "type": "object" + }, + "symbol": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "timestamp": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "type": "object" + }, + { + "type": "null" + } +]
- Changed
get_symbol_context4 fields changed- changed
Output schema / properties / downstream / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": true, - "properties": { - "evidence": { - "additionalProperties": true, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "kind": { - "enum": [ - "statistical", - "definitional", - "tag", - "hypothesis" - ], - "type": "string" - }, - "metric": { - "type": "string" - }, - "n": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "source_table": { - "type": "string" - }, - "validation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - }, - "value": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "kind", - "metric", - "source_table" - ], - "type": "object" - }, - "relation": { - "description": "Reads '<entity> <relation> <target>'", - "enum": [ - "leads", - "lags", - "co_moves", - "member_of", - "has_member", - "mentioned_in", - "tagged_with", - "affects", - "affected_by" - ], - "type": "string" - }, - "scope": { - "default": "direct", - "enum": [ - "direct", - "group", - "market_wide" - ], - "type": "string" - }, - "target": { - "additionalProperties": true, - "type": "object" - }, - "target_observation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "target", - "relation", - "evidence" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": true, + "properties": { + "evidence": { + "additionalProperties": true, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "kind": { + "enum": [ + "statistical", + "definitional", + "tag", + "hypothesis" + ], + "type": "string" + }, + "metric": { + "type": "string" + }, + "n": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "source_table": { + "type": "string" + }, + "validation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "kind", + "metric", + "source_table" + ], + "type": "object" + }, + "relation": { + "description": "Reads '<entity> <relation> <target>'", + "enum": [ + "leads", + "lags", + "co_moves", + "member_of", + "has_member", + "mentioned_in", + "tagged_with", + "affects", + "affected_by", + "market_wide_context" + ], + "type": "string" + }, + "scope": { + "default": "direct", + "enum": [ + "direct", + "group", + "market_wide" + ], + "type": "string" + }, + "target": { + "additionalProperties": true, + "type": "object" + }, + "target_observation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "target", + "relation", + "evidence" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Output schema / properties / news / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": true, - "properties": { - "evidence": { - "additionalProperties": true, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "kind": { - "enum": [ - "statistical", - "definitional", - "tag", - "hypothesis" - ], - "type": "string" - }, - "metric": { - "type": "string" - }, - "n": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "source_table": { - "type": "string" - }, - "validation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - }, - "value": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "kind", - "metric", - "source_table" - ], - "type": "object" - }, - "relation": { - "description": "Reads '<entity> <relation> <target>'", - "enum": [ - "leads", - "lags", - "co_moves", - "member_of", - "has_member", - "mentioned_in", - "tagged_with", - "affects", - "affected_by" - ], - "type": "string" - }, - "scope": { - "default": "direct", - "enum": [ - "direct", - "group", - "market_wide" - ], - "type": "string" - }, - "target": { - "additionalProperties": true, - "type": "object" - }, - "target_observation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "target", - "relation", - "evidence" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": true, + "properties": { + "evidence": { + "additionalProperties": true, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "kind": { + "enum": [ + "statistical", + "definitional", + "tag", + "hypothesis" + ], + "type": "string" + }, + "metric": { + "type": "string" + }, + "n": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "source_table": { + "type": "string" + }, + "validation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "kind", + "metric", + "source_table" + ], + "type": "object" + }, + "relation": { + "description": "Reads '<entity> <relation> <target>'", + "enum": [ + "leads", + "lags", + "co_moves", + "member_of", + "has_member", + "mentioned_in", + "tagged_with", + "affects", + "affected_by", + "market_wide_context" + ], + "type": "string" + }, + "scope": { + "default": "direct", + "enum": [ + "direct", + "group", + "market_wide" + ], + "type": "string" + }, + "target": { + "additionalProperties": true, + "type": "object" + }, + "target_observation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "target", + "relation", + "evidence" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Output schema / properties / peers / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": true, - "properties": { - "evidence": { - "additionalProperties": true, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "kind": { - "enum": [ - "statistical", - "definitional", - "tag", - "hypothesis" - ], - "type": "string" - }, - "metric": { - "type": "string" - }, - "n": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "source_table": { - "type": "string" - }, - "validation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - }, - "value": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "kind", - "metric", - "source_table" - ], - "type": "object" - }, - "relation": { - "description": "Reads '<entity> <relation> <target>'", - "enum": [ - "leads", - "lags", - "co_moves", - "member_of", - "has_member", - "mentioned_in", - "tagged_with", - "affects", - "affected_by" - ], - "type": "string" - }, - "scope": { - "default": "direct", - "enum": [ - "direct", - "group", - "market_wide" - ], - "type": "string" - }, - "target": { - "additionalProperties": true, - "type": "object" - }, - "target_observation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "target", - "relation", - "evidence" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": true, + "properties": { + "evidence": { + "additionalProperties": true, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "kind": { + "enum": [ + "statistical", + "definitional", + "tag", + "hypothesis" + ], + "type": "string" + }, + "metric": { + "type": "string" + }, + "n": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "source_table": { + "type": "string" + }, + "validation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "kind", + "metric", + "source_table" + ], + "type": "object" + }, + "relation": { + "description": "Reads '<entity> <relation> <target>'", + "enum": [ + "leads", + "lags", + "co_moves", + "member_of", + "has_member", + "mentioned_in", + "tagged_with", + "affects", + "affected_by", + "market_wide_context" + ], + "type": "string" + }, + "scope": { + "default": "direct", + "enum": [ + "direct", + "group", + "market_wide" + ], + "type": "string" + }, + "target": { + "additionalProperties": true, + "type": "object" + }, + "target_observation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "target", + "relation", + "evidence" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Output schema / properties / upstream / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": true, - "properties": { - "evidence": { - "additionalProperties": true, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "kind": { - "enum": [ - "statistical", - "definitional", - "tag", - "hypothesis" - ], - "type": "string" - }, - "metric": { - "type": "string" - }, - "n": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "source_table": { - "type": "string" - }, - "validation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - }, - "value": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "kind", - "metric", - "source_table" - ], - "type": "object" - }, - "relation": { - "description": "Reads '<entity> <relation> <target>'", - "enum": [ - "leads", - "lags", - "co_moves", - "member_of", - "has_member", - "mentioned_in", - "tagged_with", - "affects", - "affected_by" - ], - "type": "string" - }, - "scope": { - "default": "direct", - "enum": [ - "direct", - "group", - "market_wide" - ], - "type": "string" - }, - "target": { - "additionalProperties": true, - "type": "object" - }, - "target_observation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "target", - "relation", - "evidence" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": true, + "properties": { + "evidence": { + "additionalProperties": true, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "kind": { + "enum": [ + "statistical", + "definitional", + "tag", + "hypothesis" + ], + "type": "string" + }, + "metric": { + "type": "string" + }, + "n": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "source_table": { + "type": "string" + }, + "validation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "kind", + "metric", + "source_table" + ], + "type": "object" + }, + "relation": { + "description": "Reads '<entity> <relation> <target>'", + "enum": [ + "leads", + "lags", + "co_moves", + "member_of", + "has_member", + "mentioned_in", + "tagged_with", + "affects", + "affected_by", + "market_wide_context" + ], + "type": "string" + }, + "scope": { + "default": "direct", + "enum": [ + "direct", + "group", + "market_wide" + ], + "type": "string" + }, + "target": { + "additionalProperties": true, + "type": "object" + }, + "target_observation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "target", + "relation", + "evidence" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +]
6 tool updates
- Changed
explain_decision1 field changed- changed
Output schema / properties / full_data / anyOfPrevious value: -[ - { - "additionalProperties": true, - "description": "`full_data` for explain_decision.", - "properties": { - "layers": { - "additionalProperties": true, - "type": "object" - }, - "overall_assessment": { - "additionalProperties": true, - "description": "[2026-10-18 첫접촉 D4] 판정이 아니라 서술 — 종전 overall_recommendation{verdict,text,basis} 대체.", - "properties": { - "bias": { - "anyOf": [ - { - "enum": [ - "positive", - "neutral", - "negative" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "evidence_basis": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - }, - "score": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "text": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "type": "object" - }, - "symbol": { - "type": "string" - } - }, - "required": [ - "symbol" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": true, + "description": "`full_data` for explain_decision.", + "properties": { + "layers": { + "additionalProperties": true, + "type": "object" + }, + "overall_assessment": { + "additionalProperties": true, + "description": "Descriptive assessment, not a verdict: score, score-sign bias (+/-0.1), text and every input used.\n\nReplaced the former verdict object on 2026-10-18 (first-contact D4).", + "properties": { + "bias": { + "anyOf": [ + { + "enum": [ + "positive", + "neutral", + "negative" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "evidence_basis": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "score": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "text": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "type": "object" + }, + "symbol": { + "type": "string" + } + }, + "required": [ + "symbol" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
get_group_context1 field changed- changed
Input schema / properties / question / descriptionPrevious value: -"Optional. The user's original question, used only for service improvement analytics. Does not change the response."New value: +"Optional. The user's original question, used only for service improvement analytics. Does not change the response. Do not include personal information."
- Changed
get_macro_context1 field changed- changed
Input schema / properties / question / descriptionPrevious value: -"Optional. The user's original question, used only for service improvement analytics. Does not change the response."New value: +"Optional. The user's original question, used only for service improvement analytics. Does not change the response. Do not include personal information."
- Changed
get_market_context1 field changed- changed
Input schema / properties / question / descriptionPrevious value: -"Optional. The user's original question, used only for service improvement analytics. Does not change the response."New value: +"Optional. The user's original question, used only for service improvement analytics. Does not change the response. Do not include personal information."
- Changed
get_news_context1 field changed- changed
Input schema / properties / question / descriptionPrevious value: -"Optional. The user's original question, used only for service improvement analytics. Does not change the response."New value: +"Optional. The user's original question, used only for service improvement analytics. Does not change the response. Do not include personal information."
- Changed
get_symbol_context1 field changed- changed
Input schema / properties / question / descriptionPrevious value: -"Optional. The user's original question, used only for service improvement analytics. Does not change the response."New value: +"Optional. The user's original question, used only for service improvement analytics. Does not change the response. Do not include personal information."
14 tool updates
- Changed
explain_decision1 field changed- changed
Output schema / properties / full_data / anyOfPrevious value: -[ - { - "additionalProperties": true, - "description": "`full_data` for explain_decision.", - "properties": { - "layers": { - "additionalProperties": true, - "type": "object" - }, - "overall_recommendation": { - "additionalProperties": true, - "properties": { - "basis": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - }, - "text": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "verdict": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "type": "object" - }, - "symbol": { - "type": "string" - } - }, - "required": [ - "symbol" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": true, + "description": "`full_data` for explain_decision.", + "properties": { + "layers": { + "additionalProperties": true, + "type": "object" + }, + "overall_assessment": { + "additionalProperties": true, + "description": "[2026-10-18 첫접촉 D4] 판정이 아니라 서술 — 종전 overall_recommendation{verdict,text,basis} 대체.", + "properties": { + "bias": { + "anyOf": [ + { + "enum": [ + "positive", + "neutral", + "negative" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "evidence_basis": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "score": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "text": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "type": "object" + }, + "symbol": { + "type": "string" + } + }, + "required": [ + "symbol" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
get_daily_brief1 field changed- changed
Output schema / properties / full_data / anyOfPrevious value: -[ - { - "additionalProperties": true, - "description": "`full_data` for get_daily_brief.", - "properties": { - "active_predictions_count": { - "default": 0, - "type": "integer" - }, - "losing_count": { - "default": 0, - "type": "integer" - }, - "macro_regime": { - "additionalProperties": true, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "categories": { - "items": {}, - "type": "array" - }, - "regime": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "regime_score": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "regime_signed": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "stale": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": null - }, - "total": { - "default": 0, - "type": "integer" - }, - "unavailable_reason": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "type": "object" - }, - "market": { - "type": "string" - }, - "market_breadth": { - "additionalProperties": true, - "type": "object" - }, - "meta": { - "additionalProperties": true, - "properties": { - "data_window": { - "default": "last_24h", - "type": "string" - }, - "interpretation": { - "default": "", - "type": "string" - }, - "source": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "narrative": { - "type": "string" - }, - "primary_market": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "strong_signals": { - "items": { - "additionalProperties": true, - "properties": { - "action": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "confidence": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "interval": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "market_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "price": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "reason_uncalibrated": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": null - }, - "signal_score": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "symbol": { - "type": "string" - }, - "timestamp": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "warnings": { - "anyOf": [ - { - "additionalProperties": { - "type": "boolean" - }, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "symbol" - ], - "type": "object" - }, - "type": "array" - }, - "winning_count": { - "default": 0, - "type": "integer" - }, - "yesterday_trades": { - "additionalProperties": true, - "properties": { - "by_market": { - "additionalProperties": { - "additionalProperties": true, - "type": "object" - }, - "type": "object" - }, - "losing": { - "default": 0, - "type": "integer" - }, - "total": { - "default": 0, - "type": "integer" - }, - "winning": { - "default": 0, - "type": "integer" - } - }, - "type": "object" - } - }, - "required": [ - "market", - "narrative" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": true, + "description": "`full_data` for get_daily_brief.", + "properties": { + "active_predictions_count": { + "default": 0, + "type": "integer" + }, + "losing_count": { + "default": 0, + "type": "integer" + }, + "macro_regime": { + "additionalProperties": true, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "categories": { + "items": {}, + "type": "array" + }, + "regime": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "regime_score": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "regime_signed": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "stale": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null + }, + "total": { + "default": 0, + "type": "integer" + }, + "unavailable_reason": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "type": "object" + }, + "market": { + "type": "string" + }, + "market_breadth": { + "additionalProperties": true, + "type": "object" + }, + "meta": { + "additionalProperties": true, + "properties": { + "data_window": { + "default": "last_24h", + "type": "string" + }, + "interpretation": { + "default": "", + "type": "string" + }, + "source": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "narrative": { + "type": "string" + }, + "primary_market": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "strong_signals": { + "anyOf": [ + { + "items": { + "additionalProperties": true, + "properties": { + "bias": { + "anyOf": [ + { + "enum": [ + "positive", + "neutral", + "negative" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "confidence": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "interval": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "market_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "price": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "reason_uncalibrated": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null + }, + "signal_score": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "symbol": { + "type": "string" + }, + "timestamp": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "warnings": { + "anyOf": [ + { + "additionalProperties": { + "type": "boolean" + }, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "symbol" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null + }, + "top_ranked_signals": { + "anyOf": [ + { + "items": { + "additionalProperties": true, + "properties": { + "bias": { + "anyOf": [ + { + "enum": [ + "positive", + "neutral", + "negative" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "confidence": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "interval": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "market_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "price": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "reason_uncalibrated": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null + }, + "signal_score": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "symbol": { + "type": "string" + }, + "timestamp": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "warnings": { + "anyOf": [ + { + "additionalProperties": { + "type": "boolean" + }, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "symbol" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null + }, + "winning_count": { + "default": 0, + "type": "integer" + }, + "yesterday_trades": { + "additionalProperties": true, + "properties": { + "by_market": { + "additionalProperties": { + "additionalProperties": true, + "type": "object" + }, + "type": "object" + }, + "losing": { + "default": 0, + "type": "integer" + }, + "total": { + "default": 0, + "type": "integer" + }, + "winning": { + "default": 0, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "market", + "narrative" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
get_group_context4 fields changed- changed
Output schema / properties / downstream / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": true, - "properties": { - "evidence": { - "additionalProperties": true, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "kind": { - "enum": [ - "statistical", - "definitional", - "tag", - "hypothesis" - ], - "type": "string" - }, - "metric": { - "type": "string" - }, - "n": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "source_table": { - "type": "string" - }, - "validation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - }, - "value": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "kind", - "metric", - "source_table" - ], - "type": "object" - }, - "relation": { - "description": "Reads '<entity> <relation> <target>'", - "enum": [ - "leads", - "lags", - "co_moves", - "member_of", - "has_member", - "mentioned_in", - "affects", - "affected_by" - ], - "type": "string" - }, - "scope": { - "default": "direct", - "enum": [ - "direct", - "group", - "market_wide" - ], - "type": "string" - }, - "target": { - "additionalProperties": true, - "type": "object" - }, - "target_observation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "target", - "relation", - "evidence" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": true, + "properties": { + "evidence": { + "additionalProperties": true, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "kind": { + "enum": [ + "statistical", + "definitional", + "tag", + "hypothesis" + ], + "type": "string" + }, + "metric": { + "type": "string" + }, + "n": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "source_table": { + "type": "string" + }, + "validation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "kind", + "metric", + "source_table" + ], + "type": "object" + }, + "relation": { + "description": "Reads '<entity> <relation> <target>'", + "enum": [ + "leads", + "lags", + "co_moves", + "member_of", + "has_member", + "mentioned_in", + "tagged_with", + "affects", + "affected_by" + ], + "type": "string" + }, + "scope": { + "default": "direct", + "enum": [ + "direct", + "group", + "market_wide" + ], + "type": "string" + }, + "target": { + "additionalProperties": true, + "type": "object" + }, + "target_observation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "target", + "relation", + "evidence" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Output schema / properties / news / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": true, - "properties": { - "evidence": { - "additionalProperties": true, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "kind": { - "enum": [ - "statistical", - "definitional", - "tag", - "hypothesis" - ], - "type": "string" - }, - "metric": { - "type": "string" - }, - "n": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "source_table": { - "type": "string" - }, - "validation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - }, - "value": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "kind", - "metric", - "source_table" - ], - "type": "object" - }, - "relation": { - "description": "Reads '<entity> <relation> <target>'", - "enum": [ - "leads", - "lags", - "co_moves", - "member_of", - "has_member", - "mentioned_in", - "affects", - "affected_by" - ], - "type": "string" - }, - "scope": { - "default": "direct", - "enum": [ - "direct", - "group", - "market_wide" - ], - "type": "string" - }, - "target": { - "additionalProperties": true, - "type": "object" - }, - "target_observation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "target", - "relation", - "evidence" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": true, + "properties": { + "evidence": { + "additionalProperties": true, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "kind": { + "enum": [ + "statistical", + "definitional", + "tag", + "hypothesis" + ], + "type": "string" + }, + "metric": { + "type": "string" + }, + "n": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "source_table": { + "type": "string" + }, + "validation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "kind", + "metric", + "source_table" + ], + "type": "object" + }, + "relation": { + "description": "Reads '<entity> <relation> <target>'", + "enum": [ + "leads", + "lags", + "co_moves", + "member_of", + "has_member", + "mentioned_in", + "tagged_with", + "affects", + "affected_by" + ], + "type": "string" + }, + "scope": { + "default": "direct", + "enum": [ + "direct", + "group", + "market_wide" + ], + "type": "string" + }, + "target": { + "additionalProperties": true, + "type": "object" + }, + "target_observation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "target", + "relation", + "evidence" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Output schema / properties / peers / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": true, - "properties": { - "evidence": { - "additionalProperties": true, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "kind": { - "enum": [ - "statistical", - "definitional", - "tag", - "hypothesis" - ], - "type": "string" - }, - "metric": { - "type": "string" - }, - "n": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "source_table": { - "type": "string" - }, - "validation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - }, - "value": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "kind", - "metric", - "source_table" - ], - "type": "object" - }, - "relation": { - "description": "Reads '<entity> <relation> <target>'", - "enum": [ - "leads", - "lags", - "co_moves", - "member_of", - "has_member", - "mentioned_in", - "affects", - "affected_by" - ], - "type": "string" - }, - "scope": { - "default": "direct", - "enum": [ - "direct", - "group", - "market_wide" - ], - "type": "string" - }, - "target": { - "additionalProperties": true, - "type": "object" - }, - "target_observation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "target", - "relation", - "evidence" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": true, + "properties": { + "evidence": { + "additionalProperties": true, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "kind": { + "enum": [ + "statistical", + "definitional", + "tag", + "hypothesis" + ], + "type": "string" + }, + "metric": { + "type": "string" + }, + "n": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "source_table": { + "type": "string" + }, + "validation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "kind", + "metric", + "source_table" + ], + "type": "object" + }, + "relation": { + "description": "Reads '<entity> <relation> <target>'", + "enum": [ + "leads", + "lags", + "co_moves", + "member_of", + "has_member", + "mentioned_in", + "tagged_with", + "affects", + "affected_by" + ], + "type": "string" + }, + "scope": { + "default": "direct", + "enum": [ + "direct", + "group", + "market_wide" + ], + "type": "string" + }, + "target": { + "additionalProperties": true, + "type": "object" + }, + "target_observation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "target", + "relation", + "evidence" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Output schema / properties / upstream / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": true, - "properties": { - "evidence": { - "additionalProperties": true, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "kind": { - "enum": [ - "statistical", - "definitional", - "tag", - "hypothesis" - ], - "type": "string" - }, - "metric": { - "type": "string" - }, - "n": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "source_table": { - "type": "string" - }, - "validation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - }, - "value": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "kind", - "metric", - "source_table" - ], - "type": "object" - }, - "relation": { - "description": "Reads '<entity> <relation> <target>'", - "enum": [ - "leads", - "lags", - "co_moves", - "member_of", - "has_member", - "mentioned_in", - "affects", - "affected_by" - ], - "type": "string" - }, - "scope": { - "default": "direct", - "enum": [ - "direct", - "group", - "market_wide" - ], - "type": "string" - }, - "target": { - "additionalProperties": true, - "type": "object" - }, - "target_observation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "target", - "relation", - "evidence" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": true, + "properties": { + "evidence": { + "additionalProperties": true, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "kind": { + "enum": [ + "statistical", + "definitional", + "tag", + "hypothesis" + ], + "type": "string" + }, + "metric": { + "type": "string" + }, + "n": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "source_table": { + "type": "string" + }, + "validation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "kind", + "metric", + "source_table" + ], + "type": "object" + }, + "relation": { + "description": "Reads '<entity> <relation> <target>'", + "enum": [ + "leads", + "lags", + "co_moves", + "member_of", + "has_member", + "mentioned_in", + "tagged_with", + "affects", + "affected_by" + ], + "type": "string" + }, + "scope": { + "default": "direct", + "enum": [ + "direct", + "group", + "market_wide" + ], + "type": "string" + }, + "target": { + "additionalProperties": true, + "type": "object" + }, + "target_observation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "target", + "relation", + "evidence" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +]
- Changed
get_latest_decisions1 field changed- changed
Output schema / properties / full_data / anyOfPrevious value: -[ - { - "additionalProperties": true, - "description": "`full_data` for get_latest_decisions (Track B decision log).", - "properties": { - "decisions": { - "items": { - "additionalProperties": true, - "properties": { - "ai_reason": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "ai_score": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "decision": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "reason": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "signal_score": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "symbol": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "timestamp": { - "anyOf": [ - {}, - { - "type": "null" - } - ], - "default": null - }, - "timestamp_str": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "type": "object" - }, - "type": "array" - }, - "market_id": { - "type": "string" - }, - "stats": { - "additionalProperties": true, - "properties": { - "buy_count": { - "default": 0, - "type": "integer" - }, - "hold_count": { - "default": 0, - "type": "integer" - }, - "sell_count": { - "default": 0, - "type": "integer" - }, - "total": { - "default": 0, - "type": "integer" - } - }, - "type": "object" - }, - "timestamp": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "market_id" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": true, + "description": "`full_data` for get_latest_decisions (Track B decision log).", + "properties": { + "decisions": { + "items": { + "additionalProperties": true, + "properties": { + "ai_reason": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "ai_score": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "execution_event": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "reason": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "signal_score": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "symbol": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "timestamp": { + "anyOf": [ + {}, + { + "type": "null" + } + ], + "default": null + }, + "timestamp_str": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "type": "object" + }, + "type": "array" + }, + "market_id": { + "type": "string" + }, + "stats": { + "additionalProperties": true, + "properties": { + "no_change_count": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "position_closed_count": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "position_opened_count": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "total": { + "default": 0, + "type": "integer" + } + }, + "type": "object" + }, + "timestamp": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "market_id" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
get_llm_trading_decisions1 field changed- changed
Output schema / properties / full_data / anyOfPrevious value: -[ - { - "additionalProperties": true, - "description": "`full_data` for get_llm_trading_decisions (Track A judgement log).\n\nRows come from SELECT * so the row shape is kept open (Dict).", - "properties": { - "decisions": { - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": "array" - }, - "market_id": { - "type": "string" - }, - "stats": { - "additionalProperties": true, - "properties": { - "buy_count": { - "default": 0, - "type": "integer" - }, - "hold_count": { - "default": 0, - "type": "integer" - }, - "sell_count": { - "default": 0, - "type": "integer" - }, - "total": { - "default": 0, - "type": "integer" - } - }, - "type": "object" - }, - "timestamp": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "market_id" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": true, + "description": "`full_data` for get_llm_trading_decisions (Track A judgement log).\n\nRows come from SELECT * so the row shape is kept open (Dict).", + "properties": { + "decisions": { + "items": { + "additionalProperties": true, + "type": "object" + }, + "type": "array" + }, + "market_id": { + "type": "string" + }, + "stats": { + "additionalProperties": true, + "properties": { + "no_change_count": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "position_closed_count": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "position_opened_count": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "total": { + "default": 0, + "type": "integer" + } + }, + "type": "object" + }, + "timestamp": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "market_id" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
get_losing_trades1 field changed- changed
Output schema / properties / full_data / anyOfPrevious value: -[ - { - "additionalProperties": true, - "description": "`full_data` for get_trade_history.", - "properties": { - "filters": { - "additionalProperties": true, - "type": "object" - }, - "market_id": { - "type": "string" - }, - "stats": { - "additionalProperties": true, - "properties": { - "avg_pnl": { - "type": "number" - }, - "losses": { - "type": "integer" - }, - "total_pnl": { - "type": "number" - }, - "total_trades": { - "type": "integer" - }, - "win_rate": { - "type": "number" - }, - "wins": { - "type": "integer" - } - }, - "required": [ - "total_trades", - "wins", - "losses", - "win_rate", - "total_pnl", - "avg_pnl" - ], - "type": "object" - }, - "trades": { - "items": { - "additionalProperties": true, - "properties": { - "action": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "ai_score": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "entry_price": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "entry_timestamp": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "exit_price": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "exit_timestamp": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "holding_duration": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "profit_loss_pct": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "signal_pattern": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "symbol": { - "type": "string" - } - }, - "required": [ - "symbol" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "market_id", - "stats" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": true, + "description": "`full_data` for get_trade_history.", + "properties": { + "filters": { + "additionalProperties": true, + "type": "object" + }, + "market_id": { + "type": "string" + }, + "stats": { + "additionalProperties": true, + "properties": { + "aggregation": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "avg_pnl": { + "type": "number" + }, + "losses": { + "type": "integer" + }, + "mean_trade_pct": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "sum_of_trade_pct": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "total_pnl": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "total_trades": { + "type": "integer" + }, + "win_rate": { + "type": "number" + }, + "wins": { + "type": "integer" + } + }, + "required": [ + "total_trades", + "wins", + "losses", + "win_rate", + "avg_pnl" + ], + "type": "object" + }, + "trades": { + "items": { + "additionalProperties": true, + "properties": { + "action": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "ai_score": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "entry_price": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "entry_timestamp": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "exit_price": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "exit_timestamp": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "holding_duration": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "profit_loss_pct": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "signal_pattern": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "symbol": { + "type": "string" + } + }, + "required": [ + "symbol" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "market_id", + "stats" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Added
get_macro_context - Changed
get_market_context4 fields changed- changed
Output schema / properties / downstream / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": true, - "properties": { - "evidence": { - "additionalProperties": true, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "kind": { - "enum": [ - "statistical", - "definitional", - "tag", - "hypothesis" - ], - "type": "string" - }, - "metric": { - "type": "string" - }, - "n": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "source_table": { - "type": "string" - }, - "validation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - }, - "value": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "kind", - "metric", - "source_table" - ], - "type": "object" - }, - "relation": { - "description": "Reads '<entity> <relation> <target>'", - "enum": [ - "leads", - "lags", - "co_moves", - "member_of", - "has_member", - "mentioned_in", - "affects", - "affected_by" - ], - "type": "string" - }, - "scope": { - "default": "direct", - "enum": [ - "direct", - "group", - "market_wide" - ], - "type": "string" - }, - "target": { - "additionalProperties": true, - "type": "object" - }, - "target_observation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "target", - "relation", - "evidence" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": true, + "properties": { + "evidence": { + "additionalProperties": true, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "kind": { + "enum": [ + "statistical", + "definitional", + "tag", + "hypothesis" + ], + "type": "string" + }, + "metric": { + "type": "string" + }, + "n": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "source_table": { + "type": "string" + }, + "validation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "kind", + "metric", + "source_table" + ], + "type": "object" + }, + "relation": { + "description": "Reads '<entity> <relation> <target>'", + "enum": [ + "leads", + "lags", + "co_moves", + "member_of", + "has_member", + "mentioned_in", + "tagged_with", + "affects", + "affected_by" + ], + "type": "string" + }, + "scope": { + "default": "direct", + "enum": [ + "direct", + "group", + "market_wide" + ], + "type": "string" + }, + "target": { + "additionalProperties": true, + "type": "object" + }, + "target_observation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "target", + "relation", + "evidence" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Output schema / properties / news / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": true, - "properties": { - "evidence": { - "additionalProperties": true, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "kind": { - "enum": [ - "statistical", - "definitional", - "tag", - "hypothesis" - ], - "type": "string" - }, - "metric": { - "type": "string" - }, - "n": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "source_table": { - "type": "string" - }, - "validation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - }, - "value": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "kind", - "metric", - "source_table" - ], - "type": "object" - }, - "relation": { - "description": "Reads '<entity> <relation> <target>'", - "enum": [ - "leads", - "lags", - "co_moves", - "member_of", - "has_member", - "mentioned_in", - "affects", - "affected_by" - ], - "type": "string" - }, - "scope": { - "default": "direct", - "enum": [ - "direct", - "group", - "market_wide" - ], - "type": "string" - }, - "target": { - "additionalProperties": true, - "type": "object" - }, - "target_observation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "target", - "relation", - "evidence" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": true, + "properties": { + "evidence": { + "additionalProperties": true, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "kind": { + "enum": [ + "statistical", + "definitional", + "tag", + "hypothesis" + ], + "type": "string" + }, + "metric": { + "type": "string" + }, + "n": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "source_table": { + "type": "string" + }, + "validation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "kind", + "metric", + "source_table" + ], + "type": "object" + }, + "relation": { + "description": "Reads '<entity> <relation> <target>'", + "enum": [ + "leads", + "lags", + "co_moves", + "member_of", + "has_member", + "mentioned_in", + "tagged_with", + "affects", + "affected_by" + ], + "type": "string" + }, + "scope": { + "default": "direct", + "enum": [ + "direct", + "group", + "market_wide" + ], + "type": "string" + }, + "target": { + "additionalProperties": true, + "type": "object" + }, + "target_observation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "target", + "relation", + "evidence" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Output schema / properties / peers / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": true, - "properties": { - "evidence": { - "additionalProperties": true, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "kind": { - "enum": [ - "statistical", - "definitional", - "tag", - "hypothesis" - ], - "type": "string" - }, - "metric": { - "type": "string" - }, - "n": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "source_table": { - "type": "string" - }, - "validation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - }, - "value": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "kind", - "metric", - "source_table" - ], - "type": "object" - }, - "relation": { - "description": "Reads '<entity> <relation> <target>'", - "enum": [ - "leads", - "lags", - "co_moves", - "member_of", - "has_member", - "mentioned_in", - "affects", - "affected_by" - ], - "type": "string" - }, - "scope": { - "default": "direct", - "enum": [ - "direct", - "group", - "market_wide" - ], - "type": "string" - }, - "target": { - "additionalProperties": true, - "type": "object" - }, - "target_observation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "target", - "relation", - "evidence" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": true, + "properties": { + "evidence": { + "additionalProperties": true, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "kind": { + "enum": [ + "statistical", + "definitional", + "tag", + "hypothesis" + ], + "type": "string" + }, + "metric": { + "type": "string" + }, + "n": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "source_table": { + "type": "string" + }, + "validation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "kind", + "metric", + "source_table" + ], + "type": "object" + }, + "relation": { + "description": "Reads '<entity> <relation> <target>'", + "enum": [ + "leads", + "lags", + "co_moves", + "member_of", + "has_member", + "mentioned_in", + "tagged_with", + "affects", + "affected_by" + ], + "type": "string" + }, + "scope": { + "default": "direct", + "enum": [ + "direct", + "group", + "market_wide" + ], + "type": "string" + }, + "target": { + "additionalProperties": true, + "type": "object" + }, + "target_observation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "target", + "relation", + "evidence" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Output schema / properties / upstream / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": true, - "properties": { - "evidence": { - "additionalProperties": true, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "kind": { - "enum": [ - "statistical", - "definitional", - "tag", - "hypothesis" - ], - "type": "string" - }, - "metric": { - "type": "string" - }, - "n": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "source_table": { - "type": "string" - }, - "validation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - }, - "value": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "kind", - "metric", - "source_table" - ], - "type": "object" - }, - "relation": { - "description": "Reads '<entity> <relation> <target>'", - "enum": [ - "leads", - "lags", - "co_moves", - "member_of", - "has_member", - "mentioned_in", - "affects", - "affected_by" - ], - "type": "string" - }, - "scope": { - "default": "direct", - "enum": [ - "direct", - "group", - "market_wide" - ], - "type": "string" - }, - "target": { - "additionalProperties": true, - "type": "object" - }, - "target_observation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "target", - "relation", - "evidence" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": true, + "properties": { + "evidence": { + "additionalProperties": true, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "kind": { + "enum": [ + "statistical", + "definitional", + "tag", + "hypothesis" + ], + "type": "string" + }, + "metric": { + "type": "string" + }, + "n": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "source_table": { + "type": "string" + }, + "validation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "kind", + "metric", + "source_table" + ], + "type": "object" + }, + "relation": { + "description": "Reads '<entity> <relation> <target>'", + "enum": [ + "leads", + "lags", + "co_moves", + "member_of", + "has_member", + "mentioned_in", + "tagged_with", + "affects", + "affected_by" + ], + "type": "string" + }, + "scope": { + "default": "direct", + "enum": [ + "direct", + "group", + "market_wide" + ], + "type": "string" + }, + "target": { + "additionalProperties": true, + "type": "object" + }, + "target_observation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "target", + "relation", + "evidence" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +]
- Added
get_news_context - Changed
get_positions1 field changed- changed
Output schema / properties / full_data / anyOfPrevious value: -[ - { - "additionalProperties": true, - "description": "`full_data` for get_positions.", - "properties": { - "market_id": { - "type": "string" - }, - "positions": { - "items": { - "additionalProperties": true, - "properties": { - "ai_score": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "current_price": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "current_strategy": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "entry_price": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "entry_timestamp": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "holding_duration": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "profit_loss_pct": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "quantity": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "symbol": { - "type": "string" - } - }, - "required": [ - "symbol" - ], - "type": "object" - }, - "type": "array" - }, - "stats": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "avg_pnl": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "losing": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "profitable": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "total": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "total_positions": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "market_id" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": true, + "description": "`full_data` for get_positions.", + "properties": { + "market_id": { + "type": "string" + }, + "positions": { + "items": { + "additionalProperties": true, + "properties": { + "ai_score": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "current_price": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "current_strategy": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "entry_price": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "entry_timestamp": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "holding_duration": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "profit_loss_pct": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "quantity": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "symbol": { + "type": "string" + } + }, + "required": [ + "symbol" + ], + "type": "object" + }, + "type": "array" + }, + "stats": { + "anyOf": [ + { + "additionalProperties": true, + "properties": { + "aggregation": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "avg_pnl": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "losing": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "mean_trade_pct": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "profitable": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "sum_of_trade_pct": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "total": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "total_positions": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "market_id" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
get_signals1 field changed- changed
Output schema / properties / full_data / anyOfPrevious value: -[ - { - "additionalProperties": true, - "description": "`full_data` for get_signals.", - "properties": { - "common": { - "additionalProperties": true, - "type": "object" - }, - "filters": { - "additionalProperties": true, - "type": "object" - }, - "latest_by_interval": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - }, - "limit": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "market_id": { - "type": "string" - }, - "returned": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "signals": { - "items": { - "additionalProperties": true, - "properties": { - "action": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "confidence": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "interval": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "market_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "price": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "reason_uncalibrated": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": null - }, - "signal_score": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "symbol": { - "type": "string" - }, - "timestamp": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "warnings": { - "anyOf": [ - { - "additionalProperties": { - "type": "boolean" - }, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "symbol" - ], - "type": "object" - }, - "type": "array" - }, - "truncated": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "market_id" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": true, + "description": "`full_data` for get_signals.", + "properties": { + "common": { + "additionalProperties": true, + "type": "object" + }, + "filters": { + "additionalProperties": true, + "type": "object" + }, + "latest_by_interval": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "limit": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "market_id": { + "type": "string" + }, + "returned": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "signals": { + "items": { + "additionalProperties": true, + "properties": { + "bias": { + "anyOf": [ + { + "enum": [ + "positive", + "neutral", + "negative" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "confidence": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "interval": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "market_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "price": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "reason_uncalibrated": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null + }, + "signal_score": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "symbol": { + "type": "string" + }, + "timestamp": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "warnings": { + "anyOf": [ + { + "additionalProperties": { + "type": "boolean" + }, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "symbol" + ], + "type": "object" + }, + "type": "array" + }, + "truncated": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "market_id" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
get_symbol_context4 fields changed- changed
Output schema / properties / downstream / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": true, - "properties": { - "evidence": { - "additionalProperties": true, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "kind": { - "enum": [ - "statistical", - "definitional", - "tag", - "hypothesis" - ], - "type": "string" - }, - "metric": { - "type": "string" - }, - "n": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "source_table": { - "type": "string" - }, - "validation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - }, - "value": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "kind", - "metric", - "source_table" - ], - "type": "object" - }, - "relation": { - "description": "Reads '<entity> <relation> <target>'", - "enum": [ - "leads", - "lags", - "co_moves", - "member_of", - "has_member", - "mentioned_in", - "affects", - "affected_by" - ], - "type": "string" - }, - "scope": { - "default": "direct", - "enum": [ - "direct", - "group", - "market_wide" - ], - "type": "string" - }, - "target": { - "additionalProperties": true, - "type": "object" - }, - "target_observation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "target", - "relation", - "evidence" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": true, + "properties": { + "evidence": { + "additionalProperties": true, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "kind": { + "enum": [ + "statistical", + "definitional", + "tag", + "hypothesis" + ], + "type": "string" + }, + "metric": { + "type": "string" + }, + "n": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "source_table": { + "type": "string" + }, + "validation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "kind", + "metric", + "source_table" + ], + "type": "object" + }, + "relation": { + "description": "Reads '<entity> <relation> <target>'", + "enum": [ + "leads", + "lags", + "co_moves", + "member_of", + "has_member", + "mentioned_in", + "tagged_with", + "affects", + "affected_by" + ], + "type": "string" + }, + "scope": { + "default": "direct", + "enum": [ + "direct", + "group", + "market_wide" + ], + "type": "string" + }, + "target": { + "additionalProperties": true, + "type": "object" + }, + "target_observation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "target", + "relation", + "evidence" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Output schema / properties / news / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": true, - "properties": { - "evidence": { - "additionalProperties": true, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "kind": { - "enum": [ - "statistical", - "definitional", - "tag", - "hypothesis" - ], - "type": "string" - }, - "metric": { - "type": "string" - }, - "n": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "source_table": { - "type": "string" - }, - "validation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - }, - "value": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "kind", - "metric", - "source_table" - ], - "type": "object" - }, - "relation": { - "description": "Reads '<entity> <relation> <target>'", - "enum": [ - "leads", - "lags", - "co_moves", - "member_of", - "has_member", - "mentioned_in", - "affects", - "affected_by" - ], - "type": "string" - }, - "scope": { - "default": "direct", - "enum": [ - "direct", - "group", - "market_wide" - ], - "type": "string" - }, - "target": { - "additionalProperties": true, - "type": "object" - }, - "target_observation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "target", - "relation", - "evidence" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": true, + "properties": { + "evidence": { + "additionalProperties": true, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "kind": { + "enum": [ + "statistical", + "definitional", + "tag", + "hypothesis" + ], + "type": "string" + }, + "metric": { + "type": "string" + }, + "n": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "source_table": { + "type": "string" + }, + "validation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "kind", + "metric", + "source_table" + ], + "type": "object" + }, + "relation": { + "description": "Reads '<entity> <relation> <target>'", + "enum": [ + "leads", + "lags", + "co_moves", + "member_of", + "has_member", + "mentioned_in", + "tagged_with", + "affects", + "affected_by" + ], + "type": "string" + }, + "scope": { + "default": "direct", + "enum": [ + "direct", + "group", + "market_wide" + ], + "type": "string" + }, + "target": { + "additionalProperties": true, + "type": "object" + }, + "target_observation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "target", + "relation", + "evidence" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Output schema / properties / peers / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": true, - "properties": { - "evidence": { - "additionalProperties": true, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "kind": { - "enum": [ - "statistical", - "definitional", - "tag", - "hypothesis" - ], - "type": "string" - }, - "metric": { - "type": "string" - }, - "n": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "source_table": { - "type": "string" - }, - "validation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - }, - "value": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "kind", - "metric", - "source_table" - ], - "type": "object" - }, - "relation": { - "description": "Reads '<entity> <relation> <target>'", - "enum": [ - "leads", - "lags", - "co_moves", - "member_of", - "has_member", - "mentioned_in", - "affects", - "affected_by" - ], - "type": "string" - }, - "scope": { - "default": "direct", - "enum": [ - "direct", - "group", - "market_wide" - ], - "type": "string" - }, - "target": { - "additionalProperties": true, - "type": "object" - }, - "target_observation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "target", - "relation", - "evidence" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": true, + "properties": { + "evidence": { + "additionalProperties": true, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "kind": { + "enum": [ + "statistical", + "definitional", + "tag", + "hypothesis" + ], + "type": "string" + }, + "metric": { + "type": "string" + }, + "n": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "source_table": { + "type": "string" + }, + "validation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "kind", + "metric", + "source_table" + ], + "type": "object" + }, + "relation": { + "description": "Reads '<entity> <relation> <target>'", + "enum": [ + "leads", + "lags", + "co_moves", + "member_of", + "has_member", + "mentioned_in", + "tagged_with", + "affects", + "affected_by" + ], + "type": "string" + }, + "scope": { + "default": "direct", + "enum": [ + "direct", + "group", + "market_wide" + ], + "type": "string" + }, + "target": { + "additionalProperties": true, + "type": "object" + }, + "target_observation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "target", + "relation", + "evidence" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +] - changed
Output schema / properties / upstream / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": true, - "properties": { - "evidence": { - "additionalProperties": true, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "kind": { - "enum": [ - "statistical", - "definitional", - "tag", - "hypothesis" - ], - "type": "string" - }, - "metric": { - "type": "string" - }, - "n": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "source_table": { - "type": "string" - }, - "validation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - }, - "value": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "kind", - "metric", - "source_table" - ], - "type": "object" - }, - "relation": { - "description": "Reads '<entity> <relation> <target>'", - "enum": [ - "leads", - "lags", - "co_moves", - "member_of", - "has_member", - "mentioned_in", - "affects", - "affected_by" - ], - "type": "string" - }, - "scope": { - "default": "direct", - "enum": [ - "direct", - "group", - "market_wide" - ], - "type": "string" - }, - "target": { - "additionalProperties": true, - "type": "object" - }, - "target_observation": { - "anyOf": [ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "target", - "relation", - "evidence" - ], - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": true, + "properties": { + "evidence": { + "additionalProperties": true, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "kind": { + "enum": [ + "statistical", + "definitional", + "tag", + "hypothesis" + ], + "type": "string" + }, + "metric": { + "type": "string" + }, + "n": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "source_table": { + "type": "string" + }, + "validation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "kind", + "metric", + "source_table" + ], + "type": "object" + }, + "relation": { + "description": "Reads '<entity> <relation> <target>'", + "enum": [ + "leads", + "lags", + "co_moves", + "member_of", + "has_member", + "mentioned_in", + "tagged_with", + "affects", + "affected_by" + ], + "type": "string" + }, + "scope": { + "default": "direct", + "enum": [ + "direct", + "group", + "market_wide" + ], + "type": "string" + }, + "target": { + "additionalProperties": true, + "type": "object" + }, + "target_observation": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "target", + "relation", + "evidence" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +]
- Changed
get_trade_history3 fields changed- changed
Input schema / properties / action_filter / descriptionPrevious value: -"Filter by action (all, buy, sell)"New value: +"Filter simulated executions by side (all, buy = position opens, sell = closes)" - changed
Input schema / properties / action_filter / enumPrevious value: -[ - "buy", - "sell", - "hold" -]New value: +[ + "all", + "buy", + "sell" +] - changed
Output schema / properties / full_data / anyOfPrevious value: -[ - { - "additionalProperties": true, - "description": "`full_data` for get_trade_history.", - "properties": { - "filters": { - "additionalProperties": true, - "type": "object" - }, - "market_id": { - "type": "string" - }, - "stats": { - "additionalProperties": true, - "properties": { - "avg_pnl": { - "type": "number" - }, - "losses": { - "type": "integer" - }, - "total_pnl": { - "type": "number" - }, - "total_trades": { - "type": "integer" - }, - "win_rate": { - "type": "number" - }, - "wins": { - "type": "integer" - } - }, - "required": [ - "total_trades", - "wins", - "losses", - "win_rate", - "total_pnl", - "avg_pnl" - ], - "type": "object" - }, - "trades": { - "items": { - "additionalProperties": true, - "properties": { - "action": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "ai_score": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "entry_price": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "entry_timestamp": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "exit_price": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "exit_timestamp": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "holding_duration": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "profit_loss_pct": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "signal_pattern": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "symbol": { - "type": "string" - } - }, - "required": [ - "symbol" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "market_id", - "stats" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": true, + "description": "`full_data` for get_trade_history.", + "properties": { + "filters": { + "additionalProperties": true, + "type": "object" + }, + "market_id": { + "type": "string" + }, + "stats": { + "additionalProperties": true, + "properties": { + "aggregation": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "avg_pnl": { + "type": "number" + }, + "losses": { + "type": "integer" + }, + "mean_trade_pct": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "sum_of_trade_pct": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "total_pnl": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "total_trades": { + "type": "integer" + }, + "win_rate": { + "type": "number" + }, + "wins": { + "type": "integer" + } + }, + "required": [ + "total_trades", + "wins", + "losses", + "win_rate", + "avg_pnl" + ], + "type": "object" + }, + "trades": { + "items": { + "additionalProperties": true, + "properties": { + "action": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "ai_score": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "entry_price": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "entry_timestamp": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "exit_price": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "exit_timestamp": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "holding_duration": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "profit_loss_pct": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "signal_pattern": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "symbol": { + "type": "string" + } + }, + "required": [ + "symbol" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "market_id", + "stats" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
get_winning_trades1 field changed- changed
Output schema / properties / full_data / anyOfPrevious value: -[ - { - "additionalProperties": true, - "description": "`full_data` for get_trade_history.", - "properties": { - "filters": { - "additionalProperties": true, - "type": "object" - }, - "market_id": { - "type": "string" - }, - "stats": { - "additionalProperties": true, - "properties": { - "avg_pnl": { - "type": "number" - }, - "losses": { - "type": "integer" - }, - "total_pnl": { - "type": "number" - }, - "total_trades": { - "type": "integer" - }, - "win_rate": { - "type": "number" - }, - "wins": { - "type": "integer" - } - }, - "required": [ - "total_trades", - "wins", - "losses", - "win_rate", - "total_pnl", - "avg_pnl" - ], - "type": "object" - }, - "trades": { - "items": { - "additionalProperties": true, - "properties": { - "action": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "ai_score": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "entry_price": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "entry_timestamp": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "exit_price": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "exit_timestamp": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "holding_duration": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "profit_loss_pct": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "signal_pattern": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "symbol": { - "type": "string" - } - }, - "required": [ - "symbol" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "market_id", - "stats" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": true, + "description": "`full_data` for get_trade_history.", + "properties": { + "filters": { + "additionalProperties": true, + "type": "object" + }, + "market_id": { + "type": "string" + }, + "stats": { + "additionalProperties": true, + "properties": { + "aggregation": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "avg_pnl": { + "type": "number" + }, + "losses": { + "type": "integer" + }, + "mean_trade_pct": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "sum_of_trade_pct": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "total_pnl": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "total_trades": { + "type": "integer" + }, + "win_rate": { + "type": "number" + }, + "wins": { + "type": "integer" + } + }, + "required": [ + "total_trades", + "wins", + "losses", + "win_rate", + "avg_pnl" + ], + "type": "object" + }, + "trades": { + "items": { + "additionalProperties": true, + "properties": { + "action": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "ai_score": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "entry_price": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "entry_timestamp": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "exit_price": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "exit_timestamp": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "holding_duration": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "profit_loss_pct": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "signal_pattern": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "symbol": { + "type": "string" + } + }, + "required": [ + "symbol" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "market_id", + "stats" + ], + "type": "object" + }, + { + "type": "null" + } +]
3 tool updates
- Changed
get_group_context1 field changed- added
Input schema / properties / questionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Optional. The user's original question, used only for service improvement analytics. Does not change the response." +}
- Changed
get_market_context1 field changed- added
Input schema / properties / questionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Optional. The user's original question, used only for service improvement analytics. Does not change the response." +}
- Changed
get_symbol_context1 field changed- added
Input schema / properties / questionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Optional. The user's original question, used only for service improvement analytics. Does not change the response." +}
3 tool updates
- Added
get_group_context - Added
get_market_context - Added
get_symbol_context
1 tool update
- Changed
get_daily_brief1 field changed- changed
Output schema / properties / full_data / anyOfPrevious value: -[ - { - "additionalProperties": true, - "description": "`full_data` for get_daily_brief.", - "properties": { - "active_predictions_count": { - "default": 0, - "type": "integer" - }, - "losing_count": { - "default": 0, - "type": "integer" - }, - "macro_regime": { - "additionalProperties": true, - "properties": { - "as_of": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "categories": { - "items": {}, - "type": "array" - }, - "regime": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "regime_score": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "regime_signed": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "stale": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": null - }, - "total": { - "default": 0, - "type": "integer" - }, - "unavailable_reason": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "type": "object" - }, - "market": { - "type": "string" - }, - "meta": { - "additionalProperties": true, - "properties": { - "data_window": { - "default": "last_24h", - "type": "string" - }, - "interpretation": { - "default": "", - "type": "string" - }, - "source": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "narrative": { - "type": "string" - }, - "primary_market": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "strong_signals": { - "items": { - "additionalProperties": true, - "properties": { - "action": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "confidence": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "interval": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "market_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "price": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "reason_uncalibrated": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": null - }, - "signal_score": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "symbol": { - "type": "string" - }, - "timestamp": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "warnings": { - "anyOf": [ - { - "additionalProperties": { - "type": "boolean" - }, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "symbol" - ], - "type": "object" - }, - "type": "array" - }, - "winning_count": { - "default": 0, - "type": "integer" - }, - "yesterday_trades": { - "additionalProperties": true, - "properties": { - "by_market": { - "additionalProperties": { - "additionalProperties": true, - "type": "object" - }, - "type": "object" - }, - "losing": { - "default": 0, - "type": "integer" - }, - "total": { - "default": 0, - "type": "integer" - }, - "winning": { - "default": 0, - "type": "integer" - } - }, - "type": "object" - } - }, - "required": [ - "market", - "narrative" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": true, + "description": "`full_data` for get_daily_brief.", + "properties": { + "active_predictions_count": { + "default": 0, + "type": "integer" + }, + "losing_count": { + "default": 0, + "type": "integer" + }, + "macro_regime": { + "additionalProperties": true, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "categories": { + "items": {}, + "type": "array" + }, + "regime": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "regime_score": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "regime_signed": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "stale": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null + }, + "total": { + "default": 0, + "type": "integer" + }, + "unavailable_reason": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "type": "object" + }, + "market": { + "type": "string" + }, + "market_breadth": { + "additionalProperties": true, + "type": "object" + }, + "meta": { + "additionalProperties": true, + "properties": { + "data_window": { + "default": "last_24h", + "type": "string" + }, + "interpretation": { + "default": "", + "type": "string" + }, + "source": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "narrative": { + "type": "string" + }, + "primary_market": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "strong_signals": { + "items": { + "additionalProperties": true, + "properties": { + "action": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "confidence": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "interval": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "market_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "price": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "reason_uncalibrated": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null + }, + "signal_score": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "symbol": { + "type": "string" + }, + "timestamp": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "warnings": { + "anyOf": [ + { + "additionalProperties": { + "type": "boolean" + }, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "symbol" + ], + "type": "object" + }, + "type": "array" + }, + "winning_count": { + "default": 0, + "type": "integer" + }, + "yesterday_trades": { + "additionalProperties": true, + "properties": { + "by_market": { + "additionalProperties": { + "additionalProperties": true, + "type": "object" + }, + "type": "object" + }, + "losing": { + "default": 0, + "type": "integer" + }, + "total": { + "default": 0, + "type": "integer" + }, + "winning": { + "default": 0, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "market", + "narrative" + ], + "type": "object" + }, + { + "type": "null" + } +]
1 tool update
- Changed
get_daily_brief1 field changed- changed
Output schema / properties / full_data / anyOfPrevious value: -[ - { - "additionalProperties": true, - "description": "`full_data` for get_daily_brief.", - "properties": { - "active_predictions_count": { - "default": 0, - "type": "integer" - }, - "losing_count": { - "default": 0, - "type": "integer" - }, - "macro_regime": { - "additionalProperties": true, - "properties": { - "categories": { - "items": {}, - "type": "array" - }, - "total": { - "default": 0, - "type": "integer" - } - }, - "type": "object" - }, - "market": { - "type": "string" - }, - "meta": { - "additionalProperties": true, - "properties": { - "data_window": { - "default": "last_24h", - "type": "string" - }, - "interpretation": { - "default": "", - "type": "string" - }, - "source": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "narrative": { - "type": "string" - }, - "primary_market": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "strong_signals": { - "items": { - "additionalProperties": true, - "properties": { - "action": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "confidence": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "interval": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "market_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "price": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "reason_uncalibrated": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": null - }, - "signal_score": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "symbol": { - "type": "string" - }, - "timestamp": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "warnings": { - "anyOf": [ - { - "additionalProperties": { - "type": "boolean" - }, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "symbol" - ], - "type": "object" - }, - "type": "array" - }, - "winning_count": { - "default": 0, - "type": "integer" - }, - "yesterday_trades": { - "additionalProperties": true, - "properties": { - "by_market": { - "additionalProperties": { - "additionalProperties": true, - "type": "object" - }, - "type": "object" - }, - "losing": { - "default": 0, - "type": "integer" - }, - "total": { - "default": 0, - "type": "integer" - }, - "winning": { - "default": 0, - "type": "integer" - } - }, - "type": "object" - } - }, - "required": [ - "market", - "narrative" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": true, + "description": "`full_data` for get_daily_brief.", + "properties": { + "active_predictions_count": { + "default": 0, + "type": "integer" + }, + "losing_count": { + "default": 0, + "type": "integer" + }, + "macro_regime": { + "additionalProperties": true, + "properties": { + "as_of": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "categories": { + "items": {}, + "type": "array" + }, + "regime": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "regime_score": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "regime_signed": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "stale": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null + }, + "total": { + "default": 0, + "type": "integer" + }, + "unavailable_reason": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "type": "object" + }, + "market": { + "type": "string" + }, + "meta": { + "additionalProperties": true, + "properties": { + "data_window": { + "default": "last_24h", + "type": "string" + }, + "interpretation": { + "default": "", + "type": "string" + }, + "source": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "narrative": { + "type": "string" + }, + "primary_market": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "strong_signals": { + "items": { + "additionalProperties": true, + "properties": { + "action": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "confidence": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "interval": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "market_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "price": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "reason_uncalibrated": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null + }, + "signal_score": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "symbol": { + "type": "string" + }, + "timestamp": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "warnings": { + "anyOf": [ + { + "additionalProperties": { + "type": "boolean" + }, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "symbol" + ], + "type": "object" + }, + "type": "array" + }, + "winning_count": { + "default": 0, + "type": "integer" + }, + "yesterday_trades": { + "additionalProperties": true, + "properties": { + "by_market": { + "additionalProperties": { + "additionalProperties": true, + "type": "object" + }, + "type": "object" + }, + "losing": { + "default": 0, + "type": "integer" + }, + "total": { + "default": 0, + "type": "integer" + }, + "winning": { + "default": 0, + "type": "integer" + } + }, + "type": "object" + } + }, + "required": [ + "market", + "narrative" + ], + "type": "object" + }, + { + "type": "null" + } +]
1 tool update
- Added
get_account_status
39 tool updates
- Changed
analyze_trades1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
explain_decision1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
fetch1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_active_predictions1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_backtest_tuning_state1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_cross_market_correlation1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_daily_brief1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_feature_governance_state1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_feature_governance_status_tool1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_latest_decisions1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_ledger_integrity1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_llm_trading_decisions1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_losing_positions1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_losing_trades1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_macro_causality_graph_tool1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_macro_influence_map1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_monthly_accuracy_trend1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_news_causality_breakdown1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_news_leading_indicator_performance1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_performance_metrics1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_position_detail1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_positions1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_prediction_accuracy1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_profitable_positions1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_resolved_predictions1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_role_analysis1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_sector_correlations_tool1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_signal_calibration1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_signal_detail1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_signals1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_strategy_distribution1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_strategy_leaderboard1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_structure_calibration1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_structure_validation_history1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_symbol_peer_links_tool1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_trade_history1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_trade_outcomes_bulk1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_winning_trades1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
search1 field changed- added
Input schema / additionalPropertiesAdded value: +false
2 tool updates
- Changed
explain_decision1 field changed- changed
Output schema / properties / full_data / anyOfPrevious value: -[ - { - "additionalProperties": true, - "description": "`full_data` for explain_decision.", - "properties": { - "layers": { - "additionalProperties": true, - "type": "object" - }, - "overall_recommendation": { - "additionalProperties": true, - "properties": { - "text": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "verdict": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "type": "object" - }, - "symbol": { - "type": "string" - } - }, - "required": [ - "symbol" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": true, + "description": "`full_data` for explain_decision.", + "properties": { + "layers": { + "additionalProperties": true, + "type": "object" + }, + "overall_recommendation": { + "additionalProperties": true, + "properties": { + "basis": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "text": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "verdict": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "type": "object" + }, + "symbol": { + "type": "string" + } + }, + "required": [ + "symbol" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
get_signals1 field changed- changed
Output schema / properties / full_data / anyOfPrevious value: -[ - { - "additionalProperties": true, - "description": "`full_data` for get_signals.", - "properties": { - "common": { - "additionalProperties": true, - "type": "object" - }, - "filters": { - "additionalProperties": true, - "type": "object" - }, - "limit": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "market_id": { - "type": "string" - }, - "returned": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "signals": { - "items": { - "additionalProperties": true, - "properties": { - "action": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "confidence": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "interval": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "market_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "price": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "reason_uncalibrated": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": null - }, - "signal_score": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ], - "default": null - }, - "symbol": { - "type": "string" - }, - "timestamp": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "warnings": { - "anyOf": [ - { - "additionalProperties": { - "type": "boolean" - }, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "symbol" - ], - "type": "object" - }, - "type": "array" - }, - "truncated": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "market_id" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": true, + "description": "`full_data` for get_signals.", + "properties": { + "common": { + "additionalProperties": true, + "type": "object" + }, + "filters": { + "additionalProperties": true, + "type": "object" + }, + "latest_by_interval": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + }, + "limit": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "market_id": { + "type": "string" + }, + "returned": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "signals": { + "items": { + "additionalProperties": true, + "properties": { + "action": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "confidence": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "interval": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "market_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "price": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "reason_uncalibrated": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null + }, + "signal_score": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null + }, + "symbol": { + "type": "string" + }, + "timestamp": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "warnings": { + "anyOf": [ + { + "additionalProperties": { + "type": "boolean" + }, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "symbol" + ], + "type": "object" + }, + "type": "array" + }, + "truncated": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "market_id" + ], + "type": "object" + }, + { + "type": "null" + } +]
Related MCP Connectors
Narrative & signal intelligence for AI agents: crypto/AI/macro convergence & divergence.
Crypto market signals, technical indicators, and sentiment analysis for AI agents.
Crypto market intelligence for AI agents: sentiment, flow, Oracle readings. x402. NFA.
Crypto order flow, cross-venue derivatives and US market context for AI agents, with a track record.
Related MCP Servers
- AlicenseAqualityDmaintenanceNarrative & signal intelligence for AI agents: crypto/AI/macro convergence & divergence.21MIT
- AlicenseAqualityAmaintenancePre-computed financial market intelligence for AI agents. Stocks, crypto, and ETFs.9128 npm5MIT
- FlicenseNot gradedqualityDmaintenanceVerifiable Korea-specific judgment for AI agents — Go/Conditional/Hold verdicts cross-checked by a human expert council, per-report audit endpoint (committee DIDs + signatures). x402/USDC per call ($1–$5), free preview.-
- AlicenseNot gradedqualityDmaintenanceAI-powered crypto signal intelligence for 20 assets (BTC, ETH, SOL, etc). 6 scoring dimensions: whale activity, technical analysis, derivatives flow, narrative strength, sentiment, market structure. Market regime detection (TRENDING/RANGING), portfolio optimization, and accuracy tracking. 9 read-only MCP tools. Free via MCP, $0.001 USDC via x402 on Base for REST API.3MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.