{"content_fingerprint":"3d2357202ce7519e7015df629f0c29a3670f89409a8994430443d0c8db8a5323","content":{"schema_version":2,"title":"VTX Insights Agent Operating Guide","eyebrow":"VTX Insights","hero":{"headline":"VTX Insights","summary":"Connect Codex, Claude Code, OpenCode, OpenClaw, Hermes Agent, Cursor, GitHub Copilot, Google Antigravity, or another compatible harness to power VTX bot inference or perform deep trade-chain analysis.","primary_action":"Open machine-readable guide","secondary_action":"Connect a harness"},"trust":{"agency":"Your agent decides how to investigate, calculate, recommend, and respond. VTX supplies the tools; it never grades or rewrites the answer.","permissions":"Choose analysis, settings management, bot control, profile management, connection management, and trading access separately. Your agent app receives only the permissions you approve.","ownership":"Changes and trades are limited to profiles you own and still pass the same VTX trading safeguards.","product_boundary":"Insights is built for trading and bot operations. Manage billing and account security directly in VTX."},"sections":[{"id":"overview","title":"Trade-chain analysis","summary":"Connect the available settings, decisions, executions, and outcomes behind a bot's trading campaigns.","blocks":[{"heading":"Reconstruct the available chain","body":"Connect enabled settings generations and decision-time context to model reasoning, execution attempts, fills, position campaigns, exits, fees, funding, and realized results. Whole-platform questions use one complete background calculation with focused retrieval of the compact evidence needed."},{"heading":"Explain the mechanism","body":"Separate strategy mistakes from market variance, thin liquidity, timing, overtrading, sizing, exit management, execution quality, and recent configuration changes."},{"heading":"Improve from evidence","body":"Compare losing chains with profitable counterexamples, preserve what works, and distinguish retained, same-decision repaired, recomputed, or unavailable evidence before proposing a small reversible experiment."}]},{"id":"connect","title":"Connect a harness","summary":"Choose a compatible harness, install the VTX connector, and approve only the access it needs.","steps":["Choose Codex or Claude Code for a bundled plugin, or connect OpenCode, OpenClaw, Hermes Agent, or another compatible agent app and install the same VTX skills separately.","Use the agent's quick install or the manual setup shown on this page.","Sign in to VTX and approve the analysis or action permissions you want this agent to use.","Ask the agent to find your profiles, analyze a question, or propose an optimization before making a change."]},{"id":"agent-guide","title":"Agent operating guide","summary":"Start with the machine-readable contract, then use the live capability registry to analyze evidence, operate bots, and verify the result.","blocks":[{"heading":"Power bot inference","body":"Use the connected harness as the live inference engine behind Main, Review, or Screener. VTX supplies the exact prompt, market context, and output contract; the harness returns the model response or structured decision that powers the normal VTX trading loop."},{"heading":"Analyze the trade chain","body":"Authentication identifies the VTX account using the connector, but it does not establish whether a supplied profile handle is owned or public. For named-profile work, discover the profiles once, confirm the ownership label for every requested handle or wallet, use the matching exact owned or public selection, and preserve that resolved selection with one evidence cutoff. Then connect effective settings and prompt generations to decisions, reasoning, executions, fills, position campaigns, fees, funding, and realized outcomes. Report unavailable evidence instead of silently narrowing the claim."},{"heading":"Run and verify a bot","body":"Resolve the owned profile, read its current execution mode and runtime state, request bot-control access, and start the normal VTX Trader. Server Mode runs on VTX and uses the normal fee. A Client Mode start records the requested intent but still needs a fresh owner: open that profile on Trade in a browser or desktop app, or run vtx auth login --scopes read,bot:control followed by vtx --profile <profile-id> runtime run --follow for the supported headless path. The bot is not running until current heartbeat and ownership evidence confirm it."},{"heading":"Use the capability registry","body":"Search the live capability registry instead of guessing tool names. Read each capability's permission and input contract, preview consequential changes, ask for approval, and verify receipts against effective state and observed results. A bot is not running until current runtime evidence confirms it."}],"steps":["Read https://api.vtxmacro.com/insights/access-center/metadata, choose the appropriate bundled skill and live capability, request only the permissions required for my outcome, and explain what you will verify before taking any consequential action."]},{"id":"skills","title":"Bundled skills","summary":"Codex and Claude Code plugin installs include both skills. OpenCode, OpenClaw, and Hermes Agent can install the same skills separately, and other compatible harnesses can use the VTX capabilities through MCP.","blocks":[{"heading":"vtx-insights-analysis","body":"The general VTX router and safety contract. It discovers the right capability, preserves complete evidence, separates permissions, and verifies settings, profile, connection, bot-control, and trading actions."},{"heading":"vtx-bot-trade-chain-analysis","body":"The specialist performance workflow. It reconstructs settings generations, decisions, executions, fills, positions, exits, fees, funding, PnL, and market context before recommending a focused improvement."}],"steps":["Use $vtx-insights-analysis to work with VTX safely and choose the right capability.","Use $vtx-bot-trade-chain-analysis to explain why my bots are winning or losing and recommend the smallest evidence-backed improvements."]},{"id":"use","title":"Use","summary":"Describe the outcome you want and let the agent choose the best VTX and native tools for the job.","steps":["Name the population: my profiles, exact public handles or wallets, or the whole platform. For named profiles, the agent verifies each ownership label before choosing the owned or public selection.","Name the time window and the decision you are trying to make.","Ask for the analysis, comparison, recommendation, or action that helps you decide.","Review important assumptions and approve consequential changes or trades in plain language.","Treat policy replay as a counterfactual, not as observed live performance."]},{"id":"examples","title":"Examples","summary":"Review examples drawn from current VTX trading activity, then copy and adapt a prompt.","blocks":[{"heading":"Adapt the prompt","body":"Use the copyable prompt as a starting point, change the profiles or time window, and ask your agent to investigate what matters to you."},{"heading":"Check the as-of time","body":"Live and recently captured figures can change as bots trade and new records arrive. Compare the displayed as-of time before treating two runs as contradictory."}]},{"id":"prompt-ideas","title":"Prompt ideas","summary":"Search starting points for performance reviews, trade-chain analysis, settings ideas, market research, and VTX product help.","blocks":[{"heading":"Prompts are starting points","body":"They improve discovery but do not prescribe tool sequences or an answer template. Add the population, time window, comparison dimensions, and verification standard that matter to you."}]},{"id":"capabilities","title":"Capabilities","summary":"Browse capabilities by permission group, or search for an exact analysis or owned-profile action.","blocks":[{"heading":"Population and coverage handling","body":"VTX tools preserve the selected population, resume large results from acknowledged checkpoints, and report unavailable evidence instead of silently substituting a smaller answer."}]},{"id":"troubleshooting","title":"Troubleshooting","summary":"Get a connection or workflow back on track quickly.","items":[{"question":"My agent app cannot find VTX Insights","answer":"Refresh its plugin or MCP integrations, confirm VTX Insights is enabled, or use the manual setup shown on this page. Update the app or integration if it is still unavailable."},{"question":"VTX asks me to sign in again","answer":"Start the agent's VTX sign-in flow, choose the permissions you want, and approve the connection. If access was revoked or expired, relink the client from this page."},{"question":"My agent reports Auth required","answer":"Start VTX authentication from the MCP client and approve the browser request. In ChatGPT desktop use Settings, MCP servers, VTX Insights, and Authenticate. In Codex CLI or the IDE run codex mcp login vtx-insights --scopes insights:read."},{"question":"Codex reports Authorization server response missing required issuer","answer":"Codex 0.146.0 has a known OAuth issuer-validation regression. Check codex --version, upgrade Codex, and start a new VTX login."},{"question":"My agent reports Insights tool discovery failed","answer":"OAuth succeeded, but VTX could not return the authorized MCP tool catalog. This is a VTX MCP service or catalog problem, not a request for more browser or extension permissions. Retry after VTX service health is restored."},{"question":"VTX reports Authorization request is unavailable","answer":"That authorization link is no longer usable. Return to the MCP client and start a new login; do not reuse the URL."},{"question":"A result looks incomplete","answer":"Ask which profiles and time window were used, what was unavailable, and whether population coverage differs from exact-economics coverage. Replay and excursion calculations run when requested; they are not an always-running simulator or an exact alternate-PnL forecast."},{"question":"My agent reports profile selection unavailable","answer":"At least one exact handle or wallet could not be resolved in the selected owned or public population. Ask the agent to discover the profiles again, confirm each ownership label, and retry with the corrected exact selection. VTX stops before starting a background analysis rather than silently analyzing a smaller population."},{"question":"The model's conclusion looks wrong","answer":"Ask it to show the VTX evidence and calculations, challenge the assumptions, or try a different approach. Models can make mistakes; VTX does not approve or correct their conclusions."},{"question":"An analysis is taking a long time","answer":"The agent can continue the complete analysis in the background and resume retrieval from its last acknowledged checkpoint without shrinking the profiles or time window you asked for."},{"question":"My agent cannot query a targeted artifact path","answer":"Targeted discovery is recursive and does not change the server index. The agent should query the artifact root, then each needed disclosed object path and continuation, then the disclosed list parent before batching exact child paths. Large typed filters scan that exact indexed parent incrementally and may continue through background analysis if they exceed the response window."}]},{"id":"faq","title":"FAQ","summary":"The essentials of agent choice, permissions, trading, and control.","items":[{"question":"Can VTX Insights trade or change my bot?","answer":"Yes. With your approval, a connected agent can update AI settings on profiles you own, control Server Mode bots, request Client Mode Trader starts and stops, and place or cancel orders through VTX. Client control does not take over an owner; waiting for an eligible browser, desktop, or headless owner is not the same as running, and an in-flight stop may wait for settlement before its owner lease is revoked."},{"question":"Do I need to teach my agent how to analyze a trade chain?","answer":"No. The VTX Insights connector ships a dedicated trade-chain analysis skill for Codex, Claude Code, OpenCode, OpenClaw, Hermes Agent, and other compatible skill hosts. It teaches the agent how to reconstruct bot campaigns, compare settings generations, verify evidence, and recommend focused improvements."},{"question":"Can I analyze another public VTX profile?","answer":"Yes. Select exact public handles or wallets, or compare the whole platform. Actions always remain limited to profiles you own."},{"question":"Does VTX choose the model?","answer":"No. The connected agent app owns model choice, conversation, inference, and native tools."},{"question":"Are large results summarized?","answer":"The response may summarize the result, but complete evidence remains available for focused indexed queries or restart-safe acknowledged retrieval."},{"question":"Where should I ask general VTX support questions?","answer":"Use VTX Help for product guidance outside Insights, or join the VTX Macro Telegram group for community help and setup discussion. Connected agent apps can also search and open the same canonical Help content.","links":[{"label":"Open VTX Help","href":"/help"},{"label":"Join Telegram","href":"https://t.me/VTXMacro","external":true}]}]},{"id":"lifecycle","title":"Update, disconnect, and recover","summary":"Keep the agent integration current and remove access whenever a connected app is no longer trusted.","steps":["Refresh the agent app's marketplace or registry and install the current compatible package version.","Disable the integration temporarily when supported, or uninstall it from the agent app.","Disconnect the agent from this page whenever you no longer want it to use VTX.","Use Relink to remove the old connection first, then sign in again from the agent.","If an agent remains stuck, remove its saved VTX connection, reinstall or reconfigure it, and sign in again."]}]},"distribution":{"schema_version":2,"distribution_id":"vtx-insights","package_version":"2026.9.3","shipped_skill_agents":[{"path":"skills/vtx-bot-trade-chain-analysis/SKILL.md","sha256":"949ff62fbb329dbef71dd1a763d9a4c518980d72e4af8e6ad8bc5f67c4fb5874"},{"path":"skills/vtx-bot-trade-chain-analysis/agents/openai.yaml","sha256":"25d87c5bf11f3fee92b14d3de50bc244ea482712d61768df53730e509ac490f3"},{"path":"skills/vtx-insights-analysis/SKILL.md","sha256":"ec008b3a4284a8eecef96ebeda60f7cf21c3f7e5e42d5beca4cdb8348a9d7202"}],"publisher":{"name":"DataDoesYou LLC","repository":"https://github.com/DataDoesYou/VTX-Insights"},"service":{"name":"VTX Insights","website_url":"https://vtxmacro.com/insights","privacy_url":"https://vtxmacro.com/privacy","terms_url":"https://vtxmacro.com/terms","mcp_url":"https://api.vtxmacro.com/insights/mcp","oauth_scope":"insights:read","oauth_scopes":["insights:read","insights:settings","insights:control","insights:trade","insights:profiles","insights:credentials"],"preferred_mcp_protocol_version":"2026-07-28","supported_mcp_protocol_versions":["2026-07-28","2025-11-25"],"mcp_protocol_version":"2026-07-28","minimum_server_contract":1,"maximum_server_contract":1},"hosts":{"codex":{"display_name":"Codex","recommended":true,"distribution":"marketplace","listing_status":"published","marketplace_name":"vtx-insights","mcp_tool_timeout_seconds":120,"install":["codex plugin marketplace add DataDoesYou/VTX-Insights","codex plugin add vtx-insights@vtx-insights","codex mcp login vtx-insights --scopes insights:read"],"update":["codex plugin marketplace upgrade vtx-insights","codex plugin remove vtx-insights@vtx-insights","codex plugin add vtx-insights@vtx-insights"],"uninstall":["codex plugin remove vtx-insights@vtx-insights"],"manual_config":"[mcp_servers.vtx-insights]\nurl = \"https://api.vtxmacro.com/insights/mcp\"\ntool_timeout_sec = 120","auth_steps":["Authentication starts in the MCP client, not on this page. In ChatGPT desktop, open Settings → MCP servers, select VTX Insights, and choose Authenticate","In Codex CLI or the IDE, run codex mcp login vtx-insights --scopes insights:read and approve the browser request. Request additional permissions only when a later task needs them","Run codex --version before troubleshooting OAuth. Codex 0.146.0 has a known issuer-validation regression; upgrade it if login reports Authorization server response missing required issuer"],"verify_steps":["Restart ChatGPT desktop or open a new Codex CLI or IDE session after authentication so initialization and tool discovery run again","In ChatGPT desktop, type /mcp and confirm VTX Insights is active; in CLI or the IDE, inspect the new session's MCP tool inventory","Confirm expected read tools such as analysis.start and positions.episodes are available. An OAuth grant alone does not prove that initialization and tool discovery succeeded"]},"claude_code":{"display_name":"Claude Code","recommended":false,"distribution":"marketplace","listing_status":"published","marketplace_name":"vtx-insights","install":["claude plugin marketplace add DataDoesYou/VTX-Insights","claude plugin install vtx-insights@vtx-insights","claude mcp login plugin:vtx-insights:vtx-insights"],"update":["claude plugin marketplace update vtx-insights","claude plugin uninstall vtx-insights@vtx-insights","claude plugin install vtx-insights@vtx-insights"],"disable":["claude plugin disable vtx-insights@vtx-insights"],"enable":["claude plugin enable vtx-insights@vtx-insights"],"uninstall":["claude plugin uninstall vtx-insights@vtx-insights"],"manual_config":"{\n  \"mcpServers\": {\n    \"vtx-insights\": {\n      \"type\": \"http\",\n      \"url\": \"https://api.vtxmacro.com/insights/mcp\"\n    }\n  }\n}"},"cursor":{"display_name":"Cursor","recommended":false,"distribution":"public_marketplace","listing_status":"submission_pending","install":["/add-plugin vtx-insights"],"manual_config":"{\n  \"mcpServers\": {\n    \"vtx-insights\": {\n      \"type\": \"http\",\n      \"url\": \"https://api.vtxmacro.com/insights/mcp\"\n    }\n  }\n}"},"github_copilot":{"display_name":"GitHub Copilot","recommended":false,"distribution":"mcp_registry","listing_status":"publication_pending","registry_name":"io.github.DataDoesYou/vtx-insights","manual_config":"{\n  \"servers\": {\n    \"vtx-insights\": {\n      \"url\": \"https://api.vtxmacro.com/insights/mcp\"\n    }\n  }\n}"},"google_antigravity":{"display_name":"Google Antigravity","recommended":false,"distribution":"mcp_store","listing_status":"unlisted","marketplace_name":"VTX Insights","install_format":"steps","install":["Open Settings → Customizations → Installed MCP Servers","Choose Add MCP, then Manage MCP Servers → View raw config","Paste the manual configuration below and save it"],"manual_config":"{\n  \"mcpServers\": {\n    \"vtx-insights\": {\n      \"serverUrl\": \"https://api.vtxmacro.com/insights/mcp\"\n    }\n  }\n}","auth_steps":["Select Authenticate next to VTX Insights","Complete VTX sign-in in your browser, copy the authorization code, and paste it back into Antigravity","Select Submit and confirm the server reconnects"],"plugin_install":["Workspace: copy plugins/vtx-insights to .agents/plugins/vtx-insights (or _agents/plugins/vtx-insights)","Global: copy plugins/vtx-insights to ~/.gemini/config/plugins/vtx-insights"]},"opencode":{"display_name":"OpenCode","recommended":false,"distribution":"native_mcp","listing_status":"unlisted","install":["Save the manual configuration below as opencode.json in your project or global OpenCode config directory","opencode mcp auth vtx-insights","opencode mcp list"],"install_format":"steps","manual_config":"{\n  \"$schema\": \"https://opencode.ai/config.json\",\n  \"mcp\": {\n    \"vtx-insights\": {\n      \"type\": \"remote\",\n      \"url\": \"https://api.vtxmacro.com/insights/mcp\",\n      \"enabled\": true,\n      \"oauth\": {\n        \"scope\": \"insights:read\"\n      },\n      \"timeout\": 120000\n    }\n  }\n}","auth_steps":["Run opencode mcp auth vtx-insights and complete VTX sign-in in your browser","Approve only the VTX permissions this OpenCode session should be able to use","Run opencode mcp list to confirm VTX Insights is connected; use opencode mcp debug vtx-insights if authentication fails"],"skill_install":["git clone https://github.com/DataDoesYou/VTX-Insights.git","Copy VTX-Insights/plugins/vtx-insights/skills/vtx-insights-analysis to ~/.config/opencode/skills/vtx-insights-analysis","Copy VTX-Insights/plugins/vtx-insights/skills/vtx-bot-trade-chain-analysis to ~/.config/opencode/skills/vtx-bot-trade-chain-analysis"]},"openclaw":{"display_name":"OpenClaw","recommended":false,"distribution":"native_mcp","listing_status":"unlisted","install":["openclaw mcp add vtx-insights --url https://api.vtxmacro.com/insights/mcp --transport streamable-http --auth oauth --oauth-scope \"insights:read\" --timeout 120","openclaw mcp login vtx-insights","openclaw mcp login vtx-insights --code YOUR_AUTHORIZATION_CODE","openclaw mcp doctor vtx-insights --probe"],"manual_config":"{\n  \"mcp\": {\n    \"servers\": {\n      \"vtx-insights\": {\n        \"url\": \"https://api.vtxmacro.com/insights/mcp\",\n        \"transport\": \"streamable-http\",\n        \"requestTimeoutMs\": 120000,\n        \"connectionTimeoutMs\": 5000,\n        \"auth\": \"oauth\",\n        \"oauth\": {\n          \"scope\": \"insights:read\"\n        }\n      }\n    }\n  }\n}","auth_steps":["Open the authorization URL printed by openclaw mcp login vtx-insights and complete VTX sign-in","Approve only the VTX permissions this OpenClaw agent should be able to use","Copy the authorization code and pass it to openclaw mcp login vtx-insights --code YOUR_AUTHORIZATION_CODE","Confirm openclaw mcp doctor vtx-insights --probe lists the expected VTX tools"],"skill_install":["git clone https://github.com/DataDoesYou/VTX-Insights.git","openclaw skills install ./VTX-Insights/plugins/vtx-insights/skills/vtx-insights-analysis --global","openclaw skills install ./VTX-Insights/plugins/vtx-insights/skills/vtx-bot-trade-chain-analysis --global"]},"hermes":{"display_name":"Hermes Agent","recommended":false,"distribution":"native_mcp","listing_status":"unlisted","install":["hermes mcp add vtx-insights --url https://api.vtxmacro.com/insights/mcp --auth oauth --connect-timeout 315","hermes config set mcp_servers.vtx-insights.trust untrusted","hermes mcp test vtx-insights"],"manual_config":"{\n  \"mcp_servers\": {\n    \"vtx-insights\": {\n      \"url\": \"https://api.vtxmacro.com/insights/mcp\",\n      \"enabled\": true,\n      \"timeout\": 120,\n      \"connect_timeout\": 315,\n      \"auth\": \"oauth\",\n      \"trust\": \"untrusted\",\n      \"oauth\": {\n        \"scope\": \"insights:read\"\n      }\n    }\n  }\n}","auth_steps":["Use Hermes Agent 0.20.4 or newer from the supported official installer, Desktop app, or Docker image; the unsupported PyPI package does not provide this safety contract","Complete VTX sign-in when Hermes opens the OAuth authorization flow","Approve only the VTX permissions this Hermes agent should be able to use","Keep the VTX server trust tier set to untrusted so write-capable tools require local approval","Confirm hermes mcp test vtx-insights lists the expected VTX tools"],"skill_install":["hermes skills install https://raw.githubusercontent.com/DataDoesYou/VTX-Insights/main/plugins/vtx-insights/skills/vtx-insights-analysis/SKILL.md","hermes skills install https://raw.githubusercontent.com/DataDoesYou/VTX-Insights/main/plugins/vtx-insights/skills/vtx-bot-trade-chain-analysis/SKILL.md"]}}},"subscription_inference":{"schema_version":1,"distribution_id":"vtx-external-inference-host","listing_status":"published","general_admission":"enabled","service":{"mcp_url":"https://api.vtxmacro.com/insights/mcp","oauth_scope":"insights:inference","oauth_scopes":["insights:inference"],"grant_class":"external_inference_runtime","operational_tools":["inference.agent.connect","inference.agent.heartbeat","inference.agent.next","inference.agent.complete","inference.agent.fail","inference.agent.assignment.next","inference.agent.assignment.heartbeat","inference.agent.data.call","inference.agent.decision.submit","inference.agent.decision.status","inference.agent.assignment.release","inference.host.register","inference.host.heartbeat","inference.host.advertise","inference.job.claim","inference.job.start","inference.job.heartbeat","inference.job.complete","inference.job.fail"]},"cli":{"package_name":"@vtxmacro/cli","public_registry_status":"published","accepted_distribution":"public_npm","commands":["vtx inference-host --help","vtx inference-host login","vtx inference-host agent-connect","vtx inference-host agent-run","vtx inference-host agent-next","vtx inference-host agent-complete","vtx inference-host agent-fail","vtx inference-host agent-assignment-next","vtx inference-host agent-assignment-heartbeat","vtx inference-host agent-data-call","vtx inference-host agent-decision-submit","vtx inference-host agent-decision-status","vtx inference-host agent-assignment-release","vtx inference-host codex-login","vtx inference-host grok-login","vtx inference-host deepseek-login","vtx inference-host pi-login","vtx inference-host exo-login","vtx inference-host run","vtx inference-host service install","vtx inference-host service start","vtx inference-host service stop","vtx inference-host service status","vtx inference-host service logs","vtx inference-host service recover","vtx inference-host service uninstall","vtx inference-host status","vtx inference-host doctor","vtx inference-host logout","vtx inference-host codex-logout","vtx inference-host grok-logout","vtx inference-host deepseek-logout","vtx inference-host pi-logout","vtx inference-host exo-logout","vtx inference-host revoke"]},"help":{"title":"Connect an agent inference host","summary":"Connect Codex, GitHub Copilot, DeepSeek Harness, Pi, Exo, or another compatible harness to a running VTX bot. Provider mode keeps the normal VTX analysis cycle unchanged. On an explicitly capable Main model, Agent mode assigns the bot to the agent, which chooses its own cadence, requests only the VTX data it needs, and submits the normal structured trading decision.","runtime_requirement":"Provider mode supports Main, Review, and Screener while the normal VTX bot and connected host are running. Agent mode is available only for explicitly capable Main models; Review and Screener remain Provider-only. VTX assigns the running Trader but does not schedule Agent prompts or preassemble required context. The agent may request assignment-scoped data or none, then submits the same structured decision VTX validates and executes normally. Both Server Mode and Client Mode support these control modes. Durable workers use a supported headless runtime, restart at user login, and reconnect after sleep or network loss on native Windows or Linux. WSL remains foreground-only.","agent_prompt":"Read https://vtxmacro.com/insights#subscription-inference and help me connect your supported VTX inference host. Install the durable service when your harness has a supported headless adapter; otherwise use the foreground host path and keep its agent loop open. For Main, help me choose Provider or Agent based on the model's explicit capabilities; keep Review and Screener in Provider mode. Save the setting and start the normal VTX Trader only after I approve. Confirm either that the OS service remains active independently of this chat or that the required foreground loop is still open. Do not advertise durability or Agent control that your harness cannot provide.","fleet_setup":{"title":"Fresh computer or existing fleet","summary":"Use this path when several existing profiles or durable inference hosts must move to a new computer. A new installation creates new host identities even when the vendor credential is unchanged, so every saved profile lane must be checked and any stale binding must be explicitly previewed and rebound.","steps":["Before changing anything, freeze the exact profile cohort and record each lane's current model, reasoning effort, control mode, execution mode, primary host, and ordered fallbacks. Record every computer's displayed host name, stable local --instance name, adapter, host ID, and intended model. Record authenticated account identity only when that adapter reports one.","Install the CLI from native Windows or native Linux. On each physical computer, run login, then the adapter-specific vendor step: codex-login for Codex, the official Copilot CLI login for Copilot, or deepseek-login through stdin for DeepSeek Harness. Run doctor and service install with the exact adapter and instance; one OS supervisor manages that computer's isolated workers. Each worker keeps its own VTX grant, credential boundary, and runtime state. Never copy inference-host credentials or state between computers. Codex and Copilot multiple-instance setups require distinct authenticated accounts. DeepSeek Harness currently permits only one worker for that adapter per computer because it does not advertise a stable provider account identity.","Compare each newly registered host ID with the exact host identity saved on every target lane. Matching account email is not proof of the same host; neither is a matching API key, adapter, or device name. Preview an owner-scoped update for only the frozen cohort, explicitly replace stale primary and fallback host bindings, and preserve model, reasoning effort, response mode, execution mode, control mode, symbols, prompts, and every unrelated setting.","Apply only the approved, version-fenced preview with its rollback snapshot. Read back every target lane and Host cascade, then confirm each named instance maps to the intended host ID and adapter and advertises the intended model and effort. When account identity is available, verify it too. Do not revoke the previous computer's grants until the new bindings and workers are verified.","Verify a fresh completed and accepted inference from every primary host; for full fleet acceptance, verify one from every target profile. A routed request, claim, start acknowledgement, running Trader, start receipt, or brief Live label does not prove inference completion. Inspect failures before making one controlled retry.","A durable service starts immediately and registers startup for that user at sign-in, not before Windows login. While the computer is off, asleep, signed out, or offline it cannot serve inference. At sign-in and periodically while running, a desired-running service checks for a verified CLI update. It finishes active Provider calls and Agent turns with heartbeats intact before switching releases and reconnecting automatically; if the registry is unavailable, it keeps the last verified compatible runtime. service stop disables update checks, automatic recovery, and login startup until service start re-enables them.","Fallback workers installed on the same computer protect against an individual provider credential or quota failure, not against that computer being unavailable. Reboot or sign out only with the user's approval; after signing back in, verify supervisor state, every instance and adapter, any reported account identity, fresh remote heartbeats, and a new completed inference."],"verification":["Exact effective primary and fallback bindings read back for every target lane.","One OS supervisor reports every intended named worker desired-running with the correct adapter and, when available, authenticated account.","Every new host has a fresh remote heartbeat and advertises the intended model and reasoning effort.","Each primary host completes and VTX accepts a fresh inference; full-fleet acceptance covers every target profile.","A post-login check proves automatic restart when reboot or sign-out verification was approved."],"reboot_behavior":"The service is per-user login startup, not a pre-login machine service. Nothing runs while the computer is powered off, and workers cannot serve while it is asleep, signed out, or offline. After the user signs in, instances whose desired state is running reconnect automatically. Workers on the same computer share that computer-level failure domain.","agent_prompt":"Read https://vtxmacro.com/insights#subscription-inference and set up or move my exact existing durable inference fleet to this computer. Before changes, list the exact profiles, named instances, adapters, primary and fallback order, model, reasoning, control mode, and execution mode. Use the adapter-specific vendor login or key-import step and one native OS supervisor with isolated workers. DeepSeek Harness is limited to one worker for that adapter per computer until it can advertise a stable provider account identity. Explicitly preview and rebind stale host identities, preserve all unrelated settings, and verify effective readback plus a fresh completed inference from each primary. Do not call routing, a start receipt, or running Trader state proof of inference completion. Explain user-login startup and computer-off behavior before any reboot."},"adapters":[{"adapter":"codex","label":"OpenAI Codex","support_level":"durable","contract_status":"stable","billing_route":"subscription","structured_output":true,"same_attempt_recovery":true,"setup":"vtx inference-host codex-login; vtx inference-host service install --adapter codex","note":"The existing pinned App Server path remains the reference implementation, including ChatGPT identity, live model and effort discovery, quota telemetry, cancellation, and exact crash recovery."},{"adapter":"copilot","label":"GitHub Copilot","support_level":"durable","contract_status":"preview","billing_route":"subscription_credits","structured_output":false,"same_attempt_recovery":false,"setup":"Sign in with the official Copilot CLI, then run vtx inference-host service install --adapter copilot","note":"VTX uses GitHub's official SDK with the package-owned pinned platform runtime, authenticated GitHub login identity, exact enabled model and effort events, token usage, and cooperative cancellation. Auto-only catalogs fail closed because they cannot prove the effective model. Output text is schema-validated by VTX; uncertain interrupted calls are quarantined."},{"adapter":"deepseek-harness","label":"DeepSeek Harness","support_level":"durable","contract_status":"preview","billing_route":"api_billed","structured_output":false,"same_attempt_recovery":false,"setup":"Import a DeepSeek API key through stdin with vtx inference-host deepseek-login, then run vtx inference-host service install --adapter deepseek-harness","note":"VTX uses the exact-pinned official DeepSeek Harness runtime in both Provider and Main Agent modes. The key remains in the local VTX private credential boundary, Provider runs have no tools, Agent runs expose only the three assignment-scoped VTX tools, and a loopback receipt verifies the provider-returned model and response ID. VTX validates final JSON; interrupted ambiguous work is never blindly retried."},{"adapter":"pi","label":"Pi","support_level":"durable","contract_status":"preview","billing_route":"api_billed","structured_output":true,"same_attempt_recovery":false,"setup":"Import an OpenAI API key through stdin with vtx inference-host pi-login --provider openai, then run vtx inference-host doctor --adapter pi and vtx inference-host service install --adapter pi","note":"The pinned Pi SDK supports Provider mode and Main Agent mode through the existing controls. The initially qualified models use one separately stored OpenAI API key per instance and advertise exact provider/model identities from the release's configured qualification policy and SDK catalog. Provider runs have no tools; persistent Agent sessions expose only the three assignment-scoped VTX tools. VTX validates structured output and execution receipts. Uncertain interrupted model calls stop safely; Pi does not claim same-attempt recovery. Subscription OAuth and unqualified provider protocols are not enabled by this adapter."},{"adapter":"exo","label":"Exo","support_level":"foreground","contract_status":"preview","billing_route":"api_billed","structured_output":false,"same_attempt_recovery":false,"setup":"On Linux or WSL, import a Venice key with vtx inference-host exo-login --provider venice --instance exo-1 (use --provider openai for OpenAI), then keep vtx inference-host run --adapter exo --exo-root /path/to/exo --instance exo-1 open","note":"Exo means exoharness/exo. The VTX-owned bridge runs the pinned Exo custom harness automatically in Provider and Main Agent modes; no manual job transfer is needed. Each instance advertises only the release-qualified routes for its OpenAI or Venice credential. Venice currently offers Gemma 4 31B IT with effort None only. Provider runs receive complete VTX input with no tools; Agent runs expose only assignment-scoped VTX tools. VTX validates canonical JSON; native structured-output enforcement is not claimed. VTX OAuth stays outside Exo. This Linux/WSL foreground preview has no durable service or same-attempt recovery: uncertain interrupted work remains fenced. It does not add native Exo MCP support."},{"adapter":"antigravity","label":"Google Antigravity","support_level":"foreground","contract_status":"preview","billing_route":"subscription_credits","structured_output":false,"same_attempt_recovery":false,"setup":"Use vtx inference-host agent-connect and keep the signed-in Antigravity loop open","note":"A live 1.1.13 Starter Quota acceptance exposed shell, file, browser, web, MCP, subagent, and messaging tools even under an isolated agent declaring tools: [], and the requested final JSON Schema was not enforced. VTX therefore keeps Antigravity in a monitored foreground loop."},{"adapter":"gemini-cli","label":"Gemini CLI","support_level":"foreground","contract_status":"restricted","billing_route":"mixed","structured_output":false,"same_attempt_recovery":false,"setup":"Use the foreground agent loop or VTX's normal Gemini API provider; do not install Gemini CLI as a subscription worker","note":"The current official individual OAuth flow rejects this client and directs users to Antigravity. API-key and Vertex routes are API-billed rather than a consumer-subscription subsidy, and the CLI does not enforce a final response schema."},{"adapter":"claude-code","label":"Claude Code","support_level":"foreground","contract_status":"restricted","billing_route":"subscription","structured_output":false,"same_attempt_recovery":false,"setup":"Use vtx inference-host agent-connect and keep the Claude Code agent loop open","note":"Claude Code has a strong official programmatic contract, but Anthropic currently says third-party developers may not route Free, Pro, or Max credentials on users' behalf without prior approval. VTX therefore keeps it on the user's foreground first-party loop."},{"adapter":"grok-build","label":"Grok Build","support_level":"durable","contract_status":"preview","billing_route":"subscription","structured_output":true,"same_attempt_recovery":false,"setup":"Sign in with vtx inference-host grok-login, then install a grok-build inference host","note":"Grok Build uses the pinned official runtime and a separate local OAuth session for Provider and Main Agent modes. Provider runs have no tools; Agent runs expose only the three assignment-scoped VTX tools. VTX validates structured output, model identity, and reported usage. Uncertain interrupted requests remain fenced; same-attempt recovery and Codex subscription quota telemetry are not supported."},{"adapter":"kiro","label":"Kiro CLI","support_level":"foreground","contract_status":"insufficient","billing_route":"subscription_credits","structured_output":false,"same_attempt_recovery":false,"setup":"Use the foreground agent loop; do not install Kiro as a durable VTX worker yet","note":"Kiro API keys legitimately consume paid subscription credits, but its headless chat lacks a stable JSON result, effective-model, token-usage, and cancellation receipt."},{"adapter":"cursor","label":"Cursor","support_level":"foreground","contract_status":"preview","billing_route":"api_billed","structured_output":false,"same_attempt_recovery":false,"setup":"Use Cursor's foreground agent loop for subscription sessions","note":"Cursor's official SDK has strong lifecycle and usage telemetry, but SDK authentication is API-key and token-billed rather than a clear consumer-subscription subsidy."},{"adapter":"amp","label":"Amp","support_level":"foreground","contract_status":"preview","billing_route":"mixed","structured_output":false,"same_attempt_recovery":false,"setup":"Use Amp through agent-connect while managed model-mode identity remains unfrozen","note":"Amp offers subscriptions, credits, and linked ChatGPT capacity, but its selectable product is a managed mode rather than a stable underlying model identity."},{"adapter":"auggie","label":"Auggie","support_level":"foreground","contract_status":"preview","billing_route":"subscription_credits","structured_output":false,"same_attempt_recovery":false,"setup":"Use Auggie through agent-connect until structured results and recovery are complete","note":"Auggie exposes account, models, credits, ACP cancellation, and sessions, but its SDK currently declares structured output unsupported and recovery remains incomplete."},{"adapter":"junie","label":"JetBrains Junie","support_level":"foreground","contract_status":"insufficient","billing_route":"subscription_credits","structured_output":false,"same_attempt_recovery":false,"setup":"Use Junie through agent-connect while its effective model, effort, and usage receipts remain incomplete","note":"Junie has headless JSON, ACP, sessions, and subscription routing, but effort can fall back and its public machine contract does not yet provide the exact effective identity and usage evidence required for a durable VTX worker."},{"adapter":"warp-oz","label":"Warp Oz","support_level":"foreground","contract_status":"insufficient","billing_route":"subscription_credits","structured_output":false,"same_attempt_recovery":false,"setup":"Use Warp or Oz through agent-connect for foreground automation","note":"Warp and Oz can consume plan credits and run cloud agents, but they do not expose the exact effort, structured result, token accounting, and direct inference lifecycle required for a durable VTX provider."},{"adapter":"qwen-code","label":"Qwen Code","support_level":"foreground","contract_status":"restricted","billing_route":"mixed","structured_output":true,"same_attempt_recovery":false,"setup":"Keep Coding Plan sessions foreground-only; use VTX's normal ModelStudio provider for API-key usage","note":"Qwen Code has a strong no-tools, JSON Schema, usage, and cancellation contract, but the Coding Plan prohibits automated scripts, application backends, and non-interactive use. Standard ModelStudio API quota is a normal API/BYOK route rather than subscription capacity."},{"adapter":"opencode","label":"OpenCode","support_level":"foreground","contract_status":"restricted","billing_route":"mixed","structured_output":true,"same_attempt_recovery":false,"setup":"Use OpenCode through agent-connect for foreground Provider or Main Agent mode with local or BYOK models; use its native OAuth MCP client for VTX Insights","note":"OpenCode can run VTX Provider jobs or claim a true Main Agent assignment while its foreground loop stays open, and it can connect directly to VTX Insights with scoped OAuth and native Agent Skills. The open-source harness has a strong SDK and session contract, but its generic receipts do not prove provider-returned model identity or complete ambient-tool isolation. Its hosted terms also prohibit unattended programmatic output extraction, and upstream vendors do not authorize OpenCode as a durable router for their consumer subscription OAuth credentials."},{"adapter":"openclaw","label":"OpenClaw","support_level":"foreground","contract_status":"preview","billing_route":"mixed","structured_output":false,"same_attempt_recovery":false,"setup":"Use OpenClaw's native MCP client for VTX Insights; use agent-connect only for foreground VTX inference","note":"OpenClaw's published package supports remote OAuth MCP servers, so it can use VTX Insights directly. Durable VTX inference remains disabled because the published runtime does not expose a package-owned terminal receipt with complete effective model, provider-call usage, tool, cancellation, and interruption evidence."},{"adapter":"hermes","label":"Hermes Agent","support_level":"foreground","contract_status":"insufficient","billing_route":"mixed","structured_output":false,"same_attempt_recovery":false,"setup":"Use Hermes' native MCP client for VTX Insights; use agent-connect only for foreground VTX inference","note":"Hermes supports remote OAuth MCP servers, so it can use VTX Insights directly. Its one-shot runner can make unreported auxiliary model calls, undercounts usage, reports requested rather than proven effective identity, can exit successfully after provider failures, and has no structured interruption receipt or clean no-tools mode, so it is not a durable VTX adapter."}],"steps":["Install the public host with npm install -g @vtxmacro/cli, confirm the installed release with vtx --version, and use vtx inference-host --help whenever you need command discovery.","New service installations use a private verified launcher: at login, each service start, and periodically while running it checks the official npm registry and verifies an exact release. Before switching it stops new admission and lets active Provider calls and Agent turns finish with heartbeats intact. It selects the candidate only after every configured worker reports ready. Routine updates do not require a manual restart. A failed candidate is rejected and the last working runtime resumes; an unavailable update check also keeps that runtime. The service retains only the active private release and one rollback release. An intentionally stopped service stays stopped and makes no update request.","Hosts installed before the private launcher need one final normal npm update and cooperative service reinstall to adopt it. Startup-only launchers adopt background checking after their next normal start activates a release that includes it; publishing a release cannot replace an older process that is already running. Durable services run on native Windows x64 or native Linux x64. WSL supports foreground diagnostics and agent-driven commands but refuses service installation; install from native Windows for Windows-login startup.","For Exo (https://github.com/exoharness/exo), use Linux or WSL and the source revision qualified by this CLI release. Follow the Exo setup in the CLI package README, then run vtx inference-host login --instance exo-1. Import one OpenAI or Venice key per instance through stdin with vtx inference-host exo-login --provider venice --instance exo-1; use --provider openai for OpenAI. Run doctor --adapter exo --exo-root /path/to/exo --instance exo-1, then keep vtx inference-host run --adapter exo --exo-root /path/to/exo --instance exo-1 open. The bridge automatically serves both Provider and Main Agent modes. Each instance advertises only its credential provider's qualified models and efforts. Venice currently offers Gemma 4 31B IT with effort None only. Other routes and subscription logins are not qualified. Windows users run the foreground bridge inside WSL; native Windows and durable services are not supported. Exo trading inference does not require native MCP support in Exo.","Run vtx inference-host login and approve the exact insights:inference grant in the VTX browser consent flow. A VTX authorization-complete page confirms the callback; if the browser still shows ERR_BLOCKED_BY_CLIENT but the terminal reports logged_in and doctor reports credential-present, a browser extension blocked only the confirmation page and authorization succeeded.","The CLI verifies that the OS credential store retained the grant. If Windows Credential Manager or another OS store fails, the new remote grant is revoked instead of reporting success. Retry with the supported private-file store: in PowerShell set $env:VTX_INFERENCE_HOST_CREDENTIAL_STORE=\"file\"; in bash run export VTX_INFERENCE_HOST_CREDENTIAL_STORE=file; then run vtx inference-host login again.","For automated Codex inference, enable Device code authorization in ChatGPT Security, then run vtx inference-host codex-login. Never share or enter a device code you did not initiate. The host advertises every visible Codex model with its reported display name and reasoning efforts; hidden entries are not exposed. Verify both logins with vtx inference-host doctor --json, then run vtx inference-host service install. Hosts have no subscription-specific concurrency limit by default; --max-concurrency adds a local limit, and active turns share the subscription rate-limit gate. Installation starts at login. service status --json reports workers; vtx inference-host status --json is local-only. Confirm the intended ChatGPT email and plan before starting a Trader. When an exact Main model advertises Agent control, the assigned Codex runtime reuses these logins, receives no VTX prompt, and chooses its cadence and assignment-scoped data calls. Use vtx inference-host run for foreground diagnostics.","For machine-level fallback, repeat login, codex-login, doctor, and service installation on each physical computer. Every computer receives a distinct VTX grant and host ID while its displayed name defaults to the operating-system device name; the same authenticated Codex subscription may be used on more than one computer. Never copy host credentials or state between machines. Multiple instances on one computer still require distinct authenticated subscriptions; use --instance <name> for that setup. Use service status --json to list local workers and vtx inference-host status --instance <name> --json for one local instance. In each profile lane, use Host cascade to add and order compatible computers. Host #1 is selected, and the model picker shows only its models; later hosts are managed only under Host cascade.","For Pi, run vtx inference-host login --instance pi-1, import the provider key privately with vtx inference-host pi-login --provider openai --instance pi-1 through stdin, then run doctor --adapter pi and service install --adapter pi with the same instance. Select its advertised provider/model and effort in the existing model controls. Use one provider per instance; a provider API key is separate from the VTX grant. The Pi adapter does not import ordinary Pi sessions or subscription logins.","For GitHub Copilot, sign in with the official Copilot CLI and run vtx inference-host service install --adapter copilot --instance copilot-1. The adapter discovers the authenticated runtime catalog, rejects BYOK substitution, and quarantines an uncertain interrupted dispatch rather than repeating it. The AI page exposes Agent only for an exact Main model that the installed host advertises as Agent-capable. Never install a different adapter over an existing Codex instance; use a distinct instance and VTX grant.","For DeepSeek Harness, create a distinct instance, pipe the DeepSeek API key into vtx inference-host deepseek-login --instance deepseek-1, then run doctor and service install --adapter deepseek-harness. The key stays local and is not written to service manifests or sent to VTX. The authenticated live catalog is intersected with VTX-supported DeepSeek text models. Provider mode is tool-less; Main Agent mode keeps a durable Harness session and exposes only vtx_get_data, vtx_submit_decision, and vtx_decision_status. Review and Screener remain Provider-only.","For another compatible agent harness without a supported headless adapter, run vtx inference-host agent-connect --adapter <lowercase-harness-id> --model <exact-model-id> --model-label \"<label>\" --effort <effort> --json and keep vtx inference-host agent-run plus the harness session open. In Provider mode, keep calling agent-next, reason over its exact prompt/context/schema fields, then submit agent-complete or agent-fail. In Agent mode, use agent-assignment-next for the exact Main assignment, make zero or more assignment-scoped agent-data-call requests, submit the normal structured decision with agent-decision-submit, recover an uncertain receipt with agent-decision-status, and use agent-assignment-heartbeat to record the next wake. Use agent-assignment-release only when intentionally ending that foreground control session. This foreground path is not advertised as durable after its harness session exits.","For agent-fail, use not_dispatched only if no harness inference began, confirmed_dispatched if it began but produced no reliable result, or outcome_unknown if dispatch itself cannot be confirmed. Examples: {\"dispatch_outcome\":\"not_dispatched\",\"failure_category\":\"adapter\",\"failure_code\":\"harness_unavailable\",\"retryable\":true}; {\"dispatch_outcome\":\"confirmed_dispatched\",\"failure_category\":\"adapter\",\"failure_code\":\"no_reliable_result\",\"retryable\":false}; {\"dispatch_outcome\":\"outcome_unknown\",\"failure_category\":\"transport\",\"failure_code\":\"dispatch_confirmation_lost\",\"retryable\":false}. Set retryable true only when a fresh attempt is safe. Durable Agent adapters persist an ambiguous dispatch fence across service restart and never auto-redispatch it. status --json and doctor --json expose the fence; reconcile and revoke/relink the instance before resuming. A successful replacement DeepSeek key import clears an authentication fence, while quota and rate-limit failures honor their retry time or a bounded cooldown.","Use VTX to bind the advertised model to Main, Review, or Screener. Main shows Provider and, only when explicitly advertised, Agent control; Review and Screener stay Provider-only. When an adapter reports authenticated account and quota telemetry, the selected row shows this profile's estimated membership burn rate as percentage points per hour, per day, and per seven days, each with one decimal. VTX normalizes attributed increases over measured coverage; gaps do not erase same-window evidence. Bot restarts, controller generations, and model or reasoning changes preserve measurement for the same membership; a quota reset or changed host/account starts a new window. DeepSeek Harness is API-billed and reports no membership burn window.","Cascaded prompts appear on the membership that actually ran them. Models and Providers counts include native and external choices once each and do not change with control mode. Stopping a Trader leaves a durable host service online and idle; a foreground host remains online only while its automatic Exo bridge or generic agent-run and harness session stays open. An unavailable host never falls back to native inference.","Host cascade keeps one ordered peer row per distinct host ID. Two computers remain separate rows even when they report the same authenticated subscription. Host #1 is selected; moving another host into that slot changes the selected computer without changing the model or request controls. Provider-mode calls may continue only through this exact saved order. Agent mode keeps its durable thread and assignment on the exact selected Host #1; an Agent failure is fenced rather than automatically transferred to another host. Add, remove, and reorder actions animate with the normal AI-list behavior.","Codex product badges identify the frozen host position: Host #1 has no suffix, Host #2 uses #2, and Host #3 uses #3, including when a Provider request begins directly on an available later host because Host #1 is already offline. Provider quota remains account-level when an adapter reports account identity, so quota-classified Provider failures skip later hosts only when they positively report the same identity. DeepSeek Harness reports no stable account identity, so its ordered compatible hosts are not suppressed by identity matching in Provider mode.","After an approved Trader start, verify current status until the normal Trader is genuinely running. If it returns to Stopped, read the latest runtime error or event, report the cause, correct it, and only then make one controlled retry; a start receipt or a brief Live label is not success.","On native Windows, if service status or logs show that guarded recovery is blocking one installed subscription, run vtx inference-host service recover --instance <name> --force-recovery --json for that exact instance. Both --instance and --force-recovery are required; --json changes only the output format. The shared supervisor briefly quiesces so all installed workers stop cooperatively, then VTX restores its previous desired state and peer subscriptions. Recovery does not kill an arbitrary process, reboot, log either account out, change profile settings, or control a Trader. If any package-owned VTX automation is still live, the command fails closed and preserves its recovery evidence.","Use vtx inference-host service status and service logs to inspect the durable provider. service stop pauses it and disables automatic recovery and login startup until service start re-enables them; the OS registration remains installed. service uninstall --instance <name> removes one worker while preserving the others; unqualified service uninstall removes the whole supervisor. Run the appropriate uninstall before logout, revoke, or package removal. Connected Agent Apps groups live sessions for the same immutable app contract into one card and Disconnect or Relink revokes every active credential represented by that card; revoked and expired rows stay in audit history but are not shown as connected. Automated Codex users can separately run codex-logout."],"control_modes":[{"mode":"provider","label":"Provider","summary":"VTX keeps its normal cadence, builds the lane's prompt and context, and asks the connected model for a response. This remains the only mode for Review and Screener.","run_steps":["On the AI page, open Main Model, Review Model, or Screener Model and select the connected entry under Connected Providers.","Choose the reasoning effort. For Main, set Mode to Provider; Review and Screener use Provider automatically. Save the AI settings.","Confirm that the selected durable Codex, Copilot, or DeepSeek Harness service is active, or keep the foreground agent-run and harness session open (for Exo, keep its automatic run --adapter exo bridge open). Verify the host is registered, then start the normal VTX Trader. If Trader returns to Stopped, inspect the latest runtime error before a controlled retry."]},{"mode":"agent","label":"Agent","summary":"VTX assigns the running Trader to an explicitly capable Main agent. The agent chooses when to act, requests any assignment-scoped VTX data it needs or none, and submits the same structured trading decision VTX normally consumes.","run_steps":["On the AI page, open Main Model and select a connected model that explicitly offers Agent mode.","Choose the reasoning effort, set Mode to Agent, and save the AI settings. Review and Screener remain Provider-controlled.","Confirm that the selected durable Agent-capable service is active, or keep the foreground agent-run and harness session open (for Exo, keep its automatic run --adapter exo bridge open). Then start the normal VTX Trader. The assignment lets the agent choose its cadence and data calls; VTX still validates the submitted decision and owns bot lifecycle, risk, tracking, and execution."]}]},"fingerprint":"042d2be06267a1e467d7ff5b0df4b1fefb5771962d1fcac6d84a22adf8944d94"},"prompt_library":{"schema_version":1,"manifest_id":"insights-displayed-prompt-bank-2026-07-29.2","source":"Canonical server-owned VTX Insights prompt library","prompt_order_fingerprint":"e1d88c4401b8d650d4c58b2d7f08eaddd11df30b156b23a344ba627f22c1bfe5","prompts":[{"id":"profile_trading_week","workflow":"performance","text":"How am I trading this week?"},{"id":"account_trading_week","workflow":"performance","text":"How is this account trading this week?"},{"id":"profile_trading_month","workflow":"performance","text":"How am I trading this month?"},{"id":"account_model_performance","workflow":"performance","text":"Compare all my bots this month. Which model is performing best?"},{"id":"custom_account_pnl_range","workflow":"performance","text":"What was my account PnL and ROI over the last 30 days?"},{"id":"custom_bot_ranking_range","workflow":"performance","text":"Rank my bots by PnL, win rate, and drawdown over the last 30 days."},{"id":"custom_app_leaderboard_range","workflow":"performance","text":"Compare VTX Leaderboard performance over the last 30 days."},{"id":"custom_symbol_range","workflow":"performance","text":"Which symbols helped or hurt ROI over the last 30 days?"},{"id":"best_and_worst_trades","workflow":"performance","text":"What were my best and worst trades this week, and why?"},{"id":"profit_loss_drivers","workflow":"performance","text":"What is driving my profit or loss over the last 7 days?"},{"id":"app_best_bot_evidence","workflow":"performance","text":"Which public VTX bot has the strongest recent risk-adjusted performance, and what evidence supports the ranking?"},{"id":"bleed_diagnosis","workflow":"trade_chain","text":"Why has this bot been losing over recent trades?"},{"id":"death_spiral_detection","workflow":"trade_chain","text":"Is this a sustained loss pattern, or are the losses clustered in one window?"},{"id":"max_loss_count_guardrail","workflow":"trade_chain","text":"Did the 24h Max Loss Count guardrail actually fire?"},{"id":"max_loss_count_window_compare","workflow":"trade_chain","text":"Compare 6h versus 24h Max Loss Count effects for this bot."},{"id":"asset_tradability_comparison","workflow":"trade_chain","text":"Is this bot doing better because one asset is more tradable?"},{"id":"symbol_loss_cadence","workflow":"trade_chain","text":"Which symbols have the worst loss cadence for this profile?"},{"id":"prompt_guardrail_proof","workflow":"trade_chain","text":"Did recent prompts include the active guardrail text?"},{"id":"missing_evidence","workflow":"trade_chain","text":"What evidence is missing before blaming the settings?"},{"id":"bleed_examples","workflow":"trade_chain","text":"Show the examples behind the recent-loss diagnosis."},{"id":"expand_loss_all_history","workflow":"trade_chain","text":"Expand the loss analysis to all available history."},{"id":"fee_drag","workflow":"execution_and_risk","text":"How much are fees hurting my trading this month?"},{"id":"overtrading_check","workflow":"execution_and_risk","text":"Am I overtrading, or are my entries selective enough?"},{"id":"long_short_bias","workflow":"execution_and_risk","text":"Am I doing better on longs or shorts lately?"},{"id":"symbol_performance","workflow":"execution_and_risk","text":"Which symbols have been helping or hurting me this month?"},{"id":"risk_reward_quality","workflow":"execution_and_risk","text":"Are my trades showing disciplined risk-to-reward behavior?"},{"id":"close_quality","workflow":"execution_and_risk","text":"Am I closing positions too early or too late?"},{"id":"decision_consistency","workflow":"trade_quality","text":"Are my bot decisions consistent with their stated reasoning?"},{"id":"drawdown_recovery","workflow":"trade_quality","text":"How did this bot handle drawdowns this month?"},{"id":"winning_patterns","workflow":"trade_quality","text":"What patterns show up in my winning trades?"},{"id":"losing_patterns","workflow":"trade_quality","text":"What patterns show up in my losing trades?"},{"id":"profile_vs_account","workflow":"trade_quality","text":"Is this profile outperforming the rest of the account?"},{"id":"bot_rankings","workflow":"trade_quality","text":"Rank my bots by recent trading quality, not just PnL."},{"id":"bot_settings_wins","workflow":"settings","text":"Which bot settings seem correlated with recent wins?"},{"id":"bot_settings_losses","workflow":"settings","text":"Which bot settings seem correlated with recent losses?"},{"id":"current_bot_settings","workflow":"settings","text":"What bot settings are active on this profile right now?"},{"id":"settings_changed_recently","workflow":"settings","text":"What bot settings changed recently, and what should I inspect next?"},{"id":"settings_snapshots_review","workflow":"settings","text":"Compare my saved AI settings snapshots and explain what changed between them."},{"id":"settings_draft_review","workflow":"settings","text":"Draft a conservative, review-ready settings proposal from the evidence, but do not apply it."},{"id":"screener_config_review","workflow":"settings","text":"How is Screener configured for this profile?"},{"id":"screener_candidates_unavailable","workflow":"settings","text":"Which Screener candidates or rejections appeared recently, and is any requested evidence unavailable?"},{"id":"model_comparison","workflow":"model_performance","text":"Compare the recent performance of the models used by my bots."},{"id":"strategy_regime_fit","workflow":"market_context","text":"Which bot seems best matched to the current market regime?"},{"id":"current_open_positions","workflow":"account_state","text":"Review my current open positions and recent decisions."},{"id":"missed_opportunities","workflow":"decision_context","text":"Did my bots miss any evidence-supported opportunities recently?"},{"id":"asset_reconstruction","workflow":"decision_context","text":"Reconstruct the SOL price action around my recent decisions."},{"id":"volume_indicator_context","workflow":"decision_context","text":"Were my recent entries supported by volume and indicators?"},{"id":"behavioral_review","workflow":"decision_context","text":"Review the behavior of my bot decisions this week."},{"id":"live_btc_setup","workflow":"live_market","text":"Analyze the live BTC market setup right now."},{"id":"live_eth_setup","workflow":"live_market","text":"Analyze the live ETH market setup right now."},{"id":"live_sol_setup","workflow":"live_market","text":"Analyze the live SOL market setup right now."},{"id":"market_regime","workflow":"live_market","text":"What market regime is BTC in right now?"},{"id":"live_risk_context","workflow":"live_market","text":"What should a cautious trader watch in the live BTC setup?"},{"id":"strategy_alignment","workflow":"live_market","text":"Does the current BTC setup favor momentum or mean reversion?"},{"id":"live_position_context","workflow":"live_market","text":"How do my current positions fit the live market setup?"},{"id":"crypto_sentiment","workflow":"web_research","text":"Search the web for current BTC and crypto market sentiment."},{"id":"latest_btc_news","workflow":"web_research","text":"Search the web for the latest BTC news that traders should care about."},{"id":"latest_macro_risk","workflow":"web_research","text":"Search the web for current macro risks affecting crypto."},{"id":"latest_fed_crypto","workflow":"web_research","text":"Search the web for recent Fed news and explain the crypto impact."},{"id":"latest_etf_flows","workflow":"web_research","text":"Search the web for the latest BTC ETF flow headlines and trading implications."},{"id":"latest_altcoin_narratives","workflow":"web_research","text":"Search the web for current altcoin narratives gaining traction."},{"id":"latest_regulatory_news","workflow":"web_research","text":"Search the web for recent crypto regulation news that matters to traders."},{"id":"vtx_profile_sessions","workflow":"vtx_help","text":"Using VTX Help, explain how Insights selects my profiles, named public handles or wallets, and whole-platform data."},{"id":"vtx_client_mode","workflow":"vtx_help","text":"Using VTX Help, explain Client Mode versus Server Mode."},{"id":"vtx_local_ai","workflow":"vtx_help","text":"Using VTX Help, how should I think about Local AI models?"},{"id":"vtx_bot_settings","workflow":"vtx_help","text":"Using VTX Help, explain the important bot settings."},{"id":"vtx_leaderboard","workflow":"vtx_help","text":"Using VTX Help, how should I interpret the VTX Leaderboard?"},{"id":"generate_btc_momentum_bot","workflow":"settings_ideas","text":"Generate a BTC momentum bot idea for this profile."},{"id":"generate_sol_reversal_bot","workflow":"settings_ideas","text":"Generate a SOL mean-reversion bot idea for this profile."},{"id":"improve_existing_bot","workflow":"settings_ideas","text":"Generate improved settings based on this profile's recent trading."},{"id":"low_risk_bot","workflow":"settings_ideas","text":"Generate a lower-risk bot setup for choppy market conditions."},{"id":"aggressive_bot","workflow":"settings_ideas","text":"Generate an aggressive trend-following bot setup for strong momentum."},{"id":"what_can_insights_do","workflow":"general","text":"What can VTX Insights help me analyze or manage?"}]},"capabilities":[{"id":"account.snapshot","title":"Read account snapshot","description":"Read the active profile or account's live exchange account summary and complete current open-position list. Use this—not analytics positions—for questions about what is open now. An unavailable profile is not flat.","family":"account","input_schema":{"additionalProperties":false,"properties":{"selection":{"additionalProperties":false,"description":"Explicit model-selected population; identity and ownership remain server-owned.","examples":[{"population":"owned_profiles"},{"handles":["@Scholes"],"population":"owned_profiles"},{"handles":["@Scholes"],"population":"public_profiles"},{"population":"whole_platform"}],"properties":{"population":{"description":"Choose owned_profiles for every profile you own or an exact owned handle subset, public_profiles for exact public handle/wallet selectors, or whole_platform for every active profile. Wallets are valid only with public_profiles, and whole_platform cannot include selectors.","enum":["owned_profiles","public_profiles","whole_platform"],"type":"string"},"handles":{"description":"Exact handles. Set with population=owned_profiles for an owned subset or with population=public_profiles for public profiles; omit for the full populations.","items":{"type":"string"},"type":"array"},"wallets":{"description":"Exact public wallet addresses. Set only with population=public_profiles; otherwise omit.","items":{"type":"string"},"type":"array"}},"required":["population"],"type":"object"}},"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["selection"]},"input_schema_sha256":"671510daaeb88bcc7764c5dd1f294cd65adec0bb40a4c6e7388be6977840a605","required_authority":"insights:read","data_populations":["owned_profiles","public_profiles","whole_platform"],"freshness":"captured_cutoff","provenance":"required","delivery_modes":["inline","artifact"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"analysis.cancel","title":"Cancel long analysis","description":"Cancel only this authorization-bound analysis subscriber. Shared work continues while another active subscriber remains; the final subscriber requests cooperative cancellation and no partial artifact is published. Repeating the same cancellation is idempotent.","family":"analysis_job","input_schema":{"additionalProperties":false,"properties":{"handle":{"maxLength":96,"minLength":16,"type":"string"}},"required":["handle"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"8576d66a5f2ffd254e70417bed99dc11d3e2191910c0a3b6a6fa4b0593ad5800","required_authority":"insights:read","data_populations":["authorized_analysis_job"],"freshness":"durable_job_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"analysis.start","title":"Start long analysis","description":"Run an authorized VTX evidence read, artifact.query, or artifact.query_many without an analysis time limit. Artifact manifest/chunk and analysis control tools are not job targets. Pass the target capability and its normal arguments, then poll analysis.status and retrieve the complete immutable artifact. Use this for large populations or whenever a synchronous read or targeted artifact query batch times out.","family":"analysis_job","input_schema":{"additionalProperties":false,"properties":{"capability":{"maxLength":128,"minLength":1,"type":"string"},"arguments":{"additionalProperties":true,"type":"object"},"data_cutoff":{"default":null,"format":"date-time","type":["string","null"]},"idempotency_key":{"default":null,"maxLength":128,"minLength":8,"type":["string","null"]}},"required":["capability"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"c80d7a70baf92633a87b0790eedc2ffe066fe325efa300bdb1d929ed636aed72","required_authority":"insights:read","data_populations":["authorized_analysis_job"],"freshness":"captured_cutoff","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"analysis.status","title":"Check long analysis","description":"Check or resume an authorized durable analysis job. Completed jobs return an immutable artifact handle; queued or running jobs should be polled again.","family":"analysis_job","input_schema":{"additionalProperties":false,"properties":{"handle":{"maxLength":96,"minLength":16,"type":"string"}},"required":["handle"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"8576d66a5f2ffd254e70417bed99dc11d3e2191910c0a3b6a6fa4b0593ad5800","required_authority":"insights:read","data_populations":["authorized_analysis_job"],"freshness":"durable_job_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"analytics.query","title":"Analyze trading data","description":"Query profile/account data or public platform aggregates for profiles, trades, retained bot position-state records, performance, settings history, and equity history. Use account.snapshot for current live open positions. Use decisions.history for decision-specific prompts, settings, models, indicators, and linked outcomes. Bot model responses returns every authorized retained primary/review response verbatim, with complete non-expired reasoning when include_reasoning is true. Prompt guardrails provides privacy-safe proof of canonical performance messages present in persisted prompts. Use positions.episodes window_matrix once for the canonical rolling, adaptive, and disjoint windows, metrics for another exact interval, and event_detail for the complete request-time raw trade-chain population. Equity history includes exact boundary snapshots and observed drawdown. Preserve the requested scope; if it has no rows, report that instead of substituting another scope or public web/help evidence. This aggregate query cannot answer how a changed setting, gate, or threshold would alter recorded decisions; use policy replay for that counterfactual.","family":"analytics","input_schema":{"additionalProperties":false,"properties":{"dataset":{"description":"Observed dataset: profiles, trades, positions, performance, settings_history, equity_history, prompt_guardrails, or bot_model_responses. Use positions.episodes for complete raw trade-chain evidence. Positions contains retained bot campaign-state records, not a verified current exchange snapshot; use account.snapshot for what is open now. Bot model responses returns complete stored response text, never summaries. Equity history provides boundary account values and observed drawdown. Prompt guardrails proves which canonical guardrail messages were present without exposing raw prompts. Not for changed-setting effects.","enum":["profiles","trades","positions","performance","settings_history","equity_history","prompt_guardrails","bot_model_responses"],"type":"string"},"start":{"default":null,"description":"Optional ISO date or timezone-aware timestamp; omit for all retained rows.","format":"date-time","type":["string","null"]},"end":{"default":null,"description":"Optional inclusive ISO date or timezone-aware timestamp; omit to use the immutable run cutoff. A date-only value includes that full date in the configured Insights user timezone.","format":"date-time","type":["string","null"]},"include_reasoning":{"default":false,"description":"For bot_model_responses only: return complete unmodified retained primary and review reasoning traces that have not expired.","type":"boolean"},"selection":{"additionalProperties":false,"description":"Explicit model-selected population; identity and ownership remain server-owned.","examples":[{"population":"owned_profiles"},{"handles":["@Scholes"],"population":"owned_profiles"},{"handles":["@Scholes"],"population":"public_profiles"},{"population":"whole_platform"}],"properties":{"population":{"description":"Choose owned_profiles for every profile you own or an exact owned handle subset, public_profiles for exact public handle/wallet selectors, or whole_platform for every active profile. Wallets are valid only with public_profiles, and whole_platform cannot include selectors.","enum":["owned_profiles","public_profiles","whole_platform"],"type":"string"},"handles":{"description":"Exact handles. Set with population=owned_profiles for an owned subset or with population=public_profiles for public profiles; omit for the full populations.","items":{"type":"string"},"type":"array"},"wallets":{"description":"Exact public wallet addresses. Set only with population=public_profiles; otherwise omit.","items":{"type":"string"},"type":"array"}},"required":["population"],"type":"object"}},"required":["dataset","selection"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"b2f808ef4cea2b202c514b5538446b2fabf4ae3d1c8d4d67c857df2250d86c03","required_authority":"insights:read","data_populations":["owned_profiles","public_profiles","whole_platform"],"freshness":"captured_cutoff","provenance":"required","delivery_modes":["inline","artifact"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"artifact.manifest","title":"Inspect analysis artifact","description":"Use when a prior tool returned a complete analysis artifact. Returns the total rows, bytes, content hash, durable checkpoint, and the next bounded page of ordered chunk metadata. Calling this selects complete-chunk mode for the handle: read only the advertised ordinals, acknowledge them through artifact.resume to receive subsequent pages, and never call artifact.query on that handle.","family":"artifact","input_schema":{"additionalProperties":false,"properties":{"handle":{"maxLength":96,"minLength":16,"type":"string"}},"required":["handle"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"8576d66a5f2ffd254e70417bed99dc11d3e2191910c0a3b6a6fa4b0593ad5800","required_authority":"insights:read","data_populations":["authorized_artifact"],"freshness":"immutable_artifact","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"artifact.query","title":"Query analysis artifact","description":"Use to traverse an exact key/index path within an immutable authorized JSON artifact without arbitrary SQL, filesystem, or network access. Start directly with path=[] and extend only returned keys or indexes; do not call artifact.manifest first because manifest selects complete-chunk mode. The root result key owns the capability payload. Exact values are returned when they fit; larger nodes return a bounded structure for further traversal. For a wide object, repeat the same path with each exact next_structure_offset until the needed key is disclosed. Discovery is recursive and stateless: next query each needed disclosed object path, then query a disclosed list parent for its available_index_range before batching exact children. Earlier calls do not create index entries. A ready sparse index rejects an undisclosed descendant when its nearest retained ancestor exceeds the bounded scan budget; use a disclosed compact path or complete artifact retrieval because durable retry cannot add an index entry. If a slow indexed query must move to analysis.start, set result_projection=bounded for the same bounded navigation response. A nonzero structure_offset durable handoff requires bounded. Omit it or set exact only with structure_offset=0 as a new complete-value request when the complete selected value is material.","family":"artifact","input_schema":{"additionalProperties":false,"properties":{"handle":{"maxLength":96,"minLength":16,"type":"string"},"path":{"description":"Exact JSON keys and list indexes to traverse in targeted-query mode. Start directly with path=[] before any manifest call to inspect the artifact root, whose result key owns the capability payload. Extend only keys or indexes returned by a successful query; do not guess paths. Discovery is recursive and stateless: query each needed disclosed object path (following any next_structure_offset), then query a disclosed list parent for its available_index_range before batching exact child paths.","items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","maxItems":64},"structure_offset":{"default":0,"description":"Zero-based object-key page offset. Leave at 0 for the first query at a path. When an object structure returns next_structure_offset, repeat the same path with that exact offset to disclose the next key page.","minimum":0,"type":"integer"},"result_projection":{"default":null,"description":"Optional durable analysis.start result projection. Omit it to preserve the legacy contract: direct artifact.query returns an exact value only when it fits and otherwise returns bounded structure, while analysis.start publishes the complete exact selected value. Set bounded on analysis.start when navigation or an exact-if-it-fits value is sufficient; the background read then publishes the same bounded query envelope instead of copying a large selected node. A nonzero structure_offset durable handoff requires bounded. Set exact only when complete selected bytes are material; exact or omitted requires structure_offset=0 as a new complete-value request. Direct artifact.query remains bounded regardless of this field.","enum":["bounded","exact",null],"type":["string","null"]}},"required":["handle"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"d808c7732374ca0b8d4bf222e31d34811b0dd8f2c82f6ca7b7553cfe0ec5654d","required_authority":"insights:read","data_populations":["authorized_artifact"],"freshness":"immutable_artifact","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"artifact.query_many","title":"Query several analysis artifact paths","description":"Resolve several previously disclosed key/index paths from one immutable artifact in one MCP round trip, or run bounded typed predicate/projection filters over disclosed indexed list/object nodes. Filters support exact profile or prompt identities, timestamp ranges, and changed-path membership without returning or materializing the complete parent node. Call artifact.query with path=[] first, recursively query each needed disclosed object path, and query a disclosed list parent for its available_index_range; this discovery is stateless and does not change the server index. Then use only paths or structure offsets it disclosed. Continue filter pages with exact next_match_offset. Every result is aggregate-byte bounded; an undisclosed descendant of a large retained ancestor fails before source chunk reads. Submit this same artifact.query_many call through analysis.start if an incrementally scanned exact indexed parent exceeds the synchronous response window. Use artifact.query through analysis.start instead when one selected value needs durable exact retrieval.","family":"artifact","input_schema":{"$defs":{"ArtifactQueryItem":{"additionalProperties":false,"description":"One bounded targeted query in a single-handle batch.","properties":{"path":{"description":"Exact disclosed JSON key/index path. Use artifact.query path=[] first to discover the artifact shape before batching descendant paths.","items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array"},"structure_offset":{"default":0,"minimum":0,"type":"integer"}},"required":["path"],"type":"object"}},"additionalProperties":false,"description":"Several bounded targeted reads against one immutable artifact.","properties":{"handle":{"maxLength":96,"minLength":16,"type":"string"},"queries":{"description":"Disclosed paths to resolve in one MCP round trip. Every query remains independently bounded and preserves its own projection and continuation.","items":{"$ref":"#/$defs/ArtifactQueryItem"},"type":"array","maxItems":16},"filters":{"description":"Bounded typed predicate scans over previously disclosed indexed list/object nodes. Use these for exact timestamps, profile identities, changed-path membership, or prompt identities without retrieving the complete parent node.","items":{"additionalProperties":false,"description":"One bounded predicate scan and projection over an indexed container node.","properties":{"path":{"description":"Exact disclosed path to an indexed list or object to scan incrementally. Discover it recursively with artifact.query; prior calls do not mutate which paths are indexed.","items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array"},"predicates":{"description":"Typed predicates evaluated against every member in the bounded source node.","items":{"additionalProperties":false,"description":"One typed predicate over an artifact container member.","properties":{"target":{"default":"value_path","description":"Compare either the object member key/list index or a value reached from the member by relative path.","enum":["key","value_path"],"type":"string"},"path":{"description":"Relative key/index path within each candidate member. It must be empty when target=key.","items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array"},"operator":{"description":"Typed comparison. contains means list membership, object-key membership, or literal substring membership. Ordered comparisons explicitly distinguish numbers from timezone-aware ISO timestamps.","enum":["eq","contains","number_gte","number_lte","datetime_gte","datetime_lte"],"type":"string"},"value":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"null"}],"description":"Exact JSON scalar used by the predicate."}},"required":["operator","value"],"type":"object"},"maxItems":8,"minItems":1,"type":"array"},"predicate_match":{"default":"all","enum":["all","any"],"type":"string"},"projection_paths":{"description":"Relative paths projected from each matching member. Use path=[] to project the complete member only when it fits the aggregate response budget.","items":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array"},"maxItems":8,"minItems":1,"type":"array"},"match_offset":{"default":0,"description":"Zero-based offset within the complete ordered matching population.","minimum":0,"type":"integer"},"match_limit":{"default":null,"description":"Maximum matching members returned on this page. Omit to use the config-backed maximum.","maximum":64,"minimum":1,"type":["integer","null"]}},"required":["path","predicates","projection_paths"],"type":"object"},"type":"array","maxItems":16}},"required":["handle"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"93dfde4f05b68d00568fd5e1e7f240a8245ff01c28993bc163000bf0ba567da8","required_authority":"insights:read","data_populations":["authorized_artifact"],"freshness":"immutable_artifact","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"artifact.read","title":"Read analysis artifact chunk","description":"Use to read one exact ordered chunk from an authorized analysis artifact. For encoding=utf-8, encode the returned text as UTF-8 bytes; for encoding=base64, decode base64_data to raw bytes. Verify the raw byte_count and content_hash before acknowledging the chunk. After artifact.manifest, read only its advertised ordinals in ascending, non-overlapping batches no larger than the manifest retrieval field's max_parallel_chunk_reads. Wait for every call in one batch, acknowledge confirmed hashes through artifact.resume, retry only unconfirmed ordinals, and continue through each returned metadata page until complete.","family":"artifact","input_schema":{"additionalProperties":false,"properties":{"handle":{"maxLength":96,"minLength":16,"type":"string"},"ordinal":{"minimum":0,"type":"integer"}},"required":["handle","ordinal"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"6b39ad700b0d6625661656d6107ff0a298f0d5986061b36ef7d0858a1c9696b0","required_authority":"insights:read","data_populations":["authorized_artifact"],"freshness":"immutable_artifact","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"artifact.resume","title":"Resume complete artifact retrieval","description":"Acknowledge the next consecutive complete-read chunk hashes and return the durable confirmed checkpoint plus the next bounded chunk-metadata page. Pass an empty acknowledgement list after interruption to recover the current checkpoint and page without advancing it.","family":"artifact","input_schema":{"$defs":{"ArtifactAcknowledgement":{"additionalProperties":false,"properties":{"ordinal":{"minimum":0,"type":"integer"},"content_hash":{"pattern":"^[0-9a-f]{64}$","type":"string"}},"required":["ordinal","content_hash"],"type":"object"}},"additionalProperties":false,"properties":{"handle":{"maxLength":96,"minLength":16,"type":"string"},"acknowledgements":{"items":{"$ref":"#/$defs/ArtifactAcknowledgement"},"type":"array"}},"required":["handle"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"d7dc084eb47904ee1c88c3f3556fafe6811cc6409ce8c5638b839fdf108b241b","required_authority":"insights:read","data_populations":["authorized_artifact"],"freshness":"immutable_artifact","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"control.assistant.start","title":"Start owned Server Mode Assistants","description":"Start the dry-run AI Assistant for one, an exact subset, or every owned Server Mode profile through normal balance, configuration, and runtime checks. Assistant mode analyzes but does not execute trades.","family":"control","input_schema":{"$defs":{"InsightOwnedProfileSelection":{"additionalProperties":false,"description":"Owned-only action selector supporting one, a subset, or the whole fleet.","examples":[{"population":"all"},{"population":"selected","profiles":["@Scholes","@Euler"]}],"properties":{"population":{"description":"Use all for every active profile in the authenticated account, or selected for an exact owned handle list. The list is not capped.","enum":["all","selected"],"type":"string"},"profiles":{"description":"Exact owned handles; required only with population=selected.","items":{"type":"string"},"type":"array"}},"required":["population"],"type":"object"}},"additionalProperties":false,"properties":{"profile":{"default":null,"description":"Legacy single owned VTX profile handle. Use selection for an exact subset or the complete owned fleet.","maxLength":65,"minLength":2,"type":["string","null"]},"selection":{"anyOf":[{"$ref":"#/$defs/InsightOwnedProfileSelection"},{"type":"null"}],"default":null,"description":"Exact owned subset or all active owned profiles."},"idempotency_key":{"description":"Stable unique key for this exact control action.","maxLength":160,"minLength":8,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$","type":"string"}},"required":["idempotency_key"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"e00f6bc98a5cdc09966979c434557f95b3b4f4fef01cd9be99e7cccb22f0cdd4","required_authority":"insights:control","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"id":"control.assistant.stop","title":"Stop owned Server Mode Assistants","description":"Stop the dry-run AI Assistant for one, an exact subset, or every owned Server Mode profile and return the verified persisted inactive state.","family":"control","input_schema":{"$defs":{"InsightOwnedProfileSelection":{"additionalProperties":false,"description":"Owned-only action selector supporting one, a subset, or the whole fleet.","examples":[{"population":"all"},{"population":"selected","profiles":["@Scholes","@Euler"]}],"properties":{"population":{"description":"Use all for every active profile in the authenticated account, or selected for an exact owned handle list. The list is not capped.","enum":["all","selected"],"type":"string"},"profiles":{"description":"Exact owned handles; required only with population=selected.","items":{"type":"string"},"type":"array"}},"required":["population"],"type":"object"}},"additionalProperties":false,"properties":{"profile":{"default":null,"description":"Legacy single owned VTX profile handle. Use selection for an exact subset or the complete owned fleet.","maxLength":65,"minLength":2,"type":["string","null"]},"selection":{"anyOf":[{"$ref":"#/$defs/InsightOwnedProfileSelection"},{"type":"null"}],"default":null,"description":"Exact owned subset or all active owned profiles."},"idempotency_key":{"description":"Stable unique key for this exact control action.","maxLength":160,"minLength":8,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$","type":"string"}},"required":["idempotency_key"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"e00f6bc98a5cdc09966979c434557f95b3b4f4fef01cd9be99e7cccb22f0cdd4","required_authority":"insights:control","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"id":"control.bot.restart","title":"Restart owned Server Mode bots","description":"Restart one, an exact subset, or every owned Server Mode bot through the normal VTX stop/start gates with resumable per-profile outcomes.","family":"control","input_schema":{"$defs":{"InsightOwnedProfileSelection":{"additionalProperties":false,"description":"Owned-only action selector supporting one, a subset, or the whole fleet.","examples":[{"population":"all"},{"population":"selected","profiles":["@Scholes","@Euler"]}],"properties":{"population":{"description":"Use all for every active profile in the authenticated account, or selected for an exact owned handle list. The list is not capped.","enum":["all","selected"],"type":"string"},"profiles":{"description":"Exact owned handles; required only with population=selected.","items":{"type":"string"},"type":"array"}},"required":["population"],"type":"object"}},"additionalProperties":false,"properties":{"profile":{"default":null,"description":"Legacy single owned VTX profile handle. Use selection for an exact subset or the complete owned fleet.","maxLength":65,"minLength":2,"type":["string","null"]},"selection":{"anyOf":[{"$ref":"#/$defs/InsightOwnedProfileSelection"},{"type":"null"}],"default":null,"description":"Exact owned subset or all active owned profiles."},"idempotency_key":{"description":"Stable unique key for this exact control action.","maxLength":160,"minLength":8,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$","type":"string"},"symbol":{"default":null,"description":"Optional starting symbol; omit to use the profile's saved first symbol.","maxLength":32,"minLength":1,"type":["string","null"]},"timeframe":{"default":null,"description":"Optional starting timeframe; omit to use the saved first timeframe.","maxLength":16,"minLength":1,"type":["string","null"]},"size":{"default":null,"description":"Optional order-size override accepted by the normal VTX bot start path.","maxLength":32,"minLength":1,"type":["string","null"]},"leverage":{"default":null,"minimum":1,"type":["integer","null"]},"interval":{"default":null,"minimum":1,"type":["integer","null"]},"expected_settings_versions":{"additionalProperties":{"type":"string"},"description":"Optional exact handle-to-settings-version map. When supplied it must cover the selected start targets exactly and is rechecked inside each runtime lock.","type":"object"}},"required":["idempotency_key"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"11f2b4120bb1dcb31d12d24b246f6c6de68c31bd7a05dc79f86f64d092f3237c","required_authority":"insights:control","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"id":"control.bot.start","title":"Start owned Server or Client bot","description":"Start an exact owned Server/Client cohort through canonical runtime services. Client Mode persists desired Trader intent without assigning or transferring owner leases, and is not reported running until live lease, heartbeat, and presence evidence agrees.","family":"control","input_schema":{"$defs":{"InsightOwnedProfileSelection":{"additionalProperties":false,"description":"Owned-only action selector supporting one, a subset, or the whole fleet.","examples":[{"population":"all"},{"population":"selected","profiles":["@Scholes","@Euler"]}],"properties":{"population":{"description":"Use all for every active profile in the authenticated account, or selected for an exact owned handle list. The list is not capped.","enum":["all","selected"],"type":"string"},"profiles":{"description":"Exact owned handles; required only with population=selected.","items":{"type":"string"},"type":"array"}},"required":["population"],"type":"object"}},"additionalProperties":false,"properties":{"profile":{"default":null,"description":"Legacy single owned VTX profile handle. Use selection for an exact subset or the complete owned fleet.","maxLength":65,"minLength":2,"type":["string","null"]},"selection":{"anyOf":[{"$ref":"#/$defs/InsightOwnedProfileSelection"},{"type":"null"}],"default":null,"description":"Exact owned subset or all active owned profiles."},"idempotency_key":{"description":"Stable unique key for this exact control action.","maxLength":160,"minLength":8,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$","type":"string"},"symbol":{"default":null,"description":"Optional starting symbol; omit to use the profile's saved first symbol.","maxLength":32,"minLength":1,"type":["string","null"]},"timeframe":{"default":null,"description":"Optional starting timeframe; omit to use the saved first timeframe.","maxLength":16,"minLength":1,"type":["string","null"]},"size":{"default":null,"description":"Optional order-size override accepted by the normal VTX bot start path.","maxLength":32,"minLength":1,"type":["string","null"]},"leverage":{"default":null,"minimum":1,"type":["integer","null"]},"interval":{"default":null,"minimum":1,"type":["integer","null"]},"expected_settings_versions":{"additionalProperties":{"type":"string"},"description":"Optional exact handle-to-settings-version map. When supplied it must cover the selected start targets exactly and is rechecked inside each runtime lock.","type":"object"}},"required":["idempotency_key"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"11f2b4120bb1dcb31d12d24b246f6c6de68c31bd7a05dc79f86f64d092f3237c","required_authority":"insights:control","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"id":"control.bot.status","title":"Read owned Server and Client bot status","description":"Read independent Trader and dry-run Assistant status for owned Server and Client Mode profiles without mutation. Client results separate desired intent from confirmed live lease, heartbeat, and owner presence.","family":"control","input_schema":{"$defs":{"InsightOwnedProfileSelection":{"additionalProperties":false,"description":"Owned-only action selector supporting one, a subset, or the whole fleet.","examples":[{"population":"all"},{"population":"selected","profiles":["@Scholes","@Euler"]}],"properties":{"population":{"description":"Use all for every active profile in the authenticated account, or selected for an exact owned handle list. The list is not capped.","enum":["all","selected"],"type":"string"},"profiles":{"description":"Exact owned handles; required only with population=selected.","items":{"type":"string"},"type":"array"}},"required":["population"],"type":"object"}},"additionalProperties":false,"properties":{"profile":{"default":null,"description":"Legacy single owned VTX profile handle. Use selection for an exact subset or the complete owned fleet.","maxLength":65,"minLength":2,"type":["string","null"]},"selection":{"anyOf":[{"$ref":"#/$defs/InsightOwnedProfileSelection"},{"type":"null"}],"default":null,"description":"Exact owned subset or all active owned profiles."}},"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"2b93502aade5bdb220e47e16e279919c98a3e2498bd0659ae8a6153aa5dc1ed7","required_authority":"insights:control","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"control.bot.stop","title":"Stop owned Server Mode bot","description":"Stop the autonomous trader for an exact owned Server/Client cohort through canonical runtime services and return its verified persisted inactive or waiting-for-settlement state.","family":"control","input_schema":{"$defs":{"InsightOwnedProfileSelection":{"additionalProperties":false,"description":"Owned-only action selector supporting one, a subset, or the whole fleet.","examples":[{"population":"all"},{"population":"selected","profiles":["@Scholes","@Euler"]}],"properties":{"population":{"description":"Use all for every active profile in the authenticated account, or selected for an exact owned handle list. The list is not capped.","enum":["all","selected"],"type":"string"},"profiles":{"description":"Exact owned handles; required only with population=selected.","items":{"type":"string"},"type":"array"}},"required":["population"],"type":"object"}},"additionalProperties":false,"properties":{"profile":{"default":null,"description":"Legacy single owned VTX profile handle. Use selection for an exact subset or the complete owned fleet.","maxLength":65,"minLength":2,"type":["string","null"]},"selection":{"anyOf":[{"$ref":"#/$defs/InsightOwnedProfileSelection"},{"type":"null"}],"default":null,"description":"Exact owned subset or all active owned profiles."},"idempotency_key":{"description":"Stable unique key for this exact control action.","maxLength":160,"minLength":8,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$","type":"string"}},"required":["idempotency_key"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"e00f6bc98a5cdc09966979c434557f95b3b4f4fef01cd9be99e7cccb22f0cdd4","required_authority":"insights:control","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"id":"control.bot.trigger_analysis","title":"Trigger immediate Server Mode bot analysis","description":"Request one immediate cycle from the active Trader or dry-run Assistant for one, an exact subset, or every owned Server Mode profile. An active Trader cycle may place trades under its saved settings and normal VTX runtime safeguards; an Assistant cycle remains dry-run.","family":"control","input_schema":{"$defs":{"InsightOwnedProfileSelection":{"additionalProperties":false,"description":"Owned-only action selector supporting one, a subset, or the whole fleet.","examples":[{"population":"all"},{"population":"selected","profiles":["@Scholes","@Euler"]}],"properties":{"population":{"description":"Use all for every active profile in the authenticated account, or selected for an exact owned handle list. The list is not capped.","enum":["all","selected"],"type":"string"},"profiles":{"description":"Exact owned handles; required only with population=selected.","items":{"type":"string"},"type":"array"}},"required":["population"],"type":"object"}},"additionalProperties":false,"properties":{"profile":{"default":null,"description":"Legacy single owned VTX profile handle. Use selection for an exact subset or the complete owned fleet.","maxLength":65,"minLength":2,"type":["string","null"]},"selection":{"anyOf":[{"$ref":"#/$defs/InsightOwnedProfileSelection"},{"type":"null"}],"default":null,"description":"Exact owned subset or all active owned profiles."},"idempotency_key":{"description":"Stable unique key for this exact control action.","maxLength":160,"minLength":8,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$","type":"string"}},"required":["idempotency_key"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"e00f6bc98a5cdc09966979c434557f95b3b4f4fef01cd9be99e7cccb22f0cdd4","required_authority":"insights:control","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"id":"control.execution_mode.update","title":"Change owned profile execution mode","description":"Change an owned profile between Client Mode and Server Mode through the normal VTX profile-limit and runtime synchronization checks.","family":"control","input_schema":{"$defs":{"InsightOwnedProfileSelection":{"additionalProperties":false,"description":"Owned-only action selector supporting one, a subset, or the whole fleet.","examples":[{"population":"all"},{"population":"selected","profiles":["@Scholes","@Euler"]}],"properties":{"population":{"description":"Use all for every active profile in the authenticated account, or selected for an exact owned handle list. The list is not capped.","enum":["all","selected"],"type":"string"},"profiles":{"description":"Exact owned handles; required only with population=selected.","items":{"type":"string"},"type":"array"}},"required":["population"],"type":"object"}},"additionalProperties":false,"properties":{"profile":{"default":null,"description":"Legacy single owned VTX profile handle. Use selection for an exact subset or the complete owned fleet.","maxLength":65,"minLength":2,"type":["string","null"]},"selection":{"anyOf":[{"$ref":"#/$defs/InsightOwnedProfileSelection"},{"type":"null"}],"default":null,"description":"Exact owned subset or all active owned profiles."},"idempotency_key":{"description":"Stable unique key for this exact control action.","maxLength":160,"minLength":8,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$","type":"string"},"execution_mode":{"description":"The owned profile's desired VTX execution mode.","enum":["client","server"],"type":"string"}},"required":["idempotency_key","execution_mode"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"08292129b0a65e3dfc829f0af85dda1afb7f44c26d6fa8d252479174196be0e1","required_authority":"insights:control","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"id":"credentials.exchange.create","title":"Create exchange connections","description":"Create exchange connections for owned profiles through the canonical encrypted write path. Raw values are never readable or returned; outcomes contain status metadata only.","family":"credential_actions","input_schema":{"$defs":{"ExchangeConnectionInput":{"additionalProperties":false,"properties":{"profile":{"type":"string"},"wallet_address":{"maxLength":42,"minLength":42,"type":"string"},"signing_key":{"format":"password","type":"string","writeOnly":true}},"required":["profile","wallet_address","signing_key"],"type":"object"}},"additionalProperties":false,"properties":{"connections":{"items":{"$ref":"#/$defs/ExchangeConnectionInput"},"minItems":1,"type":"array"},"idempotency_key":{"maxLength":160,"minLength":8,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$","type":"string"},"mutation_policy":{"const":"best_effort","default":"best_effort","type":"string"}},"required":["connections","idempotency_key"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"2691ec100405b240461d2d348c882f28e76540cef9d734aa68bfb5e432c74043","required_authority":"insights:credentials","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"credentials.exchange.remove","title":"Remove exchange connections","description":"Remove exchange connections for owned profiles through the canonical encrypted write path. Raw values are never readable or returned; outcomes contain status metadata only.","family":"credential_actions","input_schema":{"$defs":{"CredentialProfileSelection":{"additionalProperties":false,"properties":{"population":{"enum":["all","selected"],"type":"string"},"profiles":{"items":{"type":"string"},"type":"array"}},"required":["population"],"type":"object"}},"additionalProperties":false,"properties":{"selection":{"$ref":"#/$defs/CredentialProfileSelection"},"idempotency_key":{"maxLength":160,"minLength":8,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$","type":"string"},"mutation_policy":{"const":"best_effort","default":"best_effort","type":"string"},"confirm_removal":{"const":true,"type":"boolean"}},"required":["selection","idempotency_key","confirm_removal"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"afbe6436aec0897f63e0f3a875d93cb930e412f9d71f2c00738b5b975d79a930","required_authority":"insights:credentials","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"id":"credentials.exchange.replace","title":"Replace exchange connections","description":"Replace exchange connections for owned profiles through the canonical encrypted write path. Raw values are never readable or returned; outcomes contain status metadata only.","family":"credential_actions","input_schema":{"$defs":{"ExchangeConnectionInput":{"additionalProperties":false,"properties":{"profile":{"type":"string"},"wallet_address":{"maxLength":42,"minLength":42,"type":"string"},"signing_key":{"format":"password","type":"string","writeOnly":true}},"required":["profile","wallet_address","signing_key"],"type":"object"}},"additionalProperties":false,"properties":{"connections":{"items":{"$ref":"#/$defs/ExchangeConnectionInput"},"minItems":1,"type":"array"},"idempotency_key":{"maxLength":160,"minLength":8,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$","type":"string"},"mutation_policy":{"const":"best_effort","default":"best_effort","type":"string"}},"required":["connections","idempotency_key"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"2691ec100405b240461d2d348c882f28e76540cef9d734aa68bfb5e432c74043","required_authority":"insights:credentials","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"id":"credentials.exchange.validate","title":"Validate exchange connections","description":"Validate exchange connections for owned profiles through the canonical encrypted write path. Raw values are never readable or returned; outcomes contain status metadata only.","family":"credential_actions","input_schema":{"$defs":{"CredentialProfileSelection":{"additionalProperties":false,"properties":{"population":{"enum":["all","selected"],"type":"string"},"profiles":{"items":{"type":"string"},"type":"array"}},"required":["population"],"type":"object"}},"additionalProperties":false,"properties":{"selection":{"$ref":"#/$defs/CredentialProfileSelection"},"idempotency_key":{"maxLength":160,"minLength":8,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$","type":"string"},"mutation_policy":{"const":"best_effort","default":"best_effort","type":"string"}},"required":["selection","idempotency_key"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"2783550888a1d19e2da976bbff501add5fe10c5cc1287267c570412545981f4d","required_authority":"insights:credentials","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"credentials.provider.create","title":"Create model-provider connections","description":"Create model-provider connections for owned profiles through the canonical encrypted write path. Raw values are never readable or returned; outcomes contain status metadata only.","family":"credential_actions","input_schema":{"$defs":{"ProviderConnectionInput":{"additionalProperties":false,"properties":{"profile":{"type":"string"},"provider":{"type":"string"},"keys":{"items":{"$ref":"#/$defs/ProviderSecretInput"},"minItems":1,"type":"array"}},"required":["profile","provider","keys"],"type":"object"},"ProviderSecretInput":{"additionalProperties":false,"properties":{"api_key":{"format":"password","type":"string","writeOnly":true},"provider_base_url":{"default":null,"type":["string","null"]},"provider_workspace_id":{"default":null,"type":["string","null"]}},"required":["api_key"],"type":"object"}},"additionalProperties":false,"properties":{"connections":{"items":{"$ref":"#/$defs/ProviderConnectionInput"},"minItems":1,"type":"array"},"idempotency_key":{"maxLength":160,"minLength":8,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$","type":"string"},"mutation_policy":{"const":"best_effort","default":"best_effort","type":"string"}},"required":["connections","idempotency_key"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"e05e3f7a0b2f2843f9f3ebbe81e2fd418c9e99dcf3e1d27cee89e5629aeb9dd1","required_authority":"insights:credentials","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"credentials.provider.remove","title":"Remove model-provider connections","description":"Remove model-provider connections for owned profiles through the canonical encrypted write path. Raw values are never readable or returned; outcomes contain status metadata only.","family":"credential_actions","input_schema":{"$defs":{"ProviderTarget":{"additionalProperties":false,"properties":{"profile":{"type":"string"},"provider":{"type":"string"}},"required":["profile","provider"],"type":"object"}},"additionalProperties":false,"properties":{"targets":{"items":{"$ref":"#/$defs/ProviderTarget"},"minItems":1,"type":"array"},"idempotency_key":{"maxLength":160,"minLength":8,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$","type":"string"},"mutation_policy":{"const":"best_effort","default":"best_effort","type":"string"},"confirm_removal":{"const":true,"type":"boolean"}},"required":["targets","idempotency_key","confirm_removal"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"6620de33dfb71ba1e98178ffd3bbe43ad91a88c8131b556ff7e3c678729a709b","required_authority":"insights:credentials","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"id":"credentials.provider.replace","title":"Replace model-provider connections","description":"Replace model-provider connections for owned profiles through the canonical encrypted write path. Raw values are never readable or returned; outcomes contain status metadata only.","family":"credential_actions","input_schema":{"$defs":{"ProviderConnectionInput":{"additionalProperties":false,"properties":{"profile":{"type":"string"},"provider":{"type":"string"},"keys":{"items":{"$ref":"#/$defs/ProviderSecretInput"},"minItems":1,"type":"array"}},"required":["profile","provider","keys"],"type":"object"},"ProviderSecretInput":{"additionalProperties":false,"properties":{"api_key":{"format":"password","type":"string","writeOnly":true},"provider_base_url":{"default":null,"type":["string","null"]},"provider_workspace_id":{"default":null,"type":["string","null"]}},"required":["api_key"],"type":"object"}},"additionalProperties":false,"properties":{"connections":{"items":{"$ref":"#/$defs/ProviderConnectionInput"},"minItems":1,"type":"array"},"idempotency_key":{"maxLength":160,"minLength":8,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$","type":"string"},"mutation_policy":{"const":"best_effort","default":"best_effort","type":"string"}},"required":["connections","idempotency_key"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"e05e3f7a0b2f2843f9f3ebbe81e2fd418c9e99dcf3e1d27cee89e5629aeb9dd1","required_authority":"insights:credentials","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"id":"credentials.provider.validate","title":"Validate model-provider connections","description":"Validate model-provider connections for owned profiles through the canonical encrypted write path. Raw values are never readable or returned; outcomes contain status metadata only.","family":"credential_actions","input_schema":{"$defs":{"ProviderTarget":{"additionalProperties":false,"properties":{"profile":{"type":"string"},"provider":{"type":"string"}},"required":["profile","provider"],"type":"object"}},"additionalProperties":false,"properties":{"targets":{"items":{"$ref":"#/$defs/ProviderTarget"},"minItems":1,"type":"array"},"idempotency_key":{"maxLength":160,"minLength":8,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$","type":"string"},"mutation_policy":{"const":"best_effort","default":"best_effort","type":"string"}},"required":["targets","idempotency_key"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"a0b75647a0765efb450150ec77d8bf4753e3fb10938de1aaf5c54c33b55026b1","required_authority":"insights:credentials","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"decision.context","title":"Read decision context","description":"Inspect every matching retained raw decision-time context row. The context_rows audit view returns compact positions, account state, candle references, exact redacted settings, decisions/executions, and content hashes. For entry, exit, or execution-timing questions, start with execution_linkage=executed; expand to all only when unexecuted decisions can materially change the claim. Use model_text_terms for complete case-insensitive literal candidate selection across owned-profile stored model-authored decision JSON, responses, and reasoning after canonical private-data redaction and before requesting exact text; prompts are excluded and candidates are never ranked or capped. Union any-mode batches by the stable opaque model_text_match_id. For all-mode above the advertised term maximum, select candidates with at most the maximum discriminating terms and model_text_match=all, request content_view=verbatim and include_reasoning=true, then verify every original literal case-insensitively against exact decision JSON string values (not keys), responses, and reasoning. Historical per-channel capture provenance is incomplete, so zero matches cannot prove exhaustive historical absence. Any context_rows request with include_reasoning=true, include_candle_coverage=true, or content_view=verbatim is expansion-heavy: start it directly through analysis.start with the exact same arguments and do not make a synchronous probe first. This is durable response routing, not a row, byte, history, or analysis-duration cap. For a complete reasoning audit, pin exact start/end, set execution_linkage=all and include_reasoning=true, run through analysis.start, and consume every artifact chunk; this includes unexecuted and unlinked HOLDs plus final Reasoning and retained Primary/Review Reasoning Traces. Use exposure_metrics for complete server-computed max-exposure and retained trading-limit arithmetic. Use model_reasoning_outcome_metrics for a complete compact comparison of requested/actual models, typed fallbacks and failures, primary/review/final actions from symbol-tradability rows, review changes, reasoning availability, execution linkage, and decision-linked event economics without prompt, response, or reasoning bodies. Use adjacent_transition_audit with exact start/end for a complete compact fleet audit of every selected typed non-HOLD final action, its immediately preceding same-profile/symbol typed action (including one before start), body-free completed-candle identity delta, typed reasoning availability, and cutoff-safe execution outcome. Use prompt_lineage with execution_linkage=all for the complete body-free configured prompt catalog, activation runs, delivered prompt hashes, and requested/actual/fallback provider populations. To inspect exact prompt words, rerun prompt_lineage with content_view=verbatim and only the exact owner-scoped prompt_bundle_refs returned by the compact catalog. For a settings-change trade review, choose execution_linkage=all before calling exposure_metrics and make one logical exposure request; if the synchronous call times out, recover it through analysis.start instead of issuing a second direct view call. Executed-to-all expansion applies to context_rows, not to repeated exposure-metrics requests. For effective prompt-input analysis, first use result_view=effective_input_catalog to discover each dynamic canonical path, definition identity, availability, configured-template coverage, and typed hash/byte coverage without decision rows or value bodies. Then request context_rows over only the exact material cohort with only material returned input_paths to inline safe typed values; targeted catalog entries omit unselected paths after discovery while full-context identities stay stable. New retained context also carries structured performance metrics plus separate per-symbol typed policy state and fill-history coverage while preserving the exact rendered performance snapshot bytes. Use include_candle_coverage only for candle freshness questions and verbatim only for exact stored prompts/responses/full context. Persisted episode/event/decision selectors and projected reasoning indexes are retired. No view samples, rank-caps, censors, or silently truncates rows.","family":"decision_context","input_schema":{"additionalProperties":false,"description":"Advertised raw-only decision context after projected selectors were retired.","properties":{"start":{"default":null,"description":"Optional inclusive ISO date or timezone-aware start timestamp.","format":"date-time","type":["string","null"]},"end":{"default":null,"description":"Optional inclusive ISO date or timezone-aware end timestamp.","format":"date-time","type":["string","null"]},"symbols":{"description":"Optional symbols to match against the decision, per-symbol output, or linked execution. An empty list returns every symbol.","items":{"type":"string"},"type":"array"},"model_text_terms":{"description":"Optional case-insensitive literal substrings used to select every retained matching owned-profile model-authored decision JSON string value (not a JSON key), primary/review response, or primary/review reasoning row. Prompts are excluded. This is deterministic candidate selection, not semantic grading, sampling, or ranking. Explicit start and end are required. The input schema advertises the config-backed maximum number of literal terms; this query-shape bound does not cap matching decisions, bytes, history, or analysis duration. Every matched row includes a stable opaque model_text_match_id for exact deduplication across any-mode batches.","items":{"type":"string"},"type":"array","maxItems":8},"model_text_match":{"default":"any","description":"Whether any requested literal term or every requested term must match.","enum":["any","all"],"type":"string"},"execution_linkage":{"default":"linked","description":"Semantic population selector with no row limit. Use all for complete reasoning audits so unexecuted and unlinked HOLD decisions remain included.","enum":["all","linked","executed","blocked","unlinked"],"type":"string"},"result_view":{"default":"context_rows","description":"adjacent_transition_audit returns every selected typed non-HOLD final action with its immediately preceding typed final action for the same profile and symbol, body-free completed-candle identities and evidence-delta status, typed reasoning availability, and cutoff-safe execution/outcome linkage. context_rows returns every matching retained raw decision row; without exact decision_ids, start it directly through analysis.start. effective_input_catalog returns compact body-free path, definition, availability, and template coverage without per-decision rows or values. exposure_metrics returns complete server-computed trading-limit arithmetic. model_reasoning_outcome_metrics returns complete typed model, fallback, review, action, execution-linkage, reasoning-availability, and event-economics aggregates without prompt, response, or reasoning bodies. prompt_lineage returns compact configured/delivered prompt identities, activation/provider populations, and body-free decision-snapshot consistency evidence.","enum":["adjacent_transition_audit","context_rows","effective_input_catalog","exposure_metrics","model_reasoning_outcome_metrics","prompt_lineage"],"type":"string"},"include_reasoning":{"default":false,"description":"Return complete unmodified retained primary/review reasoning traces when explicitly requested and available. For context_rows with true, start the exact request directly through analysis.start without a synchronous probe.","type":"boolean"},"include_external_membership_evidence":{"default":false,"description":"Include immutable authenticated external-membership identity and cascade lineage for each invocation. Available only when every selected profile is owned by the authenticated account and result_view=context_rows.","type":"boolean"},"content_view":{"default":"audit","description":"audit returns compact retained context and optional exact reasoning without repeated raw prompt/response bytes. verbatim returns exact stored bytes and must start directly through analysis.start without a synchronous probe.","enum":["audit","verbatim"],"type":"string"},"include_candle_coverage":{"default":false,"description":"For audit view, calculate retained candle freshness, gaps, and lookback coverage. When true, start the exact context_rows request directly through analysis.start without a synchronous probe.","type":"boolean"},"settings_paths":{"description":"Exact authorized canonical AI setting paths to include.","items":{"enum":["ai_indicators.atr","ai_indicators.bollinger","ai_indicators.ema_200","ai_indicators.ema_21","ai_indicators.ema_50","ai_indicators.ema_9","ai_indicators.macd","ai_indicators.rsi","ai_killswitch.close_positions","ai_killswitch.enabled","ai_killswitch.send_email","ai_killswitch.threshold_percent","ai_killswitch.timeframe","ai_schedule.close_on_stop","ai_schedule.enabled","ai_schedule.timezone","ai_schedule.windows","ai_trade_amount","analysis_lookback","behavior_memory_context_mode","calendar_settings.calendar_mode","calendar_settings.currencies","calendar_settings.post_buffer_mins","calendar_settings.post_event_enabled","calendar_settings.pre_buffer_mins","calendar_settings.pre_event_enabled","calendar_settings.risk_levels","copy_trading_enabled","copy_trading_max_order_notional_usdc","copy_trading_scale_multiplier","copy_trading_scaling_mode","copy_trading_source_display_name","copy_trading_source_type","copy_trading_source_wallet_address","execution_mode","external_inference_fallback_host_ids","main_model_controller","main_model_enabled","main_models_free_only","main_models_has_key_only","market_news_settings.auto_profile","market_news_settings.lookback_hours","market_news_settings.max_items","market_news_settings.profiles","max_tokens","max_trades_global","max_trades_per_asset","max_trades_per_prompt","model_source","native_request_parameter_values","native_request_parameter_values_by_model","performance.long_term.enable_max_drawdown_pct","performance.long_term.enable_max_fee_to_equity","performance.long_term.enable_max_flip_rate","performance.long_term.enable_max_loss_count","performance.long_term.enable_max_loss_pct","performance.long_term.enable_min_hold_time","performance.long_term.flip_window_minutes","performance.long_term.max_drawdown_pct_crit","performance.long_term.max_drawdown_pct_enforcement","performance.long_term.max_drawdown_pct_warn","performance.long_term.max_fee_to_equity_crit","performance.long_term.max_fee_to_equity_enforcement","performance.long_term.max_fee_to_equity_warn","performance.long_term.max_flip_rate_crit","performance.long_term.max_flip_rate_enforcement","performance.long_term.max_flip_rate_warn","performance.long_term.max_loss_count_crit","performance.long_term.max_loss_count_enforcement","performance.long_term.max_loss_count_warn","performance.long_term.max_loss_pct_crit","performance.long_term.max_loss_pct_enforcement","performance.long_term.max_loss_pct_warn","performance.long_term.min_hold_time_crit","performance.long_term.min_hold_time_enforcement","performance.long_term.min_hold_time_warn","performance.long_term.window_hours","performance.short_term.enable_max_drawdown_pct","performance.short_term.enable_max_fee_to_equity","performance.short_term.enable_max_flip_rate","performance.short_term.enable_max_loss_count","performance.short_term.enable_max_loss_pct","performance.short_term.enable_min_hold_time","performance.short_term.flip_window_minutes","performance.short_term.max_drawdown_pct_crit","performance.short_term.max_drawdown_pct_enforcement","performance.short_term.max_drawdown_pct_warn","performance.short_term.max_fee_to_equity_crit","performance.short_term.max_fee_to_equity_enforcement","performance.short_term.max_fee_to_equity_warn","performance.short_term.max_flip_rate_crit","performance.short_term.max_flip_rate_enforcement","performance.short_term.max_flip_rate_warn","performance.short_term.max_loss_count_crit","performance.short_term.max_loss_count_enforcement","performance.short_term.max_loss_count_warn","performance.short_term.max_loss_pct_crit","performance.short_term.max_loss_pct_enforcement","performance.short_term.max_loss_pct_warn","performance.short_term.min_hold_time_crit","performance.short_term.min_hold_time_enforcement","performance.short_term.min_hold_time_warn","performance.short_term.window_hours","performance.thresholds.enable_max_chop_index","performance.thresholds.enable_min_atr_pct","performance.thresholds.enable_min_relative_volume","performance.thresholds.enable_min_trend_adx","performance.thresholds.max_chop_index_crit","performance.thresholds.max_chop_index_enforcement","performance.thresholds.max_chop_index_warn","performance.thresholds.min_atr_pct_crit","performance.thresholds.min_atr_pct_enforcement","performance.thresholds.min_atr_pct_warn","performance.thresholds.min_relative_volume_crit","performance.thresholds.min_relative_volume_enforcement","performance.thresholds.min_relative_volume_warn","performance.thresholds.min_trend_adx_crit","performance.thresholds.min_trend_adx_enforcement","performance.thresholds.min_trend_adx_warn","preferred_model","preferred_model_source","review_close_enabled","review_flip_enabled","review_hold_enabled","review_increase_enabled","review_max_tokens","review_model","review_model_controller","review_model_enabled","review_model_source","review_models_free_only","review_models_has_key_only","review_native_request_parameter_values","review_native_request_parameter_values_by_model","review_open_enabled","review_reduce_enabled","review_runtime_reasoning","review_runtime_reasoning_by_model","review_system_prompt","review_temperature","review_timeout","review_use_my_averages","review_user_prompt","runtime_reasoning","runtime_reasoning_by_model","screener_adaptive_schedule_enabled","screener_assignment_max_other_profiles_per_symbol","screener_assignment_max_symbols","screener_assignment_min_edge","screener_assignment_min_symbols","screener_assignment_min_tradability","screener_enabled","screener_enabled_main_variable_ids","screener_exchange_universe","screener_max_candidates_per_run","screener_max_tokens","screener_min_volume_usd","screener_model","screener_model_controller","screener_model_source","screener_run_interval_seconds","screener_symbol_leverages","screener_symbol_list_loops_per_run","screener_system_prompt","screener_temperature","screener_timeout","screener_user_prompt","selected_snapshot_id","sl_enabled","stop_loss_mode","stop_loss_pct","stop_loss_type","stop_loss_usdc","system_prompt","take_profit_mode","take_profit_pct","take_profit_usdc","temperature","timeout_seconds","tp_enabled","tp_sl_enabled","tradability_enabled","tradability_increase_enabled","tradability_increase_minimum","tradability_open_enabled","tradability_open_minimum","trade.leverage","trade.marginMode","trading_interval","trading_symbols","trading_system_prompt","trading_timeframes","trading_user_prompt","use_my_averages","user_prompt"],"type":"string"},"type":"array"},"input_paths":{"description":"Optional exact canonical effective-input paths to inline in context_rows audit. First use result_view=effective_input_catalog for compact path discovery; an empty list in context_rows inlines no values.","items":{"type":"string"},"type":"array","maxItems":32},"prompt_bundle_refs":{"description":"Optional exact owner-only bundle references returned by prompt_lineage. Requires the verbatim content view and returns only those targeted prompt bodies.","items":{"type":"string"},"type":"array"},"lineage_projection":{"default":"generation_summary","description":"For prompt_lineage, generation_summary returns complete generation and activation coverage without per-decision or rendered-prompt catalogs; decision_rows adds those complete body-free detail populations.","enum":["generation_summary","decision_rows"],"type":"string"},"selection":{"additionalProperties":false,"description":"Explicit model-selected population; identity and ownership remain server-owned.","examples":[{"population":"owned_profiles"},{"handles":["@Scholes"],"population":"owned_profiles"},{"handles":["@Scholes"],"population":"public_profiles"},{"population":"whole_platform"}],"properties":{"population":{"description":"Choose owned_profiles for every profile you own or an exact owned handle subset, public_profiles for exact public handle/wallet selectors, or whole_platform for every active profile. Wallets are valid only with public_profiles, and whole_platform cannot include selectors.","enum":["owned_profiles","public_profiles","whole_platform"],"type":"string"},"handles":{"description":"Exact handles. Set with population=owned_profiles for an owned subset or with population=public_profiles for public profiles; omit for the full populations.","items":{"type":"string"},"type":"array"},"wallets":{"description":"Exact public wallet addresses. Set only with population=public_profiles; otherwise omit.","items":{"type":"string"},"type":"array"}},"required":["population"],"type":"object"}},"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["selection"]},"input_schema_sha256":"6d25da7c360f55b7e78aad48b334f7475239945cbdc2d2e65b3f2d22bdbab557","required_authority":"insights:read","data_populations":["owned_profiles","public_profiles","whole_platform"],"freshness":"captured_cutoff","provenance":"required","delivery_modes":["inline","artifact"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"decision.outcomes","title":"Analyze decision outcomes","description":"Join decision evidence to outcomes without sampling or a population cap. Read the complete raw execution-linked decision population for the exact profile/time/symbol selection. Use include_reasoning only when exact stored primary/review traces are required. Persisted episode selectors and compact projected outcomes are retired. Large complete results use immutable artifacts; MCP transport never samples, ranks, censors, or silently truncates the population.","family":"decision_outcomes","input_schema":{"additionalProperties":false,"description":"Advertised raw-only arguments after projected episode selectors were retired.","properties":{"start":{"default":null,"description":"Optional inclusive ISO date or timezone-aware start timestamp.","format":"date-time","type":["string","null"]},"end":{"default":null,"description":"Optional inclusive ISO date or timezone-aware end timestamp.","format":"date-time","type":["string","null"]},"symbols":{"description":"Optional symbols; empty returns every execution-linked decision event.","items":{"type":"string"},"type":"array"},"include_reasoning":{"default":false,"description":"Include complete retained primary/review reasoning traces when available. A null trace means unavailable or not captured.","type":"boolean"},"content_view":{"const":"verbatim","default":"verbatim","description":"Raw-only decision outcome view. Exact projected episode selection is retired.","type":"string"},"selection":{"additionalProperties":false,"description":"Explicit model-selected population; identity and ownership remain server-owned.","examples":[{"population":"owned_profiles"},{"handles":["@Scholes"],"population":"owned_profiles"},{"handles":["@Scholes"],"population":"public_profiles"},{"population":"whole_platform"}],"properties":{"population":{"description":"Choose owned_profiles for every profile you own or an exact owned handle subset, public_profiles for exact public handle/wallet selectors, or whole_platform for every active profile. Wallets are valid only with public_profiles, and whole_platform cannot include selectors.","enum":["owned_profiles","public_profiles","whole_platform"],"type":"string"},"handles":{"description":"Exact handles. Set with population=owned_profiles for an owned subset or with population=public_profiles for public profiles; omit for the full populations.","items":{"type":"string"},"type":"array"},"wallets":{"description":"Exact public wallet addresses. Set only with population=public_profiles; otherwise omit.","items":{"type":"string"},"type":"array"}},"required":["population"],"type":"object"}},"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["selection"]},"input_schema_sha256":"afba9d6dfa27a5a8a10ecbc1ca4f374d3b6828b3e63fdc39e2a497c4ae09b4b2","required_authority":"insights:read","data_populations":["owned_profiles","public_profiles","whole_platform"],"freshness":"captured_cutoff","provenance":"required","delivery_modes":["inline","artifact"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"decisions.history","title":"Read decision history","description":"Read retained autonomous trade decisions in a requested profile/account window. Select latest when the user asks for the most recent decision; it returns that one exact row. Select all for the complete matching history. Every selected row includes complete stored prompts and provider responses, structured symbol decisions/tradability, settings snapshots, and linked execution outcomes. Request reasoning to receive complete unexpired stored reasoning. Neither selection is sampled, summarized, or arbitrarily capped.","family":"analytics","input_schema":{"additionalProperties":false,"properties":{"start":{"default":null,"description":"Optional inclusive ISO date or timezone-aware start timestamp.","format":"date-time","type":["string","null"]},"end":{"default":null,"description":"Optional inclusive ISO date or timezone-aware end timestamp.","format":"date-time","type":["string","null"]},"selection":{"additionalProperties":false,"description":"Explicit model-selected population; identity and ownership remain server-owned.","examples":[{"population":"owned_profiles"},{"handles":["@Scholes"],"population":"owned_profiles"},{"handles":["@Scholes"],"population":"public_profiles"},{"population":"whole_platform"}],"properties":{"population":{"description":"Choose owned_profiles for every profile you own or an exact owned handle subset, public_profiles for exact public handle/wallet selectors, or whole_platform for every active profile. Wallets are valid only with public_profiles, and whole_platform cannot include selectors.","enum":["owned_profiles","public_profiles","whole_platform"],"type":"string"},"handles":{"description":"Exact handles. Set with population=owned_profiles for an owned subset or with population=public_profiles for public profiles; omit for the full populations.","items":{"type":"string"},"type":"array"},"wallets":{"description":"Exact public wallet addresses. Set only with population=public_profiles; otherwise omit.","items":{"type":"string"},"type":"array"}},"required":["population"],"type":"object"},"include_reasoning":{"default":false,"description":"Return complete unmodified retained primary/review reasoning traces when they have not expired. Response and prompt text is always returned verbatim.","type":"boolean"}},"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["selection"]},"input_schema_sha256":"7f3db4e803d4509005472992fb5b5e46d689bdbb1532946cdb824589488fb8f3","required_authority":"insights:read","data_populations":["owned_profiles","public_profiles","whole_platform"],"freshness":"captured_cutoff","provenance":"required","delivery_modes":["inline","artifact"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"execution.quality","title":"Analyze execution quality","description":"Inspect retained exchange fills, linked executions/audits, fill-component counts, end-to-end timing, and fee/outcome arithmetic for an authorized window. Use result_view=summary synchronously first for complete compact per-profile and exact-symbol aggregates; summary requires decision_target_settings=omit and returns no raw row arrays. Omit result_view or use detail_rows for every complete retained row. In detail_rows, decision_target_settings defaults to omit; request linked for only execution/audit-linked TP/SL/cost settings or all for the complete uncapped decision population. Use this for slippage, spread, partial fill, delayed order, bad fill versus bad signal, and target-versus-cost questions. For a campaign-loss/systemic-problem review, use the summary for the exact campaign boundary even when fills were not named, because it distinguishes execution failure from strategy failure before reasoning expansion. Prospective attempt slippage and fill span use cutoff-visible immutable canonical fill revisions with exact execution linkage; legacy fill rows remain available unchanged for historical summary and detail compatibility. It explicitly identifies execution fields VTX never retained and never samples or caps the available population.","family":"execution_quality","input_schema":{"additionalProperties":false,"properties":{"start":{"default":null,"description":"Optional inclusive ISO date or timezone-aware start timestamp.","format":"date-time","type":["string","null"]},"end":{"default":null,"description":"Optional inclusive ISO date or timezone-aware end timestamp.","format":"date-time","type":["string","null"]},"decision_target_settings":{"default":"omit","description":"Select retained TP/SL/cost settings independently from execution evidence. omit returns no decision target settings and is the efficient default. linked returns settings only for decisions linked to the returned executions or audits. all returns the complete uncapped decision population in the requested window.","enum":["omit","linked","all"],"type":"string"},"result_view":{"default":"detail_rows","description":"Use summary for complete compact per-profile and exact-symbol aggregates with decision_target_settings=omit. Omit this field or use detail_rows to preserve the complete retained fill, execution, audit, and selected target-setting rows.","enum":["summary","detail_rows"],"type":"string"},"selection":{"additionalProperties":false,"description":"Explicit model-selected population; identity and ownership remain server-owned.","examples":[{"population":"owned_profiles"},{"handles":["@Scholes"],"population":"owned_profiles"},{"handles":["@Scholes"],"population":"public_profiles"},{"population":"whole_platform"}],"properties":{"population":{"description":"Choose owned_profiles for every profile you own or an exact owned handle subset, public_profiles for exact public handle/wallet selectors, or whole_platform for every active profile. Wallets are valid only with public_profiles, and whole_platform cannot include selectors.","enum":["owned_profiles","public_profiles","whole_platform"],"type":"string"},"handles":{"description":"Exact handles. Set with population=owned_profiles for an owned subset or with population=public_profiles for public profiles; omit for the full populations.","items":{"type":"string"},"type":"array"},"wallets":{"description":"Exact public wallet addresses. Set only with population=public_profiles; otherwise omit.","items":{"type":"string"},"type":"array"}},"required":["population"],"type":"object"}},"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["selection"]},"input_schema_sha256":"8b3beb691664ed6043be0c9a6d7f68680c4be1426bdda94c7d4a5518eb1c2356","required_authority":"insights:read","data_populations":["owned_profiles","public_profiles","whole_platform"],"freshness":"captured_cutoff","provenance":"required","delivery_modes":["inline","artifact"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"help.open","title":"Open VTX help","description":"Product-behavior evidence only: open the complete remainder of one canonical VTX help chapter. Never substitute help for analytics or policy replay.","family":"help","input_schema":{"additionalProperties":false,"properties":{"source_id":{"description":"Exact help source ID returned by help search.","maxLength":160,"minLength":1,"type":"string"},"start_char":{"default":0,"description":"Zero-based character offset; the complete remainder is returned.","minimum":0,"type":"integer"}},"required":["source_id"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"8212506ec7ddbf456ef4a8a665af2b15edad44dc7f212bc0988656c0513e16ca","required_authority":"insights:read","data_populations":["vtx_help"],"freshness":"versioned_help","provenance":"required","delivery_modes":["inline","artifact"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"help.search","title":"Search VTX help","description":"Product-behavior evidence only: search canonical VTX user-help chapters using specific product keywords. Never use help as trading-performance, market, or changed-setting counterfactual evidence. Open the best matching source when more product detail is needed.","family":"help","input_schema":{"additionalProperties":false,"properties":{"query":{"description":"Product-behavior terms to find in canonical VTX user help.","minLength":1,"type":"string"}},"required":["query"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"119af88da1a9d9d1c413c06cdfcb915dc7393bcd7ee8bbdc01f204f11e27b160","required_authority":"insights:read","data_populations":["vtx_help"],"freshness":"versioned_help","provenance":"required","delivery_modes":["inline","artifact"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"inference.status","title":"Read external inference status","description":"Read owner-visible external host liveness, saved lane bindings, and queue state without exposing OAuth credentials, envelope keys, or job payloads.","family":"external_inference","input_schema":{"additionalProperties":false,"properties":{},"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"71fc596a20f27da3dec80050e5d1f553eba34aea24c2853b853488a811e6b892","required_authority":"insights:read","data_populations":["owned_external_inference_runtime"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"market.calendar","title":"Read market calendar","description":"Market-event evidence only: read all cached economic-calendar data at the run cutoff. Never substitute it for bot performance or policy replay.","family":"market","input_schema":{"additionalProperties":false,"properties":{},"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"71fc596a20f27da3dec80050e5d1f553eba34aea24c2853b853488a811e6b892","required_authority":"insights:read","data_populations":["vtx_market"],"freshness":"live","provenance":"required","delivery_modes":["inline","artifact"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"id":"market.history","title":"Read market history","description":"Market-price evidence only: read complete retained OHLCV history and refresh its tail from public cutoff-safe candles. Preserve exact canonical symbol prefixes. Pass an explicit end for replay-stable, fully completed candles at one analytical cutoff; omit end only when the current partial tail is needed. Disclose any stale tail.","family":"market","input_schema":{"additionalProperties":false,"properties":{"symbols":{"description":"Exact canonical market symbols emitted by VTX evidence, such as BTC, ETH, or xyz:CL. Preserve any exchange prefix and case-sensitive base symbol.","items":{"type":"string"},"minItems":1,"type":"array"},"timeframe":{"description":"Configured VTX candle timeframe, such as 5m.","maxLength":8,"minLength":1,"type":"string","enum":["12h","15m","1d","1h","1m","2h","30m","3m","4h","5m","8h"],"x-mcp-header":"Timeframe"},"start":{"default":null,"description":"Optional inclusive ISO date or timezone-aware timestamp; omit for all retained rows through the effective cutoff.","format":"date-time","type":["string","null"]},"end":{"default":null,"description":"Optional inclusive ISO date or timezone-aware timestamp. Use the same explicit end across independent evidence calls to preserve one analytical cutoff. Values after the run cutoff are clamped to that cutoff. An explicit end returns only candles fully completed by the effective end so historical replays cannot refresh an unfinished intrabar value; omit end when the current partial tail is needed.","format":"date-time","type":["string","null"]}},"required":["symbols","timeframe"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"9659bd94ddfda61262d8b592db3e1d38b257cb277d0bdcd49f9e9eac31fb80c6","required_authority":"insights:read","data_populations":["vtx_market"],"freshness":"captured_cutoff","provenance":"required","delivery_modes":["inline","artifact"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"id":"market.news","title":"Read market news","description":"Current market-news tail only: filter the bounded external-news cache at the run cutoff. This is not a historical archive or proof of news rendered into a decision prompt; use decision.context effective-input evidence for that.","family":"market","input_schema":{"additionalProperties":false,"properties":{"symbols":{"description":"Symbols used to filter the current external-news cache tail. This capability is not a historical archive and does not reproduce decision-time prompt news.","items":{"type":"string"},"minItems":1,"type":"array"}},"required":["symbols"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"8d57b4ab06cf05a90a3a595eedaec07df5ddb611156244b64f67da5ca90e3332","required_authority":"insights:read","data_populations":["vtx_market"],"freshness":"live","provenance":"required","delivery_modes":["inline","artifact"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"id":"market.snapshot","title":"Read market snapshot","description":"Market-price evidence only: read the freshest cutoff-safe live ticker or public candle, with explicit freshness. Never describe a stale fallback as live.","family":"market","input_schema":{"additionalProperties":false,"properties":{"symbols":{"description":"Exact canonical market symbols emitted by VTX evidence, such as BTC, ETH, or xyz:CL. Preserve any exchange prefix and case-sensitive base symbol.","items":{"type":"string"},"minItems":1,"type":"array"},"timeframe":{"default":"5m","description":"Configured VTX candle timeframe, such as 5m.","maxLength":8,"minLength":1,"type":"string","enum":["12h","15m","1d","1h","1m","2h","30m","3m","4h","5m","8h"],"x-mcp-header":"Timeframe"}},"required":["symbols"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"077a4f804d16d4525033adc054f33290e1ca91a5e106a3f97fc3b5559193d3e9","required_authority":"insights:read","data_populations":["vtx_market"],"freshness":"live","provenance":"required","delivery_modes":["inline","artifact"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"id":"policy.evaluate","title":"Evaluate retained trading policy","description":"Evaluate exact machine-readable trading rules from each decision's retained context and retained settings generation. Use summary synchronously for complete per-profile, asset, timeframe, rule, evidence-mode, machine-rule, compliance, and completed-candle aggregates; selected zero-event profiles remain explicit. Start decision_rows directly through analysis.start when complete per-decision enforcement rows are material; it returns the complete expansion-heavy population without a row cap. For a general settings-change trade review, expand only when the user's literal question requires a per-decision enforcement claim; a nonzero or unavailable summary value alone is not a reason to expand on that route. Prefer directly retained typed policy state and structured performance metrics; an older exact tagged performance snapshot from the same decision may repair only comparable performance evidence request-locally without writing history. Missing retained values remain unavailable, prompt effects are separate from execution blocks, and natural-language-only rules are not_machine_evaluable.","family":"policy","input_schema":{"additionalProperties":false,"description":"Exact retained policy-evaluation population.","properties":{"start":{"description":"Inclusive timezone-aware start of the retained decision population.","format":"date-time","type":"string"},"end":{"description":"Inclusive timezone-aware end. The server also pins this to the immutable tool cutoff.","format":"date-time","type":"string"},"rule_families":{"description":"Machine-readable rule families to evaluate.","items":{"enum":["performance","risk_increase"],"type":"string"},"minItems":1,"type":"array"},"evidence_mode":{"const":"observed_retained","default":"observed_retained","description":"Observed evaluation uses only the exact retained context and settings. Missing values are unavailable and are never repaired from current state.","type":"string"},"result_view":{"description":"Use summary for compact complete counts. Use decision_rows through analysis.start for the complete expansion-heavy row population.","enum":["summary","decision_rows"],"type":"string"},"selection":{"additionalProperties":false,"description":"Explicit model-selected population; identity and ownership remain server-owned.","examples":[{"population":"owned_profiles"},{"handles":["@Scholes"],"population":"owned_profiles"},{"handles":["@Scholes"],"population":"public_profiles"},{"population":"whole_platform"}],"properties":{"population":{"description":"Choose owned_profiles for every profile you own or an exact owned handle subset, public_profiles for exact public handle/wallet selectors, or whole_platform for every active profile. Wallets are valid only with public_profiles, and whole_platform cannot include selectors.","enum":["owned_profiles","public_profiles","whole_platform"],"type":"string"},"handles":{"description":"Exact handles. Set with population=owned_profiles for an owned subset or with population=public_profiles for public profiles; omit for the full populations.","items":{"type":"string"},"type":"array"},"wallets":{"description":"Exact public wallet addresses. Set only with population=public_profiles; otherwise omit.","items":{"type":"string"},"type":"array"}},"required":["population"],"type":"object"}},"required":["start","end","result_view","selection"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"c4eb1799815b8fd55435973965a270a12461c8065439fa88b6e7512b2dddfaa9","required_authority":"insights:read","data_populations":["owned_profiles","public_profiles","whole_platform"],"freshness":"captured_cutoff","provenance":"required","delivery_modes":["inline","artifact"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"policy.replay","title":"Replay trading policy","description":"Primary capability for counterfactual setting, gate, or threshold questions: use the versioned scenario union to chronologically replay tradability_threshold, loss_count, or max_drawdown policy over the complete retained canonical raw ledger, including trade-count and immediately comparable recorded economics. Max Drawdown uses the selected profile's cutoff-pinned trusted owner/profile/wallet-assignment AccountBalanceHistory cohort, returns every selected profile including zero-event profiles, reports candidate/trusted/excluded history counts and retained-versus-recomputed mismatches, and marks every later model-dependent branch unobserved after the first divergence even when it precedes the reporting window. Hard prompt restrictions are never reported as deterministic execution blocks. Legacy flat tradability/loss-count fields remain accepted for one compatibility release. Persisted projections are retired and are never consulted. Select comparison for compact, synchronous, complete per-profile and per-policy results. The capability remains directly discoverable for every view, but start the expansion-heavy event_detail view through analysis.start when individual per-asset groups, state transitions, and unobserved branches are required. Neither view is sampled or truncated. When a same-thread Max Drawdown follow-up explicitly supplies a warning/critical threshold pair, inherit only the already established six-hour window, selection, start, and end and run one comparison with enforcement=hard even if the pair matches current settings; replay evaluates deterministic enforcement, not configuration novelty. Never infer the pair from settings or replay a policy/window-only question. Platform scope uses only public platform evidence. One replay also returns the entry-7/entry-8 with adds unchanged/adds-7 scenario matrix, the most recently recorded per-profile 6h/24h Max Loss Count policies, and, when a loss count and window are supplied, disabled/soft/hard loss-count scenarios. Repeat it when the user requests policy inputs outside that matrix; aggregate analytics cannot replace chronological replay.","family":"policy","input_schema":{"$defs":{"LossCountReplayScenario":{"additionalProperties":false,"properties":{"scenario_version":{"const":"2","default":"2","type":"string"},"scenario_type":{"const":"loss_count","type":"string"},"enforcement":{"enum":["disabled","soft","hard"],"type":"string"},"max_loss_count":{"default":null,"minimum":1,"type":["integer","null"]},"window_hours":{"default":null,"exclusiveMinimum":0,"type":["number","null"]}},"required":["scenario_type","enforcement"],"type":"object"},"MaxDrawdownReplayScenario":{"additionalProperties":false,"properties":{"scenario_version":{"const":"2","default":"2","type":"string"},"scenario_type":{"const":"max_drawdown","type":"string"},"evidence_source":{"const":"recomputed_counterfactual","default":"recomputed_counterfactual","type":"string"},"window_hours":{"exclusiveMinimum":0,"type":"number"},"warning_pct":{"minimum":0,"type":"number"},"critical_pct":{"exclusiveMinimum":0,"type":"number"},"enforcement":{"enum":["soft","hard"],"type":"string"}},"required":["scenario_type","window_hours","warning_pct","critical_pct","enforcement"],"type":"object"},"TradabilityThresholdReplayScenario":{"additionalProperties":false,"properties":{"scenario_version":{"const":"2","default":"2","type":"string"},"scenario_type":{"const":"tradability_threshold","type":"string"},"entry_min_tradability":{"default":null,"maximum":10,"minimum":1,"type":["integer","null"]},"add_min_tradability":{"default":null,"maximum":10,"minimum":1,"type":["integer","null"]}},"required":["scenario_type"],"type":"object"}},"additionalProperties":false,"properties":{"start":{"default":null,"description":"Inclusive ISO date or timezone-aware start timestamp.","format":"date-time","type":["string","null"]},"end":{"default":null,"description":"Inclusive ISO date or timezone-aware end timestamp, bounded by cutoff.","format":"date-time","type":["string","null"]},"result_view":{"description":"Choose comparison for every profile and shared-policy replay result without raw per-asset/state-transition rows, or event_detail for those rows too. This is a semantic result shape, never a row, byte, or token cap.","enum":["comparison","event_detail"],"type":"string"},"entry_min_tradability":{"default":null,"description":"Minimum tradability 1-10 for brand-new entries; omit or null to leave entry behavior unchanged. Never use 0 for unrestricted.","maximum":10,"minimum":1,"type":["integer","null"]},"add_min_tradability":{"default":null,"description":"Minimum tradability 1-10 for adds/increases; omit or null to leave adds unchanged. Never use 0 for unrestricted.","maximum":10,"minimum":1,"type":["integer","null"]},"max_loss_count_mode":{"default":"observed","description":"Loss-count treatment: observed leaves recorded behavior unchanged; disabled removes the gate; soft advises; hard blocks later eligible actions.","enum":["observed","disabled","soft","hard"],"type":"string"},"max_loss_count":{"default":null,"description":"Loss count for soft/hard replay; omit when mode is observed or disabled.","minimum":1,"type":["integer","null"]},"max_loss_count_window_hours":{"default":null,"description":"Rolling loss-count window in hours for soft/hard replay, such as 24.","exclusiveMinimum":0,"type":["number","null"]},"verify_projected_raw_parity":{"const":false,"default":false,"description":"Retired compatibility field. Persisted projections are not consulted; omit this field or leave it false.","type":"boolean"},"scenario":{"anyOf":[{"discriminator":{"mapping":{"loss_count":"#/$defs/LossCountReplayScenario","max_drawdown":"#/$defs/MaxDrawdownReplayScenario","tradability_threshold":"#/$defs/TradabilityThresholdReplayScenario"},"propertyName":"scenario_type"},"oneOf":[{"$ref":"#/$defs/TradabilityThresholdReplayScenario"},{"$ref":"#/$defs/LossCountReplayScenario"},{"$ref":"#/$defs/MaxDrawdownReplayScenario"}]},{"type":"null"}],"default":null,"description":"Versioned replay scenario union. Version 2 accepts only tradability_threshold, loss_count, and max_drawdown. Omit to use the legacy flat fields during their one-release compatibility window."},"selection":{"additionalProperties":false,"description":"Explicit model-selected population; identity and ownership remain server-owned.","examples":[{"population":"owned_profiles"},{"handles":["@Scholes"],"population":"owned_profiles"},{"handles":["@Scholes"],"population":"public_profiles"},{"population":"whole_platform"}],"properties":{"population":{"description":"Choose owned_profiles for every profile you own or an exact owned handle subset, public_profiles for exact public handle/wallet selectors, or whole_platform for every active profile. Wallets are valid only with public_profiles, and whole_platform cannot include selectors.","enum":["owned_profiles","public_profiles","whole_platform"],"type":"string"},"handles":{"description":"Exact handles. Set with population=owned_profiles for an owned subset or with population=public_profiles for public profiles; omit for the full populations.","items":{"type":"string"},"type":"array"},"wallets":{"description":"Exact public wallet addresses. Set only with population=public_profiles; otherwise omit.","items":{"type":"string"},"type":"array"}},"required":["population"],"type":"object"}},"required":["result_view","selection"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"5e8fea43c10a4616edba0557c3f9cc01c13f3b3722c0f4ab6d33d72575f2a6f8","required_authority":"insights:read","data_populations":["owned_profiles","public_profiles","whole_platform"],"freshness":"captured_cutoff","provenance":"required","delivery_modes":["inline","artifact"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"position.excursions","title":"Analyze position excursions","description":"Calculate request-local confirmed/possible MFE and MAE, legacy peak-to-exit deterioration, confirmed profit giveback, and exit efficiency from canonical exact-economics fills and cutoff-pinned fully completed market.history candles. Population coverage remains separate from exact-economics coverage, so quarantined or non-exact fills stay enumerable without entering exact campaign economics. This is position-path evidence, not an account equity curve or optimal-settings simulator. Use summary synchronously for every selected profile and complete profile/ledger-market/market/basis aggregates. Start episode_rows through analysis.start only when exact campaign rows are material.","family":"analytics","input_schema":{"additionalProperties":false,"properties":{"start":{"description":"Inclusive timezone-aware start for overlapping position episodes.","format":"date-time","type":"string"},"end":{"description":"Inclusive timezone-aware cutoff for fills and fully completed candles.","format":"date-time","type":"string"},"symbols":{"description":"Optional exact canonical market symbols from VTX evidence. Omit to evaluate every reconstructed market in the selected population.","items":{"type":"string"},"type":"array"},"result_view":{"description":"Use summary for complete compact coverage and extrema counts. Start episode_rows through analysis.start for all request-local excursion rows.","enum":["summary","episode_rows"],"type":"string"},"selection":{"additionalProperties":false,"description":"Explicit model-selected population; identity and ownership remain server-owned.","examples":[{"population":"owned_profiles"},{"handles":["@Scholes"],"population":"owned_profiles"},{"handles":["@Scholes"],"population":"public_profiles"},{"population":"whole_platform"}],"properties":{"population":{"description":"Choose owned_profiles for every profile you own or an exact owned handle subset, public_profiles for exact public handle/wallet selectors, or whole_platform for every active profile. Wallets are valid only with public_profiles, and whole_platform cannot include selectors.","enum":["owned_profiles","public_profiles","whole_platform"],"type":"string"},"handles":{"description":"Exact handles. Set with population=owned_profiles for an owned subset or with population=public_profiles for public profiles; omit for the full populations.","items":{"type":"string"},"type":"array"},"wallets":{"description":"Exact public wallet addresses. Set only with population=public_profiles; otherwise omit.","items":{"type":"string"},"type":"array"}},"required":["population"],"type":"object"}},"required":["start","end","result_view","selection"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"df3e7fadc975e90e4d2ab58374ac62dc880da097242975a3c2a472861629d9b1","required_authority":"insights:read","data_populations":["owned_profiles","public_profiles","whole_platform"],"freshness":"captured_cutoff","provenance":"required","delivery_modes":["inline","artifact"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"positions.episodes","title":"Read position episodes","description":"Complete request-time raw trade-chain evidence with no background projection. Start window_matrix directly through analysis.start exactly once with the full selection at an exact end to calculate the 24h, 7d, 30d, 90d, 365d, all, adaptive, and disjoint metrics from one complete request-local canonical source load. The matrix preserves every selected zero-event profile and returns complete per-profile fill/funding coverage, profile/asset coverage, and campaign economics grouped by profile, asset, entry generation, and direction. When settings-change or configuration-generation attribution defines the requested cohort, resolve each selected profile's latest material change within seven days: use the timestamp when exactly one qualifies, or max(each profile's latest qualifying material-change timestamp) when multiple qualify. This applies to single- and multi-profile selections; never split the matrix by profile or timestamp. For performance questions without change attribution, do not retrieve change provenance solely to choose a window and omit adaptive_start. Use window_matrix with matrix_projection=compact for ordinary rolling, generation, prompt, provider, and exact custom-window economics; its content-addressed aggregate states omit only raw campaign and high-cardinality cohort detail. Select matrix_projection=full only when a literal setting/input cohort claim requires that detail. Use metrics synchronously for another exact single interval. Start expansion-heavy event_detail through analysis.start for the complete retained source/event population and consume every immutable artifact chunk. No view samples, ranks, censors, silently truncates, or caps the population. Use policy.replay when changing a setting or threshold.","family":"analytics","input_schema":{"additionalProperties":false,"properties":{"start":{"default":null,"description":"Inclusive ISO date or timezone-aware start timestamp.","format":"date-time","type":["string","null"]},"end":{"default":null,"description":"Inclusive ISO date or timezone-aware end timestamp, bounded by cutoff.","format":"date-time","type":["string","null"]},"result_view":{"description":"Use metrics for complete server-computed aggregates over the exact start/end interval. Use window_matrix to compute the canonical rolling, adaptive, and disjoint metric windows, complete per-profile stream and profile/asset coverage, and campaign economics grouped by profile, asset, entry generation, and direction from one complete request-local raw source load. Use event_detail for the complete raw retained event/source population; large results are delivered as immutable artifacts with no sampling, ranking cap, censorship, or truncation.","enum":["metrics","event_detail","window_matrix"],"type":"string"},"matrix_projection":{"default":"full","description":"Projection used only with result_view=window_matrix. full preserves the complete high-cardinality cohort and campaign-detail contract. compact preserves exact window aggregates, typed missingness, coverage, and conservation while omitting raw campaign/cohort detail and content-addressing repeated window metric states.","enum":["full","compact"],"type":"string"},"adaptive_start":{"default":null,"description":"Optional timezone-aware shared start of the current material configuration generation for window_matrix. Resolve each selected profile's latest relevant change within seven days. Pass the timestamp when exactly one qualifies, or max(timestamps) when multiple qualify. This includes single-profile selections and multi-profile selections where only one profile changed recently. Call one matrix with the full selection and never split by profile or change timestamp. Omit only when none qualify, to use the config-owned no-change fallback interval.","format":"date-time","type":["string","null"]},"custom_intervals":{"description":"Optional exact caller-named windows added to window_matrix. Each interval declares whether its end is inclusive; overlaps are independently reported.","items":{"additionalProperties":false,"description":"One exact caller-named interval in the request-local window matrix.","properties":{"key":{"description":"Caller-owned ASCII interval key using letters, digits, '_' or '-'.","maxLength":96,"minLength":1,"type":"string"},"label":{"default":null,"description":"Optional display label without surrounding whitespace.","maxLength":160,"minLength":1,"type":["string","null"]},"start":{"description":"Timezone-aware inclusive interval start.","format":"date-time","type":"string"},"end":{"description":"Timezone-aware interval end, later than start.","format":"date-time","type":"string"},"end_inclusive":{"description":"Whether an event exactly at end belongs to this interval.","type":"boolean"}},"required":["key","start","end","end_inclusive"],"type":"object"},"type":"array","maxItems":32},"selection":{"additionalProperties":false,"description":"Explicit model-selected population; identity and ownership remain server-owned.","examples":[{"population":"owned_profiles"},{"handles":["@Scholes"],"population":"owned_profiles"},{"handles":["@Scholes"],"population":"public_profiles"},{"population":"whole_platform"}],"properties":{"population":{"description":"Choose owned_profiles for every profile you own or an exact owned handle subset, public_profiles for exact public handle/wallet selectors, or whole_platform for every active profile. Wallets are valid only with public_profiles, and whole_platform cannot include selectors.","enum":["owned_profiles","public_profiles","whole_platform"],"type":"string"},"handles":{"description":"Exact handles. Set with population=owned_profiles for an owned subset or with population=public_profiles for public profiles; omit for the full populations.","items":{"type":"string"},"type":"array"},"wallets":{"description":"Exact public wallet addresses. Set only with population=public_profiles; otherwise omit.","items":{"type":"string"},"type":"array"}},"required":["population"],"type":"object"}},"required":["result_view","selection"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"c812a836ff1744c7b5f25d42392240e0cdc2cd44cc3761a27af77124e3afa33f","required_authority":"insights:read","data_populations":["owned_profiles","public_profiles","whole_platform"],"freshness":"captured_cutoff","provenance":"required","delivery_modes":["inline","artifact"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"profile.archive","title":"Archive owned profiles","description":"Archive owned profiles through canonical VTX capacity, ownership, runtime, and profile lifecycle checks with complete resumable outcomes.","family":"profile_actions","input_schema":{"$defs":{"ProfileStateSelection":{"additionalProperties":false,"properties":{"population":{"enum":["all","selected"],"type":"string"},"profiles":{"items":{"type":"string"},"type":"array"}},"required":["population"],"type":"object"}},"additionalProperties":false,"properties":{"selection":{"$ref":"#/$defs/ProfileStateSelection"},"idempotency_key":{"maxLength":160,"minLength":8,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$","type":"string"},"mutation_policy":{"const":"best_effort","default":"best_effort","type":"string"}},"required":["selection","idempotency_key"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"5f836570a3189c2e14a2257031bca527daba9722bf153e9611290462caa49585","required_authority":"insights:profiles","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"id":"profile.clone","title":"Clone owned profiles","description":"Clone owned profiles through canonical VTX capacity, ownership, runtime, and profile lifecycle checks with complete resumable outcomes.","family":"profile_actions","input_schema":{"$defs":{"ProfileCloneSpec":{"additionalProperties":false,"properties":{"handle":{"default":null,"maxLength":20,"minLength":3,"type":["string","null"]},"source_profile":{"maxLength":65,"minLength":2,"type":"string"}},"required":["source_profile"],"type":"object"}},"additionalProperties":false,"properties":{"profiles":{"items":{"$ref":"#/$defs/ProfileCloneSpec"},"minItems":1,"type":"array"},"idempotency_key":{"maxLength":160,"minLength":8,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$","type":"string"},"mutation_policy":{"const":"best_effort","default":"best_effort","type":"string"}},"required":["profiles","idempotency_key"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"7d556e1ee47b118b9eef5be8ac9a5f008e2e4da52abe16f79b84d6d7cad5e77b","required_authority":"insights:profiles","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"profile.create","title":"Create owned profiles","description":"Create owned profiles through canonical VTX capacity, ownership, runtime, and profile lifecycle checks with complete resumable outcomes.","family":"profile_actions","input_schema":{"$defs":{"ProfileCreateSpec":{"additionalProperties":false,"properties":{"handle":{"default":null,"maxLength":20,"minLength":3,"type":["string","null"]}},"type":"object"}},"additionalProperties":false,"properties":{"profiles":{"items":{"$ref":"#/$defs/ProfileCreateSpec"},"minItems":1,"type":"array"},"idempotency_key":{"maxLength":160,"minLength":8,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$","type":"string"},"mutation_policy":{"const":"best_effort","default":"best_effort","type":"string"}},"required":["profiles","idempotency_key"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"1c06e1d89ec27b1a7d4d83b348190610cef4d7314023974262b264b9345bf97c","required_authority":"insights:profiles","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"profile.delete","title":"Delete owned profiles","description":"Delete owned profiles through canonical VTX capacity, ownership, runtime, and profile lifecycle checks with complete resumable outcomes.","family":"profile_actions","input_schema":{"$defs":{"ProfileStateSelection":{"additionalProperties":false,"properties":{"population":{"enum":["all","selected"],"type":"string"},"profiles":{"items":{"type":"string"},"type":"array"}},"required":["population"],"type":"object"}},"additionalProperties":false,"properties":{"selection":{"$ref":"#/$defs/ProfileStateSelection"},"idempotency_key":{"maxLength":160,"minLength":8,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$","type":"string"},"mutation_policy":{"const":"best_effort","default":"best_effort","type":"string"},"confirm_permanent_deletion":{"const":true,"type":"boolean"}},"required":["selection","idempotency_key","confirm_permanent_deletion"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"70277d0648977c64f993137ba987969160070f72f3871dfe476582e4e0a8d3af","required_authority":"insights:profiles","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"id":"profile.rename","title":"Rename owned profiles","description":"Rename owned profiles through canonical VTX capacity, ownership, runtime, and profile lifecycle checks with complete resumable outcomes.","family":"profile_actions","input_schema":{"additionalProperties":false,"properties":{"renames":{"additionalProperties":{"type":"string"},"minProperties":1,"type":"object"},"idempotency_key":{"maxLength":160,"minLength":8,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$","type":"string"},"mutation_policy":{"const":"best_effort","default":"best_effort","type":"string"}},"required":["renames","idempotency_key"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"f6410d0517a14c23bb953c6c54561ba504cce43a2c22c970aa429e450297fb45","required_authority":"insights:profiles","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"id":"profile.restore","title":"Restore archived owned profiles","description":"Restore archived owned profiles through canonical VTX capacity, ownership, runtime, and profile lifecycle checks with complete resumable outcomes.","family":"profile_actions","input_schema":{"$defs":{"ProfileStateSelection":{"additionalProperties":false,"properties":{"population":{"enum":["all","selected"],"type":"string"},"profiles":{"items":{"type":"string"},"type":"array"}},"required":["population"],"type":"object"}},"additionalProperties":false,"properties":{"selection":{"$ref":"#/$defs/ProfileStateSelection"},"idempotency_key":{"maxLength":160,"minLength":8,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$","type":"string"},"mutation_policy":{"const":"best_effort","default":"best_effort","type":"string"}},"required":["selection","idempotency_key"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"5f836570a3189c2e14a2257031bca527daba9722bf153e9611290462caa49585","required_authority":"insights:profiles","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"profiles.discover","title":"Discover VTX profiles","description":"Use first when the user refers to my bots, a public handle or wallet, several bots, or the whole VTX platform. Returns public selectors and marks the authenticated caller's active profiles without exposing login identity. Also returns a separate complete inventory of only the caller's archived profiles; archived profiles are never public.","family":"identity","input_schema":{"additionalProperties":false,"properties":{},"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"71fc596a20f27da3dec80050e5d1f553eba34aea24c2853b853488a811e6b892","required_authority":"insights:read","data_populations":["owned_profiles","public_profiles","whole_platform"],"freshness":"live_authorization_state","provenance":"required","delivery_modes":["inline","artifact"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"runtime.provenance","title":"Inspect runtime provenance","description":"Inspect complete retained provenance through one explicit evidence view. result_view=aggregate_metrics returns compact full-population groups, numeric metrics, and model-binding runs for change_causality, model_history, or execution_latency without raw row bodies. change_causality aggregate_metrics also preserves the complete exact retained settings-change timeline, with private bodies only for owned profiles and a body-free path/hash/time projection otherwise. result_view=detail_rows is the compatibility default, preserves every selected cutoff-safe row, and is forced for prompt_history or include_reasoning=true. TradeExecution mutable outcome, position, and metadata bodies remain unavailable because their update time is not retained; use positions and execution.quality for those claims. Runtime event bodies remain available in authorized detail views. Views never sample, rank, cap, or truncate their selected population. Start long or all-history change_causality reads through analysis.start instead of first attempting the synchronous route.","family":"runtime_provenance","input_schema":{"additionalProperties":false,"properties":{"view":{"description":"Evidence family to inspect. change_causality distinguishes deployment, code, prompt, settings, and model transitions. For owned profiles, prompt_history returns every retained prompt-bearing decision; non-owner selections fail closed because prompt/response bodies are private. model_history returns every retained decision/model binding. execution_latency returns every cutoff-visible decision, linked execution, and relevant runtime event. Mutable execution outcome, position, and metadata fields are unavailable because their update time is not retained.","enum":["change_causality","prompt_history","model_history","execution_latency"],"type":"string"},"result_view":{"default":"detail_rows","description":"Projection to return. aggregate_metrics computes complete full-population counts, numeric metrics, binding runs, and dimension groups without returning raw decision/execution/runtime row bodies. detail_rows is the compatibility default and returns every selected retained row. No result view samples, ranks, caps, or truncates the authorized population. For owned profiles, prompt_history and include_reasoning=true always resolve to detail_rows so their verbatim-content contract is preserved; non-owner selections fail closed for those private views.","enum":["aggregate_metrics","detail_rows"],"type":"string"},"start":{"default":null,"description":"Optional inclusive ISO date or timezone-aware start timestamp.","format":"date-time","type":["string","null"]},"end":{"default":null,"description":"Optional inclusive ISO date or timezone-aware end timestamp.","format":"date-time","type":["string","null"]},"include_reasoning":{"default":false,"description":"Include complete retained primary/review reasoning text for owned-profile decision rows when explicitly requested and still within its retention period. Non-owner selections fail closed.","type":"boolean"},"selection":{"additionalProperties":false,"description":"Explicit model-selected population; identity and ownership remain server-owned.","examples":[{"population":"owned_profiles"},{"handles":["@Scholes"],"population":"owned_profiles"},{"handles":["@Scholes"],"population":"public_profiles"},{"population":"whole_platform"}],"properties":{"population":{"description":"Choose owned_profiles for every profile you own or an exact owned handle subset, public_profiles for exact public handle/wallet selectors, or whole_platform for every active profile. Wallets are valid only with public_profiles, and whole_platform cannot include selectors.","enum":["owned_profiles","public_profiles","whole_platform"],"type":"string"},"handles":{"description":"Exact handles. Set with population=owned_profiles for an owned subset or with population=public_profiles for public profiles; omit for the full populations.","items":{"type":"string"},"type":"array"},"wallets":{"description":"Exact public wallet addresses. Set only with population=public_profiles; otherwise omit.","items":{"type":"string"},"type":"array"}},"required":["population"],"type":"object"}},"required":["view","selection"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"a81fafc3642e06236525c4c53633e368c7a4024905599861dd3d026e0addd3f6","required_authority":"insights:read","data_populations":["owned_profiles","public_profiles","whole_platform"],"freshness":"captured_cutoff","provenance":"required","delivery_modes":["inline","artifact"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"screener.candidates","title":"Choose screening candidates","description":"Prepare a read-only Screener scan with canonical defaults, or one owned profile's effective settings, and request-only overrides. Return exact candidates, volume context and effective settings. The calling assistant evaluates; VTX does not invoke a model or change assignments.","family":"screener","input_schema":{"$defs":{"ScreeningOverrides":{"additionalProperties":false,"description":"Per-request overrides; bounds come from the existing Screener config.","properties":{"exchange_universe":{"default":null,"type":["string","null"]},"symbol_leverages":{"default":null,"items":{"type":"integer"},"maxItems":100,"type":["array","null"]},"min_volume_usd":{"default":null,"type":["number","null"]},"max_candidates_per_run":{"default":null,"type":["integer","null"]},"symbol_list_loops_per_run":{"default":null,"type":["integer","null"]},"run_interval_seconds":{"default":null,"type":["integer","null"]},"enabled_main_variable_ids":{"default":null,"items":{"type":"string"},"type":["array","null"]},"trading_timeframes":{"default":null,"items":{"type":"string"},"type":["array","null"]},"analysis_lookback":{"anyOf":[{"type":"integer"},{"additionalProperties":{"type":"integer"},"type":"object"},{"type":"null"}],"default":null},"assignment_min_tradability":{"default":null,"type":["number","null"]},"assignment_min_edge":{"default":null,"type":["number","null"]},"assignment_max_other_profiles_per_symbol":{"default":null,"type":["integer","null"]},"assignment_min_symbols":{"default":null,"type":["integer","null"]},"assignment_max_symbols":{"default":null,"type":["integer","null"]}},"type":"object"}},"additionalProperties":false,"properties":{"profile":{"default":null,"description":"Owned profile handle, e.g. @Scholes. Omit for canonical defaults.","maxLength":65,"minLength":1,"type":["string","null"]},"symbols":{"default":null,"description":"Exact candidate symbols, or omit to discover using the existing Screener filters and volume ordering. Keep XYZ and regular Hyperliquid separate.","items":{"type":"string"},"minItems":1,"type":["array","null"]},"overrides":{"$ref":"#/$defs/ScreeningOverrides"}},"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"671622b6f8fc2afdf20f8944eb4f0c73a7f7e3a823f97685fcda59a531c83f3c","required_authority":"insights:read","data_populations":["vtx_market","owned_profiles"],"freshness":"live","provenance":"required","delivery_modes":["inline","artifact"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"id":"screener.context","title":"Read canonical screening prompts","description":"Build fresh canonical Screener system/user prompts for one symbol and pass. Use the same settings as screener.candidates, evaluate the forward-looking tradability rubric, and retain score/reasoning for screener.rank. This is read-only research, not bot inference or an automatic assignment run.","family":"screener","input_schema":{"$defs":{"ScreeningOverrides":{"additionalProperties":false,"description":"Per-request overrides; bounds come from the existing Screener config.","properties":{"exchange_universe":{"default":null,"type":["string","null"]},"symbol_leverages":{"default":null,"items":{"type":"integer"},"maxItems":100,"type":["array","null"]},"min_volume_usd":{"default":null,"type":["number","null"]},"max_candidates_per_run":{"default":null,"type":["integer","null"]},"symbol_list_loops_per_run":{"default":null,"type":["integer","null"]},"run_interval_seconds":{"default":null,"type":["integer","null"]},"enabled_main_variable_ids":{"default":null,"items":{"type":"string"},"type":["array","null"]},"trading_timeframes":{"default":null,"items":{"type":"string"},"type":["array","null"]},"analysis_lookback":{"anyOf":[{"type":"integer"},{"additionalProperties":{"type":"integer"},"type":"object"},{"type":"null"}],"default":null},"assignment_min_tradability":{"default":null,"type":["number","null"]},"assignment_min_edge":{"default":null,"type":["number","null"]},"assignment_max_other_profiles_per_symbol":{"default":null,"type":["integer","null"]},"assignment_min_symbols":{"default":null,"type":["integer","null"]},"assignment_max_symbols":{"default":null,"type":["integer","null"]}},"type":"object"}},"additionalProperties":false,"properties":{"profile":{"default":null,"description":"Owned profile handle, e.g. @Scholes. Omit for canonical defaults.","maxLength":65,"minLength":1,"type":["string","null"]},"symbols":{"default":null,"description":"Exact candidate symbols, or omit to discover using the existing Screener filters and volume ordering. Keep XYZ and regular Hyperliquid separate.","items":{"type":"string"},"minItems":1,"type":["array","null"]},"overrides":{"$ref":"#/$defs/ScreeningOverrides"},"symbol":{"maxLength":128,"minLength":1,"type":"string"},"pass_number":{"default":1,"minimum":1,"type":"integer"}},"required":["symbol"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"6bf9a767f4ed20e80471707297247e06a8436a5506e6cfab704cb480a099867b","required_authority":"insights:read","data_populations":["vtx_market","owned_profiles"],"freshness":"live","provenance":"required","delivery_modes":["inline","artifact"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"id":"screener.history","title":"Read screener history","description":"Read every persisted Screener run, candidate evaluation, rejection/error, and symbol assignment in a requested profile/account window. Includes complete stored prompts, reasoning, raw model responses, and assignment settings; no result rows are capped. Use this instead of bot analysis logs for Screener candidate or rejection questions.","family":"screener","input_schema":{"additionalProperties":false,"properties":{"start":{"default":null,"description":"Optional inclusive ISO date or timezone-aware start timestamp.","format":"date-time","type":["string","null"]},"end":{"default":null,"description":"Optional inclusive ISO date or timezone-aware end timestamp.","format":"date-time","type":["string","null"]},"selection":{"additionalProperties":false,"description":"Explicit model-selected population; identity and ownership remain server-owned.","examples":[{"population":"owned_profiles"},{"handles":["@Scholes"],"population":"owned_profiles"},{"handles":["@Scholes"],"population":"public_profiles"},{"population":"whole_platform"}],"properties":{"population":{"description":"Choose owned_profiles for every profile you own or an exact owned handle subset, public_profiles for exact public handle/wallet selectors, or whole_platform for every active profile. Wallets are valid only with public_profiles, and whole_platform cannot include selectors.","enum":["owned_profiles","public_profiles","whole_platform"],"type":"string"},"handles":{"description":"Exact handles. Set with population=owned_profiles for an owned subset or with population=public_profiles for public profiles; omit for the full populations.","items":{"type":"string"},"type":"array"},"wallets":{"description":"Exact public wallet addresses. Set only with population=public_profiles; otherwise omit.","items":{"type":"string"},"type":"array"}},"required":["population"],"type":"object"}},"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["selection"]},"input_schema_sha256":"4cec860e234149a48012fdd37bd3de136c50046d73ae315b3178111eb1b9f961","required_authority":"insights:read","data_populations":["owned_profiles","public_profiles","whole_platform"],"freshness":"captured_cutoff","provenance":"required","delivery_modes":["inline","artifact"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"screener.rank","title":"Rank screening evaluations","description":"Aggregate caller-authored Screener evaluations using the existing mean and sample standard deviation. Preserve every pass and reason; expose missing evaluations. Does not validate investment quality, invoke models, store a Screener run or assign symbols.","family":"screener","input_schema":{"$defs":{"ScreeningEvaluation":{"additionalProperties":false,"properties":{"symbol":{"maxLength":128,"minLength":1,"type":"string"},"pass_number":{"minimum":1,"type":"integer"},"tradability":{"maximum":10,"minimum":1,"type":"integer"},"reasoning":{"minLength":1,"type":"string"}},"required":["symbol","pass_number","tradability","reasoning"],"type":"object"}},"additionalProperties":false,"properties":{"symbols":{"description":"The exact complete candidate list returned by screener.candidates, including baseline symbols.","items":{"type":"string"},"minItems":1,"type":"array"},"passes":{"default":null,"description":"Effective pass count returned by screener.candidates; omitted uses the canonical Screener default.","minimum":1,"type":["integer","null"]},"evaluations":{"description":"Caller-authored scores from each actual candidate evaluation. Missing evaluations remain explicitly incomplete.","items":{"$ref":"#/$defs/ScreeningEvaluation"},"type":"array"}},"required":["symbols","evaluations"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"f07962ddba78fa6a2a10badb0eafed257ea0546063105fda3f00ba8bee7573ea","required_authority":"insights:read","data_populations":["caller_supplied_evaluations"],"freshness":"caller_supplied","provenance":"required","delivery_modes":["inline","artifact"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"settings.apply","title":"Apply owned fleet settings","description":"Apply a validated homogeneous or heterogeneous settings plan to an exact owned fleet using a pre-change snapshot and per-profile optimistic versions. Each profile's Trader and Assistant must both be stopped. The truthful contract is best effort: every profile outcome is retained, stale siblings do not discard successful changes, and replay resumes or returns the same durable receipt.","family":"settings","input_schema":{"$defs":{"InsightOwnedProfileSelection":{"additionalProperties":false,"description":"Owned-only action selector supporting one, a subset, or the whole fleet.","examples":[{"population":"all"},{"population":"selected","profiles":["@Scholes","@Euler"]}],"properties":{"population":{"description":"Use all for every active profile in the authenticated account, or selected for an exact owned handle list. The list is not capped.","enum":["all","selected"],"type":"string"},"profiles":{"description":"Exact owned handles; required only with population=selected.","items":{"type":"string"},"type":"array"}},"required":["population"],"type":"object"}},"additionalProperties":false,"properties":{"selection":{"$ref":"#/$defs/InsightOwnedProfileSelection"},"updates":{"additionalProperties":true,"description":"Settings paths applied to every selected profile. For exactly a Main, Review, or Screener model-controller root, null deletes the stored controller selection and restores the implicit native default. When promoting a configured fallback to Primary, include both the lane controller and the complete external_inference_fallback_host_ids object in the same request.","type":"object"},"per_profile_updates":{"additionalProperties":{"additionalProperties":true,"type":"object"},"description":"Optional handle-keyed overrides for heterogeneous fleet changes. There is no profile-count cap. The controller-root null deletion contract also applies to these overrides.","type":"object"},"update_mode":{"default":"patch","description":"patch preserves unspecified AI-page settings. complete requires every canonical mutable AI-page path for every selected profile and removes retired behavior fields owned by the replaced settings roots.","enum":["patch","complete"],"type":"string"},"idempotency_key":{"maxLength":160,"minLength":8,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$","type":"string"},"snapshot_id":{"description":"Pre-change immutable fleet snapshot used for recovery and rollback.","maxLength":36,"minLength":36,"pattern":"^[0-9a-fA-F-]{36}$","type":"string"},"expected_versions":{"additionalProperties":{"type":"string"},"description":"Exact handle-to-version map returned by settings.preview.","minProperties":1,"type":"object"},"mutation_policy":{"default":"best_effort","description":"best_effort preserves per-profile progress. atomic is all-or-none for native-controller settings only and rejects any changed profile whose current or target settings select an external-agent controller.","enum":["best_effort","atomic"],"type":"string"},"result_view":{"default":"complete","description":"complete returns full per-profile mutation evidence. compact returns one minimal outcome/version row per target plus exact aggregate verification hashes so thousand-profile actions remain within the MCP response envelope.","enum":["complete","compact"],"type":"string"},"expected_compact_result_contract_version":{"default":1,"description":"Fail-closed compact settings.apply result contract version.","enum":[1,2],"type":"integer"},"expected_current":{"additionalProperties":true,"type":"object"},"expected_current_by_profile":{"additionalProperties":{"additionalProperties":true,"type":"object"},"type":"object"},"protected_paths":{"items":{"type":"string"},"type":"array"},"protected_paths_by_profile":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},"expected_ordered_target_update_set_sha256":{"default":null,"description":"Optional exact ordered-target hash returned by settings.preview. The apply is rejected before mutation if the canonical request does not match.","pattern":"^[0-9a-f]{64}$","type":["string","null"]}},"required":["selection","idempotency_key","snapshot_id","expected_versions"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"300922653cad20330a7b831b9c332e92f9950fabc3515422d856af2a977b2c6b","required_authority":"insights:settings","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"id":"settings.diff","title":"Diff owned fleet settings","description":"Compute the canonical write-free per-profile diff and optimistic version tokens for a proposed owned-fleet settings plan.","family":"settings","input_schema":{"$defs":{"InsightOwnedProfileSelection":{"additionalProperties":false,"description":"Owned-only action selector supporting one, a subset, or the whole fleet.","examples":[{"population":"all"},{"population":"selected","profiles":["@Scholes","@Euler"]}],"properties":{"population":{"description":"Use all for every active profile in the authenticated account, or selected for an exact owned handle list. The list is not capped.","enum":["all","selected"],"type":"string"},"profiles":{"description":"Exact owned handles; required only with population=selected.","items":{"type":"string"},"type":"array"}},"required":["population"],"type":"object"}},"additionalProperties":false,"properties":{"selection":{"$ref":"#/$defs/InsightOwnedProfileSelection"},"updates":{"additionalProperties":true,"description":"Settings paths applied to every selected profile. For exactly a Main, Review, or Screener model-controller root, null deletes the stored controller selection and restores the implicit native default. When promoting a configured fallback to Primary, include both the lane controller and the complete external_inference_fallback_host_ids object in the same request.","type":"object"},"per_profile_updates":{"additionalProperties":{"additionalProperties":true,"type":"object"},"description":"Optional handle-keyed overrides for heterogeneous fleet changes. There is no profile-count cap. The controller-root null deletion contract also applies to these overrides.","type":"object"},"update_mode":{"default":"patch","description":"patch preserves unspecified AI-page settings. complete requires every canonical mutable AI-page path for every selected profile and removes retired behavior fields owned by the replaced settings roots.","enum":["patch","complete"],"type":"string"}},"required":["selection"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"cac7179f379b02fbf041857845cdcb400488fb902fd3a7338bb9ef09c462966b","required_authority":"insights:settings","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline","artifact"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"settings.preview","title":"Preview owned fleet settings","description":"Validate and normalize a homogeneous or heterogeneous settings plan for one, selected, or all owned profiles without writing. Returns every profile's exact diff plus current and prospective optimistic versions.","family":"settings","input_schema":{"$defs":{"InsightOwnedProfileSelection":{"additionalProperties":false,"description":"Owned-only action selector supporting one, a subset, or the whole fleet.","examples":[{"population":"all"},{"population":"selected","profiles":["@Scholes","@Euler"]}],"properties":{"population":{"description":"Use all for every active profile in the authenticated account, or selected for an exact owned handle list. The list is not capped.","enum":["all","selected"],"type":"string"},"profiles":{"description":"Exact owned handles; required only with population=selected.","items":{"type":"string"},"type":"array"}},"required":["population"],"type":"object"}},"additionalProperties":false,"properties":{"selection":{"$ref":"#/$defs/InsightOwnedProfileSelection"},"updates":{"additionalProperties":true,"description":"Settings paths applied to every selected profile. For exactly a Main, Review, or Screener model-controller root, null deletes the stored controller selection and restores the implicit native default. When promoting a configured fallback to Primary, include both the lane controller and the complete external_inference_fallback_host_ids object in the same request.","type":"object"},"per_profile_updates":{"additionalProperties":{"additionalProperties":true,"type":"object"},"description":"Optional handle-keyed overrides for heterogeneous fleet changes. There is no profile-count cap. The controller-root null deletion contract also applies to these overrides.","type":"object"},"update_mode":{"default":"patch","description":"patch preserves unspecified AI-page settings. complete requires every canonical mutable AI-page path for every selected profile and removes retired behavior fields owned by the replaced settings roots.","enum":["patch","complete"],"type":"string"}},"required":["selection"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"cac7179f379b02fbf041857845cdcb400488fb902fd3a7338bb9ef09c462966b","required_authority":"insights:settings","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline","artifact"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"settings.read","title":"Read bot settings","description":"Read complete owning configuration data: the active profile or account's effective bot settings, every account-owned saved AI settings snapshot, or the complete effective Screener configuration. current_bot_settings also supports a compact enabled_only behavior catalog with body-free prompt identities. Use complete for actual setting values and snapshot comparisons. analytics settings_history contains paths, not values.","family":"settings","input_schema":{"additionalProperties":false,"properties":{"view":{"description":"Exact owning data to read. current_bot_settings returns the complete effective AI configuration, including defaults and saved overrides. saved_ai_snapshots returns every complete account-owned AI settings snapshot. screener_configuration returns every effective Screener setting. Use this tool for actual setting values; settings history contains change paths, not values.","enum":["current_bot_settings","saved_ai_snapshots","screener_configuration"],"type":"string"},"result_view":{"default":"complete","description":"Complete effective settings, a compact enabled-behavior catalog, or the exact stored canonical AI-page projection, or identities for selected stored paths without their values. enabled_only, stored_only, and hashes_only are valid only for current_bot_settings. stored_only avoids provider/model resolution and is the fast fleet preflight/readback surface; hashes_only requires settings_paths.","enum":["complete","enabled_only","stored_only","hashes_only"],"type":"string"},"settings_paths":{"default":null,"description":"Optional unique canonical AI-page paths to return. This exact projection is available only for current_bot_settings with result_view=complete or stored_only; hashes_only returns identities for the same paths. Effective system_prompt/user_prompt aliases are normalized to their canonical trading_system_prompt/trading_user_prompt paths.","items":{"type":"string"},"maxItems":191,"minItems":1,"type":["array","null"]},"selection":{"additionalProperties":false,"description":"Explicit model-selected population; identity and ownership remain server-owned.","examples":[{"population":"owned_profiles"},{"handles":["@Scholes"],"population":"owned_profiles"},{"handles":["@Scholes"],"population":"public_profiles"},{"population":"whole_platform"}],"properties":{"population":{"description":"Choose owned_profiles for every profile you own or an exact owned handle subset, public_profiles for exact public handle/wallet selectors, or whole_platform for every active profile. Wallets are valid only with public_profiles, and whole_platform cannot include selectors.","enum":["owned_profiles","public_profiles","whole_platform"],"type":"string"},"handles":{"description":"Exact handles. Set with population=owned_profiles for an owned subset or with population=public_profiles for public profiles; omit for the full populations.","items":{"type":"string"},"type":"array"},"wallets":{"description":"Exact public wallet addresses. Set only with population=public_profiles; otherwise omit.","items":{"type":"string"},"type":"array"}},"required":["population"],"type":"object"}},"required":["view","selection"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"bd557826e939a64b7a29b6fba73a98cf3bb9124ce9898a65ae300e7bf399b258","required_authority":"insights:read","data_populations":["owned_profiles","public_profiles","whole_platform"],"freshness":"captured_cutoff","provenance":"required","delivery_modes":["inline","artifact"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"settings.schema","title":"Inspect bot settings schema","description":"Inspect the canonical VTX bot-settings schema, mutable paths, labels, types, config-owned bounds/options, and exact market-news/calendar controls before proposing a change.","family":"settings","input_schema":{"additionalProperties":false,"properties":{},"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"71fc596a20f27da3dec80050e5d1f553eba34aea24c2853b853488a811e6b892","required_authority":"insights:read","data_populations":["vtx_configuration"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"settings.snapshot.create","title":"Create fleet settings snapshot","description":"Create an immutable pre-change settings snapshot for one, selected, or all active owned profiles. Returns every profile version without exposing internal IDs or credential material.","family":"settings","input_schema":{"$defs":{"InsightOwnedProfileSelection":{"additionalProperties":false,"description":"Owned-only action selector supporting one, a subset, or the whole fleet.","examples":[{"population":"all"},{"population":"selected","profiles":["@Scholes","@Euler"]}],"properties":{"population":{"description":"Use all for every active profile in the authenticated account, or selected for an exact owned handle list. The list is not capped.","enum":["all","selected"],"type":"string"},"profiles":{"description":"Exact owned handles; required only with population=selected.","items":{"type":"string"},"type":"array"}},"required":["population"],"type":"object"}},"additionalProperties":false,"properties":{"selection":{"$ref":"#/$defs/InsightOwnedProfileSelection"},"name":{"maxLength":160,"minLength":1,"type":"string"},"reason":{"default":null,"maxLength":500,"type":["string","null"]},"idempotency_key":{"maxLength":160,"minLength":8,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$","type":"string"}},"required":["selection","name","idempotency_key"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"2c92c38706b5e60da88012a4a7b305f4b1c76e7908f8edec316072abdc10a812","required_authority":"insights:settings","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"settings.snapshot.list","title":"List fleet settings snapshots","description":"List every immutable fleet settings snapshot owned by the account, including its complete profile count and integrity hash.","family":"settings","input_schema":{"additionalProperties":false,"properties":{},"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"71fc596a20f27da3dec80050e5d1f553eba34aea24c2853b853488a811e6b892","required_authority":"insights:settings","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline","artifact"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"settings.snapshot.read","title":"Read selected fleet snapshot fields","description":"Read exact canonical AI-page paths from one immutable owned-fleet snapshot for a selected contained cohort. Hash-only output is the default; values are available for owner-authorized field restoration.","family":"settings","input_schema":{"$defs":{"InsightOwnedProfileSelection":{"additionalProperties":false,"description":"Owned-only action selector supporting one, a subset, or the whole fleet.","examples":[{"population":"all"},{"population":"selected","profiles":["@Scholes","@Euler"]}],"properties":{"population":{"description":"Use all for every active profile in the authenticated account, or selected for an exact owned handle list. The list is not capped.","enum":["all","selected"],"type":"string"},"profiles":{"description":"Exact owned handles; required only with population=selected.","items":{"type":"string"},"type":"array"}},"required":["population"],"type":"object"}},"additionalProperties":false,"properties":{"selection":{"$ref":"#/$defs/InsightOwnedProfileSelection"},"snapshot_id":{"maxLength":36,"minLength":36,"pattern":"^[0-9a-fA-F-]{36}$","type":"string"},"settings_paths":{"items":{"type":"string"},"maxItems":64,"minItems":1,"type":"array"},"result_view":{"default":"hashes","enum":["hashes","values"],"type":"string"}},"required":["selection","snapshot_id","settings_paths"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"8e5fcc289d76ea920d7079863a734c63cd924f76e966e7567ddfdd917653d696","required_authority":"insights:settings","data_populations":["owned_profiles"],"freshness":"immutable_snapshot_state","provenance":"required","delivery_modes":["inline","artifact"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"settings.snapshot.restore","title":"Restore fleet settings snapshot","description":"Restore an immutable settings snapshot to one, selected, or all contained active owned profiles with exact optimistic versions and complete best-effort outcomes. Optionally restore exact canonical paths, including deletion when the snapshot path was absent; whole restores and trading-symbol restores require stopped runtimes. It restores settings only and never changes execution mode or starts a bot.","family":"settings","input_schema":{"$defs":{"InsightOwnedProfileSelection":{"additionalProperties":false,"description":"Owned-only action selector supporting one, a subset, or the whole fleet.","examples":[{"population":"all"},{"population":"selected","profiles":["@Scholes","@Euler"]}],"properties":{"population":{"description":"Use all for every active profile in the authenticated account, or selected for an exact owned handle list. The list is not capped.","enum":["all","selected"],"type":"string"},"profiles":{"description":"Exact owned handles; required only with population=selected.","items":{"type":"string"},"type":"array"}},"required":["population"],"type":"object"}},"additionalProperties":false,"properties":{"selection":{"$ref":"#/$defs/InsightOwnedProfileSelection"},"snapshot_id":{"maxLength":36,"minLength":36,"pattern":"^[0-9a-fA-F-]{36}$","type":"string"},"expected_versions":{"additionalProperties":{"type":"string"},"minProperties":1,"type":"object"},"idempotency_key":{"maxLength":160,"minLength":8,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$","type":"string"},"mutation_policy":{"default":"best_effort","description":"best_effort preserves per-profile progress. atomic is all-or-none for native-controller settings only and rejects any changed profile whose current or snapshot settings select an external-agent controller.","enum":["best_effort","atomic"],"type":"string"},"settings_paths":{"default":null,"description":"Optional exact canonical paths to restore. Snapshot absence deletes the current explicit value. Omit for the existing whole-snapshot restore.","items":{"type":"string"},"maxItems":64,"minItems":1,"type":["array","null"]}},"required":["selection","snapshot_id","expected_versions","idempotency_key"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"3467ccb85c497e73467be53563628c4ab30ced153daf81ba34561ac886087d40","required_authority":"insights:settings","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"id":"settings.update","title":"Update owned bot settings","description":"Update one or more AI-page settings for an owned VTX profile after reading the current configuration and obtaining the user's approval. Use explicit setting paths and a stable idempotency key. The result reports authoritative pre/post values and references the single durable profile Changelog event. It never accepts credentials, execution-mode changes, public profiles, or another user's profile.","family":"settings","input_schema":{"additionalProperties":false,"properties":{"profile":{"description":"Owned VTX profile handle, with or without the leading @.","maxLength":65,"minLength":2,"type":"string"},"updates":{"additionalProperties":true,"description":"Uncapped AI-page setting paths and replacement values. Use settings.read first, then send only the paths the user asked to change. Credentials and execution mode are not accepted by this capability. Effective system_prompt/user_prompt read aliases are canonicalized to their owning trading_* fields. For exactly main_model_controller, review_model_controller, or screener_model_controller, null deletes the stored controller selection and restores the implicit native default; null is not a generic delete marker for other settings paths. When promoting a configured fallback to Primary, include both the lane controller and the complete external_inference_fallback_host_ids object in the same request.","minProperties":1,"type":"object"},"idempotency_key":{"description":"Stable unique key for this exact settings change.","maxLength":160,"minLength":8,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$","type":"string"}},"required":["profile","updates","idempotency_key"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"90250567dbc1db0c710880032fb269ac9f58fa45565a2d3578865aad388b1503","required_authority":"insights:settings","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"id":"trade.batch","title":"Execute owned fleet trading batch","description":"Execute an ordered, heterogeneous, resumable best-effort batch of any supported owned-profile trading actions. Ownership for the complete target set is verified before the first action; results retain every profile outcome and have no hardcoded fleet-size cap.","family":"trade","input_schema":{"$defs":{"TradeBatchAction":{"additionalProperties":false,"properties":{"action":{"enum":["market_order","limit_order","cancel_order","trigger_order","scale_order","close_position","update_leverage","close_all_positions","cancel_twap"],"type":"string"},"profile":{"description":"Owned VTX profile handle, with or without the leading @.","maxLength":65,"minLength":2,"type":"string"},"parameters":{"additionalProperties":true,"description":"Arguments for the corresponding single-profile trade capability, excluding profile and idempotency_key. Use that capability's schema as the contract.","type":"object"}},"required":["action","profile"],"type":"object"}},"additionalProperties":false,"properties":{"actions":{"description":"Ordered heterogeneous actions. The list has no VTX profile-count cap and may contain multiple actions for the same owned profile.","items":{"$ref":"#/$defs/TradeBatchAction"},"minItems":1,"type":"array"},"idempotency_key":{"description":"Stable unique key for this exact ordered batch.","maxLength":160,"minLength":8,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$","type":"string"},"mutation_policy":{"const":"best_effort","default":"best_effort","type":"string"}},"required":["actions","idempotency_key"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"2537e0a3332eaf2e416d31af1135484eee35e3c021f2300dbc8a94dc3a121c0a","required_authority":"insights:trade","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"id":"trade.cancel_order","title":"Cancel owned-profile order","description":"Cancel an exact open order for an owned VTX profile and verify from a fresh exchange read that the order is absent. If the profile has a pending Client Mode browser mutation, this action returns client_exchange_mutation_pending without calling the exchange. Wait for reconciliation, then rebuild the action from fresh state.","family":"trade","input_schema":{"additionalProperties":false,"properties":{"profile":{"description":"Owned VTX profile handle, with or without the leading @.","maxLength":65,"minLength":2,"type":"string"},"symbol":{"description":"Canonical Hyperliquid perp market, such as BTC or xyz:GOLD.","maxLength":64,"minLength":1,"type":"string"},"idempotency_key":{"description":"Stable unique key for this exact trading action.","maxLength":160,"minLength":8,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$","type":"string"},"oid":{"description":"Exchange order ID to cancel.","minimum":0,"type":"integer"}},"required":["profile","symbol","idempotency_key","oid"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"cc1bd8147e08076b61ab8a14b1cbd59bdff456da377ca8a08fe84046c8dac585","required_authority":"insights:trade","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"id":"trade.cancel_twap","title":"Cancel owned-profile TWAP","description":"Cancel one exact owned-profile TWAP order and verify its absence from fresh exchange TWAP history when the adapter exposes that state. If the profile has a pending Client Mode browser mutation, this action returns client_exchange_mutation_pending without calling the exchange. Wait for reconciliation, then rebuild the action from fresh state.","family":"trade","input_schema":{"additionalProperties":false,"properties":{"profile":{"description":"Owned VTX profile handle, with or without the leading @.","maxLength":65,"minLength":2,"type":"string"},"symbol":{"description":"Canonical Hyperliquid perp market, such as BTC or xyz:GOLD.","maxLength":64,"minLength":1,"type":"string"},"idempotency_key":{"description":"Stable unique key for this exact trading action.","maxLength":160,"minLength":8,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$","type":"string"},"twap_id":{"description":"Exchange TWAP order ID to cancel.","minimum":0,"type":"integer"}},"required":["profile","symbol","idempotency_key","twap_id"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"4d60c68a9555e5a03c3bc9d95e77e31d377b1dd6b3a5d55c7f13eb9cd8e44c70","required_authority":"insights:trade","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"id":"trade.close_all_positions","title":"Close all owned-profile positions","description":"Close every open position on an owned profile only after an explicit confirmation literal, then verify that the account is flat. If the profile has a pending Client Mode browser mutation, this action returns client_exchange_mutation_pending without calling the exchange. Wait for reconciliation, then rebuild the action from fresh state.","family":"trade","input_schema":{"additionalProperties":false,"properties":{"profile":{"maxLength":65,"minLength":2,"type":"string"},"idempotency_key":{"maxLength":160,"minLength":8,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$","type":"string"},"confirm_close_all_positions":{"const":true,"type":"boolean"}},"required":["profile","idempotency_key","confirm_close_all_positions"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"f83d46d4b8fbe1001bfd2d2be66af14efb2c38e8db0a633c549d17d529cf1223","required_authority":"insights:trade","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"id":"trade.close_position","title":"Close owned-profile position","description":"Close the complete position for one market on an owned profile and verify from a fresh exchange read that the position is flat. If the profile has a pending Client Mode browser mutation, this action returns client_exchange_mutation_pending without calling the exchange. Wait for reconciliation, then rebuild the action from fresh state.","family":"trade","input_schema":{"additionalProperties":false,"properties":{"profile":{"description":"Owned VTX profile handle, with or without the leading @.","maxLength":65,"minLength":2,"type":"string"},"symbol":{"description":"Canonical Hyperliquid perp market, such as BTC or xyz:GOLD.","maxLength":64,"minLength":1,"type":"string"},"idempotency_key":{"description":"Stable unique key for this exact trading action.","maxLength":160,"minLength":8,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$","type":"string"},"estimated_price":{"default":null,"exclusiveMinimum":0,"type":["number","null"]},"estimated_price_timestamp_ms":{"default":null,"minimum":0,"type":["integer","null"]}},"required":["profile","symbol","idempotency_key"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"7d1b75988ac33643262899be4c89db7a38ed897b492cf4a148b0c23dacde704f","required_authority":"insights:trade","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"id":"trade.limit_order","title":"Place owned-profile limit order","description":"Place an idempotent limit order for an owned VTX profile through normal rate-limit, risk, and exchange checks, then verify its filled or resting state. If the profile has a pending Client Mode browser mutation, this action returns client_exchange_mutation_pending without calling the exchange. Wait for reconciliation, then rebuild the action from fresh state.","family":"trade","input_schema":{"additionalProperties":false,"properties":{"profile":{"description":"Owned VTX profile handle, with or without the leading @.","maxLength":65,"minLength":2,"type":"string"},"symbol":{"description":"Canonical Hyperliquid perp market, such as BTC or xyz:GOLD.","maxLength":64,"minLength":1,"type":"string"},"idempotency_key":{"description":"Stable unique key for this exact trading action.","maxLength":160,"minLength":8,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$","type":"string"},"side":{"enum":["buy","sell"],"type":"string"},"size":{"description":"Positive base-asset order size.","exclusiveMinimum":0,"type":"number"},"limit_price":{"description":"Positive limit price in quote currency.","exclusiveMinimum":0,"type":"number"},"reduce_only":{"default":false,"type":"boolean"}},"required":["profile","symbol","idempotency_key","side","size","limit_price"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"6da92c13af426dedc5f8b80b237d64c216c9adf0bb847cacad7b27737c312a3e","required_authority":"insights:trade","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"id":"trade.market_order","title":"Place owned-profile market order","description":"Place an idempotent market order for an owned VTX profile through the normal rate-limit, risk, exchange, and fresh position-verification path. Set reduce_only when the order must only reduce existing exposure. If the profile has a pending Client Mode browser mutation, this action returns client_exchange_mutation_pending without calling the exchange. Wait for reconciliation, then rebuild the action from fresh state.","family":"trade","input_schema":{"additionalProperties":false,"properties":{"profile":{"description":"Owned VTX profile handle, with or without the leading @.","maxLength":65,"minLength":2,"type":"string"},"symbol":{"description":"Canonical Hyperliquid perp market, such as BTC or xyz:GOLD.","maxLength":64,"minLength":1,"type":"string"},"idempotency_key":{"description":"Stable unique key for this exact trading action.","maxLength":160,"minLength":8,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$","type":"string"},"side":{"enum":["buy","sell"],"type":"string"},"size":{"description":"Positive base-asset order size.","exclusiveMinimum":0,"type":"number"},"reduce_only":{"default":false,"description":"When true, the order may only reduce existing exposure.","type":"boolean"},"slippage":{"default":null,"description":"Optional maximum slippage fraction, for example 0.01 for 1%.","minimum":0,"type":["number","null"]},"estimated_price":{"default":null,"exclusiveMinimum":0,"type":["number","null"]},"estimated_price_timestamp_ms":{"default":null,"minimum":0,"type":["integer","null"]}},"required":["profile","symbol","idempotency_key","side","size"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"5aed371c15f8d1327e59ae3c8489d3a74dcdc049cbe857333bfb3097df0ed1f5","required_authority":"insights:trade","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"id":"trade.scale_order","title":"Place owned-profile scale order","description":"Place a ladder of owned-profile limit orders across an exact price range and retain every accepted and failed child order outcome. If the profile has a pending Client Mode browser mutation, this action returns client_exchange_mutation_pending without calling the exchange. Wait for reconciliation, then rebuild the action from fresh state.","family":"trade","input_schema":{"additionalProperties":false,"properties":{"profile":{"description":"Owned VTX profile handle, with or without the leading @.","maxLength":65,"minLength":2,"type":"string"},"symbol":{"description":"Canonical Hyperliquid perp market, such as BTC or xyz:GOLD.","maxLength":64,"minLength":1,"type":"string"},"idempotency_key":{"description":"Stable unique key for this exact trading action.","maxLength":160,"minLength":8,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$","type":"string"},"side":{"enum":["buy","sell"],"type":"string"},"total_size":{"description":"Total positive base-asset size.","exclusiveMinimum":0,"type":"number"},"price_low":{"exclusiveMinimum":0,"type":"number"},"price_high":{"exclusiveMinimum":0,"type":"number"},"order_count":{"minimum":2,"type":"integer"},"reduce_only":{"default":false,"type":"boolean"}},"required":["profile","symbol","idempotency_key","side","total_size","price_low","price_high","order_count"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"98d66dac4112768cc36eea42a962e5f52eca55b43d34161f0f760e19b07f7bf7","required_authority":"insights:trade","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"id":"trade.trigger_order","title":"Place owned-profile trigger order","description":"Place an owned-profile take-profit or stop-loss trigger order through the normal VTX exchange path and verify its filled or resting state. If the profile has a pending Client Mode browser mutation, this action returns client_exchange_mutation_pending without calling the exchange. Wait for reconciliation, then rebuild the action from fresh state.","family":"trade","input_schema":{"additionalProperties":false,"properties":{"profile":{"description":"Owned VTX profile handle, with or without the leading @.","maxLength":65,"minLength":2,"type":"string"},"symbol":{"description":"Canonical Hyperliquid perp market, such as BTC or xyz:GOLD.","maxLength":64,"minLength":1,"type":"string"},"idempotency_key":{"description":"Stable unique key for this exact trading action.","maxLength":160,"minLength":8,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$","type":"string"},"side":{"enum":["buy","sell"],"type":"string"},"size":{"description":"Positive base-asset order size.","exclusiveMinimum":0,"type":"number"},"trigger_price":{"description":"Positive trigger price.","exclusiveMinimum":0,"type":"number"},"reduce_only":{"default":true,"type":"boolean"},"is_take_profit":{"default":false,"type":"boolean"}},"required":["profile","symbol","idempotency_key","side","size","trigger_price"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"cb6435158b206aba3bf25c813d5b36346f5d0c18932e34e519c7a40bc1fa3b8f","required_authority":"insights:trade","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"id":"trade.update_leverage","title":"Update owned-profile leverage","description":"Update cross or isolated leverage for one owned-profile market through the normal configured leverage bounds and exchange checks. If the profile has a pending Client Mode browser mutation, this action returns client_exchange_mutation_pending without calling the exchange. Wait for reconciliation, then rebuild the action from fresh state.","family":"trade","input_schema":{"additionalProperties":false,"properties":{"profile":{"description":"Owned VTX profile handle, with or without the leading @.","maxLength":65,"minLength":2,"type":"string"},"symbol":{"description":"Canonical Hyperliquid perp market, such as BTC or xyz:GOLD.","maxLength":64,"minLength":1,"type":"string"},"idempotency_key":{"description":"Stable unique key for this exact trading action.","maxLength":160,"minLength":8,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$","type":"string"},"leverage":{"maximum":50,"minimum":1,"type":"integer"},"is_cross":{"default":true,"type":"boolean"}},"required":["profile","symbol","idempotency_key","leverage"],"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema"},"input_schema_sha256":"b66f6cd849c926a48f714654ce97cb49a251e3f937da50fb0394cff8c55342a7","required_authority":"insights:trade","data_populations":["owned_profiles"],"freshness":"live_authoritative_state","provenance":"required","delivery_modes":["inline"],"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"id":"trade_chain.since_change","title":"Analyze trades since a configuration or prompt change","description":"Start this artifact-first read through analysis.start. It freezes one cutoff and selected profile population, resolves the latest exact retained configuration/prompt boundary per profile, and returns one immutable body-free artifact containing effective-consumption prompt lineage, compact canonical campaign economics, provider/model reliability, typed missingness, coverage, conservation, and explicit component source-load counts.","family":"trade_chain","input_schema":{"additionalProperties":false,"properties":{"change_kind":{"default":"configuration_or_prompt","description":"Select the latest retained non-prompt configuration change, prompt change, or either kind independently for every selected profile.","enum":["configuration","prompt","configuration_or_prompt"],"type":"string"},"changed_paths":{"description":"Optional exact changed-path allowlist. A candidate event must contain at least one listed path. Paths are matched exactly and never disclose setting values.","items":{"type":"string"},"type":"array"},"discovery_start":{"default":null,"description":"Optional inclusive lower bound for retained change discovery.","format":"date-time","type":["string","null"]},"end":{"default":null,"description":"Optional inclusive end, bounded by the job's immutable cutoff.","format":"date-time","type":["string","null"]},"selection":{"additionalProperties":false,"description":"Explicit model-selected population; identity and ownership remain server-owned.","examples":[{"population":"owned_profiles"},{"handles":["@Scholes"],"population":"owned_profiles"},{"handles":["@Scholes"],"population":"public_profiles"},{"population":"whole_platform"}],"properties":{"population":{"description":"Choose owned_profiles for every profile you own or an exact owned handle subset, public_profiles for exact public handle/wallet selectors, or whole_platform for every active profile. Wallets are valid only with public_profiles, and whole_platform cannot include selectors.","enum":["owned_profiles","public_profiles","whole_platform"],"type":"string"},"handles":{"description":"Exact handles. Set with population=owned_profiles for an owned subset or with population=public_profiles for public profiles; omit for the full populations.","items":{"type":"string"},"type":"array"},"wallets":{"description":"Exact public wallet addresses. Set only with population=public_profiles; otherwise omit.","items":{"type":"string"},"type":"array"}},"required":["population"],"type":"object"}},"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["selection"]},"input_schema_sha256":"8af808ef76cddd6297e4d94a6de890c2d14dd6f69c37f964a0af0af13c378a10","required_authority":"insights:read","data_populations":["owned_profiles","public_profiles","whole_platform"],"freshness":"captured_cutoff","provenance":"required","delivery_modes":["artifact"],"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}}],"service":{"status":"available","api_version":"2026.6.22","package_version":"2026.9.3","mcp_url":"https://api.vtxmacro.com/insights/mcp","preferred_mcp_protocol_version":"2026-07-28","supported_mcp_protocol_versions":["2026-07-28","2025-11-25"],"mcp_protocol_version":"2026-07-28","server_contract":1,"checked_at":"2026-09-18T11:41:23.273325Z"}}