@dreb/coding-agent 2.25.4 → 2.27.3

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 (46) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +20 -10
  3. package/dist/core/agent-session.d.ts.map +1 -1
  4. package/dist/core/agent-session.js +7 -0
  5. package/dist/core/agent-session.js.map +1 -1
  6. package/dist/core/buddy/buddy-controller.d.ts.map +1 -1
  7. package/dist/core/buddy/buddy-controller.js +5 -23
  8. package/dist/core/buddy/buddy-controller.js.map +1 -1
  9. package/dist/core/context-buffer.d.ts +49 -0
  10. package/dist/core/context-buffer.d.ts.map +1 -0
  11. package/dist/core/context-buffer.js +84 -0
  12. package/dist/core/context-buffer.js.map +1 -0
  13. package/dist/core/settings-manager.d.ts.map +1 -1
  14. package/dist/core/settings-manager.js.map +1 -1
  15. package/dist/core/system-prompt.d.ts +5 -0
  16. package/dist/core/system-prompt.d.ts.map +1 -1
  17. package/dist/core/system-prompt.js +6 -0
  18. package/dist/core/system-prompt.js.map +1 -1
  19. package/dist/core/tools/subagent.d.ts.map +1 -1
  20. package/dist/core/tools/subagent.js +1 -0
  21. package/dist/core/tools/subagent.js.map +1 -1
  22. package/dist/core/tools/suggest-next.d.ts.map +1 -1
  23. package/dist/core/tools/suggest-next.js +5 -4
  24. package/dist/core/tools/suggest-next.js.map +1 -1
  25. package/dist/modes/interactive/components/tool-execution.d.ts +7 -0
  26. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  27. package/dist/modes/interactive/components/tool-execution.js +16 -0
  28. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  29. package/dist/modes/interactive/interactive-mode.d.ts +33 -0
  30. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  31. package/dist/modes/interactive/interactive-mode.js +184 -87
  32. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  33. package/dist/modes/interactive/tab-title.d.ts +21 -3
  34. package/dist/modes/interactive/tab-title.d.ts.map +1 -1
  35. package/dist/modes/interactive/tab-title.js +47 -25
  36. package/dist/modes/interactive/tab-title.js.map +1 -1
  37. package/docs/agent-models.md +10 -0
  38. package/docs/development.md +1 -1
  39. package/docs/providers.md +7 -0
  40. package/docs/settings.md +2 -2
  41. package/docs/tui.md +42 -0
  42. package/examples/extensions/custom-provider-anthropic/package.json +3 -0
  43. package/examples/extensions/custom-provider-gitlab-duo/package.json +3 -0
  44. package/examples/extensions/custom-provider-qwen-cli/package.json +3 -0
  45. package/examples/extensions/with-deps/package.json +3 -0
  46. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -42,6 +42,8 @@
42
42
 
43
43
  ### Fixed
44
44
 
45
+ - Fixed ESC doing nothing during `stream_retry` / `length_retry` backoff. The old handlers stopped the working spinner (`loadingAnimation`) and swapped in a dedicated retry spinner that had no ESC wiring, so the default ESC handler's `if (this.loadingAnimation)` guard fell through to a no-op. The fix removes the retry spinner entirely, keeps the working spinner running throughout the retry, and surfaces retry feedback as a persistent warning in the chat scrollback instead. ESC now aborts via the pre-existing spinner-abort path — identical to cancelling normal generation. ([#262](https://github.com/aebrer/dreb/issues/262))
46
+
45
47
  - Fixed `/buddy off` not persisting across sessions — the buddy reappeared in the TUI on restart. The `hidden` flag was persisted correctly, but the startup auto-mount ignored it. The startup mount is now gated on the persisted `hidden` flag (extracted into `mountExistingBuddyIfVisible()`); a hidden buddy stays loaded but unmounted until you run `/buddy` to bring it back. ([#243](https://github.com/aebrer/dreb/issues/243))
46
48
 
47
49
  - Fixed subagents silently returning empty results when a child's final response was truncated at the model's token limit. The subagent spawn handler now inspects the last assistant message's `stopReason`: a clean exit with no output now surfaces a descriptive error (truncation, loud truncation failure, or "completed with no output") instead of a silent empty string, and a clean exit with partial output now flags the truncation via `errorMessage` while preserving the partial text — covering both raw `length` truncation and the loud `error` stopReason produced when the core agent loop exhausts its length retries. The parent renders these errors even on a clean (exit code 0) exit. ([#240](https://github.com/aebrer/dreb/issues/240))
package/README.md CHANGED
@@ -43,6 +43,22 @@ What you get in exchange: a skill system, an extension API, custom agent definit
43
43
 
44
44
  ## Quick Start
45
45
 
46
+ > **Node.js 22 LTS is required.** dreb relies on SSE streaming behavior that is stable in Node 22 LTS. Node 24 and Node 26 are known to break provider streaming due to changes in ReadableStream buffering, which causes every provider to fail with **"request ended without sending any chunks"**. If you see that error, switch to Node 22 LTS.
47
+
48
+ ### Building from source (recommended)
49
+
50
+ ```bash
51
+ git clone https://github.com/aebrer/dreb.git
52
+ cd dreb
53
+ npm install
54
+ npm run build
55
+ npm link -w packages/coding-agent
56
+ ```
57
+
58
+ ---
59
+
60
+ ### Installing from npm
61
+
46
62
  ```bash
47
63
  npm install -g @dreb/coding-agent
48
64
  ```
@@ -71,17 +87,9 @@ Then just talk to dreb. All 11 built-in tools are enabled by default: `read`, `w
71
87
 
72
88
  **Bun users:** Bun's lockfile can cache stale `@dreb/*` versions after upgrades, causing missing-export errors. Fix with `bun pm cache rm && bunx --force dreb`.
73
89
 
74
- ---
90
+ ### Troubleshooting
75
91
 
76
- ### Building from source
77
-
78
- ```bash
79
- git clone https://github.com/aebrer/dreb.git
80
- cd dreb
81
- npm install
82
- npm run build
83
- npm link -w packages/coding-agent
84
- ```
92
+ - **"request ended without sending any chunks" on every provider** — Your Node version is likely too new. Switch to **Node.js 22 LTS**. Node 26 in particular changed ReadableStream buffering in a way that breaks the Anthropic and OpenAI SDK stream parsers dreb uses.
85
93
 
86
94
  ---
87
95
 
@@ -361,6 +369,8 @@ The `subagent` tool delegates tasks to independent child agent processes. Each s
361
369
 
362
370
  **Per-agent model overrides:** The model used by each agent type can be overridden via the `agentModels.models` setting (a map of agent name → ordered fallback list) without copying or editing the agent definition `.md` files. Configure it in `settings.json` or via `/settings` → **Agent Models**. Resolution order: per-invocation `model` override → `agentModels` setting → agent definition `model` → parent session model. See [docs/agent-models.md](docs/agent-models.md).
363
371
 
372
+ **Model identity in system prompt:** The parent session's running model is exposed in its own system prompt as `You are running on: provider/id`. This lets the model make self-aware routing decisions (e.g. delegate vision tasks to a multimodal subagent, or use a differently-architected model as a critic). The line updates automatically on mid-session model switches.
373
+
364
374
  **Session metadata:** Each child process records its agent type in the session JSONL header (`agentType` field), providing an audit trail of which agent definition executed the work.
365
375
 
366
376
  ---