Show the company candidates
well_show_company_candidatesShow the user the detected COMPANY candidates on a card and let them pick which company is theirs: a tile per detected company candidate with its confidence, and a company-registry search at the top for the case where none was detected.
⚠️ ONLY when the user must choose or find the company to create a workspace from: the zero-company case (a membership workspace with no own company attached), or the user says the company set on this workspace is wrong, in which case a new workspace is minted from their pick and this one stays as it is. For the values alone, read well_get_own_company, which draws nothing.
⚠️ WAIT ON THE CARD IN THE TURN THAT DREW IT. Write your one line for the user FIRST — the wait holds the turn open for up to a minute, and a user looking at a card with no sentence beside it has been given no reason to click — then call well_wait_for_selection({ kind: "company_pick" }), which this result's next_step also states. The card's own footer mints the company workspace and switches into it on the click, so never mint it yourself after the pick.
⚠️ NEVER PICK THE COMPANY for the user, and never infer it from the workspace name.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Heading for the card, written from what the user asked for (e.g. "Create a workspace for your company" for "Create a workspace for my company"). The card is drawn only for a request that names no company, so the heading names none. At most 120 characters. Omit to keep the default heading; an empty string is rejected rather than rendered as a blank heading. | |
| subtitle | No | Supporting line under the card's heading. At most 240 characters. Omit to keep the default wording; an empty string is rejected rather than rendered blank. | |
| workspace_id | No | Target workspace. Omit when the token authorizes one workspace. Required when it authorizes several — a write lands in exactly one workspace and this call would not say which. | |
| conversation_id | No | 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. | |
| idempotency_key | No | Optional client-supplied key. A retried write with the same key returns the original result instead of re-applying the operation. | |
| workspace_scope | No | 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. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| error | No | ||
| anchor | Yes | ||
| success | Yes | ||
| next_step | No | What to do with the card this result renders. Added by the dispatcher when the card asks for a click. | |
| candidates | Yes | ||
| own_identity | Yes | 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. | |
| conversation_id | No | The conversation this result belongs to. Pass it back as the conversation_id argument on every later Well call in the same conversation. | |
| newly_connected | No | 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. | |
| resolved_workspace | No | The workspace that answered, when the caller named none and the token authorizes several. | |
| conversation_id_note | No | Present only when the server opened a fresh lane, stating that no choice recorded earlier was read. | |
| conversation_id_source | No | Where the conversation id came from: the host's own request meta, the caller's argument, or a fresh lane the server opened. |