Skip to content

feat(cli): add /verbose mode for showing full tool args and results#114

Closed
Bartok9 wants to merge 1 commit into
NousResearch:mainfrom
Bartok9:feat-verbose-mode
Closed

feat(cli): add /verbose mode for showing full tool args and results#114
Bartok9 wants to merge 1 commit into
NousResearch:mainfrom
Bartok9:feat-verbose-mode

Conversation

@Bartok9

@Bartok9 Bartok9 commented Feb 27, 2026

Copy link
Copy Markdown
Contributor

Summary

Implements #77 - adds a /verbose slash command that toggles verbose mode.

What this PR does

Adds a /verbose command to the CLI that allows users to toggle between:

  • Compact mode (default): Shows cute one-liner tool summaries
  • Verbose mode: Shows full tool call arguments, results, and reasoning

Changes

  • Adds /verbose to the COMMANDS dict and help menu
  • Adds _toggle_verbose_mode() method to toggle the state
  • Changes quiet_mode to be inversely tied to verbose mode
  • Forces agent re-initialization when toggling to apply new settings

Usage

/verbose    # Toggle verbose mode on/off

When ON:

  • Full tool call arguments are displayed (not truncated)
  • Full tool results are shown (not summarized)
  • Reasoning tokens are displayed when available

When OFF:

  • Compact tool output with cute kawaii summaries (default)

Demo

When verbose is OFF (default):

┊ 🔍 search    what is the weather  2.1s
┊ 💻 $         ls -la              0.3s

When verbose is ON:

📞 Tool 1: web_search(['query']) - {"query": "what is the weather"}
📞 Tool 2: terminal(['command']) - {"command": "ls -la"}

Closes #77

Implements NousResearch#77 - adds a /verbose slash command that toggles verbose mode.

When verbose mode is enabled:
- Full tool call arguments are displayed (not truncated)
- Full tool results are shown (not summarized)
- Reasoning tokens are displayed when available

The implementation:
- Adds /verbose to the COMMANDS dict and help menu
- Adds _toggle_verbose_mode() method to toggle the state
- Changes quiet_mode to be inversely tied to verbose mode
- Forces agent re-initialization when toggling to apply new settings

Usage:
- /verbose - Toggle verbose mode on/off
- When ON: Shows detailed API calls, full tool arguments, and results
- When OFF: Shows compact tool summaries (default behavior)
@Bartok9

Bartok9 commented Feb 27, 2026

Copy link
Copy Markdown
Contributor Author

Closing in favor of #94 which was submitted earlier and has a cleaner implementation that updates the agent flags in real-time without requiring re-initialization.

@Bartok9 Bartok9 closed this Feb 27, 2026
moltapollo-cvtx pushed a commit to moltapollo-cvtx/hermes-agent that referenced this pull request May 7, 2026
Companion to rename_entity. Same transactional shape; different job:
rename mutates one row in place, merge consolidates two rows into
one.

merge_entities(source_id, target_id) -> dict
  - INSERT OR IGNORE re-points every (fact_id, source) to (fact_id,
    target); existing dual links collapse to a single target link
  - DELETE remaining (fact_id, source) rows
  - union source.aliases + source.name into target.aliases (case-
    insensitive dedup, target.name itself excluded)
  - DELETE source entity row
  - re-encode every formerly-source-linked fact via
    _compute_hrr_vector(commit=False) so its bundle reflects the new
    entity set
  - rebuild affected category banks
  - all in one transaction; rollback on any failure

Tests (9 new, 175/175 in full memory suite):
- re-point + source row deletion + facts_re_encoded count
- alias union with case-insensitive dedup
- dual-link collapse (fact linked to both source and target ends up
  with one target link, no duplicate)
- empty-source merge (zero facts) still merges aliases and deletes
  the source row, no re-encode
- ValueError on self-merge, KeyError on missing ids
- encoding_version refresh on re-encoded facts
- post-merge probe by source.name resolves via merged alias
- rollback atomicity on simulated _compute_hrr_vector failure

Live DB merges (entity_id=11, 4, 10 → 114):
  Before: 7 Apollo* rows, recall split between NousResearch#11 (95 facts) and
          NousResearch#114 (96 facts) for the same conceptual company
  After:  4 Apollo* rows. NousResearch#114 now holds 100 facts (95 source links
          collapsed to 4 unique-to-source via INSERT OR IGNORE).
          Probe recall consolidated and stronger:
            fact_id=431  +0.5291 → +0.6405
            fact_id=34   +0.5051 → +0.6196
            fact_id=71   +0.4030 → +0.4481
          Probes by every alias (canonical, AER, AEG, bare "Apollo")
          return identical top-3.

Doctor post-merge: status=warn (only the pre-existing 4 dangling
fact_id refs in fact_entities; merge introduced zero new orphans —
re-point happens before delete). Smoke probe('Apollo Energy Group')
raw_sim=+0.6448 in 20ms over 507 facts.

Still open after this commit:
- 4 orphan fact_entities rows (pre-existing fact deletions that
  didn't clean up the join table)
- entity_id=125 "Apollo Energy Resources LLC Sales" (1 fact) and
  entity_id=96 "Apollo_Investigation_Vault" (1 fact) — judgment
  calls on whether to merge into NousResearch#114 or leave separate
- record_feedback dual-write to trust_score, retrieval_count product
  question, memory_banks dead-write table — all deferred from
  earlier commits

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

REQ: add /verbose mode for cli

1 participant