{"serverId":"mcp-registry/io.github.interailabs/ai-risk-oracle","tools":[{"name":"oracle.agent_card","fixed":{"name":"oracle_agent_card","description":"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.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"title":"A2A Agent Card","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"title":"A2A Agent Card"},"changes":[{"kind":"name","detail":"Renamed \"oracle.agent_card\" → \"oracle_agent_card\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":108,"tokensAfter":108},{"name":"oracle.discovery_bundle","fixed":{"name":"oracle_discovery_bundle","description":"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.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"title":"Discovery Bundle","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"title":"Discovery Bundle"},"changes":[{"kind":"name","detail":"Renamed \"oracle.discovery_bundle\" → \"oracle_discovery_bundle\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":124,"tokensAfter":124},{"name":"oracle.get_pricing","fixed":{"name":"oracle_get_pricing","description":"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.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"title":"Get Pricing","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"title":"Get Pricing"},"changes":[{"kind":"name","detail":"Renamed \"oracle.get_pricing\" → \"oracle_get_pricing\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":87,"tokensAfter":87},{"name":"oracle.get_trust_receipt","fixed":{"name":"oracle_get_trust_receipt","description":"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.","inputSchema":{"type":"object","required":["receipt_id"],"properties":{"receipt_id":{"type":"string","description":"Identifier of the existing InterAI trust receipt whose canonical public representation and signature metadata should be returned."}},"description":"Lookup input for a trust receipt that already exists in InterAI.","additionalProperties":false},"annotations":{"title":"Get Trust Receipt","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"title":"Get Trust Receipt"},"changes":[{"kind":"name","detail":"Renamed \"oracle.get_trust_receipt\" → \"oracle_get_trust_receipt\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":187,"tokensAfter":187},{"name":"oracle.service_descriptor","fixed":{"name":"oracle_service_descriptor","description":"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.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"title":"Service Descriptor","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"title":"Service Descriptor"},"changes":[{"kind":"name","detail":"Renamed \"oracle.service_descriptor\" → \"oracle_service_descriptor\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":110,"tokensAfter":110},{"name":"oracle.verify_autonomous_action","fixed":{"name":"oracle_verify_autonomous_action","description":"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.verif","inputSchema":{"type":"object","required":["use_case","action"],"properties":{"mode":{"enum":["fast_heuristic","semantic_judge"],"type":"string","description":"Verification mode. Use fast_heuristic for the default low-latency path or semantic_judge when a semantic model judgment is explicitly required."},"action":{"type":"object","properties":{"type":{"type":"string","pattern":"\\S","minLength":1},"schema":{"type":"string","const":"interai-canonical-action/v1"},"tool_id":{"type":"string","pattern":"\\S","minLength":1},"resource":{"type":"string","pattern":"\\S","minLength":1},"arguments":{"type":"object"},"operation":{"type":"string","pattern":"\\S","minLength":1},"destination":{"type":"string","pattern":"\\S","minLength":1},"irreversible":{"type":"boolean"},"external_side_effect":{"type":"boolean"}},"description":"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.","additionalProperties":true},"domain":{"type":"string","pattern":"\\S","minLength":1,"description":"Optional domain label used to provide verification context. It does not replace the exact action, context, or policy inputs."},"policy":{"type":"object","properties":{"max_risk_level":{"enum":["low","medium","high"],"type":"string"},"amount_usd_limit":{"type":"number","minimum":0},"allowed_action_types":{"type":"array","items":{"type":"string","pattern":"\\S","maxLength":128,"minLength":1},"maxItems":100},"blocked_action_types":{"type":"array","items":{"type":"string","pattern":"\\S","maxLength":128,"minLength":1},"maxItems":100},"require_trust_receipt":{"type":"boolean"},"require_human_review_above":{"type":"number","maximum":1,"minimum":0},"allowed_action_types_enforced":{"type":"boolean"},"require_user_confirmation_for_irreversible":{"type":"boolean"}},"description":"Optional strictly validated caller-scoped restrictions. They may tighten the boundary but cannot weaken host or account policy.","additionalProperties":false},"context":{"type":"object","description":"Optional runtime context surrounding the proposed action, such as environment, agent identity, counterparty, user confirmation, or other facts relevant to this decision.","additionalProperties":true},"use_case":{"type":"string","pattern":"\\S","minLength":1,"description":"Stable identifier describing why the exact autonomous action is being proposed. Required together with action for the autonomous_execution contract."},"idempotency_key":{"type":"string","pattern":"^\\s*[A-Za-z0-9._:-]+\\s*$","maxLength":200,"minLength":1,"description":"Stable caller-provided key for retrying the same billed verification without duplicating the economic operation. Reuse it only for the same logical request."},"execution_context":{"type":"object","required":["schema","workspace_id","environment"],"properties":{"run_id":{"type":"string","pattern":"\\S","minLength":1},"schema":{"type":"string","const":"interai-host-execution-context/v1"},"actor_id":{"type":"string","pattern":"\\S","minLength":1},"environment":{"type":"string","pattern":"\\S","minLength":1},"workspace_id":{"type":"string","pattern":"\\S","minLength":1}},"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.","additionalProperties":false},"external_evidence":{"type":"array","items":{"$id":"external-evidence/v0/rev6","type":"object","title":"external-evidence/v0 (rev6) wire item","$schema":"http://json-schema.org/draft-07/schema#","required":["evidence_id","provider","assertion","validity","binding","verification"],"properties":{"binding":{"type":"object","required":["scope","binding_mode","action_commitment"],"properties":{"scope":{"enum":["action"],"type":"string","description":"v0 supports action scope only; subject scope is reserved with subject_only"},"binding_mode":{"enum":["exact_action"],"type":"string","description":"the only supported v0 binding mode. subject_only and order_insensitive are reserved and rejected on the wire."},"action_commitment":{"type":"object","required":["scheme","type","commitment","committed_fields"],"properties":{"type":{"type":"string","description":"pinned locally per provider profile (eip712)"},"scheme":{"type":"string","description":"pinned locally per provider profile (insight.canonical-pre-trade-request/v1)"},"commitment":{"type":"string","pattern":"^0x[0-9a-f]{64}$","description":"must equal the signed requestHash"},"committed_fields":{"type":"array","items":{"type":"string"},"minItems":1,"description":"the field list is pinned locally per provider profile","uniqueItems":true}},"additionalProperties":false}},"additionalProperties":false},"provider":{"type":"object","required":["namespace","assertion_version","key_id"],"properties":{"key_id":{"type":"string","description":"must equal the locally pinned key id"},"namespace":{"type":"string","description":"resolved against the local provider adapter / trust registry"},"assertion_version":{"type":"string","description":"must equal the locally configured profile version"}},"additionalProperties":false},"validity":{"type":"object","required":["evaluated_at","valid_until"],"properties":{"valid_until":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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"},"evaluated_at":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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"}},"additionalProperties":false},"assertion":{"type":"object","required":["kind","verdict","verdict_space"],"properties":{"kind":{"enum":["assessment","observation"],"type":"string","description":"semantics pinned locally per provider profile"},"verdict":{"type":"string","description":"provider-native verdict, must equal the signed verdict"},"observations":{"type":"object","required":["coverage_status","participant_count","required_participant_count","cross_provider_deviation_bps","cross_provider_agreement_bps","independence_status","max_data_age_seconds"],"properties":{"coverage_status":{"type":"string"},"participant_count":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"independence_status":{"type":"string"},"max_data_age_seconds":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"required_participant_count":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"cross_provider_agreement_bps":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"cross_provider_deviation_bps":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."}},"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)","additionalProperties":false},"verdict_space":{"type":"string","description":"the scale namespace, pinned locally per provider profile"}},"additionalProperties":false},"evidence_id":{"type":"string","pattern":"^0x[0-9a-f]{64}$","description":"provider canonical digest as claimed by the caller; InterAI recomputes it from the verified signed assertion and a mismatch is NOT_ALLOWED."},"verification":{"type":"object","oneOf":[{"type":"object","required":["mode","attestation_ref"],"properties":{"mode":{"const":"reference"},"attestation_ref":{"type":"string","description":"resolved through the locally configured adapter / allowlisted origin; a URL in evidence never triggers arbitrary fetching"}},"additionalProperties":false},{"type":"object","required":["mode","inline_payload","inline_signature"],"properties":{"mode":{"const":"inline"},"inline_payload":{"type":"object","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"],"properties":{"action":{"type":"string"},"verdict":{"type":"string"},"checkedAt":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"validUntil":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"requestHash":{"type":"string","pattern":"^0x[0-9a-f]{64}$"},"schemaVersion":{"type":"integer","const":2,"maximum":9007199254740991,"minimum":0,"description":"pinned (Alejandro 9th reply): only schemaVersion=2 is accepted"},"sourceAssetId":{"type":"string"},"consensusPrice":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"coverageStatus":{"type":"string"},"subjectChainId":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"tradeAmountUsd":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"evaluationScope":{"type":"string","const":"SOURCE_ASSET_ONLY","description":"pinned (Alejandro 9th reply): InterAI must not widen the signed evaluationScope claim"},"maxDeviationBps":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"reasonCodesHash":{"type":"string","pattern":"^0x[0-9a-f]{64}$"},"participantCount":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"sourceGroupCount":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"maxDataAgeSeconds":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"destinationAssetId":{"type":"string"},"independenceStatus":{"type":"string"},"manipulationRiskBps":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"evaluatedAssetIdsHash":{"type":"string","pattern":"^0x[0-9a-f]{64}$"},"maxStablecoinDepegBps":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"providerObservationsHash":{"type":"string","pattern":"^0x[0-9a-f]{64}$"},"requiredParticipantCount":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"crossProviderAgreementBps":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"recommendedMaxPositionUsd":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."}},"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.","additionalProperties":false},"inline_signature":{"type":"string","description":"provider signature over the typed payload"}},"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.","additionalProperties":false},"description":"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."},"authorization_ttl_seconds":{"type":"integer","default":60,"maximum":300,"minimum":1,"description":"Lifetime of a single-use execution authorization for a canonical action. Only Bearer-authenticated pilot requests receive executable authorization material."}},"description":"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.","additionalProperties":false},"annotations":{"title":"Verify Autonomous Action","readOnlyHint":false,"openWorldHint":false,"idempotentHint":false,"destructiveHint":false},"title":"Verify Autonomous Action"},"changes":[{"kind":"name","detail":"Renamed \"oracle.verify_autonomous_action\" → \"oracle_verify_autonomous_action\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":6007,"tokensAfter":6007},{"name":"oracle.verify_batch","fixed":{"name":"oracle_verify_batch","description":"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.","inputSchema":{"type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"type":"object","oneOf":[{"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":"Legacy batch item requiring prompt and response and excluding autonomous action fields."},{"not":{"anyOf":[{"required":["prompt"]},{"required":["response"]}]},"required":["use_case","action"],"description":"Autonomous batch item requiring use_case and action and excluding legacy prompt/response fields."}],"properties":{"action":{"type":"object","properties":{"type":{"type":"string","pattern":"\\S","minLength":1},"schema":{"type":"string","const":"interai-canonical-action/v1"},"tool_id":{"type":"string","pattern":"\\S","minLength":1},"resource":{"type":"string","pattern":"\\S","minLength":1},"arguments":{"type":"object"},"operation":{"type":"string","pattern":"\\S","minLength":1},"destination":{"type":"string","pattern":"\\S","minLength":1},"irreversible":{"type":"boolean"},"external_side_effect":{"type":"boolean"}},"description":"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.","additionalProperties":true},"domain":{"type":"string","pattern":"\\S","minLength":1,"description":"Optional domain label used to provide verification context. It does not replace the exact action, context, or policy inputs."},"policy":{"type":"object","properties":{"max_risk_level":{"enum":["low","medium","high"],"type":"string"},"amount_usd_limit":{"type":"number","minimum":0},"allowed_action_types":{"type":"array","items":{"type":"string","pattern":"\\S","maxLength":128,"minLength":1},"maxItems":100},"blocked_action_types":{"type":"array","items":{"type":"string","pattern":"\\S","maxLength":128,"minLength":1},"maxItems":100},"require_trust_receipt":{"type":"boolean"},"require_human_review_above":{"type":"number","maximum":1,"minimum":0},"allowed_action_types_enforced":{"type":"boolean"},"require_user_confirmation_for_irreversible":{"type":"boolean"}},"description":"Optional strictly validated caller-scoped restrictions. They may tighten the boundary but cannot weaken host or account policy.","additionalProperties":false},"prompt":{"type":"string","pattern":"\\S","minLength":1,"description":"Legacy compatibility input: the original prompt whose response is being verified. Use together with response, not with autonomous action fields."},"context":{"type":"object","description":"Optional runtime context surrounding the proposed action, such as environment, agent identity, counterparty, user confirmation, or other facts relevant to this decision.","additionalProperties":true},"response":{"type":"string","pattern":"\\S","minLength":1,"description":"Legacy compatibility input: the response to evaluate against prompt. Use together with prompt, not with autonomous action fields."},"use_case":{"type":"string","pattern":"\\S","minLength":1,"description":"Stable identifier describing why the exact autonomous action is being proposed. Required together with action for the autonomous_execution contract."},"execution_context":{"type":"object","required":["schema","workspace_id","environment"],"properties":{"run_id":{"type":"string","pattern":"\\S","minLength":1},"schema":{"type":"string","const":"interai-host-execution-context/v1"},"actor_id":{"type":"string","pattern":"\\S","minLength":1},"environment":{"type":"string","pattern":"\\S","minLength":1},"workspace_id":{"type":"string","pattern":"\\S","minLength":1}},"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.","additionalProperties":false},"external_evidence":{"type":"array","items":{"$id":"external-evidence/v0/rev6","type":"object","title":"external-evidence/v0 (rev6) wire item","$schema":"http://json-schema.org/draft-07/schema#","required":["evidence_id","provider","assertion","validity","binding","verification"],"properties":{"binding":{"type":"object","required":["scope","binding_mode","action_commitment"],"properties":{"scope":{"enum":["action"],"type":"string","description":"v0 supports action scope only; subject scope is reserved with subject_only"},"binding_mode":{"enum":["exact_action"],"type":"string","description":"the only supported v0 binding mode. subject_only and order_insensitive are reserved and rejected on the wire."},"action_commitment":{"type":"object","required":["scheme","type","commitment","committed_fields"],"properties":{"type":{"type":"string","description":"pinned locally per provider profile (eip712)"},"scheme":{"type":"string","description":"pinned locally per provider profile (insight.canonical-pre-trade-request/v1)"},"commitment":{"type":"string","pattern":"^0x[0-9a-f]{64}$","description":"must equal the signed requestHash"},"committed_fields":{"type":"array","items":{"type":"string"},"minItems":1,"description":"the field list is pinned locally per provider profile","uniqueItems":true}},"additionalProperties":false}},"additionalProperties":false},"provider":{"type":"object","required":["namespace","assertion_version","key_id"],"properties":{"key_id":{"type":"string","description":"must equal the locally pinned key id"},"namespace":{"type":"string","description":"resolved against the local provider adapter / trust registry"},"assertion_version":{"type":"string","description":"must equal the locally configured profile version"}},"additionalProperties":false},"validity":{"type":"object","required":["evaluated_at","valid_until"],"properties":{"valid_until":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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"},"evaluated_at":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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"}},"additionalProperties":false},"assertion":{"type":"object","required":["kind","verdict","verdict_space"],"properties":{"kind":{"enum":["assessment","observation"],"type":"string","description":"semantics pinned locally per provider profile"},"verdict":{"type":"string","description":"provider-native verdict, must equal the signed verdict"},"observations":{"type":"object","required":["coverage_status","participant_count","required_participant_count","cross_provider_deviation_bps","cross_provider_agreement_bps","independence_status","max_data_age_seconds"],"properties":{"coverage_status":{"type":"string"},"participant_count":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"independence_status":{"type":"string"},"max_data_age_seconds":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"required_participant_count":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"cross_provider_agreement_bps":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"cross_provider_deviation_bps":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."}},"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)","additionalProperties":false},"verdict_space":{"type":"string","description":"the scale namespace, pinned locally per provider profile"}},"additionalProperties":false},"evidence_id":{"type":"string","pattern":"^0x[0-9a-f]{64}$","description":"provider canonical digest as claimed by the caller; InterAI recomputes it from the verified signed assertion and a mismatch is NOT_ALLOWED."},"verification":{"type":"object","oneOf":[{"type":"object","required":["mode","attestation_ref"],"properties":{"mode":{"const":"reference"},"attestation_ref":{"type":"string","description":"resolved through the locally configured adapter / allowlisted origin; a URL in evidence never triggers arbitrary fetching"}},"additionalProperties":false},{"type":"object","required":["mode","inline_payload","inline_signature"],"properties":{"mode":{"const":"inline"},"inline_payload":{"type":"object","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"],"properties":{"action":{"type":"string"},"verdict":{"type":"string"},"checkedAt":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"validUntil":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"requestHash":{"type":"string","pattern":"^0x[0-9a-f]{64}$"},"schemaVersion":{"type":"integer","const":2,"maximum":9007199254740991,"minimum":0,"description":"pinned (Alejandro 9th reply): only schemaVersion=2 is accepted"},"sourceAssetId":{"type":"string"},"consensusPrice":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"coverageStatus":{"type":"string"},"subjectChainId":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"tradeAmountUsd":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"evaluationScope":{"type":"string","const":"SOURCE_ASSET_ONLY","description":"pinned (Alejandro 9th reply): InterAI must not widen the signed evaluationScope claim"},"maxDeviationBps":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"reasonCodesHash":{"type":"string","pattern":"^0x[0-9a-f]{64}$"},"participantCount":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"sourceGroupCount":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"maxDataAgeSeconds":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"destinationAssetId":{"type":"string"},"independenceStatus":{"type":"string"},"manipulationRiskBps":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"evaluatedAssetIdsHash":{"type":"string","pattern":"^0x[0-9a-f]{64}$"},"maxStablecoinDepegBps":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"providerObservationsHash":{"type":"string","pattern":"^0x[0-9a-f]{64}$"},"requiredParticipantCount":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"crossProviderAgreementBps":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"recommendedMaxPositionUsd":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."}},"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.","additionalProperties":false},"inline_signature":{"type":"string","description":"provider signature over the typed payload"}},"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.","additionalProperties":false},"description":"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."},"authorization_ttl_seconds":{"type":"integer","default":60,"maximum":300,"minimum":1,"description":"Lifetime of a single-use execution authorization for a canonical action. Only Bearer-authenticated pilot requests receive executable authorization material."}},"description":"One independent batch item. Supply either legacy prompt + response or autonomous use_case + action; never mix the two contracts within one item.","additionalProperties":false},"maxItems":100,"minItems":1,"description":"Independent verification items. Each item must contain either prompt + response or use_case + action; 1 to 100 items are accepted."},"idempotency_key":{"type":"string","pattern":"^\\s*[A-Za-z0-9._:-]+\\s*$","maxLength":200,"minLength":1,"description":"Stable caller-provided key for retrying the same billed verification without duplicating the economic operation. Reuse it only for the same logical request."}},"description":"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.","additionalProperties":false},"annotations":{"title":"Verify Batch","readOnlyHint":false,"openWorldHint":false,"idempotentHint":false,"destructiveHint":false},"title":"Verify Batch"},"changes":[{"kind":"name","detail":"Renamed \"oracle.verify_batch\" → \"oracle_verify_batch\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":6304,"tokensAfter":6304},{"name":"oracle.verify_response","fixed":{"name":"oracle_verify_response","description":"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.","inputSchema":{"type":"object","oneOf":[{"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":"Legacy verification contract. Requires both prompt and response and excludes autonomous action, context, policy, and external evidence fields."},{"not":{"anyOf":[{"required":["prompt"]},{"required":["response"]}]},"required":["use_case","action"],"description":"Autonomous execution compatibility contract. Requires use_case and action and excludes legacy prompt/response fields. New integrations should prefer oracle.verify_autonomous_action."}],"properties":{"mode":{"enum":["fast_heuristic","semantic_judge"],"type":"string","description":"Verification mode. Use fast_heuristic for the default low-latency path or semantic_judge when a semantic model judgment is explicitly required."},"action":{"type":"object","properties":{"type":{"type":"string","pattern":"\\S","minLength":1},"schema":{"type":"string","const":"interai-canonical-action/v1"},"tool_id":{"type":"string","pattern":"\\S","minLength":1},"resource":{"type":"string","pattern":"\\S","minLength":1},"arguments":{"type":"object"},"operation":{"type":"string","pattern":"\\S","minLength":1},"destination":{"type":"string","pattern":"\\S","minLength":1},"irreversible":{"type":"boolean"},"external_side_effect":{"type":"boolean"}},"description":"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.","additionalProperties":true},"domain":{"type":"string","pattern":"\\S","minLength":1,"description":"Optional domain label used to provide verification context. It does not replace the exact action, context, or policy inputs."},"policy":{"type":"object","properties":{"max_risk_level":{"enum":["low","medium","high"],"type":"string"},"amount_usd_limit":{"type":"number","minimum":0},"allowed_action_types":{"type":"array","items":{"type":"string","pattern":"\\S","maxLength":128,"minLength":1},"maxItems":100},"blocked_action_types":{"type":"array","items":{"type":"string","pattern":"\\S","maxLength":128,"minLength":1},"maxItems":100},"require_trust_receipt":{"type":"boolean"},"require_human_review_above":{"type":"number","maximum":1,"minimum":0},"allowed_action_types_enforced":{"type":"boolean"},"require_user_confirmation_for_irreversible":{"type":"boolean"}},"description":"Optional strictly validated caller-scoped restrictions. They may tighten the boundary but cannot weaken host or account policy.","additionalProperties":false},"prompt":{"type":"string","pattern":"\\S","minLength":1,"description":"Legacy compatibility input: the original prompt whose response is being verified. Use together with response, not with autonomous action fields."},"context":{"type":"object","description":"Optional runtime context surrounding the proposed action, such as environment, agent identity, counterparty, user confirmation, or other facts relevant to this decision.","additionalProperties":true},"response":{"type":"string","pattern":"\\S","minLength":1,"description":"Legacy compatibility input: the response to evaluate against prompt. Use together with prompt, not with autonomous action fields."},"use_case":{"type":"string","pattern":"\\S","minLength":1,"description":"Stable identifier describing why the exact autonomous action is being proposed. Required together with action for the autonomous_execution contract."},"idempotency_key":{"type":"string","pattern":"^\\s*[A-Za-z0-9._:-]+\\s*$","maxLength":200,"minLength":1,"description":"Stable caller-provided key for retrying the same billed verification without duplicating the economic operation. Reuse it only for the same logical request."},"execution_context":{"type":"object","required":["schema","workspace_id","environment"],"properties":{"run_id":{"type":"string","pattern":"\\S","minLength":1},"schema":{"type":"string","const":"interai-host-execution-context/v1"},"actor_id":{"type":"string","pattern":"\\S","minLength":1},"environment":{"type":"string","pattern":"\\S","minLength":1},"workspace_id":{"type":"string","pattern":"\\S","minLength":1}},"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.","additionalProperties":false},"external_evidence":{"type":"array","items":{"$id":"external-evidence/v0/rev6","type":"object","title":"external-evidence/v0 (rev6) wire item","$schema":"http://json-schema.org/draft-07/schema#","required":["evidence_id","provider","assertion","validity","binding","verification"],"properties":{"binding":{"type":"object","required":["scope","binding_mode","action_commitment"],"properties":{"scope":{"enum":["action"],"type":"string","description":"v0 supports action scope only; subject scope is reserved with subject_only"},"binding_mode":{"enum":["exact_action"],"type":"string","description":"the only supported v0 binding mode. subject_only and order_insensitive are reserved and rejected on the wire."},"action_commitment":{"type":"object","required":["scheme","type","commitment","committed_fields"],"properties":{"type":{"type":"string","description":"pinned locally per provider profile (eip712)"},"scheme":{"type":"string","description":"pinned locally per provider profile (insight.canonical-pre-trade-request/v1)"},"commitment":{"type":"string","pattern":"^0x[0-9a-f]{64}$","description":"must equal the signed requestHash"},"committed_fields":{"type":"array","items":{"type":"string"},"minItems":1,"description":"the field list is pinned locally per provider profile","uniqueItems":true}},"additionalProperties":false}},"additionalProperties":false},"provider":{"type":"object","required":["namespace","assertion_version","key_id"],"properties":{"key_id":{"type":"string","description":"must equal the locally pinned key id"},"namespace":{"type":"string","description":"resolved against the local provider adapter / trust registry"},"assertion_version":{"type":"string","description":"must equal the locally configured profile version"}},"additionalProperties":false},"validity":{"type":"object","required":["evaluated_at","valid_until"],"properties":{"valid_until":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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"},"evaluated_at":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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"}},"additionalProperties":false},"assertion":{"type":"object","required":["kind","verdict","verdict_space"],"properties":{"kind":{"enum":["assessment","observation"],"type":"string","description":"semantics pinned locally per provider profile"},"verdict":{"type":"string","description":"provider-native verdict, must equal the signed verdict"},"observations":{"type":"object","required":["coverage_status","participant_count","required_participant_count","cross_provider_deviation_bps","cross_provider_agreement_bps","independence_status","max_data_age_seconds"],"properties":{"coverage_status":{"type":"string"},"participant_count":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"independence_status":{"type":"string"},"max_data_age_seconds":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"required_participant_count":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"cross_provider_agreement_bps":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"cross_provider_deviation_bps":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."}},"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)","additionalProperties":false},"verdict_space":{"type":"string","description":"the scale namespace, pinned locally per provider profile"}},"additionalProperties":false},"evidence_id":{"type":"string","pattern":"^0x[0-9a-f]{64}$","description":"provider canonical digest as claimed by the caller; InterAI recomputes it from the verified signed assertion and a mismatch is NOT_ALLOWED."},"verification":{"type":"object","oneOf":[{"type":"object","required":["mode","attestation_ref"],"properties":{"mode":{"const":"reference"},"attestation_ref":{"type":"string","description":"resolved through the locally configured adapter / allowlisted origin; a URL in evidence never triggers arbitrary fetching"}},"additionalProperties":false},{"type":"object","required":["mode","inline_payload","inline_signature"],"properties":{"mode":{"const":"inline"},"inline_payload":{"type":"object","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"],"properties":{"action":{"type":"string"},"verdict":{"type":"string"},"checkedAt":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"validUntil":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"requestHash":{"type":"string","pattern":"^0x[0-9a-f]{64}$"},"schemaVersion":{"type":"integer","const":2,"maximum":9007199254740991,"minimum":0,"description":"pinned (Alejandro 9th reply): only schemaVersion=2 is accepted"},"sourceAssetId":{"type":"string"},"consensusPrice":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"coverageStatus":{"type":"string"},"subjectChainId":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"tradeAmountUsd":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"evaluationScope":{"type":"string","const":"SOURCE_ASSET_ONLY","description":"pinned (Alejandro 9th reply): InterAI must not widen the signed evaluationScope claim"},"maxDeviationBps":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"reasonCodesHash":{"type":"string","pattern":"^0x[0-9a-f]{64}$"},"participantCount":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"sourceGroupCount":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"maxDataAgeSeconds":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"destinationAssetId":{"type":"string"},"independenceStatus":{"type":"string"},"manipulationRiskBps":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"evaluatedAssetIdsHash":{"type":"string","pattern":"^0x[0-9a-f]{64}$"},"maxStablecoinDepegBps":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"providerObservationsHash":{"type":"string","pattern":"^0x[0-9a-f]{64}$"},"requiredParticipantCount":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"crossProviderAgreementBps":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."},"recommendedMaxPositionUsd":{"oneOf":[{"type":"integer","maximum":9007199254740991,"minimum":0},{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"canonical decimal-string: only for values > 9007199254740991"}],"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."}},"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.","additionalProperties":false},"inline_signature":{"type":"string","description":"provider signature over the typed payload"}},"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.","additionalProperties":false},"description":"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."},"authorization_ttl_seconds":{"type":"integer","default":60,"maximum":300,"minimum":1,"description":"Lifetime of a single-use execution authorization for a canonical action. Only Bearer-authenticated pilot requests receive executable authorization material."}},"description":"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.","additionalProperties":false},"annotations":{"title":"Verify Response (Legacy)","readOnlyHint":false,"openWorldHint":false,"idempotentHint":false,"destructiveHint":false},"title":"Verify Response (Legacy)"},"changes":[{"kind":"name","detail":"Renamed \"oracle.verify_response\" → \"oracle_verify_response\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":6307,"tokensAfter":6307},{"name":"oracle.verify_trust_receipt_signature","fixed":{"name":"oracle_verify_trust_receipt_signature","description":"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.","inputSchema":{"type":"object","anyOf":[{"required":["receipt"],"description":"Validate using a caller-supplied receipt object."},{"required":["receipt_id"],"description":"Validate using the canonical server-stored receipt resolved from receipt_id."}],"required":["signature"],"properties":{"receipt":{"type":"object","description":"Optional caller-supplied receipt object, typically evidence received from another agent or system. Either receipt or receipt_id is required."},"signature":{"type":"string","description":"HMAC-SHA256 signature to validate against the referenced InterAI receipt. Required."},"receipt_id":{"type":"string","description":"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."},"signature_alg":{"enum":["hmac-sha256"],"type":"string","description":"Optional signature algorithm declaration. The current supported value is hmac-sha256."},"signed_payload":{"type":"string","description":"Optional exact serialized payload that was signed. Supply it when validating externally transported receipt evidence that includes the original signed payload."}},"description":"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.","additionalProperties":false},"annotations":{"title":"Verify Trust Receipt Signature","readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"title":"Verify Trust Receipt Signature"},"changes":[{"kind":"name","detail":"Renamed \"oracle.verify_trust_receipt_signature\" → \"oracle_verify_trust_receipt_signature\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":547,"tokensAfter":547}],"toolsChanged":9,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}