@dreb/coding-agent 2.60.1 → 2.61.1

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.
Files changed (72) hide show
  1. package/README.md +6 -4
  2. package/dist/cli/args.d.ts +1 -1
  3. package/dist/cli/args.d.ts.map +1 -1
  4. package/dist/cli/args.js +2 -2
  5. package/dist/cli/args.js.map +1 -1
  6. package/dist/core/agent-session.d.ts +49 -6
  7. package/dist/core/agent-session.d.ts.map +1 -1
  8. package/dist/core/agent-session.js +122 -25
  9. package/dist/core/agent-session.js.map +1 -1
  10. package/dist/core/dispatch-arbiter.d.ts.map +1 -1
  11. package/dist/core/dispatch-arbiter.js +2 -2
  12. package/dist/core/dispatch-arbiter.js.map +1 -1
  13. package/dist/core/model-registry.d.ts.map +1 -1
  14. package/dist/core/model-registry.js +1 -0
  15. package/dist/core/model-registry.js.map +1 -1
  16. package/dist/core/settings-manager.d.ts +4 -4
  17. package/dist/core/settings-manager.d.ts.map +1 -1
  18. package/dist/core/settings-manager.js.map +1 -1
  19. package/dist/core/thinking.d.ts.map +1 -1
  20. package/dist/core/thinking.js +9 -1
  21. package/dist/core/thinking.js.map +1 -1
  22. package/dist/core/tools/index.d.ts +6 -6
  23. package/dist/core/tools/subagent.d.ts +9 -9
  24. package/dist/core/tools/subagent.d.ts.map +1 -1
  25. package/dist/core/tools/subagent.js +4 -2
  26. package/dist/core/tools/subagent.js.map +1 -1
  27. package/dist/main.d.ts.map +1 -1
  28. package/dist/main.js +6 -1
  29. package/dist/main.js.map +1 -1
  30. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  31. package/dist/modes/interactive/components/settings-selector.js +3 -2
  32. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  33. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  34. package/dist/modes/interactive/components/thinking-selector.js +2 -1
  35. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  36. package/dist/modes/interactive/components/user-message-selector.d.ts +7 -2
  37. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
  38. package/dist/modes/interactive/components/user-message-selector.js +19 -12
  39. package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
  40. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  41. package/dist/modes/interactive/interactive-mode.js +27 -12
  42. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  43. package/dist/modes/interactive/theme/dark.json +1 -6
  44. package/dist/modes/interactive/theme/light.json +1 -6
  45. package/dist/modes/interactive/theme/theme-schema.json +10 -2
  46. package/dist/modes/interactive/theme/theme.d.ts +2 -2
  47. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  48. package/dist/modes/interactive/theme/theme.js +9 -3
  49. package/dist/modes/interactive/theme/theme.js.map +1 -1
  50. package/dist/modes/rpc/rpc-client.d.ts +1 -0
  51. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  52. package/dist/modes/rpc/rpc-client.js +2 -1
  53. package/dist/modes/rpc/rpc-client.js.map +1 -1
  54. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  55. package/dist/modes/rpc/rpc-mode.js +2 -1
  56. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  57. package/dist/modes/rpc/rpc-types.d.ts +3 -0
  58. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  59. package/dist/modes/rpc/rpc-types.js.map +1 -1
  60. package/docs/agent-models.md +1 -1
  61. package/docs/custom-provider.md +2 -2
  62. package/docs/extensions.md +1 -1
  63. package/docs/models.md +3 -1
  64. package/docs/rpc.md +21 -10
  65. package/docs/sdk.md +1 -1
  66. package/docs/settings.md +2 -2
  67. package/docs/themes.md +3 -1
  68. package/docs/tree.md +1 -1
  69. package/docs/tui.md +1 -1
  70. package/examples/extensions/dynamic-resources/dynamic.json +1 -0
  71. package/examples/extensions/preset.ts +1 -1
  72. package/package.json +1 -1
package/docs/rpc.md CHANGED
@@ -225,6 +225,7 @@ Response:
225
225
  {"id": "inspect", "title": "Inspect the implementation", "status": "in_progress"}
226
226
  ],
227
227
  "thinkingLevel": "medium",
228
+ "availableThinkingLevels": ["off", "minimal", "low", "medium", "high", "xhigh"],
228
229
  "isStreaming": false,
229
230
  "isRetrying": false,
230
231
  "retryAttempt": 0,
@@ -486,9 +487,9 @@ Set the reasoning/thinking level for models that support it.
486
487
  {"type": "set_thinking_level", "level": "high"}
487
488
  ```
488
489
 
489
- Levels: `"off"`, `"minimal"`, `"low"`, `"medium"`, `"high"`, `"xhigh"`
490
+ Levels: `"off"`, `"minimal"`, `"low"`, `"medium"`, `"high"`, `"xhigh"`, `"max"`
490
491
 
491
- Note: `"xhigh"` is supported by GPT-5.2 through GPT-5.6 model families, Claude Opus 4.6–4.x and Claude 5 families (where it maps to adaptive effort `"max"`), and Kimi Code K3.
492
+ Note: `"xhigh"` is supported by GPT-5.2 through GPT-5.6 model families, 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.
492
493
 
493
494
  Response:
494
495
  ```json
@@ -906,13 +907,13 @@ The path uses the same unrestricted, cross-project addressing as [`switch_sessio
906
907
 
907
908
  #### fork
908
909
 
909
- Create a new fork from a previous user message. Can be cancelled by a `session_before_fork` extension event handler. Returns the text of the message being forked from.
910
+ Create a new fork from any user or assistant message in the transcript. Can be cancelled by a `session_before_fork` extension event handler. For a **user** message the response `text` is that message's text (offered as editor pre-fill for re-asking) and the branch rewinds to before it; for an **assistant** message the branch *includes* that response (continue from that answer) and `text` is empty. Assistant turns that were interrupted (`error`/`aborted`) or are still waiting on tool results are not valid fork points and are rejected.
910
911
 
911
912
  ```json
912
913
  {"type": "fork", "entryId": "abc123"}
913
914
  ```
914
915
 
915
- Response:
916
+ Response (forking at a user message — text is offered as editor pre-fill):
916
917
  ```json
917
918
  {
918
919
  "type": "response",
@@ -922,7 +923,17 @@ Response:
922
923
  }
923
924
  ```
924
925
 
925
- If an extension cancelled the fork:
926
+ Response (forking at an assistant message no pre-fill):
927
+ ```json
928
+ {
929
+ "type": "response",
930
+ "command": "fork",
931
+ "success": true,
932
+ "data": {"text": "", "cancelled": false}
933
+ }
934
+ ```
935
+
936
+ If an extension cancelled the fork, `text` still mirrors what the corresponding successful fork would have returned — the user message's text for a user-message fork, or `""` for an assistant-message fork:
926
937
  ```json
927
938
  {
928
939
  "type": "response",
@@ -934,7 +945,7 @@ If an extension cancelled the fork:
934
945
 
935
946
  #### get_fork_messages
936
947
 
937
- Get user messages available for forking.
948
+ Get the messages available for forking (both user and assistant). Each entry carries its `role` so callers can label it and choose the right fork semantics.
938
949
 
939
950
  ```json
940
951
  {"type": "get_fork_messages"}
@@ -948,8 +959,8 @@ Response:
948
959
  "success": true,
949
960
  "data": {
950
961
  "messages": [
951
- {"entryId": "abc123", "text": "First prompt..."},
952
- {"entryId": "def456", "text": "Second prompt..."}
962
+ {"entryId": "abc123", "text": "First prompt...", "role": "user"},
963
+ {"entryId": "def456", "text": "The answer...", "role": "assistant"}
953
964
  ]
954
965
  }
955
966
  }
@@ -1510,7 +1521,7 @@ Valid keys and values:
1510
1521
  | Key | Values |
1511
1522
  |-----|--------|
1512
1523
  | `defaultProvider` + `defaultModel` | Must be supplied together; must match a model from `get_available_models` |
1513
- | `defaultThinkingLevel` | `"off"`, `"minimal"`, `"low"`, `"medium"`, `"high"`, `"xhigh"` (validated against the full set — a stored default is not tied to the current model's capabilities) |
1524
+ | `defaultThinkingLevel` | `"off"`, `"minimal"`, `"low"`, `"medium"`, `"high"`, `"xhigh"`, `"max"` (validated against the full set — a stored default is not tied to the current model's capabilities) |
1514
1525
  | `steeringMode` | `"all"`, `"one-at-a-time"` |
1515
1526
  | `followUpMode` | `"all"`, `"one-at-a-time"` |
1516
1527
  | `compactionEnabled` | boolean |
@@ -1531,7 +1542,7 @@ Errors are explicit `success: false` responses (nothing is applied on any of the
1531
1542
 
1532
1543
  - Missing/empty payload: `set_settings requires at least one setting to change`
1533
1544
  - Unknown key: `Unknown settings key(s): ...`
1534
- - Invalid enum value: `Invalid defaultThinkingLevel: "extreme". Valid values: off, minimal, low, medium, high, xhigh`
1545
+ - Invalid enum value: `Invalid defaultThinkingLevel: "extreme". Valid values: off, minimal, low, medium, high, xhigh, max`
1535
1546
  - Invalid transport: `Invalid transport: "http". Valid values: sse, websocket, auto`
1536
1547
  - Non-boolean toggle: `Invalid retryEnabled: "yes". Must be a boolean`
1537
1548
  - Invalid `agentModels` object: `Invalid agentModels: must be a plain object mapping agent names to model fallback arrays`
package/docs/sdk.md CHANGED
@@ -306,7 +306,7 @@ const available = await modelRegistry.getAvailable();
306
306
 
307
307
  const { session } = await createAgentSession({
308
308
  model: opus,
309
- thinkingLevel: "medium", // off, minimal, low, medium, high, xhigh
309
+ thinkingLevel: "medium", // off, minimal, low, medium, high, xhigh, max
310
310
 
311
311
  // Models for cycling (bindable via keybindings.json)
312
312
  scopedModels: [
package/docs/settings.md CHANGED
@@ -17,7 +17,7 @@ Edit directly or use `/settings` for common options.
17
17
  |---------|------|---------|-------------|
18
18
  | `defaultProvider` | string | - | Default provider (e.g., `"anthropic"`, `"openai"`) |
19
19
  | `defaultModel` | string | - | Default model ID |
20
- | `defaultThinkingLevel` | string | - | `"off"`, `"minimal"`, `"low"`, `"medium"`, `"high"`, `"xhigh"` |
20
+ | `defaultThinkingLevel` | string | - | `"off"`, `"minimal"`, `"low"`, `"medium"`, `"high"`, `"xhigh"`, `"max"` |
21
21
  | `hideThinkingBlock` | boolean | `false` | Hide thinking blocks in output |
22
22
  | `thinkingBudgets` | object | - | Custom token budgets per thinking level |
23
23
  | `agentModels.models` | object | - | Per-agent model fallback lists for subagents (map of agent name → ordered model IDs). See [agent-models.md](agent-models.md) |
@@ -285,7 +285,7 @@ The optional Dispatch Arbiter is a fully headless, tool-less model call in the s
285
285
  |---------|------|---------|-------------|
286
286
  | `subagentArbiter.enabled` | boolean | `false` | Run fail-closed arbitration before every actual child spawn |
287
287
  | `subagentArbiter.model` | string | - | Required when enabled; exact canonical `provider/model` used for the direct arbiter call |
288
- | `subagentArbiter.thinking` | string | `off` | Optional arbiter-call thinking: `off`, `minimal`, `low`, `medium`, `high`, or `xhigh`; explicit values are capability-validated |
288
+ | `subagentArbiter.thinking` | string | `off` | Optional arbiter-call thinking: `off`, `minimal`, `low`, `medium`, `high`, `xhigh`, or `max`; explicit values are capability-validated |
289
289
  | `subagentArbiter.guidePath` | string | `~/.dreb/agent/model-routing-guide.md` | Routing guide generated by `/skill:model-routing-guide`; `~` expands normally and relative paths resolve against the child cwd |
290
290
 
291
291
  ```json
package/docs/themes.md CHANGED
@@ -109,6 +109,7 @@ vim ~/.dreb/agent/themes/my-theme.json
109
109
  "thinkingMedium": "#00ffff",
110
110
  "thinkingHigh": "#ff00ff",
111
111
  "thinkingXhigh": "#ff0000",
112
+ "thinkingMax": "#ff1493",
112
113
  "bashMode": "#ffaa00"
113
114
  }
114
115
  }
@@ -216,7 +217,7 @@ Every theme must define all 51 color tokens. There are no optional colors.
216
217
  | `syntaxOperator` | Operators |
217
218
  | `syntaxPunctuation` | Punctuation |
218
219
 
219
- ### Thinking Level Borders (6 colors)
220
+ ### Thinking Level Borders (7 colors)
220
221
 
221
222
  Editor border colors indicating thinking level (visual hierarchy from subtle to prominent):
222
223
 
@@ -228,6 +229,7 @@ Editor border colors indicating thinking level (visual hierarchy from subtle to
228
229
  | `thinkingMedium` | Medium thinking |
229
230
  | `thinkingHigh` | High thinking |
230
231
  | `thinkingXhigh` | Extra high thinking |
232
+ | `thinkingMax` | Maximum thinking effort |
231
233
 
232
234
  ### Bash Mode (1 color)
233
235
 
package/docs/tree.md CHANGED
@@ -10,7 +10,7 @@ Sessions are stored as trees where each entry has an `id` and `parentId`. The "l
10
10
 
11
11
  | Feature | `/fork` | `/tree` |
12
12
  |---------|---------|---------|
13
- | View | Flat list of user messages | Full tree structure |
13
+ | View | Flat list of user and assistant messages | Full tree structure |
14
14
  | Action | Extracts path to **new session file** | Changes leaf in **same session** |
15
15
  | Summary | Never | Optional (user prompted) |
16
16
  | Events | `session_before_fork` / `session_fork` | `session_before_tree` / `session_tree` |
package/docs/tui.md CHANGED
@@ -415,7 +415,7 @@ renderResult(result, options, theme, context) {
415
415
  | Diffs | `toolDiffAdded`, `toolDiffRemoved`, `toolDiffContext` |
416
416
  | Markdown | `mdHeading`, `mdLink`, `mdLinkUrl`, `mdCode`, `mdCodeBlock`, `mdCodeBlockBorder`, `mdQuote`, `mdQuoteBorder`, `mdHr`, `mdListBullet` |
417
417
  | Syntax | `syntaxComment`, `syntaxKeyword`, `syntaxFunction`, `syntaxVariable`, `syntaxString`, `syntaxNumber`, `syntaxType`, `syntaxOperator`, `syntaxPunctuation` |
418
- | Thinking | `thinkingOff`, `thinkingMinimal`, `thinkingLow`, `thinkingMedium`, `thinkingHigh`, `thinkingXhigh` |
418
+ | Thinking | `thinkingOff`, `thinkingMinimal`, `thinkingLow`, `thinkingMedium`, `thinkingHigh`, `thinkingXhigh`, `thinkingMax` |
419
419
  | Modes | `bashMode` |
420
420
 
421
421
  **Background colors** (`theme.bg(color, text)`):
@@ -69,6 +69,7 @@
69
69
  "thinkingMedium": "#81a2be",
70
70
  "thinkingHigh": "#b294bb",
71
71
  "thinkingXhigh": "#d183e8",
72
+ "thinkingMax": "#ff6b9d",
72
73
  "bashMode": "green"
73
74
  },
74
75
  "export": {
@@ -51,7 +51,7 @@ interface Preset {
51
51
  /** Model ID (e.g., "claude-sonnet-4-5") */
52
52
  model?: string;
53
53
  /** Thinking level */
54
- thinkingLevel?: "off" | "minimal" | "low" | "medium" | "high" | "xhigh";
54
+ thinkingLevel?: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max";
55
55
  /** Tools to enable (replaces default set) */
56
56
  tools?: string[];
57
57
  /** Instructions to append to system prompt */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dreb/coding-agent",
3
- "version": "2.60.1",
3
+ "version": "2.61.1",
4
4
  "description": "Coding agent CLI with read, bash, edit, write tools and session management",
5
5
  "type": "module",
6
6
  "drebConfig": {