docs: Renamed user__ask to user__select

2026-07-23 18:53:36 -06:00
parent 4076dc294a
commit e290026b5e
3 changed files with 11 additions and 11 deletions
+8 -8
@@ -725,16 +725,16 @@ REPL mode when function calling is enabled.
## User Interaction Available Tools
| Tool | Description | Returns |
|------------------|-----------------------------------------|----------------------------------|
| `user__ask` | Present a single-select list of options | The selected option string |
| `user__confirm` | Ask a yes/no question | `"yes"` or `"no"` |
| `user__input` | Request free-form text input | The text entered by the user |
| `user__checkbox` | Present a multi-select checkbox list | Array of selected option strings |
| Tool | Description | Returns |
|-------------------|------------------------------------------------------------------------------------------------------------------------------|----------------------------------|
| `user__select` | Present a list of named options and ask the user to pick exactly one. Use this — not `confirm` — whenever there are 2+ named options to choose between. | The selected option string |
| `user__confirm` | Ask a genuinely binary yes/no question with no other choices. Do NOT use for "A or B?" situations; use `select` instead. | `"yes"` or `"no"` |
| `user__input` | Collect free-form text from the user when no predefined options exist. | The text entered by the user |
| `user__checkbox` | Ask the user to pick one or more options from a list (multi-select). Use when multiple answers are valid simultaneously. | Array of selected option strings |
**Parameters:**
- `user__ask`: `--question "..." --options ["Option A", "Option B", "Option C"]`
- `user__select`: `--question "..." --options ["Option A", "Option B", "Option C"]`
- `user__confirm`: `--question "..."`
- `user__input`: `--question "..."`
- `user__checkbox`: `--question "..." --options ["Option A", "Option B", "Option C"]`
@@ -747,7 +747,7 @@ checkboxes, and text input fields.
When a **child agent** (depth > 0) calls a `user__*` tool, it cannot prompt the terminal directly. Instead,
the request is **automatically escalated** to the root agent:
1. The child agent calls `user__ask(...)` and **blocks**, waiting for a reply
1. The child agent calls `user__select(...)` and **blocks**, waiting for a reply
2. The root agent sees a `pending_escalations` notification in its next tool results
3. The root agent either answers from context or prompts the user itself, then calls
`agent__reply_escalation` to unblock the child
+2 -2
@@ -354,7 +354,7 @@ approve:
### The `on_other` field
This field is **required** and easy to miss. Coyote's `user__ask` tool *always*
This field is **required** and easy to miss. Coyote's `user__select` tool *always*
gives the user a "type your own answer" option in addition to the listed
options. There is no way to disable this. Without `on_other`, a user who
types something other than the listed options would crash the graph at
@@ -1462,7 +1462,7 @@ A short, honest list of things that bite people:
- **A `rag` node's knowledge base is built once, at load time**. Changing
a `rag` node's `documents` does not rebuild it. Delete
`<agent-dir>/<node-id>.yaml` to force a fresh build on next run.
- **`on_other` is required on every `approval` node** because `user__ask`
- **`on_other` is required on every `approval` node** because `user__select`
always permits free-form responses (see [the approval section](#approval)).
- **`validation` on `input` nodes is length-only**. The grammar is
`len(input) <op> <integer>` with `<op>` in `> >= < <= ==`. No regex, no
+1 -1
@@ -27,7 +27,7 @@ things like
* **Configurable Keybindings:** You can switch between `emacs` style keybindings or `vi` style keybindings
* [**Custom REPL Prompt:**](REPL-Prompt) You can even customize the REPL prompt to display information about the
current context in the prompt
* **Built-in user interaction tools:** When function calling is enabled in the REPL, the `user__ask`, `user__confirm`,
* **Built-in user interaction tools:** When function calling is enabled in the REPL, the `user__select`, `user__confirm`,
`user__input`, and `user__checkbox` tools are always available for interactive prompts. These are not injected in the
one-shot CLI mode.