Skip to main content
Glama

Get own company

well_get_own_company
Read-only

Get which company the workspace itself is: the confirmed own-company anchor (anchor) and the detected companies not yet confirmed as it (candidates). Call this directly, with no workspace call first: both come from the workspace this call is scoped to. It draws nothing: TO ASK THE USER WHICH COMPANY on a card, so they can pick or search for it, call well_show_company_candidates INSTEAD (a tile per candidate with a registry search; it waits for the click).

Use this whenever a question turns on "mine" versus "theirs" (my payables, my receivables, invoices I owe, what we billed), and filter by company_id, never by a company NAME: one legal entity appears under several labels (a registered name, a trade name, a bank-issued label), so a name filter silently drops rows. For any mine-versus-theirs filter use the company_id of every anchor and holder row, never anchor alone.

Returns anchor (company_id, registered_name, trade_name) or null, and candidates (each with company_id, names, role, confidence_score, state). own_identity is the identity detector's last verdict (decision, reason, pending, suggestions): detection output, never a confirmed anchor.

anchor: null means the workspace has no confirmed own company: say so plainly, and do not promote a candidate to the anchor yourself (confirming one is a user action).

own_companies lists the companies the workspace counts as itself, each with its basis. anchor and holder rows are the workspace's own by proof: a holder row (the company behind a connected account) is its own even while anchor is null, so name it and say the anchor is not confirmed yet. self_candidate is a detection, not proof: mention it as possible only. The list is the whole set only when own_companies_complete is true; when it is false, a company missing from it may still be the workspace's own, so treat no company as "theirs" on this list alone, and say the own set is incomplete.

Registry tax ids and registered addresses are deliberately not returned.

Input Schema

NameRequiredDescriptionDefault
workspace_idNoTarget workspace. This read reports one workspace's own data. Omit it and the token's primary workspace answers, which may not be the one you mean; the result names the workspace that did.
conversation_idNoThe conversation id returned by the previous Well result, in its meta under well/conversation_id, in its structuredContent, or in its JSON text block. Pass it back on every call in the same conversation, including a call a card makes, so the chosen workspace and the earlier answers still apply. It decides the conversation on its own: nothing the host states about the session replaces it. Omit it only on the first call of a conversation.
workspace_scopeNoRestrict this call to the family: the token's primary workspace plus the company workspaces under it that you are a member of. Unrelated authorized workspaces drop out of the read; row reads merge across the family, while a per-workspace figure still reports exactly one workspace.

Output Schema

NameRequiredDescriptionDefault
errorNo
anchorYes
successYes
candidatesYes
own_identityYesThe own-identity module's decision for this workspace, or null when the workspace row could not be read. A decision is a detection output, never a confirmed anchor — only anchor is confirmed.
own_companiesYesThe companies the workspace counts as itself, anchor first, then holders, then self-candidates. Filter mine-versus-theirs by the company_id of every anchor and holder row, never by anchor alone. Empty when the workspace has none.
conversation_idNoThe conversation this result belongs to. Pass it back as the conversation_id argument on every later Well call in the same conversation.
newly_connectedNoTools that connected to this workspace since the last result and that no session was told about yet, oldest first. Present only when at least one tool is new. The connected-line rule says when to tell an entry; when it does, one line per entry, in the person's language: "<name> is connected.". Never fold several entries into one sentence. Each entry comes back once, on one result only: never repeat its line later.
resolved_workspaceNoThe workspace that answered, when the caller named none and the token authorizes several.
conversation_id_noteNoPresent only when the server opened a fresh lane, stating that no choice recorded earlier was read.
conversation_id_sourceNoWhere the conversation id came from: the host's own request meta, the caller's argument, or a fresh lane the server opened.
own_companies_completeYesTrue when own_companies is the whole own set. False when it was cut at a bound: a company missing from it may still be the workspace's own, so never classify a company as theirs from this list.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed24 schema fields changed
    • changedOutput schema / properties / anchor / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "company_id": {
      -        "type": "string"
      -      },
      -      "registered_name": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "registry_country": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "The own company's registry country as an ISO 3166-1 alpha-2 code, null when unknown."
      -      },
      -      "trade_name": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      }
      -    },
      -    "required": [
      -      "company_id",
      -      "registered_name",
      -      "trade_name",
      -      "registry_country"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "company_id": {
      +        "type": "string"
      +      },
      +      "registered_name": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "registry_country": {
      +        "description": "The own company's registry country as an ISO 3166-1 alpha-2 code, null when unknown.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "trade_name": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      }
      +    },
      +    "required": [
      +      "company_id",
      +      "registered_name",
      +      "trade_name",
      +      "registry_country"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / candidates / items / properties / business_type / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / candidates / items / properties / business_type / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / candidates / items / properties / company_id / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / candidates / items / properties / company_id / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / candidates / items / properties / country / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / candidates / items / properties / country / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / candidates / items / properties / domain / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / candidates / items / properties / domain / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / candidates / items / properties / existing_workspace_id / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / candidates / items / properties / existing_workspace_id / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / candidates / items / properties / registered_name / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / candidates / items / properties / registered_name / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / candidates / items / properties / remote_logo_url / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / candidates / items / properties / remote_logo_url / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / candidates / items / properties / trade_name / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / candidates / items / properties / trade_name / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / own_companies / items / properties / registered_name / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / own_companies / items / properties / registered_name / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / own_companies / items / properties / trade_name / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / own_companies / items / properties / trade_name / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / own_identity / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "ask_kind": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "When decision is ask, what is being asked: companies_or_clients (pick the real own company among several), conflicting_anchor_identity (evidence disagrees with the anchor), pending_identifier (a named company lacks a legal identifier), confirm_entity (one named company is proposed; confirm it is the user's own)."
      -      },
      -      "company_id": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "The company the verdict proposes or anchors on, when one was named."
      -      },
      -      "company_ids": {
      -        "description": "Public ids of every company subject the verdict surfaced — the proposal and ask subjects.",
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "decision": {
      -        "anyOf": [
      -          {
      -            "enum": [
      -              "propose",
      -              "ask",
      -              "none"
      -            ],
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "The own-identity detector's last completed verdict for this workspace — propose (a company worth proposing), ask (ambiguity a person must resolve), or none. Null when no detection pass has settled yet."
      -      },
      -      "holder_candidates": {
      -        "description": "Registry entries a lookup found for bank holders the detector judged to be organisations, normally none or one. A lead for the user's registry pick, not a confirmed identity and not a proposal: it names no workspace company, decision can stay none beside it, and its identifier is withheld.",
      -        "items": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "country": {
      -              "type": "string"
      -            },
      -            "name": {
      -              "type": "string"
      -            },
      -            "scheme": {
      -              "description": "The kind of identifier the entry is known by, never its value.",
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "scheme",
      -            "name",
      -            "country"
      -          ],
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "pending": {
      -        "description": "True while an identity-resolution pass is queued or in flight — a fresher decision may follow; re-read after it settles.",
      -        "type": "boolean"
      -      },
      -      "reason": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "The audit reason the verdict carries, in the resolver-reason vocabulary."
      -      },
      -      "registry_candidates": {
      -        "description": "For an ask whose companies lack a legal identifier: the one registry entry a lookup found for a company, when exactly one matched. A lead for the user's registry pick, not a confirmed identity; its identifier is withheld.",
      -        "items": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "company_id": {
      -              "description": "The company a registry entry was found for.",
      -              "type": "string"
      -            },
      -            "country": {
      -              "type": "string"
      -            },
      -            "name": {
      -              "type": "string"
      -            },
      -            "scheme": {
      -              "description": "The kind of identifier the entry is known by, never its value.",
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "company_id",
      -            "scheme",
      -            "name",
      -            "country"
      -          ],
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "suggestions": {
      -        "description": "Ranked suggestions the detector folded — leads, not proposal cards; a person's pick is what admits one.",
      -        "items": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "company_id": {
      -              "anyOf": [
      -                {
      -                  "type": "string"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ]
      -            },
      -            "rank": {
      -              "type": "number"
      -            },
      -            "strength": {
      -              "type": "number"
      -            }
      -          },
      -          "required": [
      -            "company_id",
      -            "rank",
      -            "strength"
      -          ],
      -          "type": "object"
      -        },
      -        "type": "array"
      -      }
      -    },
      -    "required": [
      -      "decision",
      -      "reason",
      -      "company_id",
      -      "ask_kind",
      -      "company_ids",
      -      "suggestions",
      -      "registry_candidates",
      -      "holder_candidates",
      -      "pending"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "ask_kind": {
      +        "description": "When decision is ask, what is being asked: companies_or_clients (pick the real own company among several), conflicting_anchor_identity (evidence disagrees with the anchor), pending_identifier (a named company lacks a legal identifier), confirm_entity (one named company is proposed; confirm it is the user's own).",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "company_id": {
      +        "description": "The company the verdict proposes or anchors on, when one was named.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "company_ids": {
      +        "description": "Public ids of every company subject the verdict surfaced — the proposal and ask subjects.",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "decision": {
      +        "anyOf": [
      +          {
      +            "enum": [
      +              "propose",
      +              "ask",
      +              "none"
      +            ],
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "The own-identity detector's last completed verdict for this workspace — propose (a company worth proposing), ask (ambiguity a person must resolve), or none. Null when no detection pass has settled yet."
      +      },
      +      "holder_candidates": {
      +        "description": "Registry entries a lookup found for bank holders the detector judged to be organisations, normally none or one. A lead for the user's registry pick, not a confirmed identity and not a proposal: it names no workspace company, decision can stay none beside it, and its identifier is withheld.",
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "country": {
      +              "type": "string"
      +            },
      +            "name": {
      +              "type": "string"
      +            },
      +            "scheme": {
      +              "description": "The kind of identifier the entry is known by, never its value.",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "scheme",
      +            "name",
      +            "country"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "pending": {
      +        "description": "True while an identity-resolution pass is queued or in flight — a fresher decision may follow; re-read after it settles.",
      +        "type": "boolean"
      +      },
      +      "reason": {
      +        "description": "The audit reason the verdict carries, in the resolver-reason vocabulary.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "registry_candidates": {
      +        "description": "For an ask whose companies lack a legal identifier: the one registry entry a lookup found for a company, when exactly one matched. A lead for the user's registry pick, not a confirmed identity; its identifier is withheld.",
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "company_id": {
      +              "description": "The company a registry entry was found for.",
      +              "type": "string"
      +            },
      +            "country": {
      +              "type": "string"
      +            },
      +            "name": {
      +              "type": "string"
      +            },
      +            "scheme": {
      +              "description": "The kind of identifier the entry is known by, never its value.",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "company_id",
      +            "scheme",
      +            "name",
      +            "country"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "suggestions": {
      +        "description": "Ranked suggestions the detector folded — leads, not proposal cards; a person's pick is what admits one.",
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "company_id": {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "rank": {
      +              "type": "number"
      +            },
      +            "strength": {
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "company_id",
      +            "rank",
      +            "strength"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      }
      +    },
      +    "required": [
      +      "decision",
      +      "reason",
      +      "company_id",
      +      "ask_kind",
      +      "company_ids",
      +      "suggestions",
      +      "registry_candidates",
      +      "holder_candidates",
      +      "pending"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / resolved_workspace / properties / name / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / resolved_workspace / properties / name / type
      Added value: +[
      +  "string",
      +  "null"
      +]
  2. Changed1 schema field changed
    • changedOutput schema / properties / anchor / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "company_id": {
      -        "type": "string"
      -      },
      -      "registered_name": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "trade_name": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      }
      -    },
      -    "required": [
      -      "company_id",
      -      "registered_name",
      -      "trade_name"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "company_id": {
      +        "type": "string"
      +      },
      +      "registered_name": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "registry_country": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "The own company's registry country as an ISO 3166-1 alpha-2 code, null when unknown."
      +      },
      +      "trade_name": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      }
      +    },
      +    "required": [
      +      "company_id",
      +      "registered_name",
      +      "trade_name",
      +      "registry_country"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  3. Changed1 schema field changed
    • changedOutput schema / properties / own_companies / items / properties / basis / enum
      Previous value: -[
      -  "anchor",
      -  "holder",
      -  "self_candidate"
      -]New value: +[
      +  "anchor",
      +  "holder",
      +  "confirmed",
      +  "self_candidate"
      +]
  4. Changed3 schema fields changed
    • addedOutput schema / properties / own_companies
      Added value: +{
      +  "description": "The companies the workspace counts as itself, anchor first, then holders, then self-candidates. Filter mine-versus-theirs by the company_id of every anchor and holder row, never by anchor alone. Empty when the workspace has none.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "basis": {
      +        "description": "Why the workspace counts this company as itself. anchor: the confirmed own company. holder: the company that holds a connected account; proven, even while anchor is null. self_candidate: a detection, not proof; mention it as possible only.",
      +        "enum": [
      +          "anchor",
      +          "holder",
      +          "self_candidate"
      +        ],
      +        "type": "string"
      +      },
      +      "company_id": {
      +        "type": "string"
      +      },
      +      "registered_name": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "trade_name": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      }
      +    },
      +    "required": [
      +      "company_id",
      +      "registered_name",
      +      "trade_name",
      +      "basis"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / own_companies_complete
      Added value: +{
      +  "description": "True when own_companies is the whole own set. False when it was cut at a bound: a company missing from it may still be the workspace's own, so never classify a company as theirs from this list.",
      +  "type": "boolean"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "anchor",
      -  "candidates",
      -  "own_identity",
      -  "success"
      -]New value: +[
      +  "anchor",
      +  "own_companies_complete",
      +  "own_companies",
      +  "candidates",
      +  "own_identity",
      +  "success"
      +]
  5. Changed5 schema fields changed
    • addedOutput schema / properties / candidates / items / properties / adoption_preview_counts
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "accounts": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "capped": {
      +              "type": "boolean"
      +            },
      +            "count": {
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "count",
      +            "capped"
      +          ],
      +          "type": "object"
      +        },
      +        "documents": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "capped": {
      +              "type": "boolean"
      +            },
      +            "count": {
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "count",
      +            "capped"
      +          ],
      +          "type": "object"
      +        },
      +        "tasks": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "capped": {
      +              "type": "boolean"
      +            },
      +            "count": {
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "count",
      +            "capped"
      +          ],
      +          "type": "object"
      +        },
      +        "transactions": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "capped": {
      +              "type": "boolean"
      +            },
      +            "count": {
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "count",
      +            "capped"
      +          ],
      +          "type": "object"
      +        }
      +      },
      +      "required": [
      +        "documents",
      +        "tasks",
      +        "transactions",
      +        "accounts"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "How much of the company's history confirming it would bring in, per kind: documents, tasks, transactions and accounts. capped true means the count stopped at its ceiling, so say more than that number. Null when it is not known yet (no tax id on the candidate, or the preview was skipped)."
      +}
    • changedOutput schema / properties / candidates / items / properties / confirmable_reason / anyOf
      Previous value: -[
      -  {
      -    "enum": [
      -      "not_open",
      -      "not_surfaceable",
      -      "not_primary",
      -      "already_confirmed",
      -      "not_grounded"
      -    ],
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "enum": [
      +      "not_open",
      +      "not_surfaceable",
      +      "not_primary",
      +      "already_confirmed",
      +      "not_grounded",
      +      "existing_workspace_not_offered"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / properties / candidates / items / properties / existing_workspace_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "An existing workspace the person manages whose company matches this candidate, offered to attach instead of minting a duplicate. Null on every row the offer classifier did not clear."
      +}
    • addedOutput schema / properties / candidates / items / properties / existing_workspace_relation
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "child",
      +        "top_level"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "How the offered workspace relates to this one. child: it is already an active child. top_level: attaching links it under this workspace. Null whenever existing_workspace_id is."
      +}
    • changedOutput schema / properties / candidates / items / required
      Previous value: -[
      -  "candidate_id",
      -  "company_id",
      -  "registered_name",
      -  "trade_name",
      -  "role",
      -  "state",
      -  "confidence_score",
      -  "domain",
      -  "remote_logo_url",
      -  "country",
      -  "business_type",
      -  "confirmable",
      -  "confirmable_reason"
      -]New value: +[
      +  "candidate_id",
      +  "company_id",
      +  "registered_name",
      +  "trade_name",
      +  "role",
      +  "state",
      +  "confidence_score",
      +  "domain",
      +  "remote_logo_url",
      +  "country",
      +  "business_type",
      +  "confirmable",
      +  "confirmable_reason",
      +  "existing_workspace_id",
      +  "existing_workspace_relation",
      +  "adoption_preview_counts"
      +]
  6. Changed1 schema field changed
    • changedOutput schema / properties / newly_connected / description
      Previous value: -"Tools that connected to this workspace since the last result and that no session was told about yet, oldest first. Present only when at least one tool is new. Start the reply with one line per entry, in the person's language: \"<name> is connected.\". Never fold several entries into one sentence. Each entry comes back once, on one result only: never repeat its line later."New value: +"Tools that connected to this workspace since the last result and that no session was told about yet, oldest first. Present only when at least one tool is new. The connected-line rule says when to tell an entry; when it does, one line per entry, in the person's language: \"<name> is connected.\". Never fold several entries into one sentence. Each entry comes back once, on one result only: never repeat its line later."
  7. Changed1 schema field changed
    • changedOutput schema / properties / own_identity / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "ask_kind": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "When decision is ask, what is being asked: companies_or_clients (pick the real own company among several), conflicting_anchor_identity (evidence disagrees with the anchor), pending_identifier (a named company lacks a legal identifier), confirm_entity (one named company is proposed; confirm it is the user's own)."
      -      },
      -      "company_id": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "The company the verdict proposes or anchors on, when one was named."
      -      },
      -      "company_ids": {
      -        "description": "Public ids of every company subject the verdict surfaced — the proposal and ask subjects.",
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "decision": {
      -        "anyOf": [
      -          {
      -            "enum": [
      -              "propose",
      -              "ask",
      -              "none"
      -            ],
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "The own-identity detector's last completed verdict for this workspace — propose (a company worth proposing), ask (ambiguity a person must resolve), or none. Null when no detection pass has settled yet."
      -      },
      -      "pending": {
      -        "description": "True while an identity-resolution pass is queued or in flight — a fresher decision may follow; re-read after it settles.",
      -        "type": "boolean"
      -      },
      -      "reason": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "The audit reason the verdict carries, in the resolver-reason vocabulary."
      -      },
      -      "registry_candidates": {
      -        "description": "For an ask whose companies lack a legal identifier: the one registry entry a lookup found for a company, when exactly one matched. A lead for the user's registry pick, not a confirmed identity; its identifier is withheld.",
      -        "items": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "company_id": {
      -              "description": "The company a registry entry was found for.",
      -              "type": "string"
      -            },
      -            "country": {
      -              "type": "string"
      -            },
      -            "name": {
      -              "type": "string"
      -            },
      -            "scheme": {
      -              "description": "The kind of identifier the entry is known by, never its value.",
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "company_id",
      -            "scheme",
      -            "name",
      -            "country"
      -          ],
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "suggestions": {
      -        "description": "Ranked suggestions the detector folded — leads, not proposal cards; a person's pick is what admits one.",
      -        "items": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "company_id": {
      -              "anyOf": [
      -                {
      -                  "type": "string"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ]
      -            },
      -            "rank": {
      -              "type": "number"
      -            },
      -            "strength": {
      -              "type": "number"
      -            }
      -          },
      -          "required": [
      -            "company_id",
      -            "rank",
      -            "strength"
      -          ],
      -          "type": "object"
      -        },
      -        "type": "array"
      -      }
      -    },
      -    "required": [
      -      "decision",
      -      "reason",
      -      "company_id",
      -      "ask_kind",
      -      "company_ids",
      -      "suggestions",
      -      "registry_candidates",
      -      "pending"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "ask_kind": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "When decision is ask, what is being asked: companies_or_clients (pick the real own company among several), conflicting_anchor_identity (evidence disagrees with the anchor), pending_identifier (a named company lacks a legal identifier), confirm_entity (one named company is proposed; confirm it is the user's own)."
      +      },
      +      "company_id": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "The company the verdict proposes or anchors on, when one was named."
      +      },
      +      "company_ids": {
      +        "description": "Public ids of every company subject the verdict surfaced — the proposal and ask subjects.",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "decision": {
      +        "anyOf": [
      +          {
      +            "enum": [
      +              "propose",
      +              "ask",
      +              "none"
      +            ],
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "The own-identity detector's last completed verdict for this workspace — propose (a company worth proposing), ask (ambiguity a person must resolve), or none. Null when no detection pass has settled yet."
      +      },
      +      "holder_candidates": {
      +        "description": "Registry entries a lookup found for bank holders the detector judged to be organisations, normally none or one. A lead for the user's registry pick, not a confirmed identity and not a proposal: it names no workspace company, decision can stay none beside it, and its identifier is withheld.",
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "country": {
      +              "type": "string"
      +            },
      +            "name": {
      +              "type": "string"
      +            },
      +            "scheme": {
      +              "description": "The kind of identifier the entry is known by, never its value.",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "scheme",
      +            "name",
      +            "country"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "pending": {
      +        "description": "True while an identity-resolution pass is queued or in flight — a fresher decision may follow; re-read after it settles.",
      +        "type": "boolean"
      +      },
      +      "reason": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "The audit reason the verdict carries, in the resolver-reason vocabulary."
      +      },
      +      "registry_candidates": {
      +        "description": "For an ask whose companies lack a legal identifier: the one registry entry a lookup found for a company, when exactly one matched. A lead for the user's registry pick, not a confirmed identity; its identifier is withheld.",
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "company_id": {
      +              "description": "The company a registry entry was found for.",
      +              "type": "string"
      +            },
      +            "country": {
      +              "type": "string"
      +            },
      +            "name": {
      +              "type": "string"
      +            },
      +            "scheme": {
      +              "description": "The kind of identifier the entry is known by, never its value.",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "company_id",
      +            "scheme",
      +            "name",
      +            "country"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "suggestions": {
      +        "description": "Ranked suggestions the detector folded — leads, not proposal cards; a person's pick is what admits one.",
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "company_id": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "rank": {
      +              "type": "number"
      +            },
      +            "strength": {
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "company_id",
      +            "rank",
      +            "strength"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      }
      +    },
      +    "required": [
      +      "decision",
      +      "reason",
      +      "company_id",
      +      "ask_kind",
      +      "company_ids",
      +      "suggestions",
      +      "registry_candidates",
      +      "holder_candidates",
      +      "pending"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  8. Changed1 schema field changed
    • changedOutput schema / properties / own_identity / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "ask_kind": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "When decision is ask, what is being asked: companies_or_clients (pick the real own company among several), conflicting_anchor_identity (evidence disagrees with the anchor), pending_identifier (a named company lacks a legal identifier)."
      -      },
      -      "company_id": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "The company the verdict proposes or anchors on, when one was named."
      -      },
      -      "company_ids": {
      -        "description": "Public ids of every company subject the verdict surfaced — the proposal and ask subjects.",
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "decision": {
      -        "anyOf": [
      -          {
      -            "enum": [
      -              "propose",
      -              "ask",
      -              "none"
      -            ],
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "The own-identity detector's last completed verdict for this workspace — propose (a company worth proposing), ask (ambiguity a person must resolve), or none. Null when no detection pass has settled yet."
      -      },
      -      "pending": {
      -        "description": "True while an identity-resolution pass is queued or in flight — a fresher decision may follow; re-read after it settles.",
      -        "type": "boolean"
      -      },
      -      "reason": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "The audit reason the verdict carries, in the resolver-reason vocabulary."
      -      },
      -      "suggestions": {
      -        "description": "Ranked suggestions the detector folded — leads, not proposal cards; a person's pick is what admits one.",
      -        "items": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "company_id": {
      -              "anyOf": [
      -                {
      -                  "type": "string"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ]
      -            },
      -            "rank": {
      -              "type": "number"
      -            },
      -            "strength": {
      -              "type": "number"
      -            }
      -          },
      -          "required": [
      -            "company_id",
      -            "rank",
      -            "strength"
      -          ],
      -          "type": "object"
      -        },
      -        "type": "array"
      -      }
      -    },
      -    "required": [
      -      "decision",
      -      "reason",
      -      "company_id",
      -      "ask_kind",
      -      "company_ids",
      -      "suggestions",
      -      "pending"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "ask_kind": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "When decision is ask, what is being asked: companies_or_clients (pick the real own company among several), conflicting_anchor_identity (evidence disagrees with the anchor), pending_identifier (a named company lacks a legal identifier), confirm_entity (one named company is proposed; confirm it is the user's own)."
      +      },
      +      "company_id": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "The company the verdict proposes or anchors on, when one was named."
      +      },
      +      "company_ids": {
      +        "description": "Public ids of every company subject the verdict surfaced — the proposal and ask subjects.",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "decision": {
      +        "anyOf": [
      +          {
      +            "enum": [
      +              "propose",
      +              "ask",
      +              "none"
      +            ],
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "The own-identity detector's last completed verdict for this workspace — propose (a company worth proposing), ask (ambiguity a person must resolve), or none. Null when no detection pass has settled yet."
      +      },
      +      "pending": {
      +        "description": "True while an identity-resolution pass is queued or in flight — a fresher decision may follow; re-read after it settles.",
      +        "type": "boolean"
      +      },
      +      "reason": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "The audit reason the verdict carries, in the resolver-reason vocabulary."
      +      },
      +      "registry_candidates": {
      +        "description": "For an ask whose companies lack a legal identifier: the one registry entry a lookup found for a company, when exactly one matched. A lead for the user's registry pick, not a confirmed identity; its identifier is withheld.",
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "company_id": {
      +              "description": "The company a registry entry was found for.",
      +              "type": "string"
      +            },
      +            "country": {
      +              "type": "string"
      +            },
      +            "name": {
      +              "type": "string"
      +            },
      +            "scheme": {
      +              "description": "The kind of identifier the entry is known by, never its value.",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "company_id",
      +            "scheme",
      +            "name",
      +            "country"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "suggestions": {
      +        "description": "Ranked suggestions the detector folded — leads, not proposal cards; a person's pick is what admits one.",
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "company_id": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "rank": {
      +              "type": "number"
      +            },
      +            "strength": {
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "company_id",
      +            "rank",
      +            "strength"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      }
      +    },
      +    "required": [
      +      "decision",
      +      "reason",
      +      "company_id",
      +      "ask_kind",
      +      "company_ids",
      +      "suggestions",
      +      "registry_candidates",
      +      "pending"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  9. Changed3 schema fields changed
    • addedInput schema / properties / workspace_scope
      Added value: +{
      +  "description": "Restrict this call to the family: the token's primary workspace plus the company workspaces under it that you are a member of. Unrelated authorized workspaces drop out of the read; row reads merge across the family, while a per-workspace figure still reports exactly one workspace.",
      +  "enum": [
      +    "family"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / own_identity
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "ask_kind": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "When decision is ask, what is being asked: companies_or_clients (pick the real own company among several), conflicting_anchor_identity (evidence disagrees with the anchor), pending_identifier (a named company lacks a legal identifier)."
      +        },
      +        "company_id": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "The company the verdict proposes or anchors on, when one was named."
      +        },
      +        "company_ids": {
      +          "description": "Public ids of every company subject the verdict surfaced — the proposal and ask subjects.",
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "decision": {
      +          "anyOf": [
      +            {
      +              "enum": [
      +                "propose",
      +                "ask",
      +                "none"
      +              ],
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "The own-identity detector's last completed verdict for this workspace — propose (a company worth proposing), ask (ambiguity a person must resolve), or none. Null when no detection pass has settled yet."
      +        },
      +        "pending": {
      +          "description": "True while an identity-resolution pass is queued or in flight — a fresher decision may follow; re-read after it settles.",
      +          "type": "boolean"
      +        },
      +        "reason": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "The audit reason the verdict carries, in the resolver-reason vocabulary."
      +        },
      +        "suggestions": {
      +          "description": "Ranked suggestions the detector folded — leads, not proposal cards; a person's pick is what admits one.",
      +          "items": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "company_id": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "rank": {
      +                "type": "number"
      +              },
      +              "strength": {
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "company_id",
      +              "rank",
      +              "strength"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "required": [
      +        "decision",
      +        "reason",
      +        "company_id",
      +        "ask_kind",
      +        "company_ids",
      +        "suggestions",
      +        "pending"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "The own-identity module's decision for this workspace, or null when the workspace row could not be read. A decision is a detection output, never a confirmed anchor — only anchor is confirmed."
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "anchor",
      -  "candidates",
      -  "success"
      -]New value: +[
      +  "anchor",
      +  "candidates",
      +  "own_identity",
      +  "success"
      +]
  10. Changed1 schema field changed
    • addedOutput schema / properties / newly_connected
      Added value: +{
      +  "description": "Tools that connected to this workspace since the last result and that no session was told about yet, oldest first. Present only when at least one tool is new. Start the reply with one line per entry, in the person's language: \"<name> is connected.\". Never fold several entries into one sentence. Each entry comes back once, on one result only: never repeat its line later.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "name": {
      +        "type": "string"
      +      },
      +      "service_id": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "name",
      +      "service_id"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  11. Changed4 schema fields changed
    • addedInput schema / properties / conversation_id
      Added value: +{
      +  "description": "The conversation id returned by the previous Well result, in its meta under well/conversation_id, in its structuredContent, or in its JSON text block. Pass it back on every call in the same conversation, including a call a card makes, so the chosen workspace and the earlier answers still apply. It decides the conversation on its own: nothing the host states about the session replaces it. Omit it only on the first call of a conversation.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / conversation_id
      Added value: +{
      +  "description": "The conversation this result belongs to. Pass it back as the conversation_id argument on every later Well call in the same conversation.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / conversation_id_note
      Added value: +{
      +  "description": "Present only when the server opened a fresh lane, stating that no choice recorded earlier was read.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / conversation_id_source
      Added value: +{
      +  "description": "Where the conversation id came from: the host's own request meta, the caller's argument, or a fresh lane the server opened.",
      +  "enum": [
      +    "host_meta",
      +    "argument",
      +    "minted"
      +  ],
      +  "type": "string"
      +}
  12. Changed7 schema fields changed
    • addedOutput schema / properties / candidates / items / properties / business_type
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "The company's legal form (SAS, Inc, GmbH), when known."
      +}
    • addedOutput schema / properties / candidates / items / properties / confirmable
      Added value: +{
      +  "description": "Whether well_create_company_workspace accepts this candidate now. False for a name-only detected candidate with no groundable identity, or one that has left the surfaced set.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / candidates / items / properties / confirmable_reason
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "not_open",
      +        "not_surfaceable",
      +        "not_primary",
      +        "already_confirmed",
      +        "not_grounded"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Why confirmable is false, null when true. not_grounded: no registry or tax identifier to mint from; ask the user to search the registry and pick the verified entry. not_open: no longer the surfaced candidate; re-read the own-company list before acting. Others: not_primary, already_confirmed, not_surfaceable."
      +}
    • addedOutput schema / properties / candidates / items / properties / country
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "The company's country, for a light detail panel."
      +}
    • addedOutput schema / properties / candidates / items / properties / domain
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "The company's domain, a logo source and a display fallback."
      +}
    • addedOutput schema / properties / candidates / items / properties / remote_logo_url
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "A resolved logo url when one is known; null otherwise."
      +}
    • changedOutput schema / properties / candidates / items / required
      Previous value: -[
      -  "candidate_id",
      -  "company_id",
      -  "registered_name",
      -  "trade_name",
      -  "role",
      -  "state",
      -  "confidence_score"
      -]New value: +[
      +  "candidate_id",
      +  "company_id",
      +  "registered_name",
      +  "trade_name",
      +  "role",
      +  "state",
      +  "confidence_score",
      +  "domain",
      +  "remote_logo_url",
      +  "country",
      +  "business_type",
      +  "confirmable",
      +  "confirmable_reason"
      +]
  13. Changed2 schema fields changed
    • addedOutput schema / properties / candidates / items / properties / candidate_id
      Added value: +{
      +  "description": "The candidate's id — pass to well_create_company_workspace to mint the company workspace from it.",
      +  "type": "string"
      +}
    • changedOutput schema / properties / candidates / items / required
      Previous value: -[
      -  "company_id",
      -  "registered_name",
      -  "trade_name",
      -  "role",
      -  "state",
      -  "confidence_score"
      -]New value: +[
      +  "candidate_id",
      +  "company_id",
      +  "registered_name",
      +  "trade_name",
      +  "role",
      +  "state",
      +  "confidence_score"
      +]
  14. Changed2 schema fields changed
    • changedInput schema / properties / workspace_id / description
      Previous value: -"Target workspace. Omit to use the only authorized workspace, or (for read tools) to query all authorized workspaces grouped by workspace. Required for write tools when the token authorizes more than one workspace."New value: +"Target workspace. This read reports one workspace's own data. Omit it and the token's primary workspace answers, which may not be the one you mean; the result names the workspace that did."
    • addedOutput schema / properties / resolved_workspace
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "The workspace that answered, when the caller named none and the token authorizes several.",
      +  "properties": {
      +    "name": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "workspace_id": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "workspace_id",
      +    "name"
      +  ],
      +  "type": "object"
      +}
  15. Added

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already establish read-only, non-destructive, closed-world, so the bar is low, yet the description adds real behavioral context: it renders no card, it needs no prior workspace call, `anchor: null` must be reported plainly and must not be manually promoted, `holder` rows count as own by proof while `self_candidate` is only a detection, and the own-company set is only exhaustive when `own_companies_complete` is true. It also discloses a deliberate omission ('registry tax ids and registered addresses are deliberately not returned'), which prevents the agent from asking for data that will never arrive.

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

Conciseness3/5

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

Core purpose and the sibling alternative are correctly front-loaded, but the block is dense and roughly two-thirds of it is spent interpreting returned fields (`anchor`, `candidates`, `own_identity`, `own_companies`, `own_companies_complete`, `basis`, `holder`, `self_candidate`) even though an output schema exists and should carry that load. Several clauses are nested asides rather than a clean structure, which increases skim cost for an agent under context pressure.

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

Completeness5/5

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

For a three-parameter read whose output schema is present, the description covers everything the agent could get wrong: no prerequisite call, no card drawn, the null-anchor path, the incomplete-own-set path, and the mine-versus-theirs filtering rule. The interpretation rules (do not self-confirm an anchor, do not treat a company as 'theirs' on an incomplete list) are exactly the kind of policy the schema cannot express.

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

Parameters3/5

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

Schema description coverage is 100% and the description names none of the three parameters (`workspace_id`, `conversation_id`, `workspace_scope`), so their semantics are carried entirely by the schema. What the description does contribute — 'both come from the workspace this call is scoped to' — is a scope statement rather than parameter-level meaning, so the baseline 3 applies.

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

Purpose5/5

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

The opening sentence names a specific verb and resource — 'Get which company the workspace itself is' — and immediately enumerates the two things returned (the confirmed `anchor` and the unconfirmed `candidates`). It distinguishes itself from the closest sibling by naming `well_show_company_candidates` as the interactive-card alternative, so an agent can route between them without inspecting schemas.

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

Usage Guidelines5/5

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

It gives an explicit when-to-use ('whenever a question turns on mine versus theirs — my payables, my receivables, invoices I owe, what we billed'), an explicit when-not-to-use with the named alternative ('TO ASK THE USER WHICH COMPANY on a card ... call well_show_company_candidates INSTEAD'), and a negative precondition ('Call this directly, with no workspace call first'). It goes further and prescribes how to consume the result — filter by `company_id` across every `anchor` and `holder` row, never by name.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources