Skip to main content
Glama

Server Details

Policy gate and signed trust receipts for autonomous agent actions.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
InterAILabs/ai-risk-oracle
GitHub Stars
0

TDQS

A4.5/5.0

Scored across 9 tools

Disambiguation4/5

Most tools have clear, distinct responsibilities: verify_* handles verification, get_* handles retrieval, and metadata tools serve discovery. The three discovery-oriented tools overlap somewhat in intent, but their descriptions explicitly differentiate use cases, so selection should be reliable.

Naming Consistency4/5

All tool names use the oracle. prefix and lowercase snake_case, with verify_* and get_* conveying actions. The metadata tools break the verb_noun pattern by using bare nouns such as agent_card and service_descriptor, but this is a minor and readable deviation.

Tool Count5/5

Nine tools cover the server's core concerns—discovery, pricing, verification, batch, legacy, and trust receipt validation—without unnecessary bloat. Each tool maps to a distinct user need and the count is well within the ideal range.

Completeness5/5

The set covers the full lifecycle of the oracle's purpose: pricing before onboarding, discovery for integration, action/batch/legacy verification, receipt retrieval, and signature validation. No obvious dead ends remain for the stated risk-oracle domain.

Available Tools

9 tools
oracle.agent_cardA2A Agent CardA
Read-onlyIdempotent
Inspect

Read-only A2A Agent Card with agent identity, security scheme, capabilities, and skills. Use it when selecting or integrating InterAI through A2A; use oracle.service_descriptor for general service metadata or oracle.discovery_bundle for complete bootstrap context.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYes
nameYes
skillsYes
versionYes
providerNo
securityNo
descriptionYes
capabilitiesYes
securitySchemesNo
documentationUrlNo
defaultInputModesNo
defaultOutputModesNo

TDQS

A4.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description's 'Read-only' restates covered safety behavior. It adds useful context about the card's contents, but not deeper behavioral details like auth requirements, error behavior, or response semantics.

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

Conciseness5/5

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

Two sentences deliver the core purpose and contextual routing without waste. The key information is front-loaded, and the sibling guidance is packed into a single clear clause.

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

Completeness5/5

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

Given a rich output schema, clear annotations, and a description that covers both content and usage alternatives, an agent has everything needed to select and invoke this tool correctly. There are no parameters to clarify and no missing safety disclosures.

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

Parameters4/5

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

The input schema has zero parameters with 100% coverage, so there is no parameter documentation burden for the description. The zero-parameter baseline of 4 is appropriate, and no additional parameter explanation is needed.

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

Purpose5/5

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

The description clearly states the tool is a 'Read-only A2A Agent Card' and enumerates its contents: agent identity, security scheme, capabilities, and skills. It also differentiates from sibling tools by explicitly naming oracle.service_descriptor and oracle.discovery_bundle.

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

Usage Guidelines5/5

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

The description explicitly says when to use the tool ('when selecting or integrating InterAI through A2A') and directs the agent to alternatives for related use cases: oracle.service_descriptor for general service metadata and oracle.discovery_bundle for complete bootstrap context.

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

oracle.discovery_bundleDiscovery BundleA
Read-onlyIdempotent
Inspect

Read-only bootstrap or handoff bundle with service identity, interfaces, runtime mode, contracts, schemas, and sample payloads in one response. Use it for complete integration context; use oracle.service_descriptor for focused service metadata, oracle.agent_card for A2A capabilities, or oracle.get_pricing for costs.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYes
runtimeYes
samplesYes
serviceYes
discoveryYes
interfacesYes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=false. The description adds value by specifying the response contents (interfaces, contracts, schemas, sample payloads) and the 'one response' nature, but does not go beyond that with additional caveats or side effects. With strong annotations, this is sufficient.

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

Conciseness5/5

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

The description is two sentences: the first front-loads the tool's core purpose and contents, the second provides routing guidance. No wasted words or repetition of schema details.

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

Completeness5/5

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

Given the tool has zero parameters and an output schema that presumably documents the response, the description covers what the agent needs: when to use it, what it returns, and how it differs from siblings. Annotations cover safety/idempotence, so nothing is missing.

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

Parameters4/5

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

The tool has zero parameters and the schema has 100% coverage, leaving no ambiguity. The description adds no parameter details because none are needed, and it correctly focuses on capabilities rather than inputs.

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

Purpose5/5

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

The description states a clear purpose: a read-only bootstrap or handoff bundle that returns service identity, interfaces, runtime mode, contracts, schemas, and sample payloads in one response. It also names alternative sibling tools for different use cases, making it easy to distinguish from related tools.

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

Usage Guidelines5/5

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

Explicit guidance is provided: use this tool for complete integration context, and use oracle.service_descriptor, oracle.agent_card, or oracle.get_pricing for more focused needs. This gives an agent clear routing rules.

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

oracle.get_pricingGet PricingA
Read-onlyIdempotent
Inspect

Read-only public metadata for costs, trial availability, idempotency, and top-up or payment paths. Use it before budgeting or onboarding; it does not evaluate risk or create a trust receipt.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
authYes
demoYes
unitYes
chainYes
modelYes
topupYes
trialYes
verifyYes
currencyYes
protocolsYes
idempotencyYes
verify_batchYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already convey readOnly, idempotent, and non-destructive behavior. The description adds meaningful context: that the data is public, that it does not evaluate risk or create a trust receipt, and that it's safe to use in planning flows. No contradiction with annotations.

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

Conciseness5/5

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

Two tight sentences: the first states purpose and scope, the second states suggested usage and an important non-goal. No filler or redundancy.

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

Completeness5/5

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

With zero parameters and an output schema present, the description fully covers when to use it, what it covers, what it avoids, and its limitations. Nothing else an agent needs to know before calling it is missing.

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

Parameters4/5

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

The tool has zero parameters, so the description has no parameter-related burden. The baseline for zero parameters is 4; the description doesn't provide any parameter semantics because none exist and none are needed.

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

Purpose5/5

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

The description states a clear read-only intent and enumerates the exact domains covered (costs, trial availability, idempotency, top-up/payment paths). It also explicitly differentiates itself from siblings by stating it does not evaluate risk or create trust receipts.

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

Usage Guidelines4/5

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

It gives an explicit 'when to use' trigger: before budgeting or onboarding. It also states what it does NOT do (risk evaluation, trust receipt creation), which encourages the agent to look elsewhere, but it doesn't name the alternative tools directly.

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

oracle.get_trust_receiptGet Trust ReceiptA
Read-onlyIdempotent
Inspect

Read-only lookup of the canonical public representation and signature metadata for a trust receipt that already exists. Supply receipt_id. It does not create or re-run a decision; use oracle.verify_trust_receipt_signature when the goal is signature validation.

ParametersJSON Schema
NameRequiredDescriptionDefault
receipt_idYesIdentifier of the existing InterAI trust receipt whose canonical public representation and signature metadata should be returned.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
trustYes
receiptYes
verificationYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds useful behavioral context by clarifying it does not create or re-run a decision and that the receipt must already exist, which goes beyond the annotations' implicit implications.

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

Conciseness5/5

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

Two sentences accomplish everything: the first states the operation and its scope, the second explicitly excludes common misconceptions and routes to the sibling. There is zero waste and all information is front-loaded.

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

Completeness5/5

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

With a single parameter, 100% schema coverage, and an output schema, the description provides all necessary context. It also tells the agent when not to use the tool. Nothing needed for correct invocation is missing.

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

Parameters3/5

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

Schema description coverage is 100% and the sole parameter receipt_id is fully documented. The description mentions 'Supply receipt_id' but adds no new meaning beyond that; the schema already explains the identifier. Baseline 3 is correct.

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

Purpose5/5

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

The description states a specific verb ('Read-only lookup') and resource ('canonical public representation and signature metadata for a trust receipt'). It distinguishes itself from the sibling oracle.verify_trust_receipt_signature by explicitly naming it, so an agent can tell them apart without opening schemas.

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

Usage Guidelines5/5

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

The description identifies when to use this tool (already-existing receipts) and when not to ('It does not create or re-run a decision') and explicitly points to the correct alternative (oracle.verify_trust_receipt_signature) when validation is the goal. Nothing is left to inference.

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

oracle.service_descriptorService DescriptorA
Read-onlyIdempotent
Inspect

Read-only general service descriptor with identity, endpoints, billing, trust, and supported agent protocols. Use it to inspect service-level integration metadata; use oracle.agent_card for A2A skills or oracle.discovery_bundle for the complete bootstrap package.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
nameYes
billingYes
versionYes
discoveryYes
endpointsYes
descriptionYes
agent_protocolsYes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds value beyond annotations by revealing the descriptor's internal contents (identity, endpoints, billing, trust, agent protocols), giving the agent a sense of what to expect. Clear read-only framing reinforces, not contradicts, the annotations.

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

Conciseness5/5

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

Two tight sentences with zero filler. The first sentence front-loads the core purpose and content scope; the second provides routing guidance. Every sentence earns its place.

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

Completeness5/5

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

For a no-parameter, read-only tool with an output schema and comprehensive annotations, the description covers everything an agent needs: what it is, what it contains, when to use it, and which siblings to choose instead. Nothing essential is missing.

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

Parameters4/5

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

The tool has 0 parameters, so per the baseline for zero-parameter tools, the description isn't obligated to document parameters. It adds value by foreshadowing the output domains (identity, endpoints, billing, trust, protocols) even though no parameter details are needed.

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

Purpose5/5

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

The description states a specific purpose: a general service descriptor containing identity, endpoints, billing, trust, and supported agent protocols. It explicitly distinguishes itself from oracle.agent_card and oracle.discovery_bundle, so an agent can tell this tool apart from its siblings without inspecting schemas.

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

Usage Guidelines5/5

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

The description gives explicit routing: use this for service-level integration metadata, use oracle.agent_card for A2A skills, and oracle.discovery_bundle for the complete bootstrap package. Both the when-to-use and the when-not-to conditions are named with concrete sibling alternatives.

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

oracle.verify_autonomous_actionVerify Autonomous ActionAInspect

Primary tool for one concrete proposed autonomous action before it executes. This authenticated prepaid verification may consume account balance and records a signed trust receipt; InterAI evaluates the proposal but does not execute or modify the proposed external action. Reuse idempotency_key only when retrying the same logical request to avoid duplicate billing. Returns allow, review_required, or block with policy signals. Use oracle.verify_batch for multiple independent items and oracle.verify_response only for legacy prompt/response compatibility.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoVerification mode. Use fast_heuristic for the default low-latency path or semantic_judge when a semantic model judgment is explicitly required.
actionYesThe proposed action. For executable pilot authorization use interai-canonical-action/v1 with host-registry tool_id, type, operation, exact arguments, and explicit side-effect semantics.
domainNoOptional domain label used to provide verification context. It does not replace the exact action, context, or policy inputs.
policyNoOptional strictly validated caller-scoped restrictions. They may tighten the boundary but cannot weaken host or account policy.
contextNoOptional runtime context surrounding the proposed action, such as environment, agent identity, counterparty, user confirmation, or other facts relevant to this decision.
use_caseYesStable identifier describing why the exact autonomous action is being proposed. Required together with action for the autonomous_execution contract.
idempotency_keyNoStable caller-provided key for retrying the same billed verification without duplicating the economic operation. Reuse it only for the same logical request.
execution_contextNoHost-attested execution context bound to a canonical action. InterAI authenticates the account, not the truth of host-provided workspace, actor, run, or environment values.
external_evidenceNoOptional signed or verifiable external assertions. Current Stage 2 evidence is parsed, verified, bound, and recorded as non-authoritative evidence; it does not directly determine the InterAI execution decision or risk score.
authorization_ttl_secondsNoLifetime of a single-use execution authorization for a canonical action. Only Bearer-authenticated pilot requests receive executable authorization material.

Output Schema

ParametersJSON Schema
NameRequiredDescription
billedYesBilling metadata for this verification call.
resultYesPre-execution decision, policy evaluation, signals, and trust-receipt evidence.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations include readOnlyHint=false, destructiveHint=false, and idempotentHint=false, so the description correctly doesn't claim read-only or idempotent behavior. The description adds critical behavioral context beyond annotations: it consumes account balance, records a signed trust receipt, does not execute or modify the proposed external action, and returns specific verdicts. This is substantial value-added disclosure that the annotations don't provide, so while the annotation coverage is not full, the description compensates well. The only minor gap is the lack of detail on billing mechanics beyond 'may consume account balance'.

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

Conciseness3/5

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

The description is a dense paragraph of 4 sentences, but it front-loads the primary purpose and delivers critical usage guidance in a compact form. However, given the tool's extreme complexity (as evidenced by the massive schema), the description is quite brief relative to the decision complexity. It does cover the essentials without fluff, but a slightly more structured format (e.g., bullet points for return values and exclusions) could improve scannability for an agent. It's not verbose, but it's also not optimally structured for the complexity.

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

Completeness5/5

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

Given the tool's complexity (10 params, nested objects, output schema, multiple modes), the description is remarkably complete. It covers the tool's role, billing consequences, non-execution guarantee, idempotency, return values, and sibling alternatives. The output schema already exists, so the description doesn't need to detail return format. The only thing missing is an explicit mention of authorization_ttl_seconds, but that is a minor edge case covered by the schema's description. Overall, an agent has enough information to correctly invoke this tool.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3, but the description adds meaning for key parameters. It explains the idempotency_key's purpose and reuse condition, clarifies that mode has fast_heuristic vs semantic_judge, and explains the action schema's use for 'executable pilot authorization'. This goes beyond the schema's per-property descriptions by explaining the relationship between use_case and action, and how policy restrictions interact with host policy. Therefore, a 4 is warranted.

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

Purpose5/5

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

The description starts with 'Primary tool for one concrete proposed autonomous action before it executes', clearly stating the verb (verify) and resource (one autonomous action). It distinguishes from siblings by naming oracle.verify_batch and oracle.verify_response with their specific use cases, making it easy for an agent to select this tool over alternatives.

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

Usage Guidelines5/5

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

The description explicitly states 'Use oracle.verify_batch for multiple independent items and oracle.verify_response only for legacy prompt/response compatibility', providing clear when-to-use and when-not-to-use guidance. It also mentions the idempotency_key reuse condition, which is a critical usage guideline for avoiding duplicate billing.

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

oracle.verify_batchVerify BatchAInspect

Use for multiple independent legacy or autonomous verification items in one authenticated prepaid call (1 to 100). The batch may consume account balance and records one trust receipt per item; InterAI does not execute any proposed external action. Reuse idempotency_key only for the same logical batch retry. For one proposed action, use oracle.verify_autonomous_action instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesIndependent verification items. Each item must contain either prompt + response or use_case + action; 1 to 100 items are accepted.
idempotency_keyNoStable caller-provided key for retrying the same billed verification without duplicating the economic operation. Reuse it only for the same logical request.

Output Schema

ParametersJSON Schema
NameRequiredDescription
billedYesBilling metadata for the batch operation.
oracleYesInterAI engine and signing metadata.
resultsYesIndependent verification decisions in the same order as the submitted items.
summaryYesAggregate batch summary.
batch_sizeYesNumber of independently evaluated batch items.

TDQS

A4.4/5.0
Behavior4/5

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

The description discloses key behaviors beyond the annotations: it consumes account balance ('The batch may consume account balance'), records one trust receipt per item, and explicitly states 'InterAI does not execute any proposed external action.' It also mentions the authenticated and prepaid nature of the call. These details add significant context that the annotations (all false) do not provide. It does not cover potential partial-failure semantics, but the disclosed behaviors are substantial.

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

Conciseness5/5

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

The description is three sentences, front-loaded with the primary purpose and scope, followed by behavioral notes and a sibling alternative. Every sentence adds distinct value with no repetition or filler, making it highly concise and efficient for an agent to parse.

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

Completeness4/5

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

Given the tool's complexity (batch of up to 100 items, two distinct contracts, idempotency), the description covers the essential points: what it does, economic impact, non-execution, and the single-action alternative. The schema is extremely detailed, and an output schema exists, so the description need not explain return values. It might have mentioned partial-failure behavior, but overall it is sufficient for an agent to decide when and how to use it.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema already provides detailed descriptions for both parameters (items and idempotency_key). The tool description adds little parameter-specific meaning beyond the schema; for instance, it repeats the idempotency_key guidance already present in the schema ('Reuse it only for the same logical request' vs 'Reuse idempotency_key only for the same logical batch retry'). This matches the baseline of 3 for high schema coverage with minimal additional description value.

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

Purpose5/5

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

The description states a specific verb and resource: 'Use for multiple independent legacy or autonomous verification items in one authenticated prepaid call (1 to 100).' It clearly distinguishes from the sibling by naming the alternative: 'For one proposed action, use oracle.verify_autonomous_action instead.' This fully disambiguates the tool's role among the batch of siblings.

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

Usage Guidelines5/5

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

It explicitly states when to use the tool (multiple independent items) and explicitly names the alternative for a single action. It also gives guidance on idempotency_key reuse: 'Reuse idempotency_key only for the same logical batch retry,' which is a clear behavioral instruction. The context of 'authenticated prepaid call' further clarifies the usage scenario.

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

oracle.verify_responseVerify Response (Legacy)AInspect

Legacy compatibility entry point for existing clients. This authenticated prepaid verification may consume account balance and records a trust receipt, but it does not execute any proposed external action. Supply exactly one contract: prompt + response, or use_case + action; never mix them. Reuse idempotency_key only for the same logical retry. For new action preflight use oracle.verify_autonomous_action; use oracle.verify_batch for multiple items.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoVerification mode. Use fast_heuristic for the default low-latency path or semantic_judge when a semantic model judgment is explicitly required.
actionNoThe proposed action. For executable pilot authorization use interai-canonical-action/v1 with host-registry tool_id, type, operation, exact arguments, and explicit side-effect semantics.
domainNoOptional domain label used to provide verification context. It does not replace the exact action, context, or policy inputs.
policyNoOptional strictly validated caller-scoped restrictions. They may tighten the boundary but cannot weaken host or account policy.
promptNoLegacy compatibility input: the original prompt whose response is being verified. Use together with response, not with autonomous action fields.
contextNoOptional runtime context surrounding the proposed action, such as environment, agent identity, counterparty, user confirmation, or other facts relevant to this decision.
responseNoLegacy compatibility input: the response to evaluate against prompt. Use together with prompt, not with autonomous action fields.
use_caseNoStable identifier describing why the exact autonomous action is being proposed. Required together with action for the autonomous_execution contract.
idempotency_keyNoStable caller-provided key for retrying the same billed verification without duplicating the economic operation. Reuse it only for the same logical request.
execution_contextNoHost-attested execution context bound to a canonical action. InterAI authenticates the account, not the truth of host-provided workspace, actor, run, or environment values.
external_evidenceNoOptional signed or verifiable external assertions. Current Stage 2 evidence is parsed, verified, bound, and recorded as non-authoritative evidence; it does not directly determine the InterAI execution decision or risk score.
authorization_ttl_secondsNoLifetime of a single-use execution authorization for a canonical action. Only Bearer-authenticated pilot requests receive executable authorization material.

Output Schema

ParametersJSON Schema
NameRequiredDescription
billedYesBilling metadata for this verification call.
resultYesPre-execution decision, policy evaluation, signals, and trust-receipt evidence.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations (readOnlyHint=false, idempotentHint=false) only hint at non-read-only and non-idempotent behaviorUTES. The description substantially adds critical context: it explicitly states the operation may consume account balance, records a trust receipt, and does not execute any proposed external action. It also warns about idempotency_key reuse semantics, going far beyond annotation hints. No contradiction with annotations.

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

Conciseness5/5

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

The description is three efficient sentences. It front-loads the legacy status, then discloses billing/side-effect behavior, then states the contract ruleley and idempotency constraint, and finally routes to siblings. Every sentence carries essential information; no filler or redundant explanation.

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

Completeness5/5

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

Given the tool's complexity (nested schemas, billing side effects, contract variants) and the presence of a full output schema, the description covers all operational essentials: legacy purpose, billing impact, trust receipt, non-execution guarantee, contract exclusivity, idempotency, and sibling routing. An agent has everything needed to decide when and how to invoke this tool correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters in detail. The description reinforces the two-contract exclusivity and idempotency_key reuse rule, but these rules are already present in the schema's oneOf descriptions and the idempotency_key field description. Thus the description adds no new parameter-level meaning; baseline 3 is appropriate.

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

Purpose5/5

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

The description states a specific action (verify a response or action compatibility), identifies the resource (legacy clients), and clearly differentiates from siblings by naming oracle.verify_autonomous_action and oracle.verify_batch as alternatives. The legacy status and the two exclusive contract forms are explicit, leaving no ambiguity about what this tool does.

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

Usage Guidelines5/5

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

The description gives explicit when-to-use guidance: it is for existing legacy clients, and new action preflight should use oracle.verify_autonomous_action; multiple items should use oracle.verify_batch. It also provides a strict contract rule ('Supply exactly one contract... never mix them') and idempotency guidance, covering both invocation and alternative routing.

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

oracle.verify_trust_receipt_signatureVerify Trust Receipt SignatureA
Read-onlyIdempotent
Inspect

Read-only service-side validation of a trust receipt that already exists. Supply signature plus either receipt_id for the canonical server-stored receipt or a caller-supplied receipt object. Returns valid true or false when signing is enabled. Current signatures use HMAC-SHA256 and are service-verifiable by InterAI, not independent offline public-key proofs. It does not evaluate risk or create a receipt; use oracle.get_trust_receipt to retrieve receipt metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
receiptNoOptional caller-supplied receipt object, typically evidence received from another agent or system. Either receipt or receipt_id is required.
signatureYesHMAC-SHA256 signature to validate against the referenced InterAI receipt. Required.
receipt_idNoOptional ID of an existing InterAI trust receipt. InterAI resolves the canonical server-stored record before validating the supplied signature. Either receipt_id or receipt is required.
signature_algNoOptional signature algorithm declaration. The current supported value is hmac-sha256.
signed_payloadNoOptional exact serialized payload that was signed. Supply it when validating externally transported receipt evidence that includes the original signed payload.

Output Schema

ParametersJSON Schema
NameRequiredDescription
validYesWhether the supplied signature matches the referenced stored receipt.
signature_algYesSignature algorithm used by the current InterAI receipt verifier.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already establish read-only, idempotent, non-destructive behavior. The description adds meaningful behavioral context: HMAC-SHA256 current signatures, service-verifiable by InterAI rather than independent offline public-key proofs, and boolean return behavior when signing is enabled.

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

Conciseness5/5

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

The description is compact, front-loaded with the core purpose, and every sentence adds distinct value: inputs, return behavior, cryptographic caveat, and exclusions.

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

Completeness5/5

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

Given the rich schema, output schema, and annotations, the description covers everything needed to invoke the tool correctly: what it validates, which inputs to provide, what it returns, and what it intentionally does not do.

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

Parameters3/5

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

Schema coverage is 100%, and each parameter already has a solid description including the either/or relationship between receipt and receipt_id. The tool description summarizes the input pattern but does not materially add semantics beyond the schema.

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

Purpose5/5

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

The description names a specific verb and resource: read-only service-side validation of an existing trust receipt. It also differentiates itself from oracle.get_trust_receipt by explicitly saying it validates rather than retrieves or creates.

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

Usage Guidelines5/5

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

It clearly states the required inputs: signature plus either receipt_id or a caller-supplied receipt. It also gives an explicit exclusion ('does not evaluate risk or create a receipt') and points to oracle.get_trust_receipt as the retrieval alternative.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updates
    • Changedoracle.verify_autonomous_action7 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"The exact proposed action that would execute if allowed. Include the operation and consequential properties relevant to the decision, such as money movement, external side effects, irreversibility, destination, or affected resource."New value: +"The proposed action. For executable pilot authorization use interai-canonical-action/v1 with host-registry tool_id, type, operation, exact arguments, and explicit side-effect semantics."
      • addedInput schema / properties / action / properties
        Added value: +{
        +  "arguments": {
        +    "type": "object"
        +  },
        +  "destination": {
        +    "minLength": 1,
        +    "pattern": "\\S",
        +    "type": "string"
        +  },
        +  "external_side_effect": {
        +    "type": "boolean"
        +  },
        +  "irreversible": {
        +    "type": "boolean"
        +  },
        +  "operation": {
        +    "minLength": 1,
        +    "pattern": "\\S",
        +    "type": "string"
        +  },
        +  "resource": {
        +    "minLength": 1,
        +    "pattern": "\\S",
        +    "type": "string"
        +  },
        +  "schema": {
        +    "const": "interai-canonical-action/v1",
        +    "type": "string"
        +  },
        +  "tool_id": {
        +    "minLength": 1,
        +    "pattern": "\\S",
        +    "type": "string"
        +  },
        +  "type": {
        +    "minLength": 1,
        +    "pattern": "\\S",
        +    "type": "string"
        +  }
        +}
      • addedInput schema / properties / authorization_ttl_seconds
        Added value: +{
        +  "default": 60,
        +  "description": "Lifetime of a single-use execution authorization for a canonical action. Only Bearer-authenticated pilot requests receive executable authorization material.",
        +  "maximum": 300,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / execution_context
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Host-attested execution context bound to a canonical action. InterAI authenticates the account, not the truth of host-provided workspace, actor, run, or environment values.",
        +  "properties": {
        +    "actor_id": {
        +      "minLength": 1,
        +      "pattern": "\\S",
        +      "type": "string"
        +    },
        +    "environment": {
        +      "minLength": 1,
        +      "pattern": "\\S",
        +      "type": "string"
        +    },
        +    "run_id": {
        +      "minLength": 1,
        +      "pattern": "\\S",
        +      "type": "string"
        +    },
        +    "schema": {
        +      "const": "interai-host-execution-context/v1",
        +      "type": "string"
        +    },
        +    "workspace_id": {
        +      "minLength": 1,
        +      "pattern": "\\S",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "schema",
        +    "workspace_id",
        +    "environment"
        +  ],
        +  "type": "object"
        +}
      • changedInput schema / properties / policy / additionalProperties
        Previous value: -trueNew value: +false
      • changedInput schema / properties / policy / description
        Previous value: -"Optional caller-scoped restrictions for this request. Caller policy may tighten the effective decision boundary but cannot weaken authoritative InterAI host or resolved account policy."New value: +"Optional strictly validated caller-scoped restrictions. They may tighten the boundary but cannot weaken host or account policy."
      • addedInput schema / properties / policy / properties
        Added value: +{
        +  "allowed_action_types": {
        +    "items": {
        +      "maxLength": 128,
        +      "minLength": 1,
        +      "pattern": "\\S",
        +      "type": "string"
        +    },
        +    "maxItems": 100,
        +    "type": "array"
        +  },
        +  "allowed_action_types_enforced": {
        +    "type": "boolean"
        +  },
        +  "amount_usd_limit": {
        +    "minimum": 0,
        +    "type": "number"
        +  },
        +  "blocked_action_types": {
        +    "items": {
        +      "maxLength": 128,
        +      "minLength": 1,
        +      "pattern": "\\S",
        +      "type": "string"
        +    },
        +    "maxItems": 100,
        +    "type": "array"
        +  },
        +  "max_risk_level": {
        +    "enum": [
        +      "low",
        +      "medium",
        +      "high"
        +    ],
        +    "type": "string"
        +  },
        +  "require_human_review_above": {
        +    "maximum": 1,
        +    "minimum": 0,
        +    "type": "number"
        +  },
        +  "require_trust_receipt": {
        +    "type": "boolean"
        +  },
        +  "require_user_confirmation_for_irreversible": {
        +    "type": "boolean"
        +  }
        +}
    • Changedoracle.verify_batch8 fields changed
      • changedInput schema / properties / items / items / oneOf
        Previous value: -[
        -  {
        -    "description": "Legacy batch item requiring prompt and response and excluding autonomous action fields.",
        -    "not": {
        -      "anyOf": [
        -        {
        -          "required": [
        -            "use_case"
        -          ]
        -        },
        -        {
        -          "required": [
        -            "action"
        -          ]
        -        },
        -        {
        -          "required": [
        -            "context"
        -          ]
        -        },
        -        {
        -          "required": [
        -            "policy"
        -          ]
        -        },
        -        {
        -          "required": [
        -            "external_evidence"
        -          ]
        -        }
        -      ]
        -    },
        -    "required": [
        -      "prompt",
        -      "response"
        -    ]
        -  },
        -  {
        -    "description": "Autonomous batch item requiring use_case and action and excluding legacy prompt/response fields.",
        -    "not": {
        -      "anyOf": [
        -        {
        -          "required": [
        -            "prompt"
        -          ]
        -        },
        -        {
        -          "required": [
        -            "response"
        -          ]
        -        }
        -      ]
        -    },
        -    "required": [
        -      "use_case",
        -      "action"
        -    ]
        -  }
        -]New value: +[
        +  {
        +    "description": "Legacy batch item requiring prompt and response and excluding autonomous action fields.",
        +    "not": {
        +      "anyOf": [
        +        {
        +          "required": [
        +            "use_case"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "action"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "execution_context"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "authorization_ttl_seconds"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "context"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "policy"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "external_evidence"
        +          ]
        +        }
        +      ]
        +    },
        +    "required": [
        +      "prompt",
        +      "response"
        +    ]
        +  },
        +  {
        +    "description": "Autonomous batch item requiring use_case and action and excluding legacy prompt/response fields.",
        +    "not": {
        +      "anyOf": [
        +        {
        +          "required": [
        +            "prompt"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "response"
        +          ]
        +        }
        +      ]
        +    },
        +    "required": [
        +      "use_case",
        +      "action"
        +    ]
        +  }
        +]
      • changedInput schema / properties / items / items / properties / action / description
        Previous value: -"The exact proposed action that would execute if allowed. Include the operation and consequential properties relevant to the decision, such as money movement, external side effects, irreversibility, destination, or affected resource."New value: +"The proposed action. For executable pilot authorization use interai-canonical-action/v1 with host-registry tool_id, type, operation, exact arguments, and explicit side-effect semantics."
      • addedInput schema / properties / items / items / properties / action / properties
        Added value: +{
        +  "arguments": {
        +    "type": "object"
        +  },
        +  "destination": {
        +    "minLength": 1,
        +    "pattern": "\\S",
        +    "type": "string"
        +  },
        +  "external_side_effect": {
        +    "type": "boolean"
        +  },
        +  "irreversible": {
        +    "type": "boolean"
        +  },
        +  "operation": {
        +    "minLength": 1,
        +    "pattern": "\\S",
        +    "type": "string"
        +  },
        +  "resource": {
        +    "minLength": 1,
        +    "pattern": "\\S",
        +    "type": "string"
        +  },
        +  "schema": {
        +    "const": "interai-canonical-action/v1",
        +    "type": "string"
        +  },
        +  "tool_id": {
        +    "minLength": 1,
        +    "pattern": "\\S",
        +    "type": "string"
        +  },
        +  "type": {
        +    "minLength": 1,
        +    "pattern": "\\S",
        +    "type": "string"
        +  }
        +}
      • addedInput schema / properties / items / items / properties / authorization_ttl_seconds
        Added value: +{
        +  "default": 60,
        +  "description": "Lifetime of a single-use execution authorization for a canonical action. Only Bearer-authenticated pilot requests receive executable authorization material.",
        +  "maximum": 300,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / items / items / properties / execution_context
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Host-attested execution context bound to a canonical action. InterAI authenticates the account, not the truth of host-provided workspace, actor, run, or environment values.",
        +  "properties": {
        +    "actor_id": {
        +      "minLength": 1,
        +      "pattern": "\\S",
        +      "type": "string"
        +    },
        +    "environment": {
        +      "minLength": 1,
        +      "pattern": "\\S",
        +      "type": "string"
        +    },
        +    "run_id": {
        +      "minLength": 1,
        +      "pattern": "\\S",
        +      "type": "string"
        +    },
        +    "schema": {
        +      "const": "interai-host-execution-context/v1",
        +      "type": "string"
        +    },
        +    "workspace_id": {
        +      "minLength": 1,
        +      "pattern": "\\S",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "schema",
        +    "workspace_id",
        +    "environment"
        +  ],
        +  "type": "object"
        +}
      • changedInput schema / properties / items / items / properties / policy / additionalProperties
        Previous value: -trueNew value: +false
      • changedInput schema / properties / items / items / properties / policy / description
        Previous value: -"Optional caller-scoped restrictions for this request. Caller policy may tighten the effective decision boundary but cannot weaken authoritative InterAI host or resolved account policy."New value: +"Optional strictly validated caller-scoped restrictions. They may tighten the boundary but cannot weaken host or account policy."
      • addedInput schema / properties / items / items / properties / policy / properties
        Added value: +{
        +  "allowed_action_types": {
        +    "items": {
        +      "maxLength": 128,
        +      "minLength": 1,
        +      "pattern": "\\S",
        +      "type": "string"
        +    },
        +    "maxItems": 100,
        +    "type": "array"
        +  },
        +  "allowed_action_types_enforced": {
        +    "type": "boolean"
        +  },
        +  "amount_usd_limit": {
        +    "minimum": 0,
        +    "type": "number"
        +  },
        +  "blocked_action_types": {
        +    "items": {
        +      "maxLength": 128,
        +      "minLength": 1,
        +      "pattern": "\\S",
        +      "type": "string"
        +    },
        +    "maxItems": 100,
        +    "type": "array"
        +  },
        +  "max_risk_level": {
        +    "enum": [
        +      "low",
        +      "medium",
        +      "high"
        +    ],
        +    "type": "string"
        +  },
        +  "require_human_review_above": {
        +    "maximum": 1,
        +    "minimum": 0,
        +    "type": "number"
        +  },
        +  "require_trust_receipt": {
        +    "type": "boolean"
        +  },
        +  "require_user_confirmation_for_irreversible": {
        +    "type": "boolean"
        +  }
        +}
    • Changedoracle.verify_response8 fields changed
      • changedInput schema / oneOf
        Previous value: -[
        -  {
        -    "description": "Legacy verification contract. Requires both prompt and response and excludes autonomous action, context, policy, and external evidence fields.",
        -    "not": {
        -      "anyOf": [
        -        {
        -          "required": [
        -            "use_case"
        -          ]
        -        },
        -        {
        -          "required": [
        -            "action"
        -          ]
        -        },
        -        {
        -          "required": [
        -            "context"
        -          ]
        -        },
        -        {
        -          "required": [
        -            "policy"
        -          ]
        -        },
        -        {
        -          "required": [
        -            "external_evidence"
        -          ]
        -        }
        -      ]
        -    },
        -    "required": [
        -      "prompt",
        -      "response"
        -    ]
        -  },
        -  {
        -    "description": "Autonomous execution compatibility contract. Requires use_case and action and excludes legacy prompt/response fields. New integrations should prefer oracle.verify_autonomous_action.",
        -    "not": {
        -      "anyOf": [
        -        {
        -          "required": [
        -            "prompt"
        -          ]
        -        },
        -        {
        -          "required": [
        -            "response"
        -          ]
        -        }
        -      ]
        -    },
        -    "required": [
        -      "use_case",
        -      "action"
        -    ]
        -  }
        -]New value: +[
        +  {
        +    "description": "Legacy verification contract. Requires both prompt and response and excludes autonomous action, context, policy, and external evidence fields.",
        +    "not": {
        +      "anyOf": [
        +        {
        +          "required": [
        +            "use_case"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "action"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "execution_context"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "authorization_ttl_seconds"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "context"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "policy"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "external_evidence"
        +          ]
        +        }
        +      ]
        +    },
        +    "required": [
        +      "prompt",
        +      "response"
        +    ]
        +  },
        +  {
        +    "description": "Autonomous execution compatibility contract. Requires use_case and action and excludes legacy prompt/response fields. New integrations should prefer oracle.verify_autonomous_action.",
        +    "not": {
        +      "anyOf": [
        +        {
        +          "required": [
        +            "prompt"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "response"
        +          ]
        +        }
        +      ]
        +    },
        +    "required": [
        +      "use_case",
        +      "action"
        +    ]
        +  }
        +]
      • changedInput schema / properties / action / description
        Previous value: -"The exact proposed action that would execute if allowed. Include the operation and consequential properties relevant to the decision, such as money movement, external side effects, irreversibility, destination, or affected resource."New value: +"The proposed action. For executable pilot authorization use interai-canonical-action/v1 with host-registry tool_id, type, operation, exact arguments, and explicit side-effect semantics."
      • addedInput schema / properties / action / properties
        Added value: +{
        +  "arguments": {
        +    "type": "object"
        +  },
        +  "destination": {
        +    "minLength": 1,
        +    "pattern": "\\S",
        +    "type": "string"
        +  },
        +  "external_side_effect": {
        +    "type": "boolean"
        +  },
        +  "irreversible": {
        +    "type": "boolean"
        +  },
        +  "operation": {
        +    "minLength": 1,
        +    "pattern": "\\S",
        +    "type": "string"
        +  },
        +  "resource": {
        +    "minLength": 1,
        +    "pattern": "\\S",
        +    "type": "string"
        +  },
        +  "schema": {
        +    "const": "interai-canonical-action/v1",
        +    "type": "string"
        +  },
        +  "tool_id": {
        +    "minLength": 1,
        +    "pattern": "\\S",
        +    "type": "string"
        +  },
        +  "type": {
        +    "minLength": 1,
        +    "pattern": "\\S",
        +    "type": "string"
        +  }
        +}
      • addedInput schema / properties / authorization_ttl_seconds
        Added value: +{
        +  "default": 60,
        +  "description": "Lifetime of a single-use execution authorization for a canonical action. Only Bearer-authenticated pilot requests receive executable authorization material.",
        +  "maximum": 300,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / execution_context
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Host-attested execution context bound to a canonical action. InterAI authenticates the account, not the truth of host-provided workspace, actor, run, or environment values.",
        +  "properties": {
        +    "actor_id": {
        +      "minLength": 1,
        +      "pattern": "\\S",
        +      "type": "string"
        +    },
        +    "environment": {
        +      "minLength": 1,
        +      "pattern": "\\S",
        +      "type": "string"
        +    },
        +    "run_id": {
        +      "minLength": 1,
        +      "pattern": "\\S",
        +      "type": "string"
        +    },
        +    "schema": {
        +      "const": "interai-host-execution-context/v1",
        +      "type": "string"
        +    },
        +    "workspace_id": {
        +      "minLength": 1,
        +      "pattern": "\\S",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "schema",
        +    "workspace_id",
        +    "environment"
        +  ],
        +  "type": "object"
        +}
      • changedInput schema / properties / policy / additionalProperties
        Previous value: -trueNew value: +false
      • changedInput schema / properties / policy / description
        Previous value: -"Optional caller-scoped restrictions for this request. Caller policy may tighten the effective decision boundary but cannot weaken authoritative InterAI host or resolved account policy."New value: +"Optional strictly validated caller-scoped restrictions. They may tighten the boundary but cannot weaken host or account policy."
      • addedInput schema / properties / policy / properties
        Added value: +{
        +  "allowed_action_types": {
        +    "items": {
        +      "maxLength": 128,
        +      "minLength": 1,
        +      "pattern": "\\S",
        +      "type": "string"
        +    },
        +    "maxItems": 100,
        +    "type": "array"
        +  },
        +  "allowed_action_types_enforced": {
        +    "type": "boolean"
        +  },
        +  "amount_usd_limit": {
        +    "minimum": 0,
        +    "type": "number"
        +  },
        +  "blocked_action_types": {
        +    "items": {
        +      "maxLength": 128,
        +      "minLength": 1,
        +      "pattern": "\\S",
        +      "type": "string"
        +    },
        +    "maxItems": 100,
        +    "type": "array"
        +  },
        +  "max_risk_level": {
        +    "enum": [
        +      "low",
        +      "medium",
        +      "high"
        +    ],
        +    "type": "string"
        +  },
        +  "require_human_review_above": {
        +    "maximum": 1,
        +    "minimum": 0,
        +    "type": "number"
        +  },
        +  "require_trust_receipt": {
        +    "type": "boolean"
        +  },
        +  "require_user_confirmation_for_irreversible": {
        +    "type": "boolean"
        +  }
        +}
  2. 9 tool updates
    • Changedoracle.agent_card1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "description": "InterAI A2A Agent Card returned as machine-readable JSON.",
        +  "properties": {
        +    "capabilities": {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    "defaultInputModes": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "defaultOutputModes": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "description": {
        +      "type": "string"
        +    },
        +    "documentationUrl": {
        +      "type": "string"
        +    },
        +    "name": {
        +      "type": "string"
        +    },
        +    "provider": {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    "security": {
        +      "type": "array"
        +    },
        +    "securitySchemes": {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    "skills": {
        +      "items": {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "url": {
        +      "type": "string"
        +    },
        +    "version": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "description",
        +    "url",
        +    "version",
        +    "capabilities",
        +    "skills"
        +  ],
        +  "type": "object"
        +}
    • Changedoracle.discovery_bundle1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "description": "Complete machine-readable InterAI integration bundle for bootstrap and handoff.",
        +  "properties": {
        +    "discovery": {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    "interfaces": {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    "name": {
        +      "type": "string"
        +    },
        +    "runtime": {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    "samples": {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    "service": {
        +      "additionalProperties": true,
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "service",
        +    "runtime",
        +    "discovery",
        +    "interfaces",
        +    "samples"
        +  ],
        +  "type": "object"
        +}
    • Changedoracle.get_pricing1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "description": "Current public InterAI pricing, onboarding, x402, top-up, trial, and idempotency metadata.",
        +  "properties": {
        +    "auth": {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    "chain": {
        +      "type": "string"
        +    },
        +    "currency": {
        +      "type": "string"
        +    },
        +    "demo": {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    "idempotency": {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    "model": {
        +      "type": "string"
        +    },
        +    "protocols": {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    "topup": {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    "trial": {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    "unit": {
        +      "type": "string"
        +    },
        +    "verify": {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    "verify_batch": {
        +      "additionalProperties": true,
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "model",
        +    "currency",
        +    "chain",
        +    "unit",
        +    "protocols",
        +    "auth",
        +    "verify",
        +    "verify_batch",
        +    "topup",
        +    "trial",
        +    "demo",
        +    "idempotency"
        +  ],
        +  "type": "object"
        +}
    • Changedoracle.get_trust_receipt1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "description": "Canonical public representation, signature metadata, and trust fields for an existing InterAI receipt.",
        +  "properties": {
        +    "ok": {
        +      "type": "boolean"
        +    },
        +    "receipt": {
        +      "additionalProperties": true,
        +      "properties": {
        +        "decision_basis": {
        +          "additionalProperties": true,
        +          "type": "object"
        +        },
        +        "issued_at": {
        +          "type": "string"
        +        },
        +        "oracle_version": {
        +          "type": "string"
        +        },
        +        "receipt_id": {
        +          "type": "string"
        +        },
        +        "request_hash": {
        +          "type": "string"
        +        },
        +        "signals_version": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "receipt_id",
        +        "issued_at",
        +        "request_hash"
        +      ],
        +      "type": "object"
        +    },
        +    "trust": {
        +      "additionalProperties": true,
        +      "properties": {
        +        "confidence_band": {
        +          "type": "string"
        +        },
        +        "domain": {
        +          "type": "string"
        +        },
        +        "risk_level": {
        +          "type": "string"
        +        },
        +        "trust_score": {
        +          "type": "number"
        +        }
        +      },
        +      "required": [
        +        "domain",
        +        "trust_score",
        +        "risk_level",
        +        "confidence_band"
        +      ],
        +      "type": "object"
        +    },
        +    "verification": {
        +      "additionalProperties": true,
        +      "properties": {
        +        "signature": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "signature_alg": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "signed": {
        +          "type": "boolean"
        +        }
        +      },
        +      "required": [
        +        "signed",
        +        "signature",
        +        "signature_alg"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "ok",
        +    "receipt",
        +    "verification",
        +    "trust"
        +  ],
        +  "type": "object"
        +}
    • Changedoracle.service_descriptor1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "description": "Focused InterAI service-level metadata covering identity, endpoints, billing, trust, and agent protocols.",
        +  "properties": {
        +    "agent_protocols": {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    "billing": {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    "description": {
        +      "type": "string"
        +    },
        +    "discovery": {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    "endpoints": {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    "id": {
        +      "type": "string"
        +    },
        +    "name": {
        +      "type": "string"
        +    },
        +    "version": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "id",
        +    "version",
        +    "description",
        +    "discovery",
        +    "endpoints",
        +    "billing",
        +    "agent_protocols"
        +  ],
        +  "type": "object"
        +}
    • Changedoracle.verify_autonomous_action1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "description": "Successful InterAI single-verification result. The unstructured content field carries the same payload serialized as JSON for backwards compatibility.",
        +  "properties": {
        +    "billed": {
        +      "additionalProperties": true,
        +      "description": "Billing metadata for this verification call.",
        +      "properties": {
        +        "cost_microusdc": {
        +          "type": "number"
        +        },
        +        "cost_usdc": {
        +          "type": "string"
        +        },
        +        "mode": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "result": {
        +      "additionalProperties": true,
        +      "description": "Pre-execution decision, policy evaluation, signals, and trust-receipt evidence.",
        +      "properties": {
        +        "oracle": {
        +          "additionalProperties": true,
        +          "type": "object"
        +        },
        +        "policy_result": {
        +          "enum": [
        +            "allow",
        +            "review_required",
        +            "block"
        +          ],
        +          "type": "string"
        +        },
        +        "recommended_action": {
        +          "enum": [
        +            "allow",
        +            "review_required",
        +            "block",
        +            "accept",
        +            "review"
        +          ],
        +          "type": "string"
        +        },
        +        "request_contract": {
        +          "type": "string"
        +        },
        +        "risk_level": {
        +          "type": "string"
        +        },
        +        "score": {
        +          "type": "number"
        +        },
        +        "signals": {
        +          "additionalProperties": true,
        +          "type": "object"
        +        },
        +        "trust_receipt": {
        +          "additionalProperties": true,
        +          "type": "object"
        +        },
        +        "trust_receipt_id": {
        +          "type": "string"
        +        },
        +        "trust_score": {
        +          "type": "number"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "billed",
        +    "result"
        +  ],
        +  "type": "object"
        +}
    • Changedoracle.verify_batch1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "description": "Successful InterAI batch verification result. The unstructured content field carries the same payload serialized as JSON for backwards compatibility.",
        +  "properties": {
        +    "batch_size": {
        +      "description": "Number of independently evaluated batch items.",
        +      "maximum": 100,
        +      "minimum": 1,
        +      "type": "integer"
        +    },
        +    "billed": {
        +      "additionalProperties": true,
        +      "description": "Billing metadata for the batch operation.",
        +      "type": "object"
        +    },
        +    "oracle": {
        +      "additionalProperties": true,
        +      "description": "InterAI engine and signing metadata.",
        +      "type": "object"
        +    },
        +    "results": {
        +      "description": "Independent verification decisions in the same order as the submitted items.",
        +      "items": {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "summary": {
        +      "additionalProperties": true,
        +      "description": "Aggregate batch summary.",
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "billed",
        +    "batch_size",
        +    "results",
        +    "summary",
        +    "oracle"
        +  ],
        +  "type": "object"
        +}
    • Changedoracle.verify_response1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "description": "Successful InterAI single-verification result. The unstructured content field carries the same payload serialized as JSON for backwards compatibility.",
        +  "properties": {
        +    "billed": {
        +      "additionalProperties": true,
        +      "description": "Billing metadata for this verification call.",
        +      "properties": {
        +        "cost_microusdc": {
        +          "type": "number"
        +        },
        +        "cost_usdc": {
        +          "type": "string"
        +        },
        +        "mode": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "result": {
        +      "additionalProperties": true,
        +      "description": "Pre-execution decision, policy evaluation, signals, and trust-receipt evidence.",
        +      "properties": {
        +        "oracle": {
        +          "additionalProperties": true,
        +          "type": "object"
        +        },
        +        "policy_result": {
        +          "enum": [
        +            "allow",
        +            "review_required",
        +            "block"
        +          ],
        +          "type": "string"
        +        },
        +        "recommended_action": {
        +          "enum": [
        +            "allow",
        +            "review_required",
        +            "block",
        +            "accept",
        +            "review"
        +          ],
        +          "type": "string"
        +        },
        +        "request_contract": {
        +          "type": "string"
        +        },
        +        "risk_level": {
        +          "type": "string"
        +        },
        +        "score": {
        +          "type": "number"
        +        },
        +        "signals": {
        +          "additionalProperties": true,
        +          "type": "object"
        +        },
        +        "trust_receipt": {
        +          "additionalProperties": true,
        +          "type": "object"
        +        },
        +        "trust_receipt_id": {
        +          "type": "string"
        +        },
        +        "trust_score": {
        +          "type": "number"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "billed",
        +    "result"
        +  ],
        +  "type": "object"
        +}
    • Changedoracle.verify_trust_receipt_signature1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "description": "Service-side signature-validation result for an existing InterAI trust receipt.",
        +  "properties": {
        +    "signature_alg": {
        +      "description": "Signature algorithm used by the current InterAI receipt verifier.",
        +      "enum": [
        +        "hmac-sha256"
        +      ],
        +      "type": "string"
        +    },
        +    "valid": {
        +      "description": "Whether the supplied signature matches the referenced stored receipt.",
        +      "type": "boolean"
        +    }
        +  },
        +  "required": [
        +    "valid",
        +    "signature_alg"
        +  ],
        +  "type": "object"
        +}
  3. 2 tool updates
    • Changedoracle.get_trust_receipt2 fields changed
      • addedInput schema / description
        Added value: +"Lookup input for a trust receipt that already exists in InterAI."
      • addedInput schema / properties / receipt_id / description
        Added value: +"Identifier of the existing InterAI trust receipt whose canonical public representation and signature metadata should be returned."
    • Changedoracle.verify_trust_receipt_signature7 fields changed
      • changedInput schema / anyOf
        Previous value: -[
        -  {
        -    "required": [
        -      "receipt"
        -    ]
        -  },
        -  {
        -    "required": [
        -      "receipt_id"
        -    ]
        -  }
        -]New value: +[
        +  {
        +    "description": "Validate using a caller-supplied receipt object.",
        +    "required": [
        +      "receipt"
        +    ]
        +  },
        +  {
        +    "description": "Validate using the canonical server-stored receipt resolved from receipt_id.",
        +    "required": [
        +      "receipt_id"
        +    ]
        +  }
        +]
      • addedInput schema / description
        Added value: +"Validate an existing InterAI receipt signature. Provide signature and either receipt_id or receipt; optional signed_payload and signature_alg can further bind the supplied evidence."
      • addedInput schema / properties / receipt / description
        Added value: +"Optional caller-supplied receipt object, typically evidence received from another agent or system. Either receipt or receipt_id is required."
      • addedInput schema / properties / receipt_id / description
        Added value: +"Optional ID of an existing InterAI trust receipt. InterAI resolves the canonical server-stored record before validating the supplied signature. Either receipt_id or receipt is required."
      • addedInput schema / properties / signature / description
        Added value: +"HMAC-SHA256 signature to validate against the referenced InterAI receipt. Required."
      • addedInput schema / properties / signature_alg / description
        Added value: +"Optional signature algorithm declaration. The current supported value is hmac-sha256."
      • addedInput schema / properties / signed_payload / description
        Added value: +"Optional exact serialized payload that was signed. Supply it when validating externally transported receipt evidence that includes the original signed payload."
  4. 3 tool updates
    • Changedoracle.verify_autonomous_action9 fields changed
      • addedInput schema / description
        Added value: +"Preflight one exact proposed autonomous action before execution. Provide use_case and action; optionally add context, caller policy, external evidence, a domain label, verification mode, and an idempotency key."
      • addedInput schema / properties / action / description
        Added value: +"The exact proposed action that would execute if allowed. Include the operation and consequential properties relevant to the decision, such as money movement, external side effects, irreversibility, destination, or affected resource."
      • addedInput schema / properties / context / description
        Added value: +"Optional runtime context surrounding the proposed action, such as environment, agent identity, counterparty, user confirmation, or other facts relevant to this decision."
      • addedInput schema / properties / domain / description
        Added value: +"Optional domain label used to provide verification context. It does not replace the exact action, context, or policy inputs."
      • addedInput schema / properties / external_evidence / description
        Added value: +"Optional signed or verifiable external assertions. Current Stage 2 evidence is parsed, verified, bound, and recorded as non-authoritative evidence; it does not directly determine the InterAI execution decision or risk score."
      • addedInput schema / properties / idempotency_key / description
        Added value: +"Stable caller-provided key for retrying the same billed verification without duplicating the economic operation. Reuse it only for the same logical request."
      • addedInput schema / properties / mode / description
        Added value: +"Verification mode. Use fast_heuristic for the default low-latency path or semantic_judge when a semantic model judgment is explicitly required."
      • addedInput schema / properties / policy / description
        Added value: +"Optional caller-scoped restrictions for this request. Caller policy may tighten the effective decision boundary but cannot weaken authoritative InterAI host or resolved account policy."
      • addedInput schema / properties / use_case / description
        Added value: +"Stable identifier describing why the exact autonomous action is being proposed. Required together with action for the autonomous_execution contract."
    • Changedoracle.verify_batch13 fields changed
      • addedInput schema / description
        Added value: +"Verify 1 to 100 independent items in one billed operation. Each item independently uses either the legacy or autonomous contract. The optional idempotency key applies to the batch operation as a whole."
      • addedInput schema / properties / idempotency_key / description
        Added value: +"Stable caller-provided key for retrying the same billed verification without duplicating the economic operation. Reuse it only for the same logical request."
      • addedInput schema / properties / items / description
        Added value: +"Independent verification items. Each item must contain either prompt + response or use_case + action; 1 to 100 items are accepted."
      • addedInput schema / properties / items / items / description
        Added value: +"One independent batch item. Supply either legacy prompt + response or autonomous use_case + action; never mix the two contracts within one item."
      • changedInput schema / properties / items / items / oneOf
        Previous value: -[
        -  {
        -    "not": {
        -      "anyOf": [
        -        {
        -          "required": [
        -            "use_case"
        -          ]
        -        },
        -        {
        -          "required": [
        -            "action"
        -          ]
        -        },
        -        {
        -          "required": [
        -            "context"
        -          ]
        -        },
        -        {
        -          "required": [
        -            "policy"
        -          ]
        -        },
        -        {
        -          "required": [
        -            "external_evidence"
        -          ]
        -        }
        -      ]
        -    },
        -    "required": [
        -      "prompt",
        -      "response"
        -    ]
        -  },
        -  {
        -    "not": {
        -      "anyOf": [
        -        {
        -          "required": [
        -            "prompt"
        -          ]
        -        },
        -        {
        -          "required": [
        -            "response"
        -          ]
        -        }
        -      ]
        -    },
        -    "required": [
        -      "use_case",
        -      "action"
        -    ]
        -  }
        -]New value: +[
        +  {
        +    "description": "Legacy batch item requiring prompt and response and excluding autonomous action fields.",
        +    "not": {
        +      "anyOf": [
        +        {
        +          "required": [
        +            "use_case"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "action"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "context"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "policy"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "external_evidence"
        +          ]
        +        }
        +      ]
        +    },
        +    "required": [
        +      "prompt",
        +      "response"
        +    ]
        +  },
        +  {
        +    "description": "Autonomous batch item requiring use_case and action and excluding legacy prompt/response fields.",
        +    "not": {
        +      "anyOf": [
        +        {
        +          "required": [
        +            "prompt"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "response"
        +          ]
        +        }
        +      ]
        +    },
        +    "required": [
        +      "use_case",
        +      "action"
        +    ]
        +  }
        +]
      • addedInput schema / properties / items / items / properties / action / description
        Added value: +"The exact proposed action that would execute if allowed. Include the operation and consequential properties relevant to the decision, such as money movement, external side effects, irreversibility, destination, or affected resource."
      • addedInput schema / properties / items / items / properties / context / description
        Added value: +"Optional runtime context surrounding the proposed action, such as environment, agent identity, counterparty, user confirmation, or other facts relevant to this decision."
      • addedInput schema / properties / items / items / properties / domain / description
        Added value: +"Optional domain label used to provide verification context. It does not replace the exact action, context, or policy inputs."
      • addedInput schema / properties / items / items / properties / external_evidence / description
        Added value: +"Optional signed or verifiable external assertions. Current Stage 2 evidence is parsed, verified, bound, and recorded as non-authoritative evidence; it does not directly determine the InterAI execution decision or risk score."
      • addedInput schema / properties / items / items / properties / policy / description
        Added value: +"Optional caller-scoped restrictions for this request. Caller policy may tighten the effective decision boundary but cannot weaken authoritative InterAI host or resolved account policy."
      • addedInput schema / properties / items / items / properties / prompt / description
        Added value: +"Legacy compatibility input: the original prompt whose response is being verified. Use together with response, not with autonomous action fields."
      • addedInput schema / properties / items / items / properties / response / description
        Added value: +"Legacy compatibility input: the response to evaluate against prompt. Use together with prompt, not with autonomous action fields."
      • addedInput schema / properties / items / items / properties / use_case / description
        Added value: +"Stable identifier describing why the exact autonomous action is being proposed. Required together with action for the autonomous_execution contract."
    • Changedoracle.verify_response12 fields changed
      • addedInput schema / description
        Added value: +"Compatibility schema supporting exactly one of two existing contracts: legacy prompt + response, or autonomous use_case + action. Do not mix legacy prompt/response fields with autonomous action fields in the same request."
      • changedInput schema / oneOf
        Previous value: -[
        -  {
        -    "not": {
        -      "anyOf": [
        -        {
        -          "required": [
        -            "use_case"
        -          ]
        -        },
        -        {
        -          "required": [
        -            "action"
        -          ]
        -        },
        -        {
        -          "required": [
        -            "context"
        -          ]
        -        },
        -        {
        -          "required": [
        -            "policy"
        -          ]
        -        },
        -        {
        -          "required": [
        -            "external_evidence"
        -          ]
        -        }
        -      ]
        -    },
        -    "required": [
        -      "prompt",
        -      "response"
        -    ]
        -  },
        -  {
        -    "not": {
        -      "anyOf": [
        -        {
        -          "required": [
        -            "prompt"
        -          ]
        -        },
        -        {
        -          "required": [
        -            "response"
        -          ]
        -        }
        -      ]
        -    },
        -    "required": [
        -      "use_case",
        -      "action"
        -    ]
        -  }
        -]New value: +[
        +  {
        +    "description": "Legacy verification contract. Requires both prompt and response and excludes autonomous action, context, policy, and external evidence fields.",
        +    "not": {
        +      "anyOf": [
        +        {
        +          "required": [
        +            "use_case"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "action"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "context"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "policy"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "external_evidence"
        +          ]
        +        }
        +      ]
        +    },
        +    "required": [
        +      "prompt",
        +      "response"
        +    ]
        +  },
        +  {
        +    "description": "Autonomous execution compatibility contract. Requires use_case and action and excludes legacy prompt/response fields. New integrations should prefer oracle.verify_autonomous_action.",
        +    "not": {
        +      "anyOf": [
        +        {
        +          "required": [
        +            "prompt"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "response"
        +          ]
        +        }
        +      ]
        +    },
        +    "required": [
        +      "use_case",
        +      "action"
        +    ]
        +  }
        +]
      • addedInput schema / properties / action / description
        Added value: +"The exact proposed action that would execute if allowed. Include the operation and consequential properties relevant to the decision, such as money movement, external side effects, irreversibility, destination, or affected resource."
      • addedInput schema / properties / context / description
        Added value: +"Optional runtime context surrounding the proposed action, such as environment, agent identity, counterparty, user confirmation, or other facts relevant to this decision."
      • addedInput schema / properties / domain / description
        Added value: +"Optional domain label used to provide verification context. It does not replace the exact action, context, or policy inputs."
      • addedInput schema / properties / external_evidence / description
        Added value: +"Optional signed or verifiable external assertions. Current Stage 2 evidence is parsed, verified, bound, and recorded as non-authoritative evidence; it does not directly determine the InterAI execution decision or risk score."
      • addedInput schema / properties / idempotency_key / description
        Added value: +"Stable caller-provided key for retrying the same billed verification without duplicating the economic operation. Reuse it only for the same logical request."
      • addedInput schema / properties / mode / description
        Added value: +"Verification mode. Use fast_heuristic for the default low-latency path or semantic_judge when a semantic model judgment is explicitly required."
      • addedInput schema / properties / policy / description
        Added value: +"Optional caller-scoped restrictions for this request. Caller policy may tighten the effective decision boundary but cannot weaken authoritative InterAI host or resolved account policy."
      • addedInput schema / properties / prompt / description
        Added value: +"Legacy compatibility input: the original prompt whose response is being verified. Use together with response, not with autonomous action fields."
      • addedInput schema / properties / response / description
        Added value: +"Legacy compatibility input: the response to evaluate against prompt. Use together with prompt, not with autonomous action fields."
      • addedInput schema / properties / use_case / description
        Added value: +"Stable identifier describing why the exact autonomous action is being proposed. Required together with action for the autonomous_execution contract."
  5. 3 tool updates
    • Changedoracle.verify_autonomous_action1 field changed
      • addedInput schema / properties / external_evidence
        Added value: +{
        +  "items": {
        +    "$id": "external-evidence/v0/rev6",
        +    "$schema": "http://json-schema.org/draft-07/schema#",
        +    "additionalProperties": false,
        +    "description": "Closed JSON Schema for one item of the optional top-level external_evidence collection. additionalProperties:false is enforced recursively; required fields are explicit; reference and inline modes are discriminated with oneOf (now actually enforced by conformant Draft-07 validators). rev4 hardening: every uint256 semantics field accepts either a JSON number in 0..9007199254740991 or a canonical decimal-string for larger values (Alejandro 10th-reply targeted correction, completing the 9th-reply integer item); rev3 items are retained: inline_payload closed with a strict profile-specific schema (Insight OracleSafetyCheck v2, 26 fields, required, exact types, additionalProperties:false), signed schemaVersion=2 and evaluationScope=SOURCE_ASSET_ONLY pinned by const. subject_only and order_insensitive binding modes are reserved and NOT accepted on the wire in v0. rev5: the wire shape is unchanged. The bundled self-check validator now evaluates const and enum before any type-specific return, so it agrees with a conformant Draft-07 validator on the pinned schemaVersion=2 and evaluationScope=SOURCE_ASSET_ONLY.",
        +    "properties": {
        +      "assertion": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "kind": {
        +            "description": "semantics pinned locally per provider profile",
        +            "enum": [
        +              "assessment",
        +              "observation"
        +            ],
        +            "type": "string"
        +          },
        +          "observations": {
        +            "additionalProperties": false,
        +            "description": "optional on the wire; if present it must equal the signed projection field by field (compared with structural/JCS equality, not order-sensitive JSON.stringify)",
        +            "properties": {
        +              "coverage_status": {
        +                "type": "string"
        +              },
        +              "cross_provider_agreement_bps": {
        +                "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                "oneOf": [
        +                  {
        +                    "maximum": 9007199254740991,
        +                    "minimum": 0,
        +                    "type": "integer"
        +                  },
        +                  {
        +                    "description": "canonical decimal-string: only for values > 9007199254740991",
        +                    "pattern": "^(0|[1-9][0-9]*)$",
        +                    "type": "string"
        +                  }
        +                ]
        +              },
        +              "cross_provider_deviation_bps": {
        +                "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                "oneOf": [
        +                  {
        +                    "maximum": 9007199254740991,
        +                    "minimum": 0,
        +                    "type": "integer"
        +                  },
        +                  {
        +                    "description": "canonical decimal-string: only for values > 9007199254740991",
        +                    "pattern": "^(0|[1-9][0-9]*)$",
        +                    "type": "string"
        +                  }
        +                ]
        +              },
        +              "independence_status": {
        +                "type": "string"
        +              },
        +              "max_data_age_seconds": {
        +                "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                "oneOf": [
        +                  {
        +                    "maximum": 9007199254740991,
        +                    "minimum": 0,
        +                    "type": "integer"
        +                  },
        +                  {
        +                    "description": "canonical decimal-string: only for values > 9007199254740991",
        +                    "pattern": "^(0|[1-9][0-9]*)$",
        +                    "type": "string"
        +                  }
        +                ]
        +              },
        +              "participant_count": {
        +                "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                "oneOf": [
        +                  {
        +                    "maximum": 9007199254740991,
        +                    "minimum": 0,
        +                    "type": "integer"
        +                  },
        +                  {
        +                    "description": "canonical decimal-string: only for values > 9007199254740991",
        +                    "pattern": "^(0|[1-9][0-9]*)$",
        +                    "type": "string"
        +                  }
        +                ]
        +              },
        +              "required_participant_count": {
        +                "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                "oneOf": [
        +                  {
        +                    "maximum": 9007199254740991,
        +                    "minimum": 0,
        +                    "type": "integer"
        +                  },
        +                  {
        +                    "description": "canonical decimal-string: only for values > 9007199254740991",
        +                    "pattern": "^(0|[1-9][0-9]*)$",
        +                    "type": "string"
        +                  }
        +                ]
        +              }
        +            },
        +            "required": [
        +              "coverage_status",
        +              "participant_count",
        +              "required_participant_count",
        +              "cross_provider_deviation_bps",
        +              "cross_provider_agreement_bps",
        +              "independence_status",
        +              "max_data_age_seconds"
        +            ],
        +            "type": "object"
        +          },
        +          "verdict": {
        +            "description": "provider-native verdict, must equal the signed verdict",
        +            "type": "string"
        +          },
        +          "verdict_space": {
        +            "description": "the scale namespace, pinned locally per provider profile",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "kind",
        +          "verdict",
        +          "verdict_space"
        +        ],
        +        "type": "object"
        +      },
        +      "binding": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "action_commitment": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "commitment": {
        +                "description": "must equal the signed requestHash",
        +                "pattern": "^0x[0-9a-f]{64}$",
        +                "type": "string"
        +              },
        +              "committed_fields": {
        +                "description": "the field list is pinned locally per provider profile",
        +                "items": {
        +                  "type": "string"
        +                },
        +                "minItems": 1,
        +                "type": "array",
        +                "uniqueItems": true
        +              },
        +              "scheme": {
        +                "description": "pinned locally per provider profile (insight.canonical-pre-trade-request/v1)",
        +                "type": "string"
        +              },
        +              "type": {
        +                "description": "pinned locally per provider profile (eip712)",
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "scheme",
        +              "type",
        +              "commitment",
        +              "committed_fields"
        +            ],
        +            "type": "object"
        +          },
        +          "binding_mode": {
        +            "description": "the only supported v0 binding mode. subject_only and order_insensitive are reserved and rejected on the wire.",
        +            "enum": [
        +              "exact_action"
        +            ],
        +            "type": "string"
        +          },
        +          "scope": {
        +            "description": "v0 supports action scope only; subject scope is reserved with subject_only",
        +            "enum": [
        +              "action"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "scope",
        +          "binding_mode",
        +          "action_commitment"
        +        ],
        +        "type": "object"
        +      },
        +      "evidence_id": {
        +        "description": "provider canonical digest as claimed by the caller; InterAI recomputes it from the verified signed assertion and a mismatch is NOT_ALLOWED.",
        +        "pattern": "^0x[0-9a-f]{64}$",
        +        "type": "string"
        +      },
        +      "provider": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "assertion_version": {
        +            "description": "must equal the locally configured profile version",
        +            "type": "string"
        +          },
        +          "key_id": {
        +            "description": "must equal the locally pinned key id",
        +            "type": "string"
        +          },
        +          "namespace": {
        +            "description": "resolved against the local provider adapter / trust registry",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "namespace",
        +          "assertion_version",
        +          "key_id"
        +        ],
        +        "type": "object"
        +      },
        +      "validity": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "evaluated_at": {
        +            "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED. must equal signed checkedAt",
        +            "oneOf": [
        +              {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              {
        +                "description": "canonical decimal-string: only for values > 9007199254740991",
        +                "pattern": "^(0|[1-9][0-9]*)$",
        +                "type": "string"
        +              }
        +            ]
        +          },
        +          "valid_until": {
        +            "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED. must equal signed validUntil; expiry is enforced on the signed payload, never this projection",
        +            "oneOf": [
        +              {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              {
        +                "description": "canonical decimal-string: only for values > 9007199254740991",
        +                "pattern": "^(0|[1-9][0-9]*)$",
        +                "type": "string"
        +              }
        +            ]
        +          }
        +        },
        +        "required": [
        +          "evaluated_at",
        +          "valid_until"
        +        ],
        +        "type": "object"
        +      },
        +      "verification": {
        +        "oneOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "attestation_ref": {
        +                "description": "resolved through the locally configured adapter / allowlisted origin; a URL in evidence never triggers arbitrary fetching",
        +                "type": "string"
        +              },
        +              "mode": {
        +                "const": "reference"
        +              }
        +            },
        +            "required": [
        +              "mode",
        +              "attestation_ref"
        +            ],
        +            "type": "object"
        +          },
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "inline_payload": {
        +                "additionalProperties": false,
        +                "description": "profile-specific closed schema for the Insight OracleSafetyCheck v2 (26-field) inline payload: required, exact types, additionalProperties:false, schemaVersion=2 and evaluationScope=SOURCE_ASSET_ONLY pinned by const. A future provider profile pins its own inline schema.",
        +                "properties": {
        +                  "action": {
        +                    "type": "string"
        +                  },
        +                  "checkedAt": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "consensusPrice": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "coverageStatus": {
        +                    "type": "string"
        +                  },
        +                  "crossProviderAgreementBps": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "destinationAssetId": {
        +                    "type": "string"
        +                  },
        +                  "evaluatedAssetIdsHash": {
        +                    "pattern": "^0x[0-9a-f]{64}$",
        +                    "type": "string"
        +                  },
        +                  "evaluationScope": {
        +                    "const": "SOURCE_ASSET_ONLY",
        +                    "description": "pinned (Alejandro 9th reply): InterAI must not widen the signed evaluationScope claim",
        +                    "type": "string"
        +                  },
        +                  "independenceStatus": {
        +                    "type": "string"
        +                  },
        +                  "manipulationRiskBps": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "maxDataAgeSeconds": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "maxDeviationBps": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "maxStablecoinDepegBps": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "participantCount": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "providerObservationsHash": {
        +                    "pattern": "^0x[0-9a-f]{64}$",
        +                    "type": "string"
        +                  },
        +                  "reasonCodesHash": {
        +                    "pattern": "^0x[0-9a-f]{64}$",
        +                    "type": "string"
        +                  },
        +                  "recommendedMaxPositionUsd": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "requestHash": {
        +                    "pattern": "^0x[0-9a-f]{64}$",
        +                    "type": "string"
        +                  },
        +                  "requiredParticipantCount": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "schemaVersion": {
        +                    "const": 2,
        +                    "description": "pinned (Alejandro 9th reply): only schemaVersion=2 is accepted",
        +                    "maximum": 9007199254740991,
        +                    "minimum": 0,
        +                    "type": "integer"
        +                  },
        +                  "sourceAssetId": {
        +                    "type": "string"
        +                  },
        +                  "sourceGroupCount": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "subjectChainId": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "tradeAmountUsd": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "validUntil": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "verdict": {
        +                    "type": "string"
        +                  }
        +                },
        +                "required": [
        +                  "verdict",
        +                  "sourceAssetId",
        +                  "destinationAssetId",
        +                  "subjectChainId",
        +                  "action",
        +                  "tradeAmountUsd",
        +                  "consensusPrice",
        +                  "maxDeviationBps",
        +                  "manipulationRiskBps",
        +                  "participantCount",
        +                  "requiredParticipantCount",
        +                  "coverageStatus",
        +                  "independenceStatus",
        +                  "sourceGroupCount",
        +                  "crossProviderAgreementBps",
        +                  "maxStablecoinDepegBps",
        +                  "maxDataAgeSeconds",
        +                  "recommendedMaxPositionUsd",
        +                  "reasonCodesHash",
        +                  "requestHash",
        +                  "evaluationScope",
        +                  "evaluatedAssetIdsHash",
        +                  "providerObservationsHash",
        +                  "validUntil",
        +                  "checkedAt",
        +                  "schemaVersion"
        +                ],
        +                "type": "object"
        +              },
        +              "inline_signature": {
        +                "description": "provider signature over the typed payload",
        +                "type": "string"
        +              },
        +              "mode": {
        +                "const": "inline"
        +              }
        +            },
        +            "required": [
        +              "mode",
        +              "inline_payload",
        +              "inline_signature"
        +            ],
        +            "type": "object"
        +          }
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "evidence_id",
        +      "provider",
        +      "assertion",
        +      "validity",
        +      "binding",
        +      "verification"
        +    ],
        +    "title": "external-evidence/v0 (rev6) wire item",
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
    • Changedoracle.verify_batch2 fields changed
      • changedInput schema / properties / items / items / oneOf
        Previous value: -[
        -  {
        -    "not": {
        -      "anyOf": [
        -        {
        -          "required": [
        -            "use_case"
        -          ]
        -        },
        -        {
        -          "required": [
        -            "action"
        -          ]
        -        },
        -        {
        -          "required": [
        -            "context"
        -          ]
        -        },
        -        {
        -          "required": [
        -            "policy"
        -          ]
        -        }
        -      ]
        -    },
        -    "required": [
        -      "prompt",
        -      "response"
        -    ]
        -  },
        -  {
        -    "not": {
        -      "anyOf": [
        -        {
        -          "required": [
        -            "prompt"
        -          ]
        -        },
        -        {
        -          "required": [
        -            "response"
        -          ]
        -        }
        -      ]
        -    },
        -    "required": [
        -      "use_case",
        -      "action"
        -    ]
        -  }
        -]New value: +[
        +  {
        +    "not": {
        +      "anyOf": [
        +        {
        +          "required": [
        +            "use_case"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "action"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "context"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "policy"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "external_evidence"
        +          ]
        +        }
        +      ]
        +    },
        +    "required": [
        +      "prompt",
        +      "response"
        +    ]
        +  },
        +  {
        +    "not": {
        +      "anyOf": [
        +        {
        +          "required": [
        +            "prompt"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "response"
        +          ]
        +        }
        +      ]
        +    },
        +    "required": [
        +      "use_case",
        +      "action"
        +    ]
        +  }
        +]
      • addedInput schema / properties / items / items / properties / external_evidence
        Added value: +{
        +  "items": {
        +    "$id": "external-evidence/v0/rev6",
        +    "$schema": "http://json-schema.org/draft-07/schema#",
        +    "additionalProperties": false,
        +    "description": "Closed JSON Schema for one item of the optional top-level external_evidence collection. additionalProperties:false is enforced recursively; required fields are explicit; reference and inline modes are discriminated with oneOf (now actually enforced by conformant Draft-07 validators). rev4 hardening: every uint256 semantics field accepts either a JSON number in 0..9007199254740991 or a canonical decimal-string for larger values (Alejandro 10th-reply targeted correction, completing the 9th-reply integer item); rev3 items are retained: inline_payload closed with a strict profile-specific schema (Insight OracleSafetyCheck v2, 26 fields, required, exact types, additionalProperties:false), signed schemaVersion=2 and evaluationScope=SOURCE_ASSET_ONLY pinned by const. subject_only and order_insensitive binding modes are reserved and NOT accepted on the wire in v0. rev5: the wire shape is unchanged. The bundled self-check validator now evaluates const and enum before any type-specific return, so it agrees with a conformant Draft-07 validator on the pinned schemaVersion=2 and evaluationScope=SOURCE_ASSET_ONLY.",
        +    "properties": {
        +      "assertion": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "kind": {
        +            "description": "semantics pinned locally per provider profile",
        +            "enum": [
        +              "assessment",
        +              "observation"
        +            ],
        +            "type": "string"
        +          },
        +          "observations": {
        +            "additionalProperties": false,
        +            "description": "optional on the wire; if present it must equal the signed projection field by field (compared with structural/JCS equality, not order-sensitive JSON.stringify)",
        +            "properties": {
        +              "coverage_status": {
        +                "type": "string"
        +              },
        +              "cross_provider_agreement_bps": {
        +                "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                "oneOf": [
        +                  {
        +                    "maximum": 9007199254740991,
        +                    "minimum": 0,
        +                    "type": "integer"
        +                  },
        +                  {
        +                    "description": "canonical decimal-string: only for values > 9007199254740991",
        +                    "pattern": "^(0|[1-9][0-9]*)$",
        +                    "type": "string"
        +                  }
        +                ]
        +              },
        +              "cross_provider_deviation_bps": {
        +                "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                "oneOf": [
        +                  {
        +                    "maximum": 9007199254740991,
        +                    "minimum": 0,
        +                    "type": "integer"
        +                  },
        +                  {
        +                    "description": "canonical decimal-string: only for values > 9007199254740991",
        +                    "pattern": "^(0|[1-9][0-9]*)$",
        +                    "type": "string"
        +                  }
        +                ]
        +              },
        +              "independence_status": {
        +                "type": "string"
        +              },
        +              "max_data_age_seconds": {
        +                "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                "oneOf": [
        +                  {
        +                    "maximum": 9007199254740991,
        +                    "minimum": 0,
        +                    "type": "integer"
        +                  },
        +                  {
        +                    "description": "canonical decimal-string: only for values > 9007199254740991",
        +                    "pattern": "^(0|[1-9][0-9]*)$",
        +                    "type": "string"
        +                  }
        +                ]
        +              },
        +              "participant_count": {
        +                "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                "oneOf": [
        +                  {
        +                    "maximum": 9007199254740991,
        +                    "minimum": 0,
        +                    "type": "integer"
        +                  },
        +                  {
        +                    "description": "canonical decimal-string: only for values > 9007199254740991",
        +                    "pattern": "^(0|[1-9][0-9]*)$",
        +                    "type": "string"
        +                  }
        +                ]
        +              },
        +              "required_participant_count": {
        +                "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                "oneOf": [
        +                  {
        +                    "maximum": 9007199254740991,
        +                    "minimum": 0,
        +                    "type": "integer"
        +                  },
        +                  {
        +                    "description": "canonical decimal-string: only for values > 9007199254740991",
        +                    "pattern": "^(0|[1-9][0-9]*)$",
        +                    "type": "string"
        +                  }
        +                ]
        +              }
        +            },
        +            "required": [
        +              "coverage_status",
        +              "participant_count",
        +              "required_participant_count",
        +              "cross_provider_deviation_bps",
        +              "cross_provider_agreement_bps",
        +              "independence_status",
        +              "max_data_age_seconds"
        +            ],
        +            "type": "object"
        +          },
        +          "verdict": {
        +            "description": "provider-native verdict, must equal the signed verdict",
        +            "type": "string"
        +          },
        +          "verdict_space": {
        +            "description": "the scale namespace, pinned locally per provider profile",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "kind",
        +          "verdict",
        +          "verdict_space"
        +        ],
        +        "type": "object"
        +      },
        +      "binding": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "action_commitment": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "commitment": {
        +                "description": "must equal the signed requestHash",
        +                "pattern": "^0x[0-9a-f]{64}$",
        +                "type": "string"
        +              },
        +              "committed_fields": {
        +                "description": "the field list is pinned locally per provider profile",
        +                "items": {
        +                  "type": "string"
        +                },
        +                "minItems": 1,
        +                "type": "array",
        +                "uniqueItems": true
        +              },
        +              "scheme": {
        +                "description": "pinned locally per provider profile (insight.canonical-pre-trade-request/v1)",
        +                "type": "string"
        +              },
        +              "type": {
        +                "description": "pinned locally per provider profile (eip712)",
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "scheme",
        +              "type",
        +              "commitment",
        +              "committed_fields"
        +            ],
        +            "type": "object"
        +          },
        +          "binding_mode": {
        +            "description": "the only supported v0 binding mode. subject_only and order_insensitive are reserved and rejected on the wire.",
        +            "enum": [
        +              "exact_action"
        +            ],
        +            "type": "string"
        +          },
        +          "scope": {
        +            "description": "v0 supports action scope only; subject scope is reserved with subject_only",
        +            "enum": [
        +              "action"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "scope",
        +          "binding_mode",
        +          "action_commitment"
        +        ],
        +        "type": "object"
        +      },
        +      "evidence_id": {
        +        "description": "provider canonical digest as claimed by the caller; InterAI recomputes it from the verified signed assertion and a mismatch is NOT_ALLOWED.",
        +        "pattern": "^0x[0-9a-f]{64}$",
        +        "type": "string"
        +      },
        +      "provider": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "assertion_version": {
        +            "description": "must equal the locally configured profile version",
        +            "type": "string"
        +          },
        +          "key_id": {
        +            "description": "must equal the locally pinned key id",
        +            "type": "string"
        +          },
        +          "namespace": {
        +            "description": "resolved against the local provider adapter / trust registry",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "namespace",
        +          "assertion_version",
        +          "key_id"
        +        ],
        +        "type": "object"
        +      },
        +      "validity": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "evaluated_at": {
        +            "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED. must equal signed checkedAt",
        +            "oneOf": [
        +              {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              {
        +                "description": "canonical decimal-string: only for values > 9007199254740991",
        +                "pattern": "^(0|[1-9][0-9]*)$",
        +                "type": "string"
        +              }
        +            ]
        +          },
        +          "valid_until": {
        +            "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED. must equal signed validUntil; expiry is enforced on the signed payload, never this projection",
        +            "oneOf": [
        +              {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              {
        +                "description": "canonical decimal-string: only for values > 9007199254740991",
        +                "pattern": "^(0|[1-9][0-9]*)$",
        +                "type": "string"
        +              }
        +            ]
        +          }
        +        },
        +        "required": [
        +          "evaluated_at",
        +          "valid_until"
        +        ],
        +        "type": "object"
        +      },
        +      "verification": {
        +        "oneOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "attestation_ref": {
        +                "description": "resolved through the locally configured adapter / allowlisted origin; a URL in evidence never triggers arbitrary fetching",
        +                "type": "string"
        +              },
        +              "mode": {
        +                "const": "reference"
        +              }
        +            },
        +            "required": [
        +              "mode",
        +              "attestation_ref"
        +            ],
        +            "type": "object"
        +          },
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "inline_payload": {
        +                "additionalProperties": false,
        +                "description": "profile-specific closed schema for the Insight OracleSafetyCheck v2 (26-field) inline payload: required, exact types, additionalProperties:false, schemaVersion=2 and evaluationScope=SOURCE_ASSET_ONLY pinned by const. A future provider profile pins its own inline schema.",
        +                "properties": {
        +                  "action": {
        +                    "type": "string"
        +                  },
        +                  "checkedAt": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "consensusPrice": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "coverageStatus": {
        +                    "type": "string"
        +                  },
        +                  "crossProviderAgreementBps": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "destinationAssetId": {
        +                    "type": "string"
        +                  },
        +                  "evaluatedAssetIdsHash": {
        +                    "pattern": "^0x[0-9a-f]{64}$",
        +                    "type": "string"
        +                  },
        +                  "evaluationScope": {
        +                    "const": "SOURCE_ASSET_ONLY",
        +                    "description": "pinned (Alejandro 9th reply): InterAI must not widen the signed evaluationScope claim",
        +                    "type": "string"
        +                  },
        +                  "independenceStatus": {
        +                    "type": "string"
        +                  },
        +                  "manipulationRiskBps": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "maxDataAgeSeconds": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "maxDeviationBps": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "maxStablecoinDepegBps": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "participantCount": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "providerObservationsHash": {
        +                    "pattern": "^0x[0-9a-f]{64}$",
        +                    "type": "string"
        +                  },
        +                  "reasonCodesHash": {
        +                    "pattern": "^0x[0-9a-f]{64}$",
        +                    "type": "string"
        +                  },
        +                  "recommendedMaxPositionUsd": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "requestHash": {
        +                    "pattern": "^0x[0-9a-f]{64}$",
        +                    "type": "string"
        +                  },
        +                  "requiredParticipantCount": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "schemaVersion": {
        +                    "const": 2,
        +                    "description": "pinned (Alejandro 9th reply): only schemaVersion=2 is accepted",
        +                    "maximum": 9007199254740991,
        +                    "minimum": 0,
        +                    "type": "integer"
        +                  },
        +                  "sourceAssetId": {
        +                    "type": "string"
        +                  },
        +                  "sourceGroupCount": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "subjectChainId": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "tradeAmountUsd": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "validUntil": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "verdict": {
        +                    "type": "string"
        +                  }
        +                },
        +                "required": [
        +                  "verdict",
        +                  "sourceAssetId",
        +                  "destinationAssetId",
        +                  "subjectChainId",
        +                  "action",
        +                  "tradeAmountUsd",
        +                  "consensusPrice",
        +                  "maxDeviationBps",
        +                  "manipulationRiskBps",
        +                  "participantCount",
        +                  "requiredParticipantCount",
        +                  "coverageStatus",
        +                  "independenceStatus",
        +                  "sourceGroupCount",
        +                  "crossProviderAgreementBps",
        +                  "maxStablecoinDepegBps",
        +                  "maxDataAgeSeconds",
        +                  "recommendedMaxPositionUsd",
        +                  "reasonCodesHash",
        +                  "requestHash",
        +                  "evaluationScope",
        +                  "evaluatedAssetIdsHash",
        +                  "providerObservationsHash",
        +                  "validUntil",
        +                  "checkedAt",
        +                  "schemaVersion"
        +                ],
        +                "type": "object"
        +              },
        +              "inline_signature": {
        +                "description": "provider signature over the typed payload",
        +                "type": "string"
        +              },
        +              "mode": {
        +                "const": "inline"
        +              }
        +            },
        +            "required": [
        +              "mode",
        +              "inline_payload",
        +              "inline_signature"
        +            ],
        +            "type": "object"
        +          }
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "evidence_id",
        +      "provider",
        +      "assertion",
        +      "validity",
        +      "binding",
        +      "verification"
        +    ],
        +    "title": "external-evidence/v0 (rev6) wire item",
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
    • Changedoracle.verify_response2 fields changed
      • changedInput schema / oneOf
        Previous value: -[
        -  {
        -    "not": {
        -      "anyOf": [
        -        {
        -          "required": [
        -            "use_case"
        -          ]
        -        },
        -        {
        -          "required": [
        -            "action"
        -          ]
        -        },
        -        {
        -          "required": [
        -            "context"
        -          ]
        -        },
        -        {
        -          "required": [
        -            "policy"
        -          ]
        -        }
        -      ]
        -    },
        -    "required": [
        -      "prompt",
        -      "response"
        -    ]
        -  },
        -  {
        -    "not": {
        -      "anyOf": [
        -        {
        -          "required": [
        -            "prompt"
        -          ]
        -        },
        -        {
        -          "required": [
        -            "response"
        -          ]
        -        }
        -      ]
        -    },
        -    "required": [
        -      "use_case",
        -      "action"
        -    ]
        -  }
        -]New value: +[
        +  {
        +    "not": {
        +      "anyOf": [
        +        {
        +          "required": [
        +            "use_case"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "action"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "context"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "policy"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "external_evidence"
        +          ]
        +        }
        +      ]
        +    },
        +    "required": [
        +      "prompt",
        +      "response"
        +    ]
        +  },
        +  {
        +    "not": {
        +      "anyOf": [
        +        {
        +          "required": [
        +            "prompt"
        +          ]
        +        },
        +        {
        +          "required": [
        +            "response"
        +          ]
        +        }
        +      ]
        +    },
        +    "required": [
        +      "use_case",
        +      "action"
        +    ]
        +  }
        +]
      • addedInput schema / properties / external_evidence
        Added value: +{
        +  "items": {
        +    "$id": "external-evidence/v0/rev6",
        +    "$schema": "http://json-schema.org/draft-07/schema#",
        +    "additionalProperties": false,
        +    "description": "Closed JSON Schema for one item of the optional top-level external_evidence collection. additionalProperties:false is enforced recursively; required fields are explicit; reference and inline modes are discriminated with oneOf (now actually enforced by conformant Draft-07 validators). rev4 hardening: every uint256 semantics field accepts either a JSON number in 0..9007199254740991 or a canonical decimal-string for larger values (Alejandro 10th-reply targeted correction, completing the 9th-reply integer item); rev3 items are retained: inline_payload closed with a strict profile-specific schema (Insight OracleSafetyCheck v2, 26 fields, required, exact types, additionalProperties:false), signed schemaVersion=2 and evaluationScope=SOURCE_ASSET_ONLY pinned by const. subject_only and order_insensitive binding modes are reserved and NOT accepted on the wire in v0. rev5: the wire shape is unchanged. The bundled self-check validator now evaluates const and enum before any type-specific return, so it agrees with a conformant Draft-07 validator on the pinned schemaVersion=2 and evaluationScope=SOURCE_ASSET_ONLY.",
        +    "properties": {
        +      "assertion": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "kind": {
        +            "description": "semantics pinned locally per provider profile",
        +            "enum": [
        +              "assessment",
        +              "observation"
        +            ],
        +            "type": "string"
        +          },
        +          "observations": {
        +            "additionalProperties": false,
        +            "description": "optional on the wire; if present it must equal the signed projection field by field (compared with structural/JCS equality, not order-sensitive JSON.stringify)",
        +            "properties": {
        +              "coverage_status": {
        +                "type": "string"
        +              },
        +              "cross_provider_agreement_bps": {
        +                "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                "oneOf": [
        +                  {
        +                    "maximum": 9007199254740991,
        +                    "minimum": 0,
        +                    "type": "integer"
        +                  },
        +                  {
        +                    "description": "canonical decimal-string: only for values > 9007199254740991",
        +                    "pattern": "^(0|[1-9][0-9]*)$",
        +                    "type": "string"
        +                  }
        +                ]
        +              },
        +              "cross_provider_deviation_bps": {
        +                "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                "oneOf": [
        +                  {
        +                    "maximum": 9007199254740991,
        +                    "minimum": 0,
        +                    "type": "integer"
        +                  },
        +                  {
        +                    "description": "canonical decimal-string: only for values > 9007199254740991",
        +                    "pattern": "^(0|[1-9][0-9]*)$",
        +                    "type": "string"
        +                  }
        +                ]
        +              },
        +              "independence_status": {
        +                "type": "string"
        +              },
        +              "max_data_age_seconds": {
        +                "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                "oneOf": [
        +                  {
        +                    "maximum": 9007199254740991,
        +                    "minimum": 0,
        +                    "type": "integer"
        +                  },
        +                  {
        +                    "description": "canonical decimal-string: only for values > 9007199254740991",
        +                    "pattern": "^(0|[1-9][0-9]*)$",
        +                    "type": "string"
        +                  }
        +                ]
        +              },
        +              "participant_count": {
        +                "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                "oneOf": [
        +                  {
        +                    "maximum": 9007199254740991,
        +                    "minimum": 0,
        +                    "type": "integer"
        +                  },
        +                  {
        +                    "description": "canonical decimal-string: only for values > 9007199254740991",
        +                    "pattern": "^(0|[1-9][0-9]*)$",
        +                    "type": "string"
        +                  }
        +                ]
        +              },
        +              "required_participant_count": {
        +                "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                "oneOf": [
        +                  {
        +                    "maximum": 9007199254740991,
        +                    "minimum": 0,
        +                    "type": "integer"
        +                  },
        +                  {
        +                    "description": "canonical decimal-string: only for values > 9007199254740991",
        +                    "pattern": "^(0|[1-9][0-9]*)$",
        +                    "type": "string"
        +                  }
        +                ]
        +              }
        +            },
        +            "required": [
        +              "coverage_status",
        +              "participant_count",
        +              "required_participant_count",
        +              "cross_provider_deviation_bps",
        +              "cross_provider_agreement_bps",
        +              "independence_status",
        +              "max_data_age_seconds"
        +            ],
        +            "type": "object"
        +          },
        +          "verdict": {
        +            "description": "provider-native verdict, must equal the signed verdict",
        +            "type": "string"
        +          },
        +          "verdict_space": {
        +            "description": "the scale namespace, pinned locally per provider profile",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "kind",
        +          "verdict",
        +          "verdict_space"
        +        ],
        +        "type": "object"
        +      },
        +      "binding": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "action_commitment": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "commitment": {
        +                "description": "must equal the signed requestHash",
        +                "pattern": "^0x[0-9a-f]{64}$",
        +                "type": "string"
        +              },
        +              "committed_fields": {
        +                "description": "the field list is pinned locally per provider profile",
        +                "items": {
        +                  "type": "string"
        +                },
        +                "minItems": 1,
        +                "type": "array",
        +                "uniqueItems": true
        +              },
        +              "scheme": {
        +                "description": "pinned locally per provider profile (insight.canonical-pre-trade-request/v1)",
        +                "type": "string"
        +              },
        +              "type": {
        +                "description": "pinned locally per provider profile (eip712)",
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "scheme",
        +              "type",
        +              "commitment",
        +              "committed_fields"
        +            ],
        +            "type": "object"
        +          },
        +          "binding_mode": {
        +            "description": "the only supported v0 binding mode. subject_only and order_insensitive are reserved and rejected on the wire.",
        +            "enum": [
        +              "exact_action"
        +            ],
        +            "type": "string"
        +          },
        +          "scope": {
        +            "description": "v0 supports action scope only; subject scope is reserved with subject_only",
        +            "enum": [
        +              "action"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "scope",
        +          "binding_mode",
        +          "action_commitment"
        +        ],
        +        "type": "object"
        +      },
        +      "evidence_id": {
        +        "description": "provider canonical digest as claimed by the caller; InterAI recomputes it from the verified signed assertion and a mismatch is NOT_ALLOWED.",
        +        "pattern": "^0x[0-9a-f]{64}$",
        +        "type": "string"
        +      },
        +      "provider": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "assertion_version": {
        +            "description": "must equal the locally configured profile version",
        +            "type": "string"
        +          },
        +          "key_id": {
        +            "description": "must equal the locally pinned key id",
        +            "type": "string"
        +          },
        +          "namespace": {
        +            "description": "resolved against the local provider adapter / trust registry",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "namespace",
        +          "assertion_version",
        +          "key_id"
        +        ],
        +        "type": "object"
        +      },
        +      "validity": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "evaluated_at": {
        +            "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED. must equal signed checkedAt",
        +            "oneOf": [
        +              {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              {
        +                "description": "canonical decimal-string: only for values > 9007199254740991",
        +                "pattern": "^(0|[1-9][0-9]*)$",
        +                "type": "string"
        +              }
        +            ]
        +          },
        +          "valid_until": {
        +            "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED. must equal signed validUntil; expiry is enforced on the signed payload, never this projection",
        +            "oneOf": [
        +              {
        +                "maximum": 9007199254740991,
        +                "minimum": 0,
        +                "type": "integer"
        +              },
        +              {
        +                "description": "canonical decimal-string: only for values > 9007199254740991",
        +                "pattern": "^(0|[1-9][0-9]*)$",
        +                "type": "string"
        +              }
        +            ]
        +          }
        +        },
        +        "required": [
        +          "evaluated_at",
        +          "valid_until"
        +        ],
        +        "type": "object"
        +      },
        +      "verification": {
        +        "oneOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "attestation_ref": {
        +                "description": "resolved through the locally configured adapter / allowlisted origin; a URL in evidence never triggers arbitrary fetching",
        +                "type": "string"
        +              },
        +              "mode": {
        +                "const": "reference"
        +              }
        +            },
        +            "required": [
        +              "mode",
        +              "attestation_ref"
        +            ],
        +            "type": "object"
        +          },
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "inline_payload": {
        +                "additionalProperties": false,
        +                "description": "profile-specific closed schema for the Insight OracleSafetyCheck v2 (26-field) inline payload: required, exact types, additionalProperties:false, schemaVersion=2 and evaluationScope=SOURCE_ASSET_ONLY pinned by const. A future provider profile pins its own inline schema.",
        +                "properties": {
        +                  "action": {
        +                    "type": "string"
        +                  },
        +                  "checkedAt": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "consensusPrice": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "coverageStatus": {
        +                    "type": "string"
        +                  },
        +                  "crossProviderAgreementBps": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "destinationAssetId": {
        +                    "type": "string"
        +                  },
        +                  "evaluatedAssetIdsHash": {
        +                    "pattern": "^0x[0-9a-f]{64}$",
        +                    "type": "string"
        +                  },
        +                  "evaluationScope": {
        +                    "const": "SOURCE_ASSET_ONLY",
        +                    "description": "pinned (Alejandro 9th reply): InterAI must not widen the signed evaluationScope claim",
        +                    "type": "string"
        +                  },
        +                  "independenceStatus": {
        +                    "type": "string"
        +                  },
        +                  "manipulationRiskBps": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "maxDataAgeSeconds": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "maxDeviationBps": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "maxStablecoinDepegBps": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "participantCount": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "providerObservationsHash": {
        +                    "pattern": "^0x[0-9a-f]{64}$",
        +                    "type": "string"
        +                  },
        +                  "reasonCodesHash": {
        +                    "pattern": "^0x[0-9a-f]{64}$",
        +                    "type": "string"
        +                  },
        +                  "recommendedMaxPositionUsd": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "requestHash": {
        +                    "pattern": "^0x[0-9a-f]{64}$",
        +                    "type": "string"
        +                  },
        +                  "requiredParticipantCount": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "schemaVersion": {
        +                    "const": 2,
        +                    "description": "pinned (Alejandro 9th reply): only schemaVersion=2 is accepted",
        +                    "maximum": 9007199254740991,
        +                    "minimum": 0,
        +                    "type": "integer"
        +                  },
        +                  "sourceAssetId": {
        +                    "type": "string"
        +                  },
        +                  "sourceGroupCount": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "subjectChainId": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "tradeAmountUsd": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "validUntil": {
        +                    "description": "uint256 semantics: safe integers use JSON number 0..9007199254740991; larger values use canonical decimal-string (no leading zeros, no sign, no exponent, no fraction). Canonical form is enforced: a string whose value fits in the safe range is NOT_ALLOWED.",
        +                    "oneOf": [
        +                      {
        +                        "maximum": 9007199254740991,
        +                        "minimum": 0,
        +                        "type": "integer"
        +                      },
        +                      {
        +                        "description": "canonical decimal-string: only for values > 9007199254740991",
        +                        "pattern": "^(0|[1-9][0-9]*)$",
        +                        "type": "string"
        +                      }
        +                    ]
        +                  },
        +                  "verdict": {
        +                    "type": "string"
        +                  }
        +                },
        +                "required": [
        +                  "verdict",
        +                  "sourceAssetId",
        +                  "destinationAssetId",
        +                  "subjectChainId",
        +                  "action",
        +                  "tradeAmountUsd",
        +                  "consensusPrice",
        +                  "maxDeviationBps",
        +                  "manipulationRiskBps",
        +                  "participantCount",
        +                  "requiredParticipantCount",
        +                  "coverageStatus",
        +                  "independenceStatus",
        +                  "sourceGroupCount",
        +                  "crossProviderAgreementBps",
        +                  "maxStablecoinDepegBps",
        +                  "maxDataAgeSeconds",
        +                  "recommendedMaxPositionUsd",
        +                  "reasonCodesHash",
        +                  "requestHash",
        +                  "evaluationScope",
        +                  "evaluatedAssetIdsHash",
        +                  "providerObservationsHash",
        +                  "validUntil",
        +                  "checkedAt",
        +                  "schemaVersion"
        +                ],
        +                "type": "object"
        +              },
        +              "inline_signature": {
        +                "description": "provider signature over the typed payload",
        +                "type": "string"
        +              },
        +              "mode": {
        +                "const": "inline"
        +              }
        +            },
        +            "required": [
        +              "mode",
        +              "inline_payload",
        +              "inline_signature"
        +            ],
        +            "type": "object"
        +          }
        +        ],
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "evidence_id",
        +      "provider",
        +      "assertion",
        +      "validity",
        +      "binding",
        +      "verification"
        +    ],
        +    "title": "external-evidence/v0 (rev6) wire item",
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
  6. 9 tool updates
    • First observedoracle.agent_card
    • First observedoracle.discovery_bundle
    • First observedoracle.get_pricing
    • First observedoracle.get_trust_receipt
    • First observedoracle.service_descriptor
    • First observedoracle.verify_autonomous_action
    • First observedoracle.verify_batch
    • First observedoracle.verify_response
    • First observedoracle.verify_trust_receipt_signature

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    The accountability layer for AI agents — a named human's signed yes before an agent does anything irreversible (payment, record change, deploy), then an offline-verifiable Trust Receipt. Apache-2.0, formally verified.
    3
    649
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Verifiable action receipts for AI agents — agents sign claims locally, an independent witness countersigns and timestamps, anyone can verify offline.
    17 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.