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
+7 -7
@@ -726,15 +726,15 @@ REPL mode when function calling is enabled.
## User Interaction Available Tools ## User Interaction Available Tools
| Tool | Description | Returns | | Tool | Description | Returns |
|------------------|-----------------------------------------|----------------------------------| |-------------------|------------------------------------------------------------------------------------------------------------------------------|----------------------------------|
| `user__ask` | Present a single-select list of options | The selected option string | | `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 yes/no question | `"yes"` or `"no"` | | `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` | Request free-form text input | The text entered by the user | | `user__input` | Collect free-form text from the user when no predefined options exist. | The text entered by the user |
| `user__checkbox` | Present a multi-select checkbox list | Array of selected option strings | | `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:** **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__confirm`: `--question "..."`
- `user__input`: `--question "..."` - `user__input`: `--question "..."`
- `user__checkbox`: `--question "..." --options ["Option A", "Option B", "Option C"]` - `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, 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: 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 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 3. The root agent either answers from context or prompts the user itself, then calls
`agent__reply_escalation` to unblock the child `agent__reply_escalation` to unblock the child
+2 -2
@@ -354,7 +354,7 @@ approve:
### The `on_other` field ### 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 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 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 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 knowledge base is built once, at load time**. Changing
a `rag` node's `documents` does not rebuild it. Delete a `rag` node's `documents` does not rebuild it. Delete
`<agent-dir>/<node-id>.yaml` to force a fresh build on next run. `<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)). always permits free-form responses (see [the approval section](#approval)).
- **`validation` on `input` nodes is length-only**. The grammar is - **`validation` on `input` nodes is length-only**. The grammar is
`len(input) <op> <integer>` with `<op>` in `> >= < <= ==`. No regex, no `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 * **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 * [**Custom REPL Prompt:**](REPL-Prompt) You can even customize the REPL prompt to display information about the
current context in the prompt 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 `user__input`, and `user__checkbox` tools are always available for interactive prompts. These are not injected in the
one-shot CLI mode. one-shot CLI mode.