@dreb/coding-agent 2.22.1 → 2.24.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.
Files changed (41) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +1 -1
  3. package/dist/core/agent-session.d.ts.map +1 -1
  4. package/dist/core/agent-session.js +12 -1
  5. package/dist/core/agent-session.js.map +1 -1
  6. package/dist/core/extensions/index.d.ts +1 -1
  7. package/dist/core/extensions/index.d.ts.map +1 -1
  8. package/dist/core/extensions/index.js.map +1 -1
  9. package/dist/core/extensions/types.d.ts +14 -1
  10. package/dist/core/extensions/types.d.ts.map +1 -1
  11. package/dist/core/extensions/types.js.map +1 -1
  12. package/dist/core/keybindings.d.ts +5 -0
  13. package/dist/core/keybindings.d.ts.map +1 -1
  14. package/dist/core/keybindings.js +4 -0
  15. package/dist/core/keybindings.js.map +1 -1
  16. package/dist/core/tools/subagent.d.ts +1 -0
  17. package/dist/core/tools/subagent.d.ts.map +1 -1
  18. package/dist/core/tools/subagent.js +35 -2
  19. package/dist/core/tools/subagent.js.map +1 -1
  20. package/dist/index.d.ts +1 -1
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js.map +1 -1
  23. package/dist/modes/interactive/components/copy-selector.d.ts +32 -0
  24. package/dist/modes/interactive/components/copy-selector.d.ts.map +1 -0
  25. package/dist/modes/interactive/components/copy-selector.js +155 -0
  26. package/dist/modes/interactive/components/copy-selector.js.map +1 -0
  27. package/dist/modes/interactive/interactive-mode.d.ts +1 -0
  28. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  29. package/dist/modes/interactive/interactive-mode.js +89 -9
  30. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  31. package/dist/utils/clipboard.d.ts +4 -1
  32. package/dist/utils/clipboard.d.ts.map +1 -1
  33. package/dist/utils/clipboard.js +12 -2
  34. package/dist/utils/clipboard.js.map +1 -1
  35. package/dist/utils/message-text.d.ts +21 -0
  36. package/dist/utils/message-text.d.ts.map +1 -0
  37. package/dist/utils/message-text.js +118 -0
  38. package/dist/utils/message-text.js.map +1 -0
  39. package/docs/extensions.md +13 -0
  40. package/docs/keybindings.md +1 -0
  41. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -30,12 +30,20 @@
30
30
  - Added process-safe rate-limited queue for `web_search` tool — throttles rapid successive searches (including from parallel subagents) using `proper-lockfile` + timestamp file for cross-process coordination. Default minimum spacing is 10 seconds. Configurable via `DREB_WEB_SEARCH_RATE_LIMIT_MS` env var or `search.rate_limit_ms` in config file. Explore agents now have access to `web_search` and `web_fetch`. ([#180](https://github.com/aebrer/dreb/issues/180))
31
31
 
32
32
  - Subagent `cwd` parameter now accepts absolute paths in addition to relative paths. Relative paths are still resolved under the parent working directory and escaped via `../` guard. ([#228](https://github.com/aebrer/dreb/issues/228))
33
+
34
+ - `/copy` now opens a multi-select message picker instead of copying only the last assistant message. All message types are listed (user, assistant, tool results, bash executions, branch/compaction summaries, custom). Navigate with arrow keys, toggle selection with Space, select-all with Ctrl+A, confirm with Enter. Copies source text without wrap-induced line breaks. Status message distinguishes between native clipboard and OSC 52 (SSH/mosh) delivery. New `app.clipboard.copyMessages` keybinding (Ctrl+Shift+C) opens the picker directly. ([#217](https://github.com/aebrer/dreb/issues/217))
33
35
  - Added TUI handling for `stream_retry` events: stale streaming components are removed, a retry spinner with attempt count is shown, and `agent_end` unconditionally clears retry state. ([#230](https://github.com/aebrer/dreb/issues/230))
34
36
  - Added `stream_retry` to the extension event surface so extensions can observe and react to provider stream retries. ([#230](https://github.com/aebrer/dreb/issues/230))
37
+ - Added TUI handling for `length_retry` events: when a response is truncated at the model's token limit, stale streaming components are removed and a retry spinner shows "Response truncated, retrying with larger token budget" with attempt count. Reuses the same retry-state cleanup as `stream_retry`. ([#240](https://github.com/aebrer/dreb/issues/240))
38
+ - Added `length_retry` to the extension event surface so extensions can observe and react to token-budget truncation retries. Carries `attempt`, `maxAttempts`, `previousMaxTokens`, `nextMaxTokens`, and an optional `discardedPartial`. ([#240](https://github.com/aebrer/dreb/issues/240))
35
39
  - Added `/dream` memory consolidation command — backs up all memory directories, merges duplicates, scans session history for unrecorded patterns, prunes stale entries, and validates links. Uses tar.gz archives with retention policy (keep last 10), lockfile-based concurrency protection, and a 10-step LLM pipeline with explicit backup verification. Configurable archive path via `dream.archivePath` setting. ([#99](https://github.com/aebrer/dreb/issues/99))
36
40
 
37
41
  ### Fixed
38
42
 
43
+ - 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))
44
+
45
+ - Fixed ghost whitespace appearing after the TUI content shrinks (e.g., closing the copy selector, filtering slash-command autocomplete, editor line deletion). The differential renderer now triggers a full screen redraw when content shrinks instead of clearing extra lines individually, which some terminals would not collapse. ([#217](https://github.com/aebrer/dreb/issues/217))
46
+
39
47
  - Added missing `ajv` direct dependency; previously relied on transitive install via `@mariozechner/pi-ai` which broke standalone installs ([#2252](https://github.com/badlogic/pi-mono/issues/2252))
40
48
  - Fixed `/export` HTML backgrounds to honor `theme.export.pageBg`, `cardBg`, and `infoBg` instead of always deriving them from `userMessageBg` ([#2565](https://github.com/badlogic/pi-mono/issues/2565))
41
49
  - Fixed interactive bash execution collapsed previews to recompute visual line wrapping at render time, so previews respect the current terminal width after resizes and split-pane width changes ([#2569](https://github.com/badlogic/pi-mono/issues/2569))
package/README.md CHANGED
@@ -165,7 +165,7 @@ Type `/` in the editor to trigger commands. [Extensions](#extensions) can regist
165
165
  | `/tree` | Jump to any point in the session and continue from there |
166
166
  | `/fork` | Create a new session from the current branch |
167
167
  | `/compact [prompt]` | Manually compact context, optional custom instructions |
168
- | `/copy` | Copy last assistant message to clipboard |
168
+ | `/copy` | Open multi-select message picker to copy any messages to clipboard |
169
169
  | `/dream` | Consolidate and prune memories — backs up, merges duplicates, scans sessions for patterns |
170
170
  | `/export [file]` | Export session to HTML file |
171
171
  | `/buddy` | Terminal companion — hatch, pet, reroll, set model, or hide. See [docs/buddy.md](docs/buddy.md) |