{"schema_version":1,"generated_from":"MCP tools/list registrations","server":{"name":"resolvd","instructions":"Resolve and enrich organizations using source-backed evidence. Read get_enrichment_fields and get_usage before paid work. Use a stable idempotency_key for retries. Inspect decision, match_confidence, source dates and scope; an unresolved result is useful and must not be presented as a match. Bulk work uses durable batch jobs. Respect _meta.resolvd.rate_limit and retry timing. Public API/MCP instructions and schemas are at /api/mcp and /api/openapi.json."},"connection":{"api_origin":"https://app.entitybind.com","mcp_url":"https://app.entitybind.com/mcp","mcp_transport":"streamable-http","protocol_version":"2025-11-25","configuration_required":false,"note":"Configured URLs are connection settings, not proof of public deployment."},"tool_count":50,"tools":[{"name":"resolve_company","description":"Resolve a company record to a golden entity, creating one if it is new.\n\n    Provide a company name and a valid country name or ISO code on every record.\n    Website, description/context, postcode and identifiers are optional clues. The pipeline\n    normalises the record, finds candidate entities, and decides match /\n    no_match / unresolved. `unresolved` is an honest answer, not a failure: the\n    evidence was ambiguous and the record was queued for review rather than\n    guessed at; it carries `candidate` (the one the cascade came closest on),\n    `candidates` (the whole shortlist, ranked best first) and `review_id` so you\n    can fetch the review item. An actionable `clarification` names typed answer\n    fields and visible candidate clues. Ask the caller for a clue they know,\n    then resubmit their corrected input with the same `client_ref` and\n    `clarification_of={record_id, decision_id}` from the unresolved result.\n    The answer is unverified caller evidence, not a candidate-selection command;\n    normal admission, plan limits and billing apply. A separately authorized\n    reviewer can use review_submit when more evidence is still needed.\n    When an entity is returned, every\n    attribute in `record` carries a citation in `provenance` (source_id,\n    source_url, licence).\n\n    `decision_id` is the receipt: read it back with get_decision for the\n    features, thresholds, cited evidence and a replay of the score.\n\n    `description` aliases `context`; `postcode` aliases `address.postal_code`.\n    Conflicting alias/canonical values are rejected. `context` is a bounded,\n    unverified company description or location clue;\n    authoritative contradictory evidence wins. `address` accepts structured\n    line1, line2, city, region, postal_code and country fields. Both use the same\n    validation and normalization as REST, including conflicting address clues.\n\n    `entity_created` means the entity is new to this tenant's local store. That\n    includes a confidently matched external-registry identity as well as a\n    no-candidate mint; `match_confidence_basis` distinguishes match-side\n    evidence from the weaker no-candidate/reject-side estimate. A single member\n    record is never, by itself, corroboration that the company exists as\n    described.\n\n    `depth` is your cost ceiling: \"probabilistic\" makes no external call at all\n    (no LLM, no research agent, no registry lookup) and answers in milliseconds,\n    \"adjudication\" adds the LLM, \"research\" (the default) adds agentic\n    registry/web research. Capping does not lower precision — a capped record\n    abstains rather than being decided cheaply, and `depth_capped` tells you\n    that is what happened. `enrich=false` turns the registries off at any depth.\n\n    `usage` reports what this call cost and what your plan has left. An\n    `unresolved` answer costs 0 credits.\n\n    Discover `fields` and `field_packs` with get_enrichment_fields. Selection\n    projects the returned entity and provenance. Opt into quality_target with\n    explicit fields or packs for a default 0.95 match-confidence and 0.95 sourced\n    completeness requirement. At research depth one bounded paid pass may gather\n    missing supported descriptive fields. Unmet targets require review; model\n    self-confidence and invented values cannot satisfy them. Selected fields\n    carry a field_status;\n    `not_checked` does not establish that the company lacks that value.\n    ","inputSchema":{"$defs":{"AddressRequest":{"additionalProperties":false,"properties":{"line1":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"title":"Line1"},"line2":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"title":"Line2"},"city":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"City"},"region":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Region"},"postal_code":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"title":"Postal Code"},"country":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Country"}},"title":"AddressRequest","type":"object"},"ClarificationOrigin":{"additionalProperties":false,"description":"A tenant-owned unresolved submission, never an admission instruction.","properties":{"record_id":{"maxLength":64,"minLength":1,"title":"Record Id","type":"string"},"decision_id":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"title":"Decision Id"},"job_id":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"title":"Job Id"},"record_index":{"anyOf":[{"maximum":4999,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Record Index"}},"required":["record_id"],"title":"ClarificationOrigin","type":"object"},"QualityTarget":{"additionalProperties":false,"description":"An opt-in delivery requirement, never a dial for changing confidence.","properties":{"minimum_match_confidence":{"default":0.95,"maximum":1.0,"minimum":0.9,"title":"Minimum Match Confidence","type":"number"},"minimum_completeness":{"default":0.95,"exclusiveMinimum":0.0,"maximum":1.0,"title":"Minimum Completeness","type":"number"}},"title":"QualityTarget","type":"object"},"ResolutionDepth":{"description":"How far down the cascade a caller is willing to pay to go.\n\nThe cascade costs orders of magnitude more at the bottom than at the top\n(docs/COMMERCIAL-MODEL.md §2), so the depth cap is simultaneously the\ncaller's price ceiling and our cost ceiling. Capping does not lower\nprecision — a capped record abstains instead of being decided cheaply.","enum":["probabilistic","adjudication","research"],"title":"ResolutionDepth","type":"string"}},"additionalProperties":false,"properties":{"name":{"maxLength":500,"minLength":1,"title":"Name","type":"string"},"country":{"maxLength":64,"minLength":1,"title":"Country","type":"string"},"website":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Website"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Domain"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Email"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Phone"},"registration_number":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Registration Number"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Jurisdiction"},"lei":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Lei"},"depth":{"$ref":"#/$defs/ResolutionDepth","default":"research"},"enrich":{"default":true,"title":"Enrich","type":"boolean"},"address":{"anyOf":[{"$ref":"#/$defs/AddressRequest"},{"type":"null"}],"default":null},"context":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Context"},"description":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}],"default":null,"title":"Description"},"postcode":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"title":"Postcode"},"trading_names":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Trading Names"},"previous_names":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Previous Names"},"incorporation_date":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"title":"Incorporation Date"},"legal_form":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Legal Form"},"vat_number":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Vat Number"},"duns":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Duns"},"isin":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Isin"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Ticker"},"exchange":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Exchange"},"parent_name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Parent Name"},"extra":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"default":null,"title":"Extra"},"client_ref":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"title":"Client Ref"},"idempotency_key":{"anyOf":[{"maxLength":200,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"title":"Idempotency Key"},"fields":{"anyOf":[{"items":{"type":"string"},"maxItems":64,"type":"array"},{"type":"null"}],"default":null,"title":"Fields"},"field_packs":{"anyOf":[{"items":{"type":"string"},"maxItems":8,"type":"array"},{"type":"null"}],"default":null,"title":"Field Packs"},"include_field_status":{"default":false,"title":"Include Field Status","type":"boolean"},"quality_target":{"anyOf":[{"$ref":"#/$defs/QualityTarget"},{"type":"null"}],"default":null},"clarification_of":{"anyOf":[{"$ref":"#/$defs/ClarificationOrigin"},{"type":"null"}],"default":null}},"required":["name","country"],"title":"resolve_companyArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"resolve_companyDictOutput","type":"object"},"_meta":{"resolvd":{"accepted_scopes":["resolve"]}}},{"name":"match_records","description":"Decide whether two raw company records refer to the same company.\n\n    `left` and `right` are company records. Each accepts name, website, domain,\n    email, phone, registration_number, lei, jurisdiction, country, address and\n    extra, and each requires a company name and a valid country name or ISO code.\n    Country is a retrieval clue, not legal identity proof. Unknown field names are\n    rejected rather than ignored. Returns the pairwise decision (match /\n    no_match / unresolved), the pipeline stage that decided, the calibrated\n    probability when one was computed, and the adjudicator's rationale when an\n    LLM verdict was involved. `unresolved` means the evidence is genuinely\n    ambiguous — do not treat it as a no_match.\n\n    `depth` controls the entire comparison: probabilistic, adjudication or\n    research (default). Choose probabilistic explicitly for a shallow attempt.\n    ","inputSchema":{"$defs":{"AddressRequest":{"additionalProperties":false,"properties":{"line1":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"title":"Line1"},"line2":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"title":"Line2"},"city":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"City"},"region":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Region"},"postal_code":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"title":"Postal Code"},"country":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Country"}},"title":"AddressRequest","type":"object"},"CompanyComparisonRecord":{"additionalProperties":false,"properties":{"ticker":{"anyOf":[{"maxLength":16,"type":"string"},{"type":"null"}],"default":null,"title":"Ticker"},"isin":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"title":"Isin"},"email":{"anyOf":[{"maxLength":320,"type":"string"},{"type":"null"}],"default":null,"title":"Email"},"vat_number":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"title":"Vat Number"},"incorporation_date":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"title":"Incorporation Date"},"name":{"description":"Company name is required.","maxLength":500,"minLength":1,"title":"Name","type":"string"},"previous_names":{"items":{"type":"string"},"maxItems":10,"title":"Previous Names","type":"array"},"country":{"description":"Required country name or ISO country code; a retrieval clue, not legal identity proof.","maxLength":64,"minLength":1,"title":"Country","type":"string"},"domain":{"anyOf":[{"maxLength":253,"type":"string"},{"type":"null"}],"default":null,"title":"Domain"},"exchange":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Exchange"},"registration_number":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Registration Number"},"jurisdiction":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"title":"Jurisdiction"},"context":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}],"default":null,"description":"Anything you know about this company in plain language, e.g. 'recruitment company based in the UK, not the pub chain'. Use it when the name alone is ambiguous: it is weighed as evidence alongside the registers, and it is what separates two companies that share a name. It is treated as an unverified claim, so a register that contradicts it wins, and it cannot direct the answer — asserting the verdict or a confidence here has no effect.","title":"Context"},"parent_name":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"title":"Parent Name"},"legal_form":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Legal Form"},"description":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}],"default":null,"description":"Alias for context: an optional, unverified company description.","title":"Description"},"trading_names":{"items":{"type":"string"},"maxItems":10,"title":"Trading Names","type":"array"},"address":{"anyOf":[{"$ref":"#/$defs/AddressRequest"},{"type":"null"}],"default":null},"website":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"title":"Website"},"extra":{"additionalProperties":{"type":"string"},"title":"Extra","type":"object"},"postcode":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"description":"Alias for address.postal_code: an optional postcode or ZIP code.","title":"Postcode"},"duns":{"anyOf":[{"maxLength":16,"type":"string"},{"type":"null"}],"default":null,"title":"Duns"},"lei":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"title":"Lei"},"phone":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Phone"}},"required":["name","country"],"title":"CompanyComparisonRecord","type":"object"},"ResolutionDepth":{"description":"How far down the cascade a caller is willing to pay to go.\n\nThe cascade costs orders of magnitude more at the bottom than at the top\n(docs/COMMERCIAL-MODEL.md §2), so the depth cap is simultaneously the\ncaller's price ceiling and our cost ceiling. Capping does not lower\nprecision — a capped record abstains instead of being decided cheaply.","enum":["probabilistic","adjudication","research"],"title":"ResolutionDepth","type":"string"}},"additionalProperties":false,"properties":{"left":{"$ref":"#/$defs/CompanyComparisonRecord"},"right":{"$ref":"#/$defs/CompanyComparisonRecord"},"depth":{"$ref":"#/$defs/ResolutionDepth","default":"research"},"idempotency_key":{"anyOf":[{"maxLength":200,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"title":"Idempotency Key"}},"required":["left","right"],"title":"match_recordsArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"match_recordsDictOutput","type":"object"},"_meta":{"resolvd":{"accepted_scopes":["resolve"]}}},{"name":"get_enrichment_fields","description":"Discover enrichment fields, supplier readiness and your resale rights, free.\n\n    Check this before requesting market cap, revenue, employees or sectors.\n    Available means a configured connector supports the field, not that every\n    company has a value. Unsupported requirements have no invented supplier.\n    This calls no provider and writes no record or usage-ledger row.\n    ","inputSchema":{"additionalProperties":false,"properties":{},"title":"get_enrichment_fieldsArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"get_enrichment_fieldsDictOutput","type":"object"},"annotations":{"readOnlyHint":true},"_meta":{"resolvd":{"accepted_scopes":["read","resolve"]}}},{"name":"get_entity","description":"Fetch a resolved golden record by entity_id, with per-field provenance.\n\n    Every attribute in `record` is the surviving value chosen by survivorship\n    ranking; `provenance` cites where each value came from (source_id,\n    source_url, licence). Raises an error if the entity does not exist —\n    including one that exists under a different account, which is reported as\n    absent rather than as forbidden.\n    ","inputSchema":{"additionalProperties":false,"properties":{"entity_id":{"maxLength":64,"title":"Entity Id","type":"string"},"fields":{"anyOf":[{"items":{"type":"string"},"maxItems":64,"type":"array"},{"type":"null"}],"default":null,"title":"Fields"},"field_packs":{"anyOf":[{"items":{"type":"string"},"maxItems":8,"type":"array"},{"type":"null"}],"default":null,"title":"Field Packs"},"include_field_status":{"default":false,"title":"Include Field Status","type":"boolean"}},"required":["entity_id"],"title":"get_entityArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"get_entityDictOutput","type":"object"},"annotations":{"readOnlyHint":true},"_meta":{"resolvd":{"accepted_scopes":["read","resolve"]}}},{"name":"get_crosswalk","description":"Map one entity across every identifier system it is known by, cited.\n\n    Returns `identifiers` (LEI, company number + its jurisdiction, CIK, every\n    ticker with its exchange, DUNS), each with the citation, licence and\n    freshness for THAT identifier — not one citation for the whole map. Use this\n    when you need to join a company across systems rather than read its full\n    record.\n\n    `checked_and_empty` names the systems that produced nothing, and why:\n    `not_found` means a wired source supplies that scheme and has no value for\n    this company; `not_configured` means no source here supplies it at all.\n    Treat those differently — only the first is a statement about the company.\n\n    `ownership` defaults to one hop. Raise `max_hops` to follow exact LEIs or\n    authority-scoped company numbers through entities already held by this\n    tenant; `as_of` filters source-effective facts and PSC intervals. The walk\n    is cycle-safe and refuses ambiguous or name-only edges. Its nodes, edges,\n    candidate people, cycles and `not_traversed` ledger make those limits\n    explicit, so do not read an empty parent as \"no parent exists\".\n    ","inputSchema":{"additionalProperties":false,"properties":{"entity_id":{"maxLength":64,"title":"Entity Id","type":"string"},"max_hops":{"default":1,"maximum":10,"minimum":1,"title":"Max Hops","type":"integer"},"as_of":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"title":"As Of"}},"required":["entity_id"],"title":"get_crosswalkArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"get_crosswalkDictOutput","type":"object"},"annotations":{"readOnlyHint":true},"_meta":{"resolvd":{"accepted_scopes":["read","resolve"]}}},{"name":"search_entities","description":"Find entities already known here that match the given fields, without resolving.\n\n    Returns lightweight candidates ({entity_id, legal_name, domain}) retrieved\n    on the same blocking keys the cascade uses and RANKED by the same calibrated\n    scorer, likeliest first — so the first row is the likeliest company rather\n    than whichever entity id sorted lowest. No probability is returned: a score\n    against a triage query is not a match claim, and resolve_company is what\n    makes one.\n\n    Nothing is written and nothing is charged. Use this to check whether a\n    company is already known before spending a resolve; an empty list means no\n    known entity shares an identifier or a name key with your input, which is\n    not a claim that the company does not exist.\n\n    Supply at least one of name, domain, registration_number or lei — country\n    narrows a query but cannot retrieve on its own.\n    ","inputSchema":{"additionalProperties":false,"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Domain"},"registration_number":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Registration Number"},"lei":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Lei"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Country"},"limit":{"default":10,"maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"title":"search_entitiesArguments","type":"object"},"outputSchema":{"properties":{"result":{"items":{"additionalProperties":true,"type":"object"},"title":"Result","type":"array"}},"required":["result"],"title":"search_entitiesOutput","type":"object"},"annotations":{"readOnlyHint":true},"_meta":{"resolvd":{"accepted_scopes":["read","resolve"]}}},{"name":"review_queue_list","description":"List review items — resolutions the pipeline abstained on — oldest first.\n\n    Each item carries the submitted record, the candidate entity (if any), the\n    ranked shortlist, the decision context and created_at. Paginate with\n    limit/offset; submit a verdict for an item with review_submit.\n\n    `status` selects \"open\" (the default — still awaiting a verdict), \"resolved\"\n    or \"all\". `stage` separates \"the model could not tell\" from \"the caller\n    capped the depth\", which are worked differently. `evidence_tier` selects\n    the identifier/corroborated/uncorroborated calibration slice. `record_id`\n    is the join back to a submission: resolve_company returns the record_id it\n    minted, and this finds the queue item that submission produced.\n    `min_confidence` drops items scored below the given probability — an item\n    that never reached the scorer carries no probability and is dropped by any\n    minimum at all.\n\n    `sort=\"confidence_desc\"` works the backlog by value instead of by arrival:\n    the items nearest the auto-merge band are the cheapest to settle. Oldest\n    first stays the default, so an agent that does not choose does not starve\n    the tail of the queue.\n    ","inputSchema":{"$defs":{"ComparisonEvidenceTier":{"description":"Strength of the evidence that actually agrees for one comparison.\n\nPopulated fields are not evidence of a match.  In particular, a legal name,\ncountry and legal form can all be present on both sides while still naming\ntwo unrelated companies.  This tier is derived from agreement features so\nconfidence calibration cannot pool those name-only decisions with pairs\ncorroborated by an independent attribute.","enum":["identifier","corroborated","uncorroborated"],"title":"ComparisonEvidenceTier","type":"string"},"DecisionStage":{"enum":["deterministic","probabilistic","llm_adjudication","agentic_research","human_review"],"title":"DecisionStage","type":"string"},"ReviewSort":{"description":"The orders a reviewer may walk the abstention queue in.\n\nA StrEnum so callers above this layer need not import from infrastructure:\nthe API defines its own query enum and hands the store its string value, the\nsame way `ReviewStatus` arrives here already reduced to `resolved: bool`.","enum":["oldest_first","newest_first","confidence_desc","confidence_asc"],"title":"ReviewSort","type":"string"},"ReviewStatus":{"description":"Which slice of the queue a listing asks for.","enum":["open","resolved","all"],"title":"ReviewStatus","type":"string"}},"additionalProperties":false,"properties":{"limit":{"default":20,"title":"Limit","type":"integer"},"offset":{"default":0,"title":"Offset","type":"integer"},"status":{"$ref":"#/$defs/ReviewStatus","default":"open"},"stage":{"anyOf":[{"$ref":"#/$defs/DecisionStage"},{"type":"null"}],"default":null},"evidence_tier":{"anyOf":[{"$ref":"#/$defs/ComparisonEvidenceTier"},{"type":"null"}],"default":null},"record_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Record Id"},"min_confidence":{"anyOf":[{"maximum":1.0,"minimum":0.0,"type":"number"},{"type":"null"}],"default":null,"title":"Min Confidence"},"sort":{"$ref":"#/$defs/ReviewSort","default":"oldest_first"}},"title":"review_queue_listArguments","type":"object"},"outputSchema":{"properties":{"result":{"items":{"additionalProperties":true,"type":"object"},"title":"Result","type":"array"}},"required":["result"],"title":"review_queue_listOutput","type":"object"},"annotations":{"readOnlyHint":true},"_meta":{"resolvd":{"accepted_scopes":["read","resolve","review"]}}},{"name":"review_queue_get","description":"Poll one review item: what the abstention was about, and whether it is settled.\n\n    When resolve_company answers `unresolved` it returns the `review_id` of the\n    item it queued. This is where that id is redeemed — an agent can track its\n    own abstention to a verdict instead of re-resolving the record to find out,\n    which would cost a second call and tell it less.\n\n    `resolved` says whether a verdict has been reached, `reviewer_decision` what\n    it was, and `applied` whether it changed stored state (`blocked_reason` says\n    why it did not). An item belonging to another account reads as not found,\n    never as forbidden.\n    ","inputSchema":{"additionalProperties":false,"properties":{"review_id":{"maxLength":64,"title":"Review Id","type":"string"}},"required":["review_id"],"title":"review_queue_getArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"review_queue_getDictOutput","type":"object"},"annotations":{"readOnlyHint":true},"_meta":{"resolvd":{"accepted_scopes":["read","resolve","review"]}}},{"name":"get_decision","description":"Read the receipt for a decision: features, thresholds, evidence and a replay.\n\n    Every resolve returns a `decision_id`; this redeems it. An agent that can\n    resolve but cannot pull the receipt for what it just resolved can report a\n    conclusion and never the grounds for it — which is the difference between a\n    tool a person can sign off on and one they have to take on trust.\n\n    `replay.reproduced` is the part that matters: the scorer is re-run over the\n    features stored at decision time and compared with the stored probability.\n    It is null for a deterministic identifier match, which never reached the\n    scorer, and `replay.pipeline_version_matches` says whether the weights doing\n    the reproducing are the ones that decided.\n\n    Pairwise match_records calls are stateless and mint no receipt — there is no\n    decision_id to read back. A decision belonging to another account reads as\n    not found, never as forbidden.\n    ","inputSchema":{"additionalProperties":false,"properties":{"decision_id":{"maxLength":64,"title":"Decision Id","type":"string"}},"required":["decision_id"],"title":"get_decisionArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"get_decisionDictOutput","type":"object"},"annotations":{"readOnlyHint":true},"_meta":{"resolvd":{"accepted_scopes":["read","resolve","review"]}}},{"name":"get_usage","description":"What your account has spent and how much of it was automated, with intervals.\n\n    An agent budgets its own spend, and the `usage` block on a resolve only\n    reports one call. This is the period: calls, credits, automation rate,\n    abstention rate and the stage and endpoint mix — every rate with its 95%\n    Wilson interval and the sample behind it, because an automation rate of 1.0\n    over nine calls and one over nine thousand are the same number and not the\n    same claim.\n\n    `since` and `until` are dates read as UTC and applied half-open, so two\n    adjacent periods sum without double-counting; `until` covers the whole of\n    that day. Omitted, the window is your billing period, which is the same span\n    the `usage` block on every other tool is summed over.\n\n    `not_measured` names what this cannot tell you and why — precision above all,\n    which no view of usage can measure, because review items exist only where the\n    pipeline abstained and the automatically merged population carries no labels.\n    ","inputSchema":{"additionalProperties":false,"properties":{"since":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"title":"Since"},"until":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"title":"Until"}},"title":"get_usageArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"get_usageDictOutput","type":"object"},"annotations":{"readOnlyHint":true},"_meta":{"resolvd":{"accepted_scopes":["read","resolve"]}}},{"name":"get_evaluation","description":"Read lifetime evaluation balances, expiry, pauses and source configuration for free.\n\n    No grant is created and validity does not start. Credits and deep attempts\n    are independent lifetime balances shared with REST and every tenant key.\n    ","inputSchema":{"additionalProperties":false,"properties":{},"title":"get_evaluationArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"get_evaluationDictOutput","type":"object"},"annotations":{"readOnlyHint":true},"_meta":{"resolvd":{"accepted_scopes":["read","resolve"]}}},{"name":"review_submit","description":"Submit a human/agent verdict for an open review item.\n\n    `decision` must be either \"match\" or \"no_match\" — a reviewer settles the\n    item, and \"unresolved\" is the state it is already in. Resolves the item and\n    returns its final state; this is how ambiguous cases get settled by a\n    reviewer instead of an over-confident automatic merge. An item that already\n    carries a verdict is an error, not an overwrite.\n\n    A remote call requires a separately issued `review` credential. Its stored,\n    immutable name becomes the accountable reviewer principal; `reviewer_id` is\n    optional transition data and, when supplied, must equal that name. The\n    credential and the fact that the verdict arrived over MCP are recorded beside\n    it automatically. A trusted local stdio operator may still name the analyst\n    explicitly because that process is itself the operator boundary.\n\n    `reason` is what settled it, stored on the same audit row.\n\n    `applied` says whether the verdict changed stored state and `blocked_reason`\n    says why it did not — the candidate was never stored, has been erased, or\n    the merge guard refused the merge.\n    ","inputSchema":{"additionalProperties":false,"properties":{"review_id":{"maxLength":64,"title":"Review Id","type":"string"},"decision":{"title":"Decision","type":"string"},"reviewer_id":{"anyOf":[{"maxLength":255,"type":"string"},{"type":"null"}],"default":null,"title":"Reviewer Id"},"reason":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}],"default":null,"title":"Reason"}},"required":["review_id","decision"],"title":"review_submitArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"review_submitDictOutput","type":"object"},"_meta":{"resolvd":{"accepted_scopes":["review"]}}},{"name":"submit_batch_job","description":"Queue durable resolution/enrichment with the same batch contract and billing as REST.\n\n    Requires an issued remote resolve credential and a stable idempotency_key.\n    Retry with identical input/key to recover the same job; a changed input conflicts.\n    Up to the deployment's batch limit (default 500) per job; split 1,000 records\n    into two jobs. Inspect get_evaluation/get_usage first for depth and credit limits.\n    Returns immediately. Use get_batch_job/results, lifecycle SSE or a registered\n    webhook to observe completion. A worker must be running beside the API.\n    ","inputSchema":{"$defs":{"AddressRequest":{"additionalProperties":false,"properties":{"line1":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"title":"Line1"},"line2":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"title":"Line2"},"city":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"City"},"region":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Region"},"postal_code":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"title":"Postal Code"},"country":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Country"}},"title":"AddressRequest","type":"object"},"BatchRequest":{"additionalProperties":false,"properties":{"records":{"items":{"$ref":"#/$defs/ResolveRequest"},"maxItems":5000,"minItems":1,"title":"Records","type":"array"}},"required":["records"],"title":"BatchRequest","type":"object"},"ClarificationOrigin":{"additionalProperties":false,"description":"A tenant-owned unresolved submission, never an admission instruction.","properties":{"record_id":{"maxLength":64,"minLength":1,"title":"Record Id","type":"string"},"decision_id":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"title":"Decision Id"},"job_id":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"title":"Job Id"},"record_index":{"anyOf":[{"maximum":4999,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Record Index"}},"required":["record_id"],"title":"ClarificationOrigin","type":"object"},"QualityTarget":{"additionalProperties":false,"description":"An opt-in delivery requirement, never a dial for changing confidence.","properties":{"minimum_match_confidence":{"default":0.95,"maximum":1.0,"minimum":0.9,"title":"Minimum Match Confidence","type":"number"},"minimum_completeness":{"default":0.95,"exclusiveMinimum":0.0,"maximum":1.0,"title":"Minimum Completeness","type":"number"}},"title":"QualityTarget","type":"object"},"ResolutionDepth":{"description":"How far down the cascade a caller is willing to pay to go.\n\nThe cascade costs orders of magnitude more at the bottom than at the top\n(docs/COMMERCIAL-MODEL.md §2), so the depth cap is simultaneously the\ncaller's price ceiling and our cost ceiling. Capping does not lower\nprecision — a capped record abstains instead of being decided cheaply.","enum":["probabilistic","adjudication","research"],"title":"ResolutionDepth","type":"string"},"ResolveRequest":{"additionalProperties":false,"description":"Mirrors CompanyRecord's caller-suppliable fields with hard input caps.\n\nWHAT MAY BE ADDED HERE, and where it goes. Every field below that describes\nthe company is mapped onto `CompanyRecord` and is therefore inside the\ncontent fingerprint — see that class for the rule and why both halves of it\nmatter. Fields that describe the CALL rather than the company (`depth`,\n`enrich`, `client_ref`) stay on this request and never reach the record.\n\nThe identifiers are two classes and the distinction decides where in the\ncascade they may ever be used:\n\n* STRONG IDENTIFIER — one value, one company, issued by a body that\n  guarantees it. `lei`, `registration_number` + `jurisdiction`, `duns`, and\n  `ticker` + `exchange`. These are the only kind that could justify a\n  deterministic short-circuit.\n* CORROBORATING SIGNAL — narrows the field, settles nothing alone.\n  `vat_number`, `isin`, `incorporation_date`, `legal_form`, `trading_names`,\n  `previous_names`, `parent_name`, `context`, `extra`.\n\nTwo of these look strong and are not, which is the whole reason the\ndistinction is written down rather than inferred from the field name:\n\n* `vat_number` — group VAT registration is MANY companies to ONE number, so\n  equal VAT numbers do not imply one company. It may corroborate a merge and\n  may never carry one.\n* `isin` — identifies a security, not an issuer. One company has many, and a\n  financing subsidiary issues under itself. It becomes strong only once\n  GLEIF's ISIN->LEI mapping resolves it to an LEI, which already is.\n\nREJECTED, with the reason, because a wide schema nobody populates is worse\nthan a narrow one:\n\n* `employee_count` — self-reported, ranges disagree between every source\n  that publishes one, and it moves monthly. Enrichment already carries\n  `financials.employees_range`; a caller-supplied count would contradict it\n  routinely and the contradiction would mean nothing.\n* `industry_code` — not comparable without also negotiating a scheme (SIC\n  62020 and NAICS 541512 are the same activity and share no characters), and\n  every member of a group files the same code, so it separates nothing.\n  `context` carries the same intent — \"IT consultancy, not the pub of\n  the same name\" — with no scheme to agree on.\n* `company_status` — a register-derived attribute we already fetch\n  (`registration.status` in `llm.prompts.ENRICHMENT_ATTRIBUTES`). A caller\n  asserting it adds no information and can only contradict the register,\n  which is the one source that outranks them.","properties":{"name":{"description":"Company name is required.","maxLength":500,"minLength":1,"title":"Name","type":"string"},"website":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"title":"Website"},"domain":{"anyOf":[{"maxLength":253,"type":"string"},{"type":"null"}],"default":null,"title":"Domain"},"email":{"anyOf":[{"maxLength":320,"type":"string"},{"type":"null"}],"default":null,"title":"Email"},"phone":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Phone"},"registration_number":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Registration Number"},"jurisdiction":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"title":"Jurisdiction"},"lei":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"title":"Lei"},"address":{"anyOf":[{"$ref":"#/$defs/AddressRequest"},{"type":"null"}],"default":null},"country":{"description":"Required country name or ISO country code; a retrieval clue, not legal identity proof.","maxLength":64,"minLength":1,"title":"Country","type":"string"},"trading_names":{"items":{"type":"string"},"maxItems":10,"title":"Trading Names","type":"array"},"previous_names":{"items":{"type":"string"},"maxItems":10,"title":"Previous Names","type":"array"},"incorporation_date":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"title":"Incorporation Date"},"legal_form":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Legal Form"},"vat_number":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"title":"Vat Number"},"duns":{"anyOf":[{"maxLength":16,"type":"string"},{"type":"null"}],"default":null,"title":"Duns"},"isin":{"anyOf":[{"maxLength":12,"type":"string"},{"type":"null"}],"default":null,"title":"Isin"},"ticker":{"anyOf":[{"maxLength":16,"type":"string"},{"type":"null"}],"default":null,"title":"Ticker"},"exchange":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Exchange"},"parent_name":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"title":"Parent Name"},"context":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}],"default":null,"description":"Anything you know about this company in plain language, e.g. 'recruitment company based in the UK, not the pub chain'. Use it when the name alone is ambiguous: it is weighed as evidence alongside the registers, and it is what separates two companies that share a name. It is treated as an unverified claim, so a register that contradicts it wins, and it cannot direct the answer — asserting the verdict or a confidence here has no effect.","title":"Context"},"description":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}],"default":null,"description":"Alias for context: an optional, unverified company description.","title":"Description"},"postcode":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"description":"Alias for address.postal_code: an optional postcode or ZIP code.","title":"Postcode"},"clarification_of":{"anyOf":[{"$ref":"#/$defs/ClarificationOrigin"},{"type":"null"}],"default":null},"extra":{"additionalProperties":{"type":"string"},"title":"Extra","type":"object"},"depth":{"$ref":"#/$defs/ResolutionDepth","default":"research"},"enrich":{"default":true,"title":"Enrich","type":"boolean"},"client_ref":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"title":"Client Ref"},"fields":{"anyOf":[{"items":{"type":"string"},"maxItems":64,"type":"array"},{"type":"null"}],"default":null,"description":"Returned entity attributes; discover them at /v1/reference/enrichment-fields. Projection only: does not change identity evidence, acquisition, confidence or billing.","title":"Fields"},"field_packs":{"anyOf":[{"items":{"type":"string"},"maxItems":8,"type":"array"},{"type":"null"}],"default":null,"description":"Named groups of returned attributes; combined with fields. Missing values have explicit status rather than invented data.","title":"Field Packs"},"include_field_status":{"default":false,"title":"Include Field Status","type":"boolean"},"quality_target":{"anyOf":[{"$ref":"#/$defs/QualityTarget"},{"type":"null"}],"default":null,"description":"Optional delivery target, defaulting to 0.95 calibrated match confidence and 0.95 sourced completeness. Requires explicit nonempty fields or field_packs. At research depth, missing supported descriptive fields may trigger one bounded paid research pass. Unmet targets are reported for review; values are never invented."}},"required":["name","country"],"title":"ResolveRequest","type":"object"}},"additionalProperties":false,"properties":{"payload":{"$ref":"#/$defs/BatchRequest"},"idempotency_key":{"maxLength":200,"minLength":1,"title":"Idempotency Key","type":"string"}},"required":["payload","idempotency_key"],"title":"submit_batch_jobArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"submit_batch_jobDictOutput","type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":true},"_meta":{"resolvd":{"accepted_scopes":["resolve"]}}},{"name":"get_batch_job","description":"Read this tenant's durable job state. Terminal failures are never silently replayed.\n\n    Prefer completion webhooks or GET /v1/batch-jobs/{job_id}/events (SSE) over polling.\n    reconciliation_required means execution was interrupted and may have incurred cost.\n    ","inputSchema":{"additionalProperties":false,"properties":{"job_id":{"maxLength":64,"title":"Job Id","type":"string"}},"required":["job_id"],"title":"get_batch_jobArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"get_batch_jobDictOutput","type":"object"},"annotations":{"readOnlyHint":true},"_meta":{"resolvd":{"accepted_scopes":["read","resolve"]}}},{"name":"get_batch_job_results","description":"Read a bounded page of completed enriched outcomes without rerunning or charging.\n\n    Returns full per-record evidence/fields in outcomes, total and next_offset.\n    The complete batch envelope, including pair-level diagnostics, is available\n    at GET /v1/batch-jobs/{job_id}/result. Pending/failed/erased jobs return a typed error.\n    ","inputSchema":{"additionalProperties":false,"properties":{"job_id":{"maxLength":64,"title":"Job Id","type":"string"},"offset":{"default":0,"minimum":0,"title":"Offset","type":"integer"},"limit":{"default":20,"maximum":50,"minimum":1,"title":"Limit","type":"integer"}},"required":["job_id"],"title":"get_batch_job_resultsArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"get_batch_job_resultsDictOutput","type":"object"},"annotations":{"readOnlyHint":true},"_meta":{"resolvd":{"accepted_scopes":["read","resolve"]}}},{"name":"cancel_batch_job","description":"Cancel a queued job; repeated cancellation is safe. Running work returns a conflict.","inputSchema":{"additionalProperties":false,"properties":{"job_id":{"maxLength":64,"title":"Job Id","type":"string"}},"required":["job_id"],"title":"cancel_batch_jobArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"cancel_batch_jobDictOutput","type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":true},"_meta":{"resolvd":{"accepted_scopes":["resolve"]}}},{"name":"get_search_fields","description":"Discover exact local filter/operators/sorting; returnable fields are separate.","inputSchema":{"additionalProperties":false,"properties":{},"title":"get_search_fieldsArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"get_search_fieldsDictOutput","type":"object"},"annotations":{"readOnlyHint":true},"_meta":{"resolvd":{"accepted_scopes":["read","resolve"]}}},{"name":"query_companies","description":"Query stored owned companies using typed filters and a resumable bounded scan.\n\n    Empty filtered pages can have next_cursor. Creation boundaries are frozen;\n    corrections can change values. No external search or supplier call is made.\n    ","inputSchema":{"$defs":{"CompanyFilter":{"additionalProperties":false,"properties":{"field":{"enum":["identity.legal_name","digital.domain","location.country","entity_id","created_at"],"title":"Field","type":"string"},"operator":{"enum":["eq","contains","in","gte","lte"],"title":"Operator","type":"string"},"value":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"}],"title":"Value"}},"required":["field","operator","value"],"title":"CompanyFilter","type":"object"},"CompanySearch":{"additionalProperties":false,"properties":{"filters":{"items":{"$ref":"#/$defs/CompanyFilter"},"maxItems":16,"title":"Filters","type":"array"},"sort_by":{"default":"created_at","enum":["created_at","entity_id"],"title":"Sort By","type":"string"},"direction":{"default":"asc","enum":["asc","desc"],"title":"Direction","type":"string"},"as_of":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}],"default":null,"title":"As Of"},"cursor":{"anyOf":[{"maxLength":2048,"type":"string"},{"type":"null"}],"default":null,"title":"Cursor"},"limit":{"default":50,"maximum":100,"minimum":1,"title":"Limit","type":"integer"},"scan_limit":{"default":500,"maximum":1000,"minimum":1,"title":"Scan Limit","type":"integer"}},"title":"CompanySearch","type":"object"}},"additionalProperties":false,"properties":{"payload":{"$ref":"#/$defs/CompanySearch"}},"required":["payload"],"title":"query_companiesArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"query_companiesDictOutput","type":"object"},"annotations":{"readOnlyHint":true},"_meta":{"resolvd":{"accepted_scopes":["read","resolve"]}}},{"name":"manage_portfolio","description":"Create, rename or delete an owned saved company set; company facts stay intact.\n\n    Creation with a supplied ID is idempotent. Deletion removes this portfolio's\n    memberships; shared company watches remain enabled.\n    ","inputSchema":{"additionalProperties":false,"properties":{"action":{"enum":["create","rename","delete"],"title":"Action","type":"string"},"portfolio_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Portfolio Id"},"name":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"title":"Name"}},"required":["action"],"title":"manage_portfolioArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"manage_portfolioDictOutput","type":"object"},"_meta":{"resolvd":{"accepted_scopes":["resolve"]}}},{"name":"list_portfolios","description":"List this tenant's named portfolios with a scoped continuation cursor.","inputSchema":{"additionalProperties":false,"properties":{"cursor":{"anyOf":[{"maxLength":2048,"type":"string"},{"type":"null"}],"default":null,"title":"Cursor"},"limit":{"default":50,"maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"title":"list_portfoliosArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"list_portfoliosDictOutput","type":"object"},"annotations":{"readOnlyHint":true},"_meta":{"resolvd":{"accepted_scopes":["read","resolve"]}}},{"name":"get_portfolio","description":"Read an owned portfolio's name and membership count.","inputSchema":{"additionalProperties":false,"properties":{"portfolio_id":{"maxLength":64,"title":"Portfolio Id","type":"string"}},"required":["portfolio_id"],"title":"get_portfolioArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"get_portfolioDictOutput","type":"object"},"annotations":{"readOnlyHint":true},"_meta":{"resolvd":{"accepted_scopes":["read","resolve"]}}},{"name":"manage_portfolio_member","description":"Idempotently add/update an owned company membership or remove it.\n\n    Customer references and roles are portfolio metadata, never identity evidence.\n    ","inputSchema":{"additionalProperties":false,"properties":{"portfolio_id":{"maxLength":64,"title":"Portfolio Id","type":"string"},"entity_id":{"maxLength":64,"title":"Entity Id","type":"string"},"action":{"enum":["add","remove"],"title":"Action","type":"string"},"customer_reference":{"anyOf":[{"maxLength":256,"type":"string"},{"type":"null"}],"default":null,"title":"Customer Reference"},"role":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Role"}},"required":["portfolio_id","entity_id","action"],"title":"manage_portfolio_memberArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"manage_portfolio_memberDictOutput","type":"object"},"_meta":{"resolvd":{"accepted_scopes":["resolve"]}}},{"name":"get_portfolio_members","description":"Read a bounded membership page with customer references and roles.","inputSchema":{"additionalProperties":false,"properties":{"portfolio_id":{"maxLength":64,"title":"Portfolio Id","type":"string"},"cursor":{"anyOf":[{"maxLength":2048,"type":"string"},{"type":"null"}],"default":null,"title":"Cursor"},"limit":{"default":100,"maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"required":["portfolio_id"],"title":"get_portfolio_membersArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"get_portfolio_membersDictOutput","type":"object"},"annotations":{"readOnlyHint":true},"_meta":{"resolvd":{"accepted_scopes":["read","resolve"]}}},{"name":"get_portfolio_events","description":"Read consolidated local changes; filtered pages advance over scanned events.","inputSchema":{"additionalProperties":false,"properties":{"portfolio_id":{"maxLength":64,"title":"Portfolio Id","type":"string"},"after_id":{"default":0,"maximum":2147483647,"minimum":0,"title":"After Id","type":"integer"},"limit":{"default":100,"maximum":100,"minimum":1,"title":"Limit","type":"integer"},"categories":{"anyOf":[{"items":{"type":"string"},"maxItems":16,"type":"array"},{"type":"null"}],"default":null,"title":"Categories"}},"required":["portfolio_id"],"title":"get_portfolio_eventsArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"get_portfolio_eventsDictOutput","type":"object"},"annotations":{"readOnlyHint":true},"_meta":{"resolvd":{"accepted_scopes":["read","resolve"]}}},{"name":"enable_portfolio_watches","description":"Enable bounded local watches for members; follow next_cursor for another page.\n\n    This compares stored/configured local observations and makes no provider calls.\n    ","inputSchema":{"$defs":{"WatchPageRequest":{"additionalProperties":false,"properties":{"cursor":{"anyOf":[{"maxLength":2048,"type":"string"},{"type":"null"}],"default":null,"title":"Cursor"},"limit":{"default":100,"maximum":100,"minimum":1,"title":"Limit","type":"integer"},"interval_seconds":{"default":86400,"maximum":86400,"minimum":300,"title":"Interval Seconds","type":"integer"}},"title":"WatchPageRequest","type":"object"}},"additionalProperties":false,"properties":{"portfolio_id":{"maxLength":64,"title":"Portfolio Id","type":"string"},"payload":{"$ref":"#/$defs/WatchPageRequest"}},"required":["portfolio_id","payload"],"title":"enable_portfolio_watchesArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"enable_portfolio_watchesDictOutput","type":"object"},"_meta":{"resolvd":{"accepted_scopes":["resolve"]}}},{"name":"export_portfolio","description":"Export a bounded page of current local values and unchanged provenance/rights.\n\n    Pages are not a frozen snapshot; use capture_data_selection for selected members.\n    ","inputSchema":{"additionalProperties":false,"properties":{"portfolio_id":{"maxLength":64,"title":"Portfolio Id","type":"string"},"cursor":{"anyOf":[{"maxLength":2048,"type":"string"},{"type":"null"}],"default":null,"title":"Cursor"},"limit":{"default":100,"maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"required":["portfolio_id"],"title":"export_portfolioArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"export_portfolioDictOutput","type":"object"},"annotations":{"readOnlyHint":true},"_meta":{"resolvd":{"accepted_scopes":["read","resolve"]}}},{"name":"get_financial_statements","description":"Read available retained filing/observation history with cited metrics and gaps.","inputSchema":{"additionalProperties":false,"properties":{"entity_id":{"maxLength":64,"title":"Entity Id","type":"string"},"limit":{"default":100,"maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"required":["entity_id"],"title":"get_financial_statementsArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"get_financial_statementsDictOutput","type":"object"},"annotations":{"readOnlyHint":true},"_meta":{"resolvd":{"accepted_scopes":["read","resolve"]}}},{"name":"select_financial_statement","description":"Select an exact filing or period with strict criteria and disclosed preference fallback.\n\n    capture=true saves a reproducible receipt and requires a resolve credential.\n    Default selection only reads; missing financial observations remain gaps.\n    ","inputSchema":{"$defs":{"FinancialSelection":{"additionalProperties":false,"properties":{"statement_id":{"anyOf":[{"maxLength":128,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"title":"Statement Id"},"period_end":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"title":"Period End"},"relative_period":{"anyOf":[{"maximum":20,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Relative Period"},"requirements":{"$ref":"#/$defs/StatementCriteria"},"preferences":{"$ref":"#/$defs/StatementCriteria"}},"title":"FinancialSelection","type":"object"},"FinancialSelectionRequest":{"additionalProperties":false,"properties":{"selection":{"$ref":"#/$defs/FinancialSelection"},"capture":{"default":false,"title":"Capture","type":"boolean"},"capture_id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","type":"string"},{"type":"null"}],"default":null,"title":"Capture Id"}},"title":"FinancialSelectionRequest","type":"object"},"StatementCriteria":{"additionalProperties":false,"properties":{"source_id":{"anyOf":[{"maxLength":128,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"title":"Source Id"},"currency":{"anyOf":[{"pattern":"^[A-Z]{3}$","type":"string"},{"type":"null"}],"default":null,"title":"Currency"},"scope":{"anyOf":[{"enum":["legal_entity","consolidated_group","unknown"],"type":"string"},{"type":"null"}],"default":null,"title":"Scope"},"basis":{"anyOf":[{"enum":["reported","derived","estimated","average","point_in_time","unknown"],"type":"string"},{"type":"null"}],"default":null,"title":"Basis"},"attributes":{"default":[],"items":{"maxLength":128,"minLength":12,"pattern":"^financials\\.[a-z][a-z0-9_]*$","type":"string"},"maxItems":64,"title":"Attributes","type":"array"}},"title":"StatementCriteria","type":"object"}},"additionalProperties":false,"properties":{"entity_id":{"maxLength":64,"title":"Entity Id","type":"string"},"payload":{"$ref":"#/$defs/FinancialSelectionRequest"}},"required":["entity_id","payload"],"title":"select_financial_statementArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"select_financial_statementDictOutput","type":"object"},"_meta":{"resolvd":{"accepted_scopes":["read","resolve"]}}},{"name":"compare_financial_statements","description":"Compare cited comparable statement versions; restatement requires explicit evidence.","inputSchema":{"$defs":{"FinancialComparisonRequest":{"additionalProperties":false,"properties":{"left_statement_id":{"maxLength":128,"minLength":1,"title":"Left Statement Id","type":"string"},"right_statement_id":{"maxLength":128,"minLength":1,"title":"Right Statement Id","type":"string"}},"required":["left_statement_id","right_statement_id"],"title":"FinancialComparisonRequest","type":"object"}},"additionalProperties":false,"properties":{"entity_id":{"maxLength":64,"title":"Entity Id","type":"string"},"payload":{"$ref":"#/$defs/FinancialComparisonRequest"}},"required":["entity_id","payload"],"title":"compare_financial_statementsArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"compare_financial_statementsDictOutput","type":"object"},"annotations":{"readOnlyHint":true},"_meta":{"resolvd":{"accepted_scopes":["read","resolve"]}}},{"name":"get_identifier_history","description":"Read sourced identifier lifecycle and reviewed local corrections, including own retired IDs.\n\n    Provider removal is not dissolution; successor evidence is not an automatic redirect.\n    ","inputSchema":{"additionalProperties":false,"properties":{"entity_id":{"maxLength":64,"title":"Entity Id","type":"string"},"as_of":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"title":"As Of"},"after_id":{"default":0,"maximum":2147483647,"minimum":0,"title":"After Id","type":"integer"},"limit":{"default":100,"maximum":100,"minimum":1,"title":"Limit","type":"integer"}},"required":["entity_id"],"title":"get_identifier_historyArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"get_identifier_historyDictOutput","type":"object"},"annotations":{"readOnlyHint":true},"_meta":{"resolvd":{"accepted_scopes":["read","resolve"]}}},{"name":"compare_entity_sources","description":"Read dated source disagreement and survivor policy without changing company facts.\n\n    Stored customer/registry/authorized incumbent observations only. capture=true\n    stores the compared evidence and requires a resolve credential.\n    ","inputSchema":{"$defs":{"SourceComparisonRequest":{"additionalProperties":false,"properties":{"fields":{"items":{"type":"string"},"maxItems":64,"minItems":1,"title":"Fields","type":"array"},"include_history":{"default":false,"title":"Include History","type":"boolean"},"capture":{"default":false,"title":"Capture","type":"boolean"},"capture_id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","type":"string"},{"type":"null"}],"default":null,"title":"Capture Id"}},"required":["fields"],"title":"SourceComparisonRequest","type":"object"}},"additionalProperties":false,"properties":{"entity_id":{"maxLength":64,"title":"Entity Id","type":"string"},"payload":{"$ref":"#/$defs/SourceComparisonRequest"}},"required":["entity_id","payload"],"title":"compare_entity_sourcesArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"compare_entity_sourcesDictOutput","type":"object"},"_meta":{"resolvd":{"accepted_scopes":["read","resolve"]}}},{"name":"explain_relationship_paths","description":"Explain bounded cited paths between owned companies, including shared ancestors.\n\n    Control, share ownership and consolidation remain distinct from identity.\n    No path found does not prove no relationship. capture=true saves a receipt.\n    ","inputSchema":{"$defs":{"RelationshipRequest":{"additionalProperties":false,"properties":{"left_entity_id":{"maxLength":64,"minLength":1,"title":"Left Entity Id","type":"string"},"right_entity_id":{"maxLength":64,"minLength":1,"title":"Right Entity Id","type":"string"},"max_hops":{"default":3,"maximum":10,"minimum":1,"title":"Max Hops","type":"integer"},"limit":{"default":10,"maximum":20,"minimum":1,"title":"Limit","type":"integer"},"as_of":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"title":"As Of"},"capture":{"default":false,"title":"Capture","type":"boolean"},"capture_id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","type":"string"},{"type":"null"}],"default":null,"title":"Capture Id"}},"required":["left_entity_id","right_entity_id"],"title":"RelationshipRequest","type":"object"}},"additionalProperties":false,"properties":{"payload":{"$ref":"#/$defs/RelationshipRequest"}},"required":["payload"],"title":"explain_relationship_pathsArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"explain_relationship_pathsDictOutput","type":"object"},"_meta":{"resolvd":{"accepted_scopes":["read","resolve"]}}},{"name":"capture_data_selection","description":"Save bounded dated company projections with source/selection policy and fingerprint.\n\n    Creates a tenant-bound receipt; it changes no company facts. Entity/source-record\n    erasure purges captures, and retrieval recomputes current redistribution rights.\n    ","inputSchema":{"$defs":{"CaptureRequest":{"additionalProperties":false,"properties":{"fields":{"anyOf":[{"items":{"type":"string"},"maxItems":64,"type":"array"},{"type":"null"}],"default":null,"title":"Fields"},"field_packs":{"anyOf":[{"items":{"type":"string"},"maxItems":8,"type":"array"},{"type":"null"}],"default":null,"title":"Field Packs"},"entity_ids":{"items":{"type":"string"},"maxItems":100,"minItems":1,"title":"Entity Ids","type":"array"},"as_of":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"title":"As Of"},"capture_id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","type":"string"},{"type":"null"}],"default":null,"title":"Capture Id"}},"required":["entity_ids"],"title":"CaptureRequest","type":"object"}},"additionalProperties":false,"properties":{"payload":{"$ref":"#/$defs/CaptureRequest"}},"required":["payload"],"title":"capture_data_selectionArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"capture_data_selectionDictOutput","type":"object"},"_meta":{"resolvd":{"accepted_scopes":["resolve"]}}},{"name":"get_data_selection","description":"Read an owned immutable data-selection capture under current caller resale rights.","inputSchema":{"additionalProperties":false,"properties":{"receipt_id":{"maxLength":64,"title":"Receipt Id","type":"string"}},"required":["receipt_id"],"title":"get_data_selectionArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"get_data_selectionDictOutput","type":"object"},"annotations":{"readOnlyHint":true},"_meta":{"resolvd":{"accepted_scopes":["read","resolve"]}}},{"name":"delete_data_selection","description":"Remove an owned saved capture; company records and decisions remain intact.","inputSchema":{"additionalProperties":false,"properties":{"receipt_id":{"maxLength":64,"title":"Receipt Id","type":"string"}},"required":["receipt_id"],"title":"delete_data_selectionArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"delete_data_selectionDictOutput","type":"object"},"_meta":{"resolvd":{"accepted_scopes":["resolve"]}}},{"name":"get_entity_identity","description":"Read portable registry anchors, dated aliases and distinct address roles, free.\n\n    Public IDs are stable per official registry identifier, not a single global\n    canonical entity ID. They confer no cross-tenant access. Subsidiaries stay\n    separate. Missing or conflicting identity evidence is explicit.\n    ","inputSchema":{"additionalProperties":false,"properties":{"entity_id":{"maxLength":64,"title":"Entity Id","type":"string"},"as_of":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"title":"As Of"}},"required":["entity_id"],"title":"get_entity_identityArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"get_entity_identityDictOutput","type":"object"},"annotations":{"readOnlyHint":true},"_meta":{"resolvd":{"accepted_scopes":["read","resolve"]}}},{"name":"get_ownership_plan","description":"Read bounded next steps for missing ownership evidence without executing them.\n\n    Free local traversal. Accounting consolidation does not establish beneficial\n    ownership. Suggested resolve calls are separate, normally metered operations.\n    ","inputSchema":{"additionalProperties":false,"properties":{"entity_id":{"maxLength":64,"title":"Entity Id","type":"string"},"max_hops":{"default":3,"maximum":10,"minimum":1,"title":"Max Hops","type":"integer"},"as_of":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"title":"As Of"}},"required":["entity_id"],"title":"get_ownership_planArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"get_ownership_planDictOutput","type":"object"},"annotations":{"readOnlyHint":true},"_meta":{"resolvd":{"accepted_scopes":["read","resolve"]}}},{"name":"get_ultimate_owner","description":"Read organizational owner reports and bounded local controller evidence, free.\n\n    Explicit source-reported ultimate owners remain separate from accounting\n    consolidation and observed graph endpoints. Global coverage is unknown;\n    no AI, provider lookup, resolution or persistence is performed.\n    ","inputSchema":{"additionalProperties":false,"properties":{"entity_id":{"maxLength":64,"minLength":1,"title":"Entity Id","type":"string"},"max_hops":{"default":3,"maximum":10,"minimum":1,"title":"Max Hops","type":"integer"},"as_of":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"title":"As Of"}},"required":["entity_id"],"title":"get_ultimate_ownerArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"get_ultimate_ownerDictOutput","type":"object"},"annotations":{"readOnlyHint":true},"_meta":{"resolvd":{"accepted_scopes":["read","resolve"]}}},{"name":"get_market_cap_history","description":"Read five years of cited monthly month-end market caps, without provider spend.\n\n    Returns 60 completed calendar-month buckets by default. Actual valuation,\n    publication and capture dates stay separate. Missing, stale, conflicting\n    or unverified closes have no selected value. Values are not forward-filled,\n    converted between currencies or summed across incomplete share classes.\n    ","inputSchema":{"additionalProperties":false,"properties":{"entity_id":{"maxLength":64,"minLength":1,"title":"Entity Id","type":"string"},"months":{"default":60,"maximum":60,"minimum":1,"title":"Months","type":"integer"},"as_of":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"title":"As Of"},"scope":{"default":"issuer","enum":["issuer","share_class"],"title":"Scope","type":"string"},"currency":{"anyOf":[{"pattern":"^[A-Z]{3}$","type":"string"},{"type":"null"}],"default":null,"title":"Currency"},"share_class":{"anyOf":[{"maxLength":2000,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"title":"Share Class"}},"required":["entity_id"],"title":"get_market_cap_historyArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"get_market_cap_historyDictOutput","type":"object"},"annotations":{"readOnlyHint":true},"_meta":{"resolvd":{"accepted_scopes":["read","resolve"]}}},{"name":"get_entity_intelligence","description":"Read current sourced intelligence, including refreshed authorized local feeds.\n\n    Free, no provider calls or writes. Field coverage, dates, scope, methodology,\n    uncertainty and licence remain explicit. Missing observations are never zero.\n    Discover exact fields and named packs with get_enrichment_fields; selection\n    filters the entity's values and citations together. field_status explains\n    unreturned fields without changing their value type.\n    ","inputSchema":{"additionalProperties":false,"properties":{"entity_id":{"maxLength":64,"title":"Entity Id","type":"string"},"fields":{"anyOf":[{"items":{"type":"string"},"maxItems":64,"type":"array"},{"type":"null"}],"default":null,"title":"Fields"},"field_packs":{"anyOf":[{"items":{"type":"string"},"maxItems":8,"type":"array"},{"type":"null"}],"default":null,"title":"Field Packs"},"include_field_status":{"default":true,"title":"Include Field Status","type":"boolean"}},"required":["entity_id"],"title":"get_entity_intelligenceArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"get_entity_intelligenceDictOutput","type":"object"},"annotations":{"readOnlyHint":true},"_meta":{"resolvd":{"accepted_scopes":["read","resolve"]}}},{"name":"search_company_reference","description":"Find licensed, unverified company records by exact website hostname.\n\n    No resolution credits or model calls. Returns every competing record up to\n    the cap, with truncation and snapshot provenance. A domain hit is not legal\n    validation. Do not merge candidates or claim registry confidence from it.\n    Use resolve_company separately with the original customer input for an\n    identity decision; a source outage is not evidence a company does not exist.\n    ","inputSchema":{"$defs":{"CompanyReferenceQuery":{"additionalProperties":false,"properties":{"domain":{"maxLength":253,"minLength":1,"title":"Domain","type":"string"},"country":{"anyOf":[{"enum":["US","GB"],"type":"string"},{"type":"null"}],"default":null,"title":"Country"},"limit":{"default":20,"maximum":50,"minimum":1,"title":"Limit","type":"integer"}},"required":["domain"],"title":"CompanyReferenceQuery","type":"object"}},"additionalProperties":false,"properties":{"payload":{"$ref":"#/$defs/CompanyReferenceQuery"}},"required":["payload"],"title":"search_company_referenceArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"search_company_referenceDictOutput","type":"object"},"annotations":{"readOnlyHint":true},"_meta":{"resolvd":{"accepted_scopes":["read","resolve"]}}},{"name":"lookup_company_reference_batch","description":"Read licensed company profiles for up to 100 domains without AI or resolution.\n\n    Zero resolution credits; read/resolve scope. Every original row is returned,\n    including missing/invalid domains, outages and competing candidates. Company\n    profiles remain unverified and dated to the source snapshot, not today.\n    This uses only the existing company-only warehouse reader, writes no tenant\n    entities/decisions, and cannot call models, public registries or paid vendors.\n    One batch admission plus normal read admission for each distinct valid\n    normalized domain/country; duplicates share a lookup within this request.\n    At most four lookups run concurrently under a 30-second execution budget.\n    ","inputSchema":{"$defs":{"CompanyReferenceBatchItem":{"additionalProperties":false,"properties":{"client_ref":{"anyOf":[{"maxLength":256,"type":"string"},{"type":"null"}],"default":null,"title":"Client Ref"},"domain":{"anyOf":[{"maxLength":2048,"type":"string"},{"type":"null"}],"default":null,"title":"Domain"},"country":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"title":"Country"}},"title":"CompanyReferenceBatchItem","type":"object"},"CompanyReferenceBatchRequest":{"additionalProperties":false,"properties":{"records":{"items":{"$ref":"#/$defs/CompanyReferenceBatchItem"},"maxItems":100,"minItems":1,"title":"Records","type":"array"},"limit":{"default":5,"maximum":10,"minimum":2,"title":"Limit","type":"integer"}},"required":["records"],"title":"CompanyReferenceBatchRequest","type":"object"}},"additionalProperties":false,"properties":{"payload":{"$ref":"#/$defs/CompanyReferenceBatchRequest"}},"required":["payload"],"title":"lookup_company_reference_batchArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"lookup_company_reference_batchDictOutput","type":"object"},"annotations":{"readOnlyHint":true},"_meta":{"resolvd":{"accepted_scopes":["read","resolve"]}}},{"name":"screen_entity","description":"Screen an organization/person against installed sanctions, PEP and media evidence.\n\n    Free, read-only, tenant-scoped snapshots; query/results are not retained.\n    Missing or stale lists yield not_screened. Potential matches require review;\n    similarity is not match probability, a risk score or a compliance decision.\n    ","inputSchema":{"$defs":{"ScreeningIdentifier":{"additionalProperties":false,"description":"Scheme and issuing jurisdiction are part of an identifier's meaning.","properties":{"scheme":{"maxLength":500,"minLength":1,"title":"Scheme","type":"string"},"value":{"maxLength":500,"minLength":1,"title":"Value","type":"string"},"country":{"anyOf":[{"maxLength":500,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"title":"Country"}},"required":["scheme","value"],"title":"ScreeningIdentifier","type":"object"},"ScreeningRequest":{"additionalProperties":false,"properties":{"name":{"maxLength":500,"minLength":1,"title":"Name","type":"string"},"subject_type":{"default":"organization","enum":["organization","person","vessel","aircraft","unknown"],"title":"Subject Type","type":"string"},"aliases":{"items":{"maxLength":500,"minLength":1,"type":"string"},"maxItems":20,"title":"Aliases","type":"array"},"identifiers":{"items":{"$ref":"#/$defs/ScreeningIdentifier"},"maxItems":20,"title":"Identifiers","type":"array"},"country":{"anyOf":[{"maxLength":500,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"title":"Country"},"date_of_birth":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"title":"Date Of Birth"},"kinds":{"items":{"enum":["sanctions","pep","adverse_media"],"type":"string"},"maxItems":3,"minItems":1,"title":"Kinds","type":"array"},"sources":{"anyOf":[{"additionalProperties":{"items":{"pattern":"^[a-z0-9][a-z0-9_-]{0,79}$","type":"string"},"type":"array"},"propertyNames":{"enum":["sanctions","pep","adverse_media"]},"type":"object"},{"type":"null"}],"default":null,"title":"Sources"},"min_name_similarity":{"default":0.82,"maximum":1.0,"minimum":0.65,"title":"Min Name Similarity","type":"number"},"max_matches_per_kind":{"default":20,"maximum":100,"minimum":1,"title":"Max Matches Per Kind","type":"integer"}},"required":["name"],"title":"ScreeningRequest","type":"object"}},"additionalProperties":false,"properties":{"payload":{"$ref":"#/$defs/ScreeningRequest"}},"required":["payload"],"title":"screen_entityArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"screen_entityDictOutput","type":"object"},"annotations":{"readOnlyHint":true},"_meta":{"resolvd":{"accepted_scopes":["read","resolve"]}}},{"name":"get_screening_coverage","description":"Inspect installed screening sources, versions, freshness and gaps, free.","inputSchema":{"additionalProperties":false,"properties":{},"title":"get_screening_coverageArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"get_screening_coverageDictOutput","type":"object"},"annotations":{"readOnlyHint":true},"_meta":{"resolvd":{"accepted_scopes":["read","resolve"]}}},{"name":"watch_entity","description":"Enable/disable a free watch of stored and local-feed intelligence; retries are safe.\n\n    Requires resolve permission. Worker checks daily by default; no research or\n    network enrichment. Register entity.intelligence_changed via REST /v1/webhooks\n    to receive signed notifications. Changes between checks can be coalesced.\n    ","inputSchema":{"additionalProperties":false,"properties":{"entity_id":{"maxLength":64,"title":"Entity Id","type":"string"},"enabled":{"default":true,"title":"Enabled","type":"boolean"},"interval_seconds":{"default":86400,"maximum":86400,"minimum":300,"title":"Interval Seconds","type":"integer"}},"required":["entity_id"],"title":"watch_entityArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"watch_entityDictOutput","type":"object"},"annotations":{"destructiveHint":false,"idempotentHint":true},"_meta":{"resolvd":{"accepted_scopes":["resolve"]}}},{"name":"get_entity_watch","description":"Read an entity's watch and last successful comparison time, free.","inputSchema":{"additionalProperties":false,"properties":{"entity_id":{"maxLength":64,"title":"Entity Id","type":"string"}},"required":["entity_id"],"title":"get_entity_watchArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"get_entity_watchDictOutput","type":"object"},"annotations":{"readOnlyHint":true},"_meta":{"resolvd":{"accepted_scopes":["read","resolve"]}}},{"name":"get_run_room","description":"Read your Run Room stages, accounting status and retained evidence metadata, free.\n\n    Use the run_id returned by resolution to investigate progress or failures.\n    This bounded manifest never submits work, invokes a provider or includes\n    source document bytes. Private artifact attachments are downloaded through\n    the authenticated REST routes or workspace. Pending metadata may be visible\n    before record publication; artifacts require a terminal, owned record.\n    ","inputSchema":{"additionalProperties":false,"properties":{"run_id":{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$","title":"Run Id","type":"string"}},"required":["run_id"],"title":"get_run_roomArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"get_run_roomDictOutput","type":"object"},"annotations":{"readOnlyHint":true},"_meta":{"resolvd":{"accepted_scopes":["read","resolve"]}}},{"name":"get_entity_events","description":"Read durable watch changes after a cursor, free; values stay in intelligence.\n\n    Prefer signed completion notifications to polling. Use next_cursor to resume.\n    Categories filter the scanned page; always advance next_cursor, even when\n    events is empty. scanned_count reports scanned events, not filtered results.\n    Watches compare local observations; they are not an upstream event log.\n    ","inputSchema":{"$defs":{"EntityChangeCategory":{"enum":["identity","identifiers","legal_status","location","contact","financials","ownership","firmographics","other"],"title":"EntityChangeCategory","type":"string"}},"additionalProperties":false,"properties":{"entity_id":{"maxLength":64,"title":"Entity Id","type":"string"},"after_id":{"default":0,"maximum":2147483647,"minimum":0,"title":"After Id","type":"integer"},"limit":{"default":100,"maximum":100,"minimum":1,"title":"Limit","type":"integer"},"categories":{"anyOf":[{"items":{"$ref":"#/$defs/EntityChangeCategory"},"maxItems":9,"type":"array"},{"type":"null"}],"default":null,"title":"Categories"}},"required":["entity_id"],"title":"get_entity_eventsArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"get_entity_eventsDictOutput","type":"object"},"annotations":{"readOnlyHint":true},"_meta":{"resolvd":{"accepted_scopes":["read","resolve"]}}},{"name":"get_resolution_outcomes","description":"Read retained batch cohorts, credits, run duration, field fill and human feedback.\n\n    Free. UTC dates include their final day and default to the last 30 days.\n    Counts are original submitted records; synchronous calls only enter spend.\n    Acceptance, sampled field fill and customer opinions are not verified accuracy.\n    ","inputSchema":{"additionalProperties":false,"properties":{"since":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"title":"Since"},"until":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"title":"Until"}},"title":"get_resolution_outcomesArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"get_resolution_outcomesDictOutput","type":"object"},"annotations":{"readOnlyHint":true},"_meta":{"resolvd":{"accepted_scopes":["read","resolve"]}}},{"name":"submit_resolution_feedback","description":"Record a customer's independent judgement about a named binding, free.\n\n    Ask the customer for their evidence; do not label your own predictions as\n    independent truth. Wrong reports reject this receipt's target and need no\n    guessed replacement. Identity is unchanged. Retry the same stable key;\n    explicit corrections append a revision using supersedes_label_id.\n    ","inputSchema":{"additionalProperties":false,"properties":{"decision_id":{"maxLength":64,"minLength":1,"title":"Decision Id","type":"string"},"report":{"enum":["correct","wrong"],"title":"Report","type":"string"},"rationale":{"maxLength":4000,"minLength":1,"title":"Rationale","type":"string"},"idempotency_key":{"maxLength":200,"minLength":1,"title":"Idempotency Key","type":"string"},"source_uri":{"anyOf":[{"maxLength":2000,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"title":"Source Uri"},"supersedes_label_id":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"title":"Supersedes Label Id"}},"required":["decision_id","report","rationale","idempotency_key"],"title":"submit_resolution_feedbackArguments","type":"object"},"outputSchema":{"additionalProperties":true,"title":"submit_resolution_feedbackDictOutput","type":"object"},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"_meta":{"resolvd":{"accepted_scopes":["resolve"]}}}],"revision":{"pipeline_version":"2026.09.0","runtime_source_sha256":"0d79fffaa1c62b30e684cca56916629f30041593c5b6987b9d239e0a04af9412","route_schema_sha256":"59418f1d2119407b93d1c811f331efd68a9946afcd388027ff60b785c12d4356","offer_status":"planned"}}