@dreb/coding-agent 2.61.2 → 2.63.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.
- package/README.md +10 -3
- package/dist/core/settings-manager.d.ts +7 -0
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +20 -1
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/tab-title.d.ts.map +1 -1
- package/dist/core/tab-title.js +14 -2
- package/dist/core/tab-title.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts +2 -2
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +46 -0
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts +5 -1
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-types.js.map +1 -1
- package/docs/dashboard.md +29 -15
- package/docs/rpc.md +21 -1
- package/docs/settings.md +4 -0
- package/package.json +1 -1
package/docs/rpc.md
CHANGED
|
@@ -1325,7 +1325,7 @@ Note: with `summarize: true` the command is LLM-bound and can take a while. `Rpc
|
|
|
1325
1325
|
|
|
1326
1326
|
Persistent settings, backed by the settings file (see [settings.md](settings.md)). They are normally distinct from live session state, with global-only control/security-policy exceptions:
|
|
1327
1327
|
|
|
1328
|
-
- **Persistent defaults** (`get_settings` / `set_settings`): provider/model, thinking level, queue modes, compaction/retry/image/skill/thinking-display/transport toggles, `maxConcurrentSubagents`, `enabledModels`, and per-agent model fallback lists seed fresh runtimes. Writing these ordinary defaults does **not** change a running session.
|
|
1328
|
+
- **Persistent defaults** (`get_settings` / `set_settings`): provider/model, thinking level, queue modes, compaction/retry/image/skill/thinking-display/transport toggles, `maxConcurrentSubagents`, `enabledModels`, `tabTitle`, and per-agent model fallback lists seed fresh runtimes. Writing these ordinary defaults does **not** change a running session.
|
|
1329
1329
|
- **Global nested-context trust policy** (`autoLoadNestedContext`, `trustedContextFolders`, `effectiveTrustedContextRoots`, and the trust commands below): this is read from `~/.dreb/agent/settings.json` only, never project settings. Active main/subagent processes observe it for **future lazy nested/out-of-cwd loads**; it cannot remove content already injected into a conversation. It does not govern the separate initial upward context scan from the launch cwd.
|
|
1330
1330
|
- **Global Dispatch Arbiter policy** (`subagentArbiter`): the complete object is read/written globally and project settings cannot shadow it. Enabled runtimes consume it before future subagent spawns; it does not rewrite already-started children.
|
|
1331
1331
|
- **Runtime state** (`get_state` / `set_model` / `set_thinking_level` / `set_steering_mode` / `set_follow_up_mode` / `set_auto_compaction` / `set_auto_retry`): the state of the live session. Note that the runtime setters also persist their values as new defaults as a side effect.
|
|
@@ -1379,6 +1379,12 @@ Response:
|
|
|
1379
1379
|
"model": "anthropic/claude-sonnet-4-5",
|
|
1380
1380
|
"thinking": "medium",
|
|
1381
1381
|
"guidePath": "~/.dreb/agent/model-routing-guide.md"
|
|
1382
|
+
},
|
|
1383
|
+
"tabTitle": {
|
|
1384
|
+
"enabled": true,
|
|
1385
|
+
"model": "anthropic/claude-haiku-4-5",
|
|
1386
|
+
"triggerAfter": 9,
|
|
1387
|
+
"maxTitleLength": 60
|
|
1382
1388
|
}
|
|
1383
1389
|
}
|
|
1384
1390
|
}
|
|
@@ -1392,6 +1398,8 @@ Response:
|
|
|
1392
1398
|
|
|
1393
1399
|
`subagentArbiter` is absent when unconfigured. It is always the global object; project `.dreb/settings.json` cannot enable, disable, or alter it.
|
|
1394
1400
|
|
|
1401
|
+
`tabTitle` is the effective merged object and is absent when unconfigured. Its optional `model` is one exact `provider/model`; when absent, title generation preserves the Explore-agent resolution route documented in [settings.md](settings.md#tab-title).
|
|
1402
|
+
|
|
1395
1403
|
#### set_settings
|
|
1396
1404
|
|
|
1397
1405
|
Update persistent default settings. Takes a partial payload — only the supplied keys change. The whole payload is validated before anything is applied: on any invalid field, nothing changes and the response is an explicit error. Writes target the global settings file (same scope as every runtime setter).
|
|
@@ -1448,6 +1456,16 @@ Setting per-agent model fallback lists:
|
|
|
1448
1456
|
|
|
1449
1457
|
For `agentModels`, a non-empty array writes the global fallback list for that agent. An empty array removes the global entry, so that agent uses its agent-definition default unless a project-level override exists.
|
|
1450
1458
|
|
|
1459
|
+
Update one or more tab-title fields. Nested updates are partial, so changing `enabled` or `model` preserves omitted `triggerAfter` and `maxTitleLength` values. A supplied model must be an available exact reference; model IDs may contain `/` after the provider prefix. `model: null` removes the pinned model, restoring Explore-agent routing:
|
|
1460
|
+
|
|
1461
|
+
```json
|
|
1462
|
+
{"type":"set_settings","settings":{"tabTitle":{"enabled":true,"model":"anthropic/claude-haiku-4-5"}}}
|
|
1463
|
+
```
|
|
1464
|
+
|
|
1465
|
+
```json
|
|
1466
|
+
{"type":"set_settings","settings":{"tabTitle":{"model":null}}}
|
|
1467
|
+
```
|
|
1468
|
+
|
|
1451
1469
|
Replace the complete global-only Dispatch Arbiter policy (exact model is validated; explicit thinking is capability-validated):
|
|
1452
1470
|
|
|
1453
1471
|
```json
|
|
@@ -1537,6 +1555,7 @@ Valid keys and values:
|
|
|
1537
1555
|
| `agentModels` | Plain object mapping agent names to arrays of non-empty model id strings; empty arrays remove the global entry for that agent |
|
|
1538
1556
|
| `enabledModels` | Non-empty ordered array of available exact `provider/model` references, or explicit `null` to remove the global filter and restore implicit all. Duplicate, glob, fuzzy, and thinking-suffix entries are rejected. |
|
|
1539
1557
|
| `subagentArbiter` | Complete global-only object or `null`. Keys: `enabled` boolean, exact available `model`, optional valid/capability-supported `thinking`, non-empty `guidePath`. Enabling requires `model`. Unknown nested keys are rejected. |
|
|
1558
|
+
| `tabTitle` | Partial object. Keys: `enabled` boolean, exact available `model` (`null` removes the pinned model and restores Explore-agent routing), positive whole-number `triggerAfter`, positive whole-number `maxTitleLength`. Unknown nested keys and an empty object are rejected. |
|
|
1540
1559
|
|
|
1541
1560
|
Errors are explicit `success: false` responses (nothing is applied on any of them):
|
|
1542
1561
|
|
|
@@ -1552,6 +1571,7 @@ Errors are explicit `success: false` responses (nothing is applied on any of the
|
|
|
1552
1571
|
- Provider without model (or vice versa): `defaultProvider and defaultModel must be set together`
|
|
1553
1572
|
- Unavailable model: `Model not found: provider/model-id`
|
|
1554
1573
|
- Invalid arbiter policy: `Enabling subagentArbiter requires an exact provider/model`, `Arbiter model not found: ...`, or a nested-key/type/thinking capability error
|
|
1574
|
+
- Invalid tab-title update: `tabTitle.model must be an exact provider/model`, `Tab title model not found: ...`, or a nested-key/type/positive-number error
|
|
1555
1575
|
- Corrupt settings file: `Cannot write settings: the global settings file failed to load (fix or remove the corrupt settings.json first)` — without this guard the write would silently no-op
|
|
1556
1576
|
- Write failure (I/O error): `Failed to persist settings: ...`
|
|
1557
1577
|
|
package/docs/settings.md
CHANGED
|
@@ -146,15 +146,19 @@ Prompt behavior:
|
|
|
146
146
|
| Setting | Type | Default | Description |
|
|
147
147
|
|---------|------|---------|-------------|
|
|
148
148
|
| `tabTitle.enabled` | boolean | `true` | Auto-generate terminal tab title from session task |
|
|
149
|
+
| `tabTitle.model` | string | - | Exact `provider/model` for the title call; absent preserves Explore-agent routing |
|
|
149
150
|
| `tabTitle.triggerAfter` | number | `9` | Number of tool calls before generating title |
|
|
150
151
|
| `tabTitle.maxTitleLength` | number | `60` | Soft target length hint for generated titles (clamped to a hard cap of 300) |
|
|
151
152
|
|
|
152
153
|
After the configured number of tool calls, dreb fires a single background LLM call to summarize the session's task into a terminal tab title, then sets it via OSC 0. The title is based primarily on your actual request and current-session actions, with branch/repo/cwd metadata used only for disambiguation. `maxTitleLength` is a soft target communicated to the model (default 60); titles may run a little longer for clarity and are hard-capped at 300 characters. The TUI truncates long titles visually while the dashboard shows the full name. Only fires once per session, and never overwrites an already-named (e.g. resumed) session. If the LLM call fails, the default title remains and the failure is surfaced (shown in interactive mode, logged to stderr in RPC mode).
|
|
153
154
|
|
|
155
|
+
`tabTitle.model` pins the primary call to one available exact model. Model IDs may contain `/`, so the first path segment is the provider and the complete remainder is the model ID. When this setting is absent, resolution is unchanged: the Explore `agentModels` override, then Explore agent frontmatter, then the parent session model. If the selected model call fails and differs from the parent session model, dreb retries once with the parent. Dashboard Settings exposes `enabled` and the exact model picker, including clearing a pinned model back to the automatic route; `triggerAfter` and `maxTitleLength` remain configurable in JSON.
|
|
156
|
+
|
|
154
157
|
```json
|
|
155
158
|
{
|
|
156
159
|
"tabTitle": {
|
|
157
160
|
"enabled": true,
|
|
161
|
+
"model": "anthropic/claude-haiku-4-5",
|
|
158
162
|
"triggerAfter": 9,
|
|
159
163
|
"maxTitleLength": 60
|
|
160
164
|
}
|