diff --git a/packages/website/src/content/docs/aether/built-in-servers/plan.mdx b/packages/website/src/content/docs/aether/built-in-servers/plan.mdx index c74ff6f2..9c21604a 100644 --- a/packages/website/src/content/docs/aether/built-in-servers/plan.mdx +++ b/packages/website/src/content/docs/aether/built-in-servers/plan.mdx @@ -49,7 +49,7 @@ The server advertises one MCP prompt named `plan`. It accepts one required `ARGU ## Submit command override -Any trailing args after plan flags are treated as an external submit command. When `submit_plan` is called, Aether appends the resolved absolute plan path as the final command argument and returns the command's stdout as feedback. +Any trailing args after plan flags are treated as an external submit command. When `submit_plan` is called, the plan server appends the resolved absolute plan path as the final command argument and returns the command's stdout as feedback. ```json title=".aether/mcp.json" { @@ -78,7 +78,7 @@ Without a submit command, `submit_plan` uses MCP elicitation and the client disp | Field | Type | Description | | ---------- | -------- | ------------------------------------------------------------------------ | -| `planName` | `string` | Stable plan identifier using only letters, numbers, dashes, underscores. | +| `planName` | `string` | Stable plan identifier using only letters, numbers, dashes, and underscores. Must be non-empty and must not start or end with a dash or underscore. | | `content` | `string` | Markdown plan body. | ### Output @@ -139,7 +139,7 @@ Each entry in `edits` is a `FileEdit`: | Field | Type | Description | | ---------- | --------- | ----------------------------------------------------------------------------------------------- | | `approved` | `boolean` | `true` when the reviewer approved the plan. | -| `feedback` | `string` | Present when the reviewer requested changes or when an external submit command returned stdout. | +| `feedback` | `string` | Present when the reviewer denies with feedback or when an external submit command returned stdout. | ### Example request @@ -168,5 +168,5 @@ Each entry in `edits` is a `FileEdit`: 1. The planner calls `write_plan` with a stable plan name, such as `feature`. 2. The planner calls `submit_plan` with the same `planName`. -3. The client shows an approve / request-changes review form with the rendered markdown. +3. The client shows an approve / deny review form with the rendered markdown. 4. If changes are requested, the planner calls `edit_plan` and then `submit_plan` again. diff --git a/packages/website/src/content/docs/aether/built-in-servers/subagents.mdx b/packages/website/src/content/docs/aether/built-in-servers/subagents.mdx index 044198f0..02be914c 100644 --- a/packages/website/src/content/docs/aether/built-in-servers/subagents.mdx +++ b/packages/website/src/content/docs/aether/built-in-servers/subagents.mdx @@ -18,7 +18,7 @@ The `subagents` server lets one agent delegate work to other configured agents. } ``` -`--project-root` loads `.aether/settings.json` from that directory. `--dir` is accepted as an alias. When omitted, the server uses `.`. +`--project-root` sets the directory sub-agents resolve paths against. When run as a standalone stdio server, it loads `.aether/settings.json` from that directory to resolve agents. When wired in-memory (as above), agents come from Aether's injected agent registry instead. `--dir` is accepted as an alias. When omitted, the server uses `.`. ## Available sub-agents diff --git a/packages/website/src/content/docs/aether/introduction.mdx b/packages/website/src/content/docs/aether/introduction.mdx index 73af9210..e0ae7d0f 100644 --- a/packages/website/src/content/docs/aether/introduction.mdx +++ b/packages/website/src/content/docs/aether/introduction.mdx @@ -38,13 +38,13 @@ aether headless "Explain the main function in this project" ##### Rust -Ather agents can be defined and controlled via a Rust crate: +Aether agents can be defined and controlled via a Rust crate: ##### TypeScript -Aether agents can be programatically defined and controlled via a TypeScript SDK: +Aether agents can be programmatically defined and controlled via a TypeScript SDK: @@ -62,13 +62,13 @@ Some agents are minimal, others are "batteries-included". Aether is **modular**; Minimal agents are great until you have to ["draw the rest of the f-ing owl"](https://knowyourmeme.com/memes/how-to-draw-an-owl). Batteries-included agents are great until you need _more control_ and end up fighting the prompts and tools that were hardcoded into the harness. -Aether gives you the best of both worlds. Your agent starts as a blank slate with no system prompt or tools. Then you add only what you need via 1st-party extentsions for fileystem tools, skills, sub-agents, [LSP](https://microsoft.github.io/language-server-protocol/) integration and more. You're not left to draw the "owl" by yourself. +Aether gives you the best of both worlds. Your agent starts as a blank slate with no system prompt or tools. Then you add only what you need via 1st-party extensions for filesystem tools, skills, sub-agents, [LSP](https://microsoft.github.io/language-server-protocol/) integration and more. You're not left to draw the "owl" by yourself. #### MCP, done better Aether agents get tools _exclusively_ via [MCP](https://modelcontextprotocol.io/docs/getting-started/intro) servers . This makes Aether easy to extend in _any_ language you want. -MCP has a bad rap for "wasting tokens" because many MCP clients dump tool definitions directly into context. Aether _doesn't_ do that. It has token-efficient progessive tool discovery built-in. So you don't need to worry about MCP vs CLIs. +MCP has a bad rap for "wasting tokens" because many MCP clients dump tool definitions directly into context. Aether _doesn't_ do that. It has token-efficient progressive tool discovery built-in. So you don't need to worry about MCP vs CLIs. #### ACP-1st Architecture diff --git a/packages/website/src/content/docs/aether/running/headless.mdx b/packages/website/src/content/docs/aether/running/headless.mdx index 5b2d7238..e287f4ce 100644 --- a/packages/website/src/content/docs/aether/running/headless.mdx +++ b/packages/website/src/content/docs/aether/running/headless.mdx @@ -20,7 +20,7 @@ aether headless [OPTIONS] [PROMPT]... If prompt words are provided, Aether joins them with spaces. If no prompt is provided and stdin is not a TTY, Aether reads stdin, trims it, and uses that as the prompt. ```bash -git diff --staged | aether headless "Review these changes" +git diff --staged | aether headless ``` ## Agent selection diff --git a/packages/website/src/content/docs/aether/settings/overview.mdx b/packages/website/src/content/docs/aether/settings/overview.mdx index c06f2a31..3f450d23 100644 --- a/packages/website/src/content/docs/aether/settings/overview.mdx +++ b/packages/website/src/content/docs/aether/settings/overview.mdx @@ -29,7 +29,7 @@ Aether uses JSON for configuration. **Agents**, along with their **models** (LLM Settings can be defined at the **user** level (`$HOME/.aether/settings.json`), the **project** level (`.aether/settings.json`), or passed inline to the CLI via `--settings-json`. User and project settings are merged, with project-level taking priority in the case of a collision. -You can boostrap user-level or project-level settings with a single command: +You can bootstrap user-level or project-level settings with a single command: ```bash # Generate a user-level settings file diff --git a/packages/website/src/content/docs/aether/settings/user-project-settings.mdx b/packages/website/src/content/docs/aether/settings/user-project-settings.mdx index 3a8e04aa..c96fde86 100644 --- a/packages/website/src/content/docs/aether/settings/user-project-settings.mdx +++ b/packages/website/src/content/docs/aether/settings/user-project-settings.mdx @@ -169,7 +169,7 @@ aether headless \ "Say hello" ``` -Inline settings are merged on top of file-based settings using the same rightmost-wins rules. +Inline settings replace file-based settings entirely. They use the same schema but are not merged with user or project settings files. ## Typical patterns diff --git a/packages/website/src/content/docs/aether/terminal/settings.mdx b/packages/website/src/content/docs/aether/terminal/settings.mdx index ee5447ca..7cf9f0c2 100644 --- a/packages/website/src/content/docs/aether/terminal/settings.mdx +++ b/packages/website/src/content/docs/aether/terminal/settings.mdx @@ -81,10 +81,11 @@ Open with `/settings`. The overlay shows all configurable options: - **Model** — Override the model used by the currently active agent runtime - **Reasoning effort** — Set thinking budget (also cyclable with `Tab`) - **Mode** — Switch to a different user-invocable agent profile, including its prompts, MCP servers, tools, model, and provider settings (also cyclable with `Shift+Tab`) +- **Theme** — Switch the active `.tmTheme` from the themes directory - **MCP servers** — View connected servers and their status - **Provider logins** — Authenticate with providers that require it -These options are advertised by the agent — the terminal UI discovers them at session start. Different agents may expose different options. +All options except **Theme** are advertised by the agent — the terminal UI discovers them at session start. Different agents may expose different options. **Theme** is a local terminal option. ## How agent config works diff --git a/packages/website/src/content/docs/libraries/typescript-sdk.mdx b/packages/website/src/content/docs/libraries/typescript-sdk.mdx index fd2367d9..edfafead 100644 --- a/packages/website/src/content/docs/libraries/typescript-sdk.mdx +++ b/packages/website/src/content/docs/libraries/typescript-sdk.mdx @@ -3,7 +3,7 @@ title: TypeScript SDK description: Run Aether from Node.js with the TypeScript SDK. --- -The TypeScript SDK allows you to programatically define agents, start sessions, send prompts, stream updates, and attach MCP tools. +The TypeScript SDK allows you to programmatically define agents, start sessions, send prompts, stream updates, and attach MCP tools. ## Install @@ -135,7 +135,7 @@ Because `aether headless` exits non-zero on a failed turn, `runHeadless()` **rej | `settingsFile` | Path to an alternate settings JSON file. | | `systemPrompt` | Additional system prompt text. | | `output` | `"text"`, `"pretty"`, or `"json"`. Defaults to `"text"`. See [output formats](/aether/running/headless/#output-formats). | -| `events` | Event kinds to emit (only meaningful with `output: "json"`). See [event filtering](/aether/running/headless/#event-filtering). | +| `events` | Event kinds to emit. See [event filtering](/aether/running/headless/#event-filtering). | | `verbose` | Verbose diagnostic logging to stderr. | | `providers` | Provider connection overrides, such as custom Bedrock endpoints or auth behavior. | | `traceContext` | A remote W3C `traceparent` with optional `tracestate`, or a standalone `traceId`. See [Telemetry](/aether/settings/telemetry/#correlating-sdk-runs). |