docs: add Kesha voice backend - #18
Closed
drakulavich wants to merge 47 commits into
Closed
Conversation
- Part 1: Setup (installation, configuration, first-run) - Part 2: OpenClaw Migration (automated data transfer) - Part 3: LightRAG Graph RAG (knowledge graph setup & optimization) - Part 4: Telegram Bot (mobile access, voice, groups) - Part 5: On-the-Fly Skills (agent-created reusable workflows)
… 4.6, MiniMax M2.7, Grok, local models (Qwen 3.5, Gemma 4, Nemotron)
…ption, add WebUI screenshot (credit: LightRAG project)
…, custom models, SOUL.md anti-patterns, gateway recovery
- Replace hardcoded API key placeholders with env var references in config.yaml examples (part9) - Standardize placeholder keys to use obvious non-secret patterns (<your-key-here>) - Add security warning for unauthenticated LightRAG REST API (bind to 127.0.0.1) - Add proper cryptographic secret generation for Telegram webhook secret - Add chmod 600 guidance for .env files containing API keys - Add curl-pipe-to-bash inspection tip for install command - Replace realistic-looking Telegram bot token examples with safe placeholders Co-Authored-By: Rob <onerobby@gmail.com>
…-fixes - Replace hardcoded API key placeholders with env var references in config.yaml examples (part9) - Standardize placeholder keys to use obvious non-secret patterns (<your-key-here>) - Add security warning for unauthenticated LightRAG REST API (bind to 127.0.0.1) - Add proper cryptographic secret generation for Telegram webhook secret - Add chmod 600 guidance for .env files containing API keys - Add curl-pipe-to-bash inspection tip for install command - Replace realistic-looking Telegram bot token examples with safe placeholders Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
- Add Parts 12-16: Web Dashboard, Nous Tool Gateway, Fast Mode + background watchers + pluggable context engine, new messaging platforms (iMessage, WeChat, Android/Termux), backup/import + /debug + security hardening - README: What's New section covering both v0.9.0 'everywhere' and v0.10.0 'tool gateway' releases, updated TOC to 16 parts, expanded provider table (Nous Portal, native xAI/Xiaomi, Kimi, z.ai, MiniMax, Arcee, HF), Android/Termux install, dashboard quick start - Part 4: reframe Telegram as one of 16 gateway platforms with cross-references to the new adapters - Part 9: native adapter matrix, Nous Portal OAuth flow, xAI live search + MiMo reasoning modes, new provider config examples Co-Authored-By: Rob <onerobby@gmail.com>
…fresh - Add Parts 12-16: Web Dashboard, Nous Tool Gateway, Fast Mode + background watchers + pluggable context engine, new messaging platforms (iMessage, WeChat, Android/Termux), backup/import + /debug + security hardening - README: What's New section covering both v0.9.0 'everywhere' and v0.10.0 'tool gateway' releases, updated TOC to 16 parts, expanded provider table (Nous Portal, native xAI/Xiaomi, Kimi, z.ai, MiniMax, Arcee, HF), Android/Termux install, dashboard quick start - Part 4: reframe Telegram as one of 16 gateway platforms with cross-references to the new adapters - Part 9: native adapter matrix, Nous Portal OAuth flow, xAI live search + MiMo reasoning modes, new provider config examples Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…remote-sandbox parts (17-21) - Part 17 (MCP Servers): stdio/HTTP transports, sampling/createMessage, 14 recommended MCPs, writing your own, /mcp commands, troubleshooting - Part 18 (Coding Agents): Claude Code / Codex / Gemini CLI / OpenCode / Aider; print-mode delegation, OpenClaw thread-bound runtimes, ACP client+server, git isolation, cost routing - Part 19 (Security Playbook): defenses against Apr 15 'Comment and Control' prompt injection; provenance labels, approval layers, secrets redaction, webhook sig, SSRF, MCP trust levels, quarantine mode - Part 20 (Observability & Cost): Langfuse / Helicone / OpenTelemetry+Phoenix; cost-routing playbook that drops typical spend 90%; prompt caching, /fast usage, alerts, eval-driven regression - Part 21 (Remote Sandboxes): SSH / Modal / Daytona / Fly Machines / E2B; bulk tar-pipe sync with SIGINT-safe sync-back on teardown (#8018 merged Apr 17), cross-sandbox patterns README: add 'Pick Your Path' decision tree (7 reader personas), 'Cooking on main' post-v0.10 section covering Gemini CLI OAuth, Gemini TTS, multi-model FAL, GLM 5.1, Azure GPT-5.x chat/completions, TCP keepalives, concept-diagrams skill, Feishu card fix, OCAS skill sync. Expand TOC 17 -> 22 entries. Part 9: flagship model cheat sheet (GPT-5.4/Cyber, Claude Mythos, Gemini 3 Flash Preview, Kimi K2.5, GLM 5.1, Grok 4, MiMo, Cerebras); task-type routing cheat sheet; Gemini CLI OAuth (1500 req/day free) and Gemini TTS sections. Cross-links added: Part 3, Part 5, Part 8 now point to the new parts where relevant. Co-Authored-By: Rob <onerobby@gmail.com>
…efresh - Part 17 (MCP Servers): stdio/HTTP transports, sampling/createMessage, 14 recommended MCPs, writing your own, /mcp commands, troubleshooting - Part 18 (Coding Agents): Claude Code / Codex / Gemini CLI / OpenCode / Aider; print-mode delegation, OpenClaw thread-bound runtimes, ACP client+server, git isolation, cost routing - Part 19 (Security Playbook): defenses against Apr 15 'Comment and Control' prompt injection; provenance labels, approval layers, secrets redaction, webhook sig, SSRF, MCP trust levels, quarantine mode - Part 20 (Observability & Cost): Langfuse / Helicone / OpenTelemetry+Phoenix; cost-routing playbook that drops typical spend 90%; prompt caching, /fast usage, alerts, eval-driven regression - Part 21 (Remote Sandboxes): SSH / Modal / Daytona / Fly Machines / E2B; bulk tar-pipe sync with SIGINT-safe sync-back on teardown (#8018 merged Apr 17), cross-sandbox patterns README: add 'Pick Your Path' decision tree (7 reader personas), 'Cooking on main' post-v0.10 section covering Gemini CLI OAuth, Gemini TTS, multi-model FAL, GLM 5.1, Azure GPT-5.x chat/completions, TCP keepalives, concept-diagrams skill, Feishu card fix, OCAS skill sync. Expand TOC 17 -> 22 entries. Part 9: flagship model cheat sheet (GPT-5.4/Cyber, Claude Mythos, Gemini 3 Flash Preview, Kimi K2.5, GLM 5.1, Grok 4, MiMo, Cerebras); task-type routing cheat sheet; Gemini CLI OAuth (1500 req/day free) and Gemini TTS sections. Cross-links added: Part 3, Part 5, Part 8 now point to the new parts where relevant. Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…s, benchmarks, ecosystem, repo hygiene - skills/ — 9 runnable SKILL.md files (audit-mcp, rotate-secrets, audit-approval-bypass, nightly-backup, weekly-dep-audit, cost-report, telegram-triage, pr-review, release-notes) - templates/config/ — 5 opinionated configs (minimum, telegram-bot, production, cost-optimized, security-hardened) - templates/compose/langfuse-stack.yml + env example — self-host Langfuse v3 - templates/caddy/Caddyfile — reverse proxy + auto TLS reference - templates/systemd/ — hardened hermes.service + hermes-dashboard.service - templates/cron/production-crons.yaml — recommended schedule - scripts/vps-bootstrap.sh — one-command Debian/Ubuntu VPS -> production Hermes - diagrams/architecture.md — 6 Mermaid diagrams - benchmarks/README.md + matrix.yaml — reproducible cost+latency across 12 models x 5 tasks - ECOSYSTEM.md — curated MCP servers / coding agents / dashboard plugins directory - CONTRIBUTING.md, CHANGELOG.md, CODE_OF_CONDUCT.md, ROADMAP.md, issue+PR templates - docs/quickstart.md — 5-minute zero-to-Telegram-bot - README polish: badges, Install Everything one-liner, Repo Map, embedded architecture diagram Co-Authored-By: Rob <onerobby@gmail.com>
- skills/ — 9 runnable SKILL.md files (audit-mcp, rotate-secrets, audit-approval-bypass, nightly-backup, weekly-dep-audit, cost-report, telegram-triage, pr-review, release-notes) - templates/config/ — 5 opinionated configs (minimum, telegram-bot, production, cost-optimized, security-hardened) - templates/compose/langfuse-stack.yml + env example — self-host Langfuse v3 - templates/caddy/Caddyfile — reverse proxy + auto TLS reference - templates/systemd/ — hardened hermes.service + hermes-dashboard.service - templates/cron/production-crons.yaml — recommended schedule - scripts/vps-bootstrap.sh — one-command Debian/Ubuntu VPS -> production Hermes - diagrams/architecture.md — 6 Mermaid diagrams - benchmarks/README.md + matrix.yaml — reproducible cost+latency across 12 models x 5 tasks - ECOSYSTEM.md — curated MCP servers / coding agents / dashboard plugins directory - CONTRIBUTING.md, CHANGELOG.md, CODE_OF_CONDUCT.md, ROADMAP.md, issue+PR templates - docs/quickstart.md — 5-minute zero-to-Telegram-bot - README polish: badges, Install Everything one-liner, Repo Map, embedded architecture diagram Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
… skills + i18n
- docs/wizard/ — interactive static config-builder (HTML+JS, GitHub Pages friendly)
- docs/reference-architectures/ — 4 full blueprints (homelab, solo-dev, small-agency, road-warrior)
- docs/outreach/ — launch drafts (tweet, HN, Reddit, upstream-Nous PR, long blog)
- .github/workflows/ci.yml + validate_skills.py — markdown-link-check, yamllint, skill frontmatter linter, prettier advisory
- skills/ — +4 (daily-inbox-triage, hermes-weekly, spam-trap, meeting-prep) — total 13
- README-zh.md, README-ja.md — localized entry summaries
- templates/config/*.yaml — quoted ${VAR} inside flow mappings (valid YAML)
- README: skills 9→13, language links, wizard/ref-arch/outreach rows, CI badge
- CHANGELOG + ROADMAP updated
Co-Authored-By: Rob <onerobby@gmail.com>
Co-Authored-By: Rob <onerobby@gmail.com>
…YAML blocks
Addresses Devin Review comment: the persona radio (Question 1) was only
emitted as a YAML comment. Now it actually configures the starting state.
- onchange="applyPersona(value)" on each persona radio
- PERSONA_PRESETS mirrors templates/config/<persona>.yaml shape:
minimum / telegram-bot / production / cost-optimized / security-hardened
- applyPersona() sets default_model, memory, gateways, mcps, approval,
obs, crons — then re-generates YAML automatically
- generate() now emits persona-specific blocks:
- security-hardened: security.mcp.{default_trust,require_allowlist,allow_sampling}
- security-hardened + production: webhook require_signature + max_body_bytes,
redaction.{memory_write,log}, quarantine profile
- cost-optimized: routing.rules (5-rule cost ladder)
Co-Authored-By: Rob <onerobby@gmail.com>
Devin Review flagged four mismatches between the PERSONA_PRESETS and the actual reference templates. Fixed: - minimum: memory none -> vector (templates/config/minimum.yaml:25 uses vector) - telegram-bot: memory vector -> lightrag (telegram-bot.yaml:43 uses lightrag) - cost-optimized: memory vector -> lightrag (cost-optimized.yaml:66 uses lightrag) - cost-optimized: obs helicone -> none (cost-optimized.yaml has no exporters; it's telemetry + alerts only) Now each preset actually mirrors its template, which is what the code comment at line 185-187 claims. Co-Authored-By: Rob <onerobby@gmail.com>
…plate) templates/config/cost-optimized.yaml uses llama-3.1-70b in all three places (classification, triage model, compress_model). The wizard was emitting llama-3.3-70b. Align. Co-Authored-By: Rob <onerobby@gmail.com>
All 5 outreach drafts and both i18n READMEs referenced the old count of 9 skills. This PR added 4 new skills (daily-inbox-triage, hermes-weekly, spam-trap, meeting-prep) bringing the total to 13. Updated files: - README-zh.md, README-ja.md (count + skill name list) - docs/outreach/blog-post-long.md - docs/outreach/hacker-news-post.md (count + enumerated list) - docs/outreach/launch-tweet-thread.md - docs/outreach/nous-upstream-pr-body.md - docs/outreach/reddit-localllama.md (count + enumerated list) Co-Authored-By: Rob <onerobby@gmail.com>
Devin Review caught a red issue: quoting ${TELEGRAM_OWNER_ID} inside a
flow sequence (e.g. ["${TELEGRAM_OWNER_ID}"]) makes the YAML valid but
changes the parsed type from int to str after env-var substitution.
Telegram user IDs are numeric and Hermes compares them with strict
type matching, so a string-typed list would reject all messages.
Switched all 4 templates + 2 reference architectures + the wizard
generator to block-sequence style:
allowed_user_ids:
- ${TELEGRAM_OWNER_ID}
Verified with PyYAML that post-substitution type is int across all 4
templates.
Also: localized READMEs (zh + ja) now use 'sudo bash' to match the
main README, since vps-bootstrap.sh requires root.
Co-Authored-By: Rob <onerobby@gmail.com>
Devin Review (red): the wizard previously emitted only the provider derived from the default model. But cost-optimized routing references cerebras, moonshot, and anthropic too — a wizard-generated config would fail at runtime when routing picked one of those. Refactored to a data-driven `EXTRA_PROVIDERS` map so each persona declares which providers its routing rules need. The generator then emits the union of (default-model provider, extra persona providers). - cost-optimized: anthropic, google, moonshot, cerebras - production: anthropic, google - security-hardened: anthropic (for the quarantine fallback) Also added cerebras to the providerKeys map (CEREBRAS_API_KEY). Co-Authored-By: Rob <onerobby@gmail.com>
Two Devin Review findings addressed: 1. skills/README.md catalog listed only 9 skills; PR added 4 new ones (daily-inbox-triage, hermes-weekly, spam-trap, meeting-prep). Appended rows for all 4 so the catalog matches the 13-skill count now quoted in README / CHANGELOG / outreach docs. 2. Wizard generator: when memory=lightrag is selected, the generated config references google/gemini-2.5-flash (LLM) and openai/text-embedding-3-small (embedding), but the provider-emission set only accounted for the default-model provider + routing-rule providers. For 3 of 5 personas this produced broken configs with missing embedding provider credentials. Added a lightrag branch that injects google + openai into providersToEmit. Co-Authored-By: Rob <onerobby@gmail.com>
* feat: config wizard + reference architectures + CI + outreach + 4 new skills + i18n
- docs/wizard/ — interactive static config-builder (HTML+JS, GitHub Pages friendly)
- docs/reference-architectures/ — 4 full blueprints (homelab, solo-dev, small-agency, road-warrior)
- docs/outreach/ — launch drafts (tweet, HN, Reddit, upstream-Nous PR, long blog)
- .github/workflows/ci.yml + validate_skills.py — markdown-link-check, yamllint, skill frontmatter linter, prettier advisory
- skills/ — +4 (daily-inbox-triage, hermes-weekly, spam-trap, meeting-prep) — total 13
- README-zh.md, README-ja.md — localized entry summaries
- templates/config/*.yaml — quoted ${VAR} inside flow mappings (valid YAML)
- README: skills 9→13, language links, wizard/ref-arch/outreach rows, CI badge
- CHANGELOG + ROADMAP updated
Co-Authored-By: Rob <onerobby@gmail.com>
* fix: correct relative path from daily-inbox-triage to spam-trap skill
Co-Authored-By: Rob <onerobby@gmail.com>
* wizard: persona selection now drives form presets + persona-specific YAML blocks
Addresses Devin Review comment: the persona radio (Question 1) was only
emitted as a YAML comment. Now it actually configures the starting state.
- onchange="applyPersona(value)" on each persona radio
- PERSONA_PRESETS mirrors templates/config/<persona>.yaml shape:
minimum / telegram-bot / production / cost-optimized / security-hardened
- applyPersona() sets default_model, memory, gateways, mcps, approval,
obs, crons — then re-generates YAML automatically
- generate() now emits persona-specific blocks:
- security-hardened: security.mcp.{default_trust,require_allowlist,allow_sampling}
- security-hardened + production: webhook require_signature + max_body_bytes,
redaction.{memory_write,log}, quarantine profile
- cost-optimized: routing.rules (5-rule cost ladder)
Co-Authored-By: Rob <onerobby@gmail.com>
* wizard: align persona presets with templates/config/<persona>.yaml
Devin Review flagged four mismatches between the PERSONA_PRESETS and the
actual reference templates. Fixed:
- minimum: memory none -> vector (templates/config/minimum.yaml:25 uses vector)
- telegram-bot: memory vector -> lightrag (telegram-bot.yaml:43 uses lightrag)
- cost-optimized: memory vector -> lightrag (cost-optimized.yaml:66 uses lightrag)
- cost-optimized: obs helicone -> none (cost-optimized.yaml has no exporters;
it's telemetry + alerts only)
Now each preset actually mirrors its template, which is what the code comment
at line 185-187 claims.
Co-Authored-By: Rob <onerobby@gmail.com>
* wizard: cost-optimized routing uses cerebras/llama-3.1-70b (match template)
templates/config/cost-optimized.yaml uses llama-3.1-70b in all three
places (classification, triage model, compress_model). The wizard was
emitting llama-3.3-70b. Align.
Co-Authored-By: Rob <onerobby@gmail.com>
* outreach + i18n: update skill count from 9 to 13
All 5 outreach drafts and both i18n READMEs referenced the old count
of 9 skills. This PR added 4 new skills (daily-inbox-triage,
hermes-weekly, spam-trap, meeting-prep) bringing the total to 13.
Updated files:
- README-zh.md, README-ja.md (count + skill name list)
- docs/outreach/blog-post-long.md
- docs/outreach/hacker-news-post.md (count + enumerated list)
- docs/outreach/launch-tweet-thread.md
- docs/outreach/nous-upstream-pr-body.md
- docs/outreach/reddit-localllama.md (count + enumerated list)
Co-Authored-By: Rob <onerobby@gmail.com>
* fix: preserve integer type for Telegram allowed_user_ids
Devin Review caught a red issue: quoting ${TELEGRAM_OWNER_ID} inside a
flow sequence (e.g. ["${TELEGRAM_OWNER_ID}"]) makes the YAML valid but
changes the parsed type from int to str after env-var substitution.
Telegram user IDs are numeric and Hermes compares them with strict
type matching, so a string-typed list would reject all messages.
Switched all 4 templates + 2 reference architectures + the wizard
generator to block-sequence style:
allowed_user_ids:
- ${TELEGRAM_OWNER_ID}
Verified with PyYAML that post-substitution type is int across all 4
templates.
Also: localized READMEs (zh + ja) now use 'sudo bash' to match the
main README, since vps-bootstrap.sh requires root.
Co-Authored-By: Rob <onerobby@gmail.com>
* wizard: emit all providers referenced by persona routing rules
Devin Review (red): the wizard previously emitted only the provider
derived from the default model. But cost-optimized routing references
cerebras, moonshot, and anthropic too — a wizard-generated config
would fail at runtime when routing picked one of those.
Refactored to a data-driven `EXTRA_PROVIDERS` map so each persona
declares which providers its routing rules need. The generator then
emits the union of (default-model provider, extra persona providers).
- cost-optimized: anthropic, google, moonshot, cerebras
- production: anthropic, google
- security-hardened: anthropic (for the quarantine fallback)
Also added cerebras to the providerKeys map (CEREBRAS_API_KEY).
Co-Authored-By: Rob <onerobby@gmail.com>
* fix: skills catalog + wizard lightrag provider coverage
Two Devin Review findings addressed:
1. skills/README.md catalog listed only 9 skills; PR added 4 new ones
(daily-inbox-triage, hermes-weekly, spam-trap, meeting-prep).
Appended rows for all 4 so the catalog matches the 13-skill count
now quoted in README / CHANGELOG / outreach docs.
2. Wizard generator: when memory=lightrag is selected, the generated
config references google/gemini-2.5-flash (LLM) and
openai/text-embedding-3-small (embedding), but the provider-emission
set only accounted for the default-model provider + routing-rule
providers. For 3 of 5 personas this produced broken configs with
missing embedding provider credentials. Added a lightrag branch
that injects google + openai into providersToEmit.
Co-Authored-By: Rob <onerobby@gmail.com>
---------
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…uide-refresh * docs: refresh Hermes guide for v0.12 * docs: address review feedback * docs: fix contributing layout reference * docs: update outreach part count * docs: align quickstart env with telegram template * docs: align quickstart lightrag keys * docs: add openai provider to cost template * docs: normalize routing model identifiers * docs: keep github mcp package consistent --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…sota-refresh * docs: refresh Hermes guide for v0.13 * docs: address v0.13 review notes --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…v014-refresh Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
OnlyTerp#14) Closes OnlyTerp#13. Rewrote part20 Rules 1/2/2B/3/4/5 + Langfuse + OTel + eval sections to match real Hermes v0.14.0 schemas. Removed invented blocks: model_routing/intent/complexity, prompt_caching allowlist, telemetry.spans, fast_mode YAML, compression.auto.*, alerts.cost_spike, observability.langfuse/otel YAML, hermes evals subcommand. Replaced with real primitives: auxiliary: per-task models, provider_routing, hermes fallback, prompt_caching.cache_ttl, real compression keys, /fast slash command, HERMES_LANGFUSE_* + OTEL_* env vars, Langfuse Datasets workflow. Adds heads-up that smart_model_routing was removed upstream in 424e9f36b (#12732).
Re-applies the useful content from OnlyTerp#10 on top of current main without carrying the stale branch's old ECOSYSTEM.md snapshot. Adds a Native Hermes plugins section with hermes-tweet, a narrow discord.gg markdown-link-check ignore, and a current changelog entry. Supersedes OnlyTerp#10. Co-authored-by: kriptoburak <kriptoburak@users.noreply.github.com>
Security-doc pass across setup, LightRAG, Telegram, custom models, and gateway recovery docs. Replaces shell-history-leaking secret setup examples with editor/hermes auth guidance, reinforces chmod 600 on .env files, strengthens LightRAG localhost-only warning, avoids printing full Telegram tokens, and clarifies localhost-only gateway health checks. Verified config.yaml \ expansion against Hermes config loader _expand_env_vars().
Re-applies the valid parts of OnlyTerp#4: part6 compression fallback assigns compressed_context = messages_to_compress instead of returning undefined original_context; part11 gateway health check uses df -Ph so awk NR==2 is stable. Does not apply OnlyTerp#4's part7 change because current Hermes source tools/session_search_tool.py explicitly documents no LLM calls / no summary LLM path. Supersedes OnlyTerp#4.
Replaces OnlyTerp#1 with current LightRAG examples: Kimi K2.6 via https://api.moonshot.ai/v1 for quality, Cerebras gpt-oss-120b for speed instead of deprecated qwen-3-32b, Fireworks Qwen3-Embedding-8B for high-quality embeddings, and local Ollama for free/private setup. Keeps README.md and part3-lightrag-setup.md in sync and preserves real LightRAG LLM_BINDING_HOST / EMBEDDING_BINDING_HOST env vars. Supersedes OnlyTerp#1.
Contributor
|
Reviewed and verified — this is ready to merge.
Heads up: GitHub hasn't run the CI workflow on this fork PR yet (it needs a maintainer to approve the workflow run for a first-time contributor). Once you approve the run it should go green. I'm not able to merge into |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ECOSYSTEM.mdas a local Hermes STT/TTS command-provider backendHERMES_LOCAL_STT_COMMANDandtts.providersconfigValidation
git diff --check