hermes-agent/tools
Teknium 299e409f15
feat(delegation): live-viewable subagent transcripts — tail your subagents while they work (#67479)
* feat(delegation): live-viewable subagent transcripts for delegate_task

Each child now streams an append-only, human-readable log to
<hermes_home>/cache/delegation/live/<delegation_id>/task-<n>.log while it
runs, and the dispatch return includes the paths so the caller can tail
them immediately instead of waiting blind for the consolidated summary.

- New tools/delegation_live_log.py: LiveTranscriptWriter (per-event append
  + flush, one-line rendering with truncation, never raises into the agent
  loop), wrap_progress_callback (tees the child's existing
  tool_progress_callback events into the log, preserves the _flush
  contract), dispatch-time creation with pre-headered files so tail -f
  attaches immediately, manifest.json (goals/task count/per-task status),
  and 7-day retention pruning on new dispatches.
- delegate_task: wraps each child's progress callback with the writer;
  sync results and background dispatch responses gain live_transcripts
  (+ hint field on dispatch); per-task result entries carry
  live_transcript; transcripts finalized with exit-reason markers.
- async_delegation: dispatch_async_delegation_batch accepts an optional
  delegation_id so the live/ dir name matches the returned handle; the
  completion event carries live_transcripts.
- process_registry: consolidated batch-completion block references each
  task's live transcript path.
- Tool schema description documents the live_transcripts return surface;
  docs gain a 'Live Transcripts' section with a tail -f example.

Placement under cache/delegation means the logs are mounted read-only
into remote terminal backends for free. Side-channel only: zero changes
to message content, so prompt caching is unaffected. Transcript-OUT only
— no overlap with the subagent control surfaces of PR #66046.

* fix(delegation): label the kickoff transcript line as user — it is the child's one user message
2026-07-19 10:29:14 -07:00
..
computer_use fix(computer_use): reconnect a dead cua-driver session instead of hanging (#67138) 2026-07-18 15:07:04 -07:00
environments fix(terminal): fall back when the configured cwd is unenterable, not just missing (#66306) 2026-07-17 06:54:51 -07:00
neutts_samples
__init__.py
ansi_strip.py fix(cli): sanitize terminal escapes when replaying stored history (/resume recap, /status recap) 2026-07-17 04:53:38 -07:00
approval.py fix(approval): unify execution-bearing option detection 2026-07-17 04:53:04 -07:00
async_delegation.py feat(delegation): live-viewable subagent transcripts — tail your subagents while they work (#67479) 2026-07-19 10:29:14 -07:00
binary_extensions.py
blueprints.py fix: widen UTF-8 BOM tolerance to all sibling frontmatter parsers 2026-07-17 04:52:02 -07:00
browser_camofox.py
browser_camofox_state.py
browser_cdp_tool.py
browser_dialog_tool.py
browser_supervisor.py
browser_tool.py Fix headed browser sessions being killed after every turn 2026-07-18 10:07:46 -07:00
budget_config.py
checkpoint_manager.py
clarify_gateway.py
clarify_tool.py
close_terminal_tool.py
code_execution_tool.py fix(security): widen non-ASCII compare_digest crash fix to all sibling sites 2026-07-16 07:22:24 -07:00
computer_use_tool.py
credential_files.py
cronjob_tools.py fix(cron): stop the ticker from stalling forever on a wedged jobs lock (#60703) (#60855) 2026-07-08 05:13:18 -07:00
daemon_pool.py
debug_helpers.py
delegate_tool.py feat(delegation): live-viewable subagent transcripts — tail your subagents while they work (#67479) 2026-07-19 10:29:14 -07:00
delegation_live_log.py feat(delegation): live-viewable subagent transcripts — tail your subagents while they work (#67479) 2026-07-19 10:29:14 -07:00
discord_tool.py fix(discord): bound REST response reads 2026-07-07 02:40:04 -07:00
env_passthrough.py
env_probe.py perf: cut first-turn time-to-first-token by ~80% (all platforms) (#59332) 2026-07-05 21:37:33 -07:00
fal_common.py
feishu_doc_tool.py
feishu_drive_tool.py
file_operations.py fix(file-safety): distinguish safe-root write denial from credential blocks 2026-07-14 17:09:40 +05:30
file_state.py
file_tools.py refactor(terminal,file-tools): delete legacy env-side cwd tracking (step 4) 2026-07-16 00:18:38 -07:00
fuzzy_match.py
homeassistant_tool.py
hook_output_spill.py feat(hooks): spill oversized hook-injected context to disk (#20468) 2026-07-05 13:51:26 -07:00
image_generation_tool.py fix(deepinfra): harden multimodal provider routing 2026-07-14 02:59:39 +05:30
image_source.py
interrupt.py fix(interrupt): run user-approved commands from a clean interrupt slate 2026-07-06 04:58:42 -07:00
kanban_tools.py docs(kanban): clarify unblock status routing 2026-07-17 15:47:39 -07:00
lazy_deps.py fix(honcho): update SDK and restore CI coverage 2026-07-16 12:48:48 -07:00
managed_tool_gateway.py
mcp_dashboard_oauth.py fix(mcp): preserve live OAuth state during reauth 2026-07-17 04:50:47 -07:00
mcp_oauth.py fix(mcp): preserve live OAuth state during reauth 2026-07-17 04:50:47 -07:00
mcp_oauth_manager.py fix(mcp): preserve live OAuth state during reauth 2026-07-17 04:50:47 -07:00
mcp_stdio_watchdog.py fix(mcp): use direct parent identity in stdio watchdog 2026-07-18 04:15:13 -07:00
mcp_tool.py fix(mcp): propagate stored timeouts from completed futures 2026-07-18 18:40:34 -04:00
memory_tool.py fix: default memory null target to memory store (#46356) 2026-07-07 02:10:43 -07:00
microsoft_graph_auth.py
microsoft_graph_client.py
neutts_synth.py
openrouter_client.py
osv_check.py
patch_parser.py fix(patch): ignore inert context-only hunks (#63678) 2026-07-13 02:42:18 -07:00
path_security.py
process_registry.py feat(delegation): live-viewable subagent transcripts — tail your subagents while they work (#67479) 2026-07-19 10:29:14 -07:00
project_tools.py
read_extract.py
read_terminal_tool.py
registry.py perf(tools): text prefilter before AST parse in tool discovery 2026-07-13 18:14:15 -04:00
schema_sanitizer.py fix(schema): preserve multi-type arrays as anyOf instead of dropping branches 2026-07-07 02:52:17 -07:00
send_message_tool.py fix(gateway/platforms): migrate all Weixin fallbacks to get_secret() for consistent profile-scoped resolution 2026-07-16 05:39:58 -07:00
session_search_tool.py
skill_manager_tool.py fix(curator): guard background review writes against manually authored skills 2026-07-18 20:17:22 +05:30
skill_provenance.py
skill_usage.py
skills_ast_audit.py
skills_guard.py fix(skills): bind bundles to exact files and origins 2026-07-12 02:59:27 -07:00
skills_hub.py fix: widen UTF-8 BOM tolerance to all sibling frontmatter parsers 2026-07-17 04:52:02 -07:00
skills_sync.py
skills_tool.py fix: return per-call copies from the skill-discovery cache 2026-07-09 15:38:14 +05:30
slash_confirm.py
terminal_tool.py fix(delegate): declare stateless channel in one-shot and cron so delegate_task returns results 2026-07-18 00:05:25 -07:00
thread_context.py
threat_patterns.py
tirith_security.py
todo_tool.py
tool_backend_helpers.py
tool_output_limits.py
tool_result_storage.py
tool_search.py
transcription_tools.py fix(deepinfra): harden multimodal provider routing 2026-07-14 02:59:39 +05:30
tts_tool.py fix(gemini): restrict TTS client context to official host 2026-07-13 22:26:19 -07:00
url_safety.py fix: repair URL authority whitespace before web fetches (#46363) 2026-07-07 02:39:36 -07:00
video_generation_tool.py feat(providers): Support DeepInfra as an LLM provider 2026-07-14 02:59:39 +05:30
vision_tools.py
voice_mode.py
web_tools.py fix(web): handle short extract provider results 2026-07-10 19:14:06 +05:30
website_policy.py
write_approval.py
x_search_tool.py
xai_http.py fix(auth): make xAI OAuth pools multi-account resilient 2026-07-17 11:37:25 +05:30
xai_video_tools.py
yuanbao_tools.py