@dreb/coding-agent 2.71.0 → 2.72.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -54,7 +54,7 @@ Configure it in `settings.json` (global file, with the standard project-level ov
54
54
 
55
55
  The `subagent` tool accepts an optional `thinking` value in single mode, at the top level for parallel/chain inheritance, or on an individual task/step. Per-task values win over the top-level value.
56
56
 
57
- Supported values are `off`, `minimal`, `low`, `medium`, `high`, `xhigh`, and `max`. Validation happens after the child model resolves: non-`off` levels fail for non-reasoning models, `xhigh` requires advertised xhigh support, and `max` requires a max-capable model (currently the GPT-5.6 family including Sol, Terra, and Luna, and the GPT-6 family including Astra). `max` does not replace `xhigh`. Codex `ultra` additionally enables client-side multi-agent orchestration, so it is not accepted or sent as a raw effort. Omit the field to preserve the child's normal default/settings behavior. The child's actual effective level is reported in its `agent_start` event, result metadata, and `background_agent_end` event.
57
+ Supported values are `off`, `minimal`, `low`, `medium`, `high`, `xhigh`, and `max`. Validation happens after the child model resolves: non-`off` levels fail for non-reasoning models, `off` fails for models whose thinking cannot be turned off (Claude Opus 5.5 — use `minimal` or `low`), `xhigh` requires advertised xhigh support, and `max` requires a max-capable model (currently the GPT-5.6 family including Sol, Terra, and Luna, the GPT-6 family including Astra, and Claude Opus/Sonnet 4.6+ and Haiku 5.5 on Anthropic, GitHub Copilot, and Bedrock). `max` does not replace `xhigh`. Codex `ultra` additionally enables client-side multi-agent orchestration, so it is not accepted or sent as a raw effort. Omit the field to preserve the child's normal default/settings behavior. The child's actual effective level is reported in its `agent_start` event, result metadata, and `background_agent_end` event.
58
58
 
59
59
  ## Evidence-based Routing Guide
60
60
 
package/docs/models.md CHANGED
@@ -346,7 +346,7 @@ For providers with partial OpenAI compatibility, use the `compat` field.
346
346
  | `openRouterRouting` | OpenRouter routing config passed to OpenRouter for model/provider selection |
347
347
  | `vercelGatewayRouting` | Vercel AI Gateway routing config for provider selection (`only`, `order`) |
348
348
 
349
- The normalized scale is `minimal`, `low`, `medium`, `high`, `xhigh`, and `max` (`off` disables reasoning at the session layer). Native normalized `max` is model-aware and currently supported by GPT-5.6 aliases and Sol/Terra/Luna variants, plus the GPT-6 family (Astra and future variants); unsupported defaults fall back `max` → `xhigh` → `high`. Existing provider mappings remain independent—for example, Claude can still map dreb's `xhigh` to Anthropic's provider-native `max`. Codex `ultra` also enables local multi-agent orchestration and is therefore not a raw effort value.
349
+ The normalized scale is `minimal`, `low`, `medium`, `high`, `xhigh`, and `max` (`off` disables reasoning at the session layer). Native normalized `max` is model-aware and currently supported by GPT-5.6 aliases and Sol/Terra/Luna variants, the GPT-6 family (Astra and future variants), and Claude Opus/Sonnet 4.6+ and Haiku 5.5 on Anthropic-native transports (`anthropic-messages`, including GitHub Copilot, and Bedrock); unsupported defaults fall back `max` → `xhigh` → `high`, and an unsupported `xhigh` falls back to `max` where the model has it (Claude Opus/Sonnet 4.6), otherwise `high`. On Anthropic-native transports Claude `xhigh` and `max` are sent as Anthropic's native efforts of the same name. Capability detection is by model id, so custom `models.json` Claude entries (including `anthropic/claude-*` ids on an Anthropic-compatible endpoint) get the same behavior. When reasoning is off, dreb sends each Claude model's own off config: `thinking: {type: "disabled"}` for most models, `{type: "between_tools"}` for Sonnet 5.5, and no `thinking` field or effort for Opus 5.5 (its thinking cannot be turned off, so the session offers `minimal` as its lowest level). Codex `ultra` also enables local multi-agent orchestration and is therefore not a raw effort value.
350
350
 
351
351
  `qwen` uses top-level `enable_thinking`. Use `qwen-chat-template` for local Qwen-compatible servers that require `chat_template_kwargs.enable_thinking`. When reasoning is enabled, dreb sends the mapped effort as a top-level `reasoning_effort`; Qwen3.8+ models default-map dreb's levels onto the three native tiers (`minimal`/`low` → `low`, `medium` → `medium`, `high`/`xhigh`/`max` → `xhigh`).
352
352
 
package/docs/providers.md CHANGED
@@ -8,6 +8,7 @@ dreb supports subscription-based providers via OAuth and API key providers via e
8
8
  - [Subscriptions](#subscriptions)
9
9
  - [API Keys](#api-keys)
10
10
  - [Auth File](#auth-file)
11
+ - [Claude Thinking Levels](#claude-thinking-levels)
11
12
  - [Cloud Providers](#cloud-providers)
12
13
  - [Custom Providers](#custom-providers)
13
14
  - [Resolution Order](#resolution-order)
@@ -37,6 +38,14 @@ Use `/logout` to clear credentials. Tokens are stored in `~/.dreb/agent/auth.jso
37
38
  - If you get "model not supported", enable it in VS Code: Copilot Chat → model selector → select model → "Enable"
38
39
  - GPT-6 models, including `github-copilot/gpt-6-astra`, use the Responses API. Astra supports `xhigh` and native `max` thinking; access depends on the subscription and enabled models.
39
40
  - For adaptive Claude models such as Opus 4.8, readable thinking requires `thinkingDisplay: "summarized"` in SDK calls; enabling thinking alone can return only opaque signatures. See [thinking display](../../ai/README.md#controlling-thinking-display-anthropic-adaptive-models).
41
+ - Copilot Claude Opus, Sonnet, and Haiku (4.x and 5.x) use Copilot's Anthropic Messages endpoint (`/v1/messages`) and follow the same [per-model Claude thinking rules](#claude-thinking-levels) as the Anthropic API: native `xhigh`/`max` effort, `between_tools` for Sonnet 5.5 when thinking is off, and no `off` level for Opus 5.5. Copilot Fable still uses the OpenAI Completions API, which receives no reasoning field.
42
+ - **Model discovery:** at login and on every Copilot token refresh, dreb reads Copilot's `/models` for your account and stores the result with the OAuth credential. Once discovery has succeeded:
43
+ - Built-in Copilot models your plan or organization doesn't offer (or has disabled) are hidden from `/model`. Custom `models.json` entries stay.
44
+ - A model whose built-in API endpoint Copilot doesn't serve switches to one it does (`/responses`, then `/chat/completions`).
45
+
46
+ Thinking levels and limits still come from dreb's built-in catalog, and models released after your dreb version appear after the next update (or can be added through `models.json`).
47
+
48
+ If discovery fails, the last discovered list (or the built-in catalog) is used. The model list updates when the model selector opens or dreb restarts.
40
49
  - A registry context window can be lower than the endpoint's hard limit. Accepting a larger request does not change dreb's configured window. Usage-based overflow detection includes uncached input, cache reads, and cache writes.
41
50
 
42
51
  ### Google Providers
@@ -133,6 +142,21 @@ The `key` field supports three formats:
133
142
 
134
143
  OAuth credentials are also stored here after `/login` and managed automatically.
135
144
 
145
+ ## Claude Thinking Levels
146
+
147
+ On Anthropic-native transports — the Anthropic Messages API (Anthropic, GitHub Copilot, opencode, and custom Anthropic-compatible endpoints) plus Amazon Bedrock — dreb picks Claude thinking and effort fields per model. Capability detection is by model id, so custom `models.json` entries behave the same as built-in ones.
148
+
149
+ | Model | Thinking on | dreb `off` sends | `off` offered | `xhigh` | `max` |
150
+ |---|---|---|---|---|---|
151
+ | Opus/Sonnet/Haiku 4.5 and older | budget (`enabled`) | `disabled` | ✓ | ✗ | ✗ |
152
+ | Opus 4.6, Sonnet 4.6 | adaptive + effort | `disabled` | ✓ | ✗ (uses `max`) | ✓ |
153
+ | Opus 4.7/4.8, Opus 5, Sonnet 5 | adaptive + effort | `disabled` | ✓ | ✓ | ✓ |
154
+ | Opus 5.5 | adaptive + effort | no `thinking` field or effort (model default) | ✗ (uses `minimal`) | ✓ | ✓ |
155
+ | Sonnet 5.5 | adaptive + effort | `between_tools` | ✓ | ✓ | ✓ |
156
+ | Haiku 5.5 | adaptive + effort | `disabled` | ✓ | ✓ | ✓ |
157
+
158
+ Effort mapping: `minimal`/`low` → `low`, `medium` → `medium`, `high` → `high`, `xhigh` → `xhigh`, `max` → `max`. No effort is sent while thinking is off. Background calls that send no reasoning (compaction, tab titles, an arbiter with no `thinking` set) to Opus 5.5 therefore run at the model's default effort. Claude served through OpenAI-compatible APIs (OpenRouter, Copilot Fable) keeps its existing mapping.
159
+
136
160
  ## Cloud Providers
137
161
 
138
162
  ### Azure OpenAI
@@ -171,6 +195,8 @@ Also supports ECS task roles (`AWS_CONTAINER_CREDENTIALS_*`) and IRSA (`AWS_WEB_
171
195
  dreb --provider amazon-bedrock --model us.anthropic.claude-sonnet-4-20250514-v1:0
172
196
  ```
173
197
 
198
+ Claude thinking on Bedrock follows the same per-model rules as the Anthropic API (see [Claude thinking levels](#claude-thinking-levels)). When reasoning is off, Claude 5-generation models (Opus 5, Sonnet 5/5.5, Haiku 5.5), which think by default, receive an explicit off config in `additionalModelRequestFields` (`disabled`, or `between_tools` for Sonnet 5.5); Opus 5.5 gets no thinking field, and older Claude models keep the previous behavior of omitting it.
199
+
174
200
  Prompt caching is enabled automatically for Claude models whose ID contains a recognizable model name (base models and system-defined inference profiles). For application inference profiles (whose ARNs don't contain the model name), set `AWS_BEDROCK_FORCE_CACHE=1` to enable cache points:
175
201
 
176
202
  ```bash
package/docs/rpc.md CHANGED
@@ -514,7 +514,7 @@ Set the reasoning/thinking level for models that support it.
514
514
 
515
515
  Levels: `"off"`, `"minimal"`, `"low"`, `"medium"`, `"high"`, `"xhigh"`, `"max"`
516
516
 
517
- Note: `"xhigh"` is supported by GPT-5.2 through GPT-5.6 model families, the GPT-6 family (Astra and future variants), Claude Opus 4.6–4.x and Claude 5 families (where it maps to adaptive effort `"max"`), and Kimi Code K3. The separate normalized `"max"` tier is model-aware and currently supported by GPT-5.6 aliases and Sol/Terra/Luna variants, plus the GPT-6 family.
517
+ Note: `"xhigh"` is supported by GPT-5.2 through GPT-5.6 model families, the GPT-6 family (Astra and future variants), Claude Opus 4.7+, Sonnet 5+ and Haiku 5.5 on Anthropic, GitHub Copilot and Bedrock (sent as native effort `"xhigh"`), Claude Opus 4.6+ and Sonnet 5+ on OpenRouter, Kimi Code K3, and Qwen 3.8+. The separate normalized `"max"` tier is model-aware and currently supported by GPT-5.6 aliases and Sol/Terra/Luna variants, the GPT-6 family, and Claude Opus/Sonnet 4.6+ and Haiku 5.5 on Anthropic, GitHub Copilot and Bedrock. Unsupported levels are clamped (`xhigh` → `max` on Claude Opus/Sonnet 4.6, otherwise `high`; `max` → `xhigh` → `high`). `availableThinkingLevels` in `get_state` lists only the levels the current model supports and may omit `"off"`: Claude Opus 5.5 cannot turn thinking off, so its list starts at `"minimal"` and `set_thinking_level` with `"off"` lands on `"minimal"` (the saved default is left unchanged).
518
518
 
519
519
  Response:
520
520
  ```json
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dreb/coding-agent",
3
- "version": "2.71.0",
3
+ "version": "2.72.0",
4
4
  "description": "Coding agent CLI with read, bash, edit, write tools and session management",
5
5
  "type": "module",
6
6
  "drebConfig": {