better-dsh 0.2.4 → 0.2.5
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.
- package/cordis.patch.yml +58 -16
- package/docs/10_plans/2026-09-23-remote-execution-framework.md +236 -0
- package/docs/10_plans/2026-09-23-remote-framework-impl.md +2083 -0
- package/docs/10_plans/2026-09-26-lsp-ast-reminder.md +64 -0
- package/docs/20_specs/agent/spec.md +54 -0
- package/docs/20_specs/ast/spec.md +34 -0
- package/docs/20_specs/compaction-recall/spec.md +46 -0
- package/docs/20_specs/ctx/spec.md +107 -0
- package/docs/20_specs/dsh/spec.md +47 -0
- package/docs/20_specs/dvc/spec.md +87 -0
- package/docs/20_specs/escalation-guidance/spec.md +44 -0
- package/docs/20_specs/fs-scheme-resolution/spec.md +37 -0
- package/docs/20_specs/hash-edit/spec.md +41 -0
- package/docs/20_specs/http-read/spec.md +73 -0
- package/docs/20_specs/kernel-provisioning/spec.md +53 -0
- package/docs/20_specs/lsp/spec.md +121 -0
- package/docs/20_specs/mobile-layout/spec.md +108 -0
- package/docs/20_specs/model-failover/spec.md +20 -0
- package/docs/20_specs/plugins-page-components/spec.md +79 -0
- package/docs/20_specs/preact-ui-shell/spec.md +22 -0
- package/docs/20_specs/repl-dispatch-resilience/spec.md +21 -0
- package/docs/20_specs/skill/spec.md +58 -0
- package/docs/20_specs/tool-surface/spec.md +222 -0
- package/docs/20_specs/url-schema/spec.md +148 -0
- package/docs/20_specs/web-trust-fence/spec.md +43 -0
- package/docs/50_test-reports/2026-09-17-plugins/351/241/265/345/205/255/347/273/204/344/273/266/346/213/206/345/210/206/345/256/236/346/265/213/346/212/245/345/221/212.md +76 -0
- package/docs/50_test-reports/2026-09-22-4988/345/217/214/345/271/263/351/235/242/345/220/257/345/212/250/344/277/256/345/244/215/345/256/236/346/265/213/346/212/245/345/221/212.md +76 -0
- package/docs/50_test-reports/2026-09-22-better-dsh/347/273/204/344/273/266/347/203/255/346/217/222/346/213/224/344/270/216/344/276/235/350/265/226/347/272/247/350/201/224/345/256/236/346/265/213/346/212/245/345/221/212.md +134 -0
- package/docs/50_test-reports/2026-09-23-remote-framework/345/256/236/346/265/213/346/212/245/345/221/212.md +92 -0
- package/docs/50_test-reports/2026-09-23-remote-framework/347/254/254/344/270/200/344/272/272/347/247/260/345/244/215/346/265/213/346/212/245/345/221/212.md +125 -0
- package/docs/50_test-reports/2026-09-23-ssh/345/267/245/345/205/267assisted-pty/344/274/232/350/257/235framing/345/256/236/346/265/213/346/212/245/345/221/212.md +207 -0
- package/docs/50_test-reports/2026-09-24-v0.1.7-rc.1/345/257/271/351/275/220/350/275/256-compaction/344/270/216failover/350/256/276/347/275/256/351/235/242/344/277/256/345/244/215/345/256/236/346/265/213/346/212/245/345/221/212.md +65 -0
- package/docs/50_test-reports/2026-09-27-lsp-ast-reminder-4999/345/256/236/346/265/213/346/212/245/345/221/212.md +53 -0
- package/docs/50_test-reports/2026-09-28-ctx-scheme/351/225/277/344/274/232/350/257/235utility/345/256/236/346/265/213/346/212/245/345/221/212.md +155 -0
- package/docs/50_test-reports/2026-10-01-v0.2.4d-web-password-gate/345/256/236/346/265/213/346/212/245/345/221/212.md +105 -0
- package/docs/50_test-reports/2026-10-02-ctx-navigation/345/256/236/346/265/213/346/212/245/345/221/212.md +137 -0
- package/docs/50_test-reports/2026-10-02-v0.2.0-rc.2/345/257/271/351/275/220/350/275/256/345/256/236/346/265/213/346/212/245/345/221/212.md +38 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/.tools/MdxPage-CTY7atqe.js +11 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/.tools/extract_omp.mjs +42 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/.tools/fetch_pi.py +52 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/.tools/jsx-runtime-BHwPObl3.js +13 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/.tools/omp_extracted.json +1 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/.tools/omp_pages.txt +35 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/.tools/package.json +1 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/.tools/pi_convert.py +49 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/.tools/pi_pages.txt +30 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/.tools/serialize_omp.py +250 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/README.md +80 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/Overview.md +88 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/acp.md +151 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/advisor.md +185 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/agents-and-roles.md +168 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/approvals.md +200 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/cli.md +381 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/code-intelligence.md +225 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/collab.md +207 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/commit.md +169 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/compaction.md +195 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/computer.md +224 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/context-files.md +184 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/custom-models.md +284 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/custom-tools.md +248 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/debugging.md +254 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/editing.md +157 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/env.md +552 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/extension-authoring.md +378 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/files.md +144 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/github.md +175 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/goal.md +156 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/handoff.md +139 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/hooks.md +257 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/keybindings.md +204 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/magic-keywords.md +135 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/marketplace.md +269 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/mcp-authoring.md +243 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/mcp.md +260 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/memory.md +306 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/modes.md +214 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/pages.txt +56 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/plan.md +126 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/plugins.md +287 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/prewalk.md +122 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/prompt-templates.md +149 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/providers.md +229 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/quickstart.md +117 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/review.md +248 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/roles.md +247 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/rpc.md +523 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/sdk.md +260 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/secrets.md +199 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/security.md +260 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/session-format.md +254 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/session-tree.md +135 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/sessions.md +223 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/settings.md +290 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/skills.md +187 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/slash.md +328 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/subagent-authoring.md +165 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/subagents.md +149 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/themes.md +230 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/tools.md +120 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/ttsr.md +242 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/using.md +214 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/vibe.md +187 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/omp/web.md +233 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/pi/compaction.md +427 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/pi/containerization.md +162 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/pi/custom-provider.md +782 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/pi/development.md +96 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/pi/environment-variables.md +104 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/pi/extensions.md +3058 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/pi/index.md +89 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/pi/json.md +105 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/pi/keybindings.md +244 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/pi/llama-cpp.md +106 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/pi/models.md +587 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/pi/packages.md +234 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/pi/pages.txt +30 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/pi/prompt-templates.md +101 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/pi/providers.md +327 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/pi/quickstart.md +172 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/pi/rpc.md +1679 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/pi/sdk.md +1239 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/pi/security.md +64 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/pi/session-format.md +454 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/pi/sessions.md +150 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/pi/settings.md +374 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/pi/shell-aliases.md +18 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/pi/skills.md +241 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/pi/terminal-setup.md +199 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/pi/termux.md +135 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/pi/themes.md +328 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/pi/tmux.md +68 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/pi/tui.md +965 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/pi/usage.md +315 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/pi-and-omp/pi/windows.md +44 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/SKILL.md +147 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch01-user-guide.md +123 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch02-plugin-basics.md +127 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch03-plugin-framework-practice.md +120 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch04-cordis-fundamentals.md +129 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch05-cordis-api.md +115 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch06-architecture.md +109 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch07-capability-seams.md +97 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch08-internals-pipelines.md +111 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch09-api-gateway.md +106 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch10-config-catalog.md +97 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch11-tool-catalog.md +121 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch12-persistence-catalog.md +109 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch13-subsystems-core-session.md +106 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch14-subsystems-agent-loop.md +111 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch15-subsystems-tool-execution.md +106 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch16-subsystems-session-data.md +132 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch17-subsystems-llm-streaming.md +128 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch18-subsystems-web-ui.md +142 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch19-cookbook.md +149 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch20-development-testing.md +87 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch21-postmortems.md +82 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/chapters/ch22-i18n.md +86 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/cheatsheet.md +67 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/glossary.md +57 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/skill/patterns.md +88 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/AGENTS.md +75 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/agent-lifecycle.md +84 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/agent-lifecycle.zh.md +86 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/api-gateway.md +164 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/api-gateway.zh.md +164 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/architecture.md +150 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/architecture.zh.md +154 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/capability-seams.md +543 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/capability-seams.zh.md +545 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/config-catalog.md +3473 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/config-catalog.zh.md +3474 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-package.md +117 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-package.zh.md +119 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-remote-api.md +197 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-remote-api.zh.md +197 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-settings-card.md +102 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-settings-card.zh.md +102 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-tool.md +101 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-tool.zh.md +103 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-vendored-package.md +59 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-a-vendored-package.zh.md +59 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-an-llm-adapter.md +43 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/adding-an-llm-adapter.zh.md +43 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/extension-cookbook.md +132 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/extension-cookbook.zh.md +136 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/maintaining-dsh-code-review.md +64 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/maintaining-dsh-code-review.zh.md +64 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/responding-to-pr-review-on-a-stack.md +32 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cookbook/responding-to-pr-review-on-a-stack.zh.md +32 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/context.md +364 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/context.zh.md +366 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/events.md +207 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/events.zh.md +209 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/fiber.md +375 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/fiber.zh.md +377 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/inherited.md +39 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/registry.md +152 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/registry.zh.md +154 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/service.md +102 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-api/service.zh.md +104 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-primer.md +45 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-primer.zh.md +51 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/01-first-plugin.md +95 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/01-first-plugin.zh.md +95 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/02-lifecycle-and-effects.md +98 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/02-lifecycle-and-effects.zh.md +98 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/03-services.md +98 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/03-services.zh.md +98 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/04-events.md +144 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/04-events.zh.md +144 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/05-config.md +84 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/05-config.zh.md +84 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/06-composition-and-hmr.md +113 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/06-composition-and-hmr.zh.md +113 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/07-into-the-harness.md +108 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/07-into-the-harness.zh.md +108 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/index.md +60 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/cordis-tutorial/index.zh.md +62 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/deepseek-llm-api-wire-extensions.md +163 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/deepseek-llm-api-wire-extensions.zh.md +163 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/defensive-patterns.md +33 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/defensive-patterns.zh.md +35 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/development.md +167 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/development.zh.md +173 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/event-producer-consumer.md +86 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/event-producer-consumer.zh.md +88 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/glossary.md +45 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/glossary.zh.md +45 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/graph-atlas.md +22 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/graph-atlas.zh.md +24 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/README.md +60 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/README.zh.md +62 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/style-samples.md +87 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/terminology.md +214 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/translation-prompt.md +263 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/translation-rules.md +69 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/i18n/translation-rules.zh.md +69 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/module-graph.md +1411 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/module-graph.zh.md +1413 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/persistence-catalog.md +1075 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/persistence-catalog.zh.md +1077 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/0001-acp-default-export-drops-inject.md +113 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/0001-acp-default-export-drops-inject.zh.md +113 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/0002-js-expression-disabled-filesystem-tools.md +47 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/0002-js-expression-disabled-filesystem-tools.zh.md +47 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/0003-web-agent-gui-feedback-loop.md +53 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/0003-web-agent-gui-feedback-loop.zh.md +53 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.md +55 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.zh.md +55 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/README.md +18 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/postmortem/README.zh.md +18 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/rescope.md +53 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/rescope.zh.md +53 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/README.md +61 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/README.zh.md +61 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/agent-team.md +207 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/agent-team.zh.md +207 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/approval.md +170 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/approval.zh.md +170 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/attachment.md +351 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/attachment.zh.md +351 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/client-modules.md +168 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/client-modules.zh.md +168 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/code-runtime.md +195 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/code-runtime.zh.md +195 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/commands.md +219 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/commands.zh.md +219 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/compaction.md +238 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/compaction.zh.md +238 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/conversation.md +258 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/conversation.zh.md +258 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/core.md +1209 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/core.zh.md +1219 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/credentials.md +329 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/credentials.zh.md +329 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/extensions.md +382 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/extensions.zh.md +382 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/feedback.md +266 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/feedback.zh.md +266 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/filesystem.md +505 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/filesystem.zh.md +505 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/goal.md +277 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/goal.zh.md +277 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/invariants.md +88 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/invariants.zh.md +88 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/jobs.md +290 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/jobs.zh.md +290 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/llm-streaming.md +1080 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/llm-streaming.zh.md +1086 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/lsp.md +202 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/lsp.zh.md +202 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/permission-presets.md +131 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/permission-presets.zh.md +131 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/persistence.md +395 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/persistence.zh.md +395 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/plan.md +87 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/plan.zh.md +87 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/sandbox.md +220 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/sandbox.zh.md +220 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/schedule.md +192 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/schedule.zh.md +192 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/scope.md +59 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/scope.zh.md +59 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-projection.md +354 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-projection.zh.md +354 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-query.md +509 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-query.zh.md +509 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-reference.md +219 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-reference.zh.md +219 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-telemetry.md +194 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-telemetry.zh.md +194 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-title.md +204 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session-title.zh.md +204 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session.md +1155 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/session.zh.md +1159 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/settings.md +405 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/settings.zh.md +405 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/shell.md +303 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/shell.zh.md +303 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/skills.md +354 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/skills.zh.md +354 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/slots.md +175 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/slots.zh.md +175 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/spill.md +117 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/spill.zh.md +117 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/storage.md +260 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/storage.zh.md +260 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/subagent.md +766 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/subagent.zh.md +770 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/subprocess.md +324 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/subprocess.zh.md +324 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/system-prompt.md +220 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/system-prompt.zh.md +220 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/terminal.md +184 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/terminal.zh.md +184 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/todo.md +32 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/todo.zh.md +32 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/token-meter.md +105 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/token-meter.zh.md +105 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/tools.md +720 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/tools.zh.md +720 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/typert.md +343 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/typert.zh.md +343 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/user-questions.md +178 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/user-questions.zh.md +178 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/web-client.md +95 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/web-client.zh.md +95 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/web-server.md +154 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/web-server.zh.md +154 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/web.md +206 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/web.zh.md +206 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/webhook.md +70 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/webhook.zh.md +70 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/workflow.md +278 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/workflow.zh.md +278 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/workspace.md +321 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/subsystems/workspace.zh.md +321 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/testing.md +54 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/testing.zh.md +54 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/tool-catalog.md +2225 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/tool-catalog.zh.md +2233 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/tool-execution-pipeline.md +62 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/tool-execution-pipeline.zh.md +64 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/config.md +106 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/config.zh.md +106 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/index.md +144 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/index.zh.md +144 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/publish.md +183 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/publish.zh.md +183 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/tool.md +52 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/basic/tool.zh.md +52 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/framework/events.md +143 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/framework/events.zh.md +143 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/framework/index.md +137 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/framework/index.zh.md +137 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/framework/service.md +148 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/framework/service.zh.md +150 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/practice/dynamic-cordis.md +15 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/practice/dynamic-cordis.zh.md +15 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/practice/index.md +155 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/practice/index.zh.md +155 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/practice/llm-adapter.md +189 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/develop/practice/llm-adapter.zh.md +189 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/github-review.md +102 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/github-review.zh.md +102 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/index.md +30 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/index.zh.md +30 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/mcp-memory.md +101 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/mcp-memory.zh.md +101 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/network-proxy.md +85 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/network-proxy.zh.md +85 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/providers.md +190 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/providers.zh.md +190 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/python-sdk.md +150 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/python-sdk.zh.md +150 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/schedule.md +21 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/guide/schedule.zh.md +21 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/index.md +11 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/user/index.zh.md +11 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/web-styling.md +29 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/docs/web-styling.zh.md +29 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/site-pages-map.txt +234 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src/site-pages.json +232 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src-README.md +63 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src-scripts/crawl.py +103 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src-scripts/docs-tree.json +82965 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src-scripts/download.py +56 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src-scripts/gen_mapping.py +125 -0
- package/docs/80_upstream-docs-and-skills/dsh-dev-skill/src-scripts/pages.json +232 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/api-plugins.json +1 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/api-skills.json +4 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/_category_.json +8 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/acp-internals.md +181 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/adding-platform-adapters.md +788 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/adding-providers.md +464 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/adding-tools.md +211 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/agent-loop.md +242 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/architecture.md +279 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/billing-lifecycle.md +184 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/browser-provider-plugin.md +153 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/browser-supervisor.md +198 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/chronos-managed-cron-contract.md +227 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/cli-internals.md +85 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/codebase-ownership.md +34 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/completion-backlog-delivery.md +52 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/context-compression-and-caching.md +642 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/context-engine-plugin.md +272 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/contributing.md +303 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/creating-skills.md +438 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/cron-internals.md +380 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/desktop-plugin-sdk.md +952 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/egress-internals.md +319 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/extending-the-cli.md +192 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/gateway-internals.md +297 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/gateway-monitoring.md +309 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/gateway-session-lifecycle.md +621 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/image-gen-provider-plugin.md +316 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/memory-provider-plugin.md +452 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/micro-compaction.md +406 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/middleware.md +266 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/model-provider-plugin.md +327 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/multiplexing-gateway.md +228 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/observer-hooks.md +331 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/plugin-llm-access.md +506 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/plugins/index.md +1775 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/programmatic-integration.md +212 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/prompt-assembly.md +328 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/provider-runtime.md +222 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/relay-connector-contract.md +790 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/relay-shared-metrics.md +487 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/secret-source-plugin.md +192 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/session-storage.md +523 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/state-db-recovery.md +107 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/streaming-tts.md +98 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/subagent-lifecycle-api.md +61 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/terminal-environment-plugin.md +140 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/tools-runtime.md +250 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/trajectory-format.md +232 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/video-gen-provider-plugin.md +231 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/web-search-provider-plugin.md +260 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/developer-guide/worktree-ui-dev.md +168 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/getting-started/_category_.json +8 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/getting-started/installation.md +200 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/getting-started/learning-path.md +169 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/getting-started/nix-setup.md +1234 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/getting-started/platform-support.md +50 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/getting-started/quickstart.md +399 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/getting-started/termux.md +301 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/getting-started/updating.md +374 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/guides/_category_.json +6 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/guides/agent-email-address.md +93 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/guides/automate-with-cron.md +292 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/guides/automation-blueprints.md +595 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/guides/aws-bedrock.md +196 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/guides/azure-foundry.md +334 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/guides/cron-script-only.md +247 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/guides/cron-troubleshooting.md +235 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/guides/daily-briefing-bot.md +272 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/guides/delegation-patterns.md +242 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/guides/desktop-native-signin.md +125 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/guides/github-pr-review-agent.md +303 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/guides/google-gemini.md +270 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/guides/google-vertex.md +148 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/guides/local-llm-on-mac.md +252 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/guides/local-ollama-setup.md +338 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/guides/manage-hermes-cloud-with-mcp.md +176 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/guides/microsoft-graph-app-registration.md +180 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/guides/migrate-from-openclaw.md +252 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/guides/minimax-oauth.md +226 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/guides/oauth-over-ssh.md +172 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/guides/operate-teams-meeting-pipeline.md +295 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/guides/pipe-script-output.md +249 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/guides/python-library.md +333 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/guides/run-hermes-with-nous-portal.md +276 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/guides/run-nemotron-3-ultra-free.md +123 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/guides/secure-hermes-on-a-work-machine.md +182 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/guides/team-telegram-assistant.md +441 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/guides/tips.md +238 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/guides/troubleshooting-agent-quality.md +145 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/guides/use-mcp-with-hermes.md +541 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/guides/use-soul-with-hermes.md +264 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/guides/use-voice-mode-with-hermes.md +473 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/guides/webhook-github-pr-review.md +336 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/guides/work-with-skills.md +290 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/guides/xai-grok-oauth.md +243 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/index.mdx +155 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/integrations/buzz.md +57 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/integrations/index.md +126 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/integrations/nous-portal.md +286 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/integrations/providers.md +1681 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/reference/_category_.json +8 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/reference/automation-blueprints-catalog.mdx +36 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/reference/cli-commands.md +1900 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/reference/cli-symbols.md +126 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/reference/environment-variables.md +952 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/reference/faq.md +874 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/reference/mcp-config-reference.md +439 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/reference/model-catalog.md +121 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/reference/optional-skills-catalog.md +303 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/reference/profile-commands.md +544 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/reference/skills-catalog.md +132 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/reference/slash-commands.md +336 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/reference/tools-reference.md +399 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/reference/toolsets-reference.md +171 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/_category_.json +8 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/bot-mode.md +309 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/checkpoints-and-rollback.md +283 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/cli.md +591 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/configuration.md +2901 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/configuring-models.md +414 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/desktop.md +728 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/docker.md +896 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/egress/index.md +10 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/egress/iron-proxy.md +570 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/egress/network-isolation.md +201 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/_category_.json +8 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/acp.md +407 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/api-server.md +810 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/batch-processing.md +230 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/browser.md +901 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/built-in-plugins.md +366 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/code-execution.md +319 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/codex-app-server-runtime.md +460 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/computer-use.md +636 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/context-files.md +237 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/context-references.md +142 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/credential-pools.md +308 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/credential-vault.md +122 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/cron.md +1262 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/curator.md +409 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/delegation.md +664 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/deliverable-mode.md +134 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/document-extraction.md +58 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/extending-the-dashboard.md +927 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/fallback-providers.md +444 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/goals.md +293 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/heartbeat.md +68 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/honcho.md +276 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/hooks.md +2007 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/image-generation.md +347 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/kanban-multi-gateway.md +52 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/kanban-tutorial.md +310 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/kanban-worker-lanes.md +142 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/kanban.md +1327 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/loops.md +122 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/lsp.md +307 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/mcp.md +957 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/memory-providers.md +699 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/memory.md +466 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/mixture-of-agents.md +246 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/overview.md +57 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/personality.md +289 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/pets.md +236 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/plugin-catalog.md +212 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/plugins.md +847 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/provider-routing.md +229 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/skills.md +1112 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/skins.md +271 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/spotify.md +279 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/subscription-proxy.md +203 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/tool-gateway.md +223 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/tool-search.md +277 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/tools.md +261 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/tts.md +744 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/vision.md +214 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/voice-mode.md +608 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/wake-word.md +343 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/web-dashboard.md +1206 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/web-search.md +506 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/features/x-search.md +167 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/git-worktrees.md +196 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/import-from-other-agents.md +74 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/local-models.md +140 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/managed-scope.md +157 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/messaging/_category_.json +8 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/messaging/a2a.md +130 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/messaging/bluebubbles.md +171 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/messaging/buzz.md +162 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/messaging/dingtalk.md +283 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/messaging/discord.md +936 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/messaging/email.md +223 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/messaging/feishu.md +599 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/messaging/google_chat.md +430 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/messaging/homeassistant.md +269 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/messaging/index.md +859 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/messaging/irc.md +78 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/messaging/line.md +201 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/messaging/matrix.md +910 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/messaging/mattermost.md +340 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/messaging/msgraph-webhook.md +142 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/messaging/ntfy.md +157 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/messaging/open-webui.md +296 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/messaging/photon.md +255 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/messaging/qqbot.md +123 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/messaging/raft.md +70 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/messaging/relay.md +212 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/messaging/signal.md +262 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/messaging/simplex.md +151 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/messaging/slack.md +1093 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/messaging/sms.md +203 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/messaging/teams-meetings.md +242 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/messaging/teams.md +288 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/messaging/telegram.md +1373 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/messaging/webhooks.md +694 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/messaging/wecom-callback.md +179 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/messaging/wecom.md +306 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/messaging/weixin.md +333 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/messaging/whatsapp-cloud.md +417 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/messaging/whatsapp.md +283 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/messaging/yuanbao.md +342 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/multi-connection-desktop.md +361 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/multi-profile-gateways.md +1062 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/profile-distributions.md +757 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/profiles.md +418 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/secrets/bitwarden.md +155 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/secrets/command.md +50 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/secrets/index.md +50 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/secrets/onepassword.md +169 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/security.md +892 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/sessions.md +990 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/apple/apple-apple-notes.md +110 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/apple/apple-apple-reminders.md +146 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/apple/apple-findmy.md +149 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/apple/apple-imessage.md +118 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/autonomous-ai-agents/autonomous-ai-agents-claude-code.md +763 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/autonomous-ai-agents/autonomous-ai-agents-codex.md +169 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/autonomous-ai-agents/autonomous-ai-agents-computer-use.md +355 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/autonomous-ai-agents/autonomous-ai-agents-hermes-agent.md +230 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/autonomous-ai-agents/autonomous-ai-agents-merge-reconciler.md +176 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/autonomous-ai-agents/autonomous-ai-agents-opencode.md +237 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/creative/creative-architecture-diagram.md +165 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/creative/creative-ascii-art.md +338 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/creative/creative-ascii-video.md +265 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/creative/creative-baoyu-infographic.md +256 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/creative/creative-claude-design.md +668 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/creative/creative-comfyui.md +616 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/creative/creative-design-md.md +238 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/creative/creative-excalidraw.md +212 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/creative/creative-humanizer.md +663 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/creative/creative-manim-video.md +292 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/creative/creative-p5js.md +576 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/creative/creative-popular-web-designs.md +223 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/creative/creative-pretext.md +238 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/creative/creative-sketch.md +240 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/creative/creative-songwriting-and-ai-music.md +319 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/devops/devops-sdlc-review.md +195 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/email/email-email-inbox-triage.md +115 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/email/email-himalaya.md +319 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/github/github-codebase-inspection.md +132 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/github/github-github-auth.md +265 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/github/github-github-code-review.md +499 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/github/github-github-issue-to-pr.md +95 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/github/github-github-issues.md +388 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/github/github-github-pr-workflow.md +385 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/github/github-github-repo-management.md +534 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/media/media-gif-search.md +106 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/media/media-songsee.md +98 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/media/media-youtube-content.md +100 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/mlops/mlops-evaluation-evaluating-llms-harness.md +512 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/mlops/mlops-evaluation-weights-and-biases.md +613 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/mlops/mlops-huggingface-hub.md +100 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/mlops/mlops-inference-llama-cpp.md +267 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/mlops/mlops-inference-serving-llms-vllm.md +387 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/note-taking/note-taking-obsidian.md +85 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/productivity/productivity-airtable.md +243 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/productivity/productivity-box.md +132 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/productivity/productivity-document-to-action-items.md +99 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/productivity/productivity-docx.md +213 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/productivity/productivity-google-workspace.md +348 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/productivity/productivity-maps.md +210 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/productivity/productivity-meeting-action-items.md +105 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/productivity/productivity-nano-pdf.md +70 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/productivity/productivity-notion.md +463 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/productivity/productivity-ocr-and-documents.md +193 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/productivity/productivity-pdf.md +142 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/productivity/productivity-powerpoint.md +237 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/productivity/productivity-product-price-monitor.md +97 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/productivity/productivity-session-librarian.md +122 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/productivity/productivity-teams-meeting-pipeline.md +129 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/productivity/productivity-weekly-review-planning.md +99 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/productivity/productivity-xlsx.md +213 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/research/research-arxiv.md +300 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/research/research-blocked-page-recovery.md +155 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/research/research-blogwatcher.md +152 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/research/research-competitor-news-monitor.md +106 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/research/research-grounded-citations.md +274 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/research/research-llm-wiki.md +526 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/research/research-research-paper-writing.md +1645 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/smart-home/smart-home-openhue.md +127 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/social-media/social-media-xurl.md +450 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/software-development/software-development-codebase-inspection.md +132 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/software-development/software-development-dogfood.md +183 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/software-development/software-development-github.md +73 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/software-development/software-development-hermes-agent-skill-authoring.md +230 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/software-development/software-development-inspecting-hermes-desktop-dom.md +177 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/software-development/software-development-node-inspect-debugger.md +337 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/software-development/software-development-python-debugpy.md +391 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/software-development/software-development-requesting-code-review.md +298 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/software-development/software-development-simplify-code.md +288 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/software-development/software-development-spike.md +217 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/software-development/software-development-systematic-debugging.md +429 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/software-development/software-development-test-driven-development.md +380 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/bundled/web/web-blocked-page-recovery.md +155 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/google-workspace.md +191 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/autonomous-ai-agents/autonomous-ai-agents-antigravity-cli.md +259 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/autonomous-ai-agents/autonomous-ai-agents-blackbox.md +161 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/autonomous-ai-agents/autonomous-ai-agents-dynamic-workflow.md +198 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/autonomous-ai-agents/autonomous-ai-agents-grok.md +326 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/autonomous-ai-agents/autonomous-ai-agents-honcho.md +446 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/autonomous-ai-agents/autonomous-ai-agents-openhands.md +167 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/blockchain/blockchain-evm.md +227 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/blockchain/blockchain-hyperliquid.md +228 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/blockchain/blockchain-solana.md +225 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/communication/communication-one-three-one-rule.md +114 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/creative/creative-ai-presenter-video.md +211 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/creative/creative-archify.md +66 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/creative/creative-ascii-art.md +338 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/creative/creative-audiocraft-audio-generation.md +588 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/creative/creative-auteur.md +195 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/creative/creative-baoyu-article-illustrator.md +225 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/creative/creative-baoyu-comic.md +264 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/creative/creative-comfyui.md +616 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/creative/creative-concept-diagrams.md +379 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/creative/creative-creative-ideation.md +192 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/creative/creative-draw-your-font.md +169 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/creative/creative-dream-loop.md +297 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/creative/creative-excalidraw.md +212 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/creative/creative-heartmula.md +191 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/creative/creative-hyperframes.md +222 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/creative/creative-impeccable.md +56 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/creative/creative-ip-as-logo.md +171 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/creative/creative-kanban-video-orchestrator.md +220 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/creative/creative-meme-generation.md +147 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/creative/creative-mono-color.md +158 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/creative/creative-pixel-art.md +234 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/creative/creative-pretext.md +238 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/creative/creative-simple-english.md +362 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/creative/creative-sketch.md +240 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/creative/creative-social-media-content-calendar.md +88 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/creative/creative-system-atlas.md +105 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/creative/creative-tldraw-offline.md +294 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/creative/creative-unreal-mcp.md +269 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/data-science/data-science-jupyter-notebook.md +195 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/devops/devops-actual-setup.md +164 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/devops/devops-docker-management.md +298 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/devops/devops-hermes-s6-container-supervision.md +198 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/devops/devops-inference-sh-cli.md +173 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/devops/devops-pinggy-tunnel.md +326 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/devops/devops-setup-wizard-generator.md +133 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/devops/devops-watchers.md +126 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/dogfood/dogfood-adversarial-ux-test.md +209 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/email/email-agentmail.md +104 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/finance/finance-3-statement-model.md +451 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/finance/finance-comps-analysis.md +682 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/finance/finance-dcf-model.md +1288 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/finance/finance-excel-author.md +262 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/finance/finance-lbo-model.md +309 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/finance/finance-merger-model.md +162 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/finance/finance-polymarket.md +97 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/finance/finance-pptx-author.md +191 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/finance/finance-stocks.md +112 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/gaming/gaming-minecraft-modpack-server.md +209 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/gaming/gaming-pokemon-player.md +240 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/health/health-fitness-nutrition.md +259 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/health/health-neuroskill-bci.md +470 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mcp/mcp-fastmcp.md +315 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mcp/mcp-mcp-oauth-remote-gateway.md +389 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mcp/mcp-mcporter.md +138 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/migration/migration-openclaw-migration.md +316 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mlops/mlops-accelerate.md +366 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mlops/mlops-chroma.md +425 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mlops/mlops-clip.md +272 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mlops/mlops-evaluation-evaluating-llms-harness.md +512 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mlops/mlops-evaluation-weights-and-biases.md +613 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mlops/mlops-faiss.md +240 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mlops/mlops-flash-attention.md +388 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mlops/mlops-guidance.md +595 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mlops/mlops-huggingface-tokenizers.md +535 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mlops/mlops-inference-llama-cpp.md +267 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mlops/mlops-inference-outlines.md +679 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mlops/mlops-inference-serving-llms-vllm.md +387 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mlops/mlops-instructor.md +759 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mlops/mlops-lambda-labs.md +568 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mlops/mlops-llava.md +323 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mlops/mlops-modal.md +368 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mlops/mlops-models-huggingface-hub.md +100 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mlops/mlops-models-segment-anything-model.md +525 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mlops/mlops-nemo-curator.md +415 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mlops/mlops-obliteratus.md +360 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mlops/mlops-peft.md +452 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mlops/mlops-pinecone.md +396 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mlops/mlops-pytorch-fsdp.md +97 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mlops/mlops-pytorch-lightning.md +365 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mlops/mlops-qdrant.md +522 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mlops/mlops-research-dspy.md +609 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mlops/mlops-saelens.md +439 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mlops/mlops-simpo.md +237 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mlops/mlops-slime.md +486 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mlops/mlops-stable-diffusion.md +542 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mlops/mlops-tensorrt-llm.md +208 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mlops/mlops-torchtitan.md +404 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mlops/mlops-training-axolotl.md +181 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mlops/mlops-training-trl-fine-tuning.md +512 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mlops/mlops-training-unsloth.md +98 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/mlops/mlops-whisper.md +336 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/payments/payments-mpp-agent.md +142 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/payments/payments-stripe-link-cli.md +202 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/payments/payments-stripe-projects.md +138 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/productivity/productivity-canvas.md +114 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/productivity/productivity-decision-questionnaire.md +133 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/productivity/productivity-here-now.md +231 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/productivity/productivity-live-dashboard.md +126 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/productivity/productivity-memento-flashcards.md +336 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/productivity/productivity-property-listings.md +121 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/productivity/productivity-shop.md +238 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/productivity/productivity-shopify.md +377 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/productivity/productivity-siyuan.md +305 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/productivity/productivity-telephony.md +435 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/research/research-bioinformatics.md +254 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/research/research-blogwatcher.md +162 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/research/research-darwinian-evolver.md +217 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/research/research-domain-intel.md +121 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/research/research-drug-discovery.md +237 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/research/research-duckduckgo-search.md +255 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/research/research-gitnexus-explorer.md +232 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/research/research-osint-investigation.md +295 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/research/research-parallel-cli.md +411 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/research/research-pinecone-research.md +125 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/research/research-qmd.md +459 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/research/research-research-paper-writing.md +1645 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/research/research-rss-feeds.md +114 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/research/research-scrapling.md +351 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/research/research-searxng-search.md +212 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/security/security-1password.md +173 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/security/security-godmode.md +421 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/security/security-oss-forensics.md +426 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/security/security-sherlock.md +208 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/security/security-unbroker.md +331 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/security/security-web-pentest.md +337 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/smart-home/smart-home-openhue.md +127 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/social-media/social-media-reddit-reading.md +146 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/software-development/software-development-ast-grep.md +307 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/software-development/software-development-code-wiki.md +463 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/software-development/software-development-grill-me.md +135 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/software-development/software-development-pr-lens.md +160 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/software-development/software-development-rest-graphql-debug.md +532 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/software-development/software-development-subagent-driven-development.md +370 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/web-development/web-development-cloudflare-temporary-deploy.md +144 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/web-development/web-development-har-derived-api-client.md +180 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/web-development/web-development-page-agent.md +207 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/web-development/web-development-publish-site.md +174 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/web-development/web-development-scrollcraft.md +257 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/skills/optional/yuanbao/yuanbao-yuanbao.md +127 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/tui.md +313 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/which-file-does-what.md +57 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/windows-native.md +326 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-guide/windows-wsl-quickstart.md +358 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docs/user-stories.mdx +10 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/docusaurus.config.ts +210 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/developer-guide/acp-internals.md +181 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/developer-guide/adding-platform-adapters.md +686 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/developer-guide/adding-providers.md +459 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/developer-guide/adding-tools.md +209 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/developer-guide/agent-loop.md +239 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/developer-guide/architecture.md +277 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/developer-guide/browser-supervisor.md +160 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/developer-guide/context-compression-and-caching.md +328 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/developer-guide/context-engine-plugin.md +193 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/developer-guide/contributing.md +253 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/developer-guide/creating-skills.md +375 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/developer-guide/cron-internals.md +236 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/developer-guide/extending-the-cli.md +192 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/developer-guide/gateway-internals.md +267 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/developer-guide/image-gen-provider-plugin.md +288 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/developer-guide/memory-provider-plugin.md +258 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/developer-guide/model-provider-plugin.md +267 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/developer-guide/plugin-llm-access.md +401 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/developer-guide/plugins/index.md +1156 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/developer-guide/programmatic-integration.md +126 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/developer-guide/prompt-assembly.md +273 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/developer-guide/provider-runtime.md +208 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/developer-guide/session-storage.md +420 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/developer-guide/tools-runtime.md +236 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/developer-guide/trajectory-format.md +222 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/developer-guide/video-gen-provider-plugin.md +231 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/developer-guide/web-search-provider-plugin.md +260 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/getting-started/installation.md +204 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/getting-started/learning-path.md +154 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/getting-started/nix-setup.md +975 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/getting-started/quickstart.md +352 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/getting-started/termux.md +236 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/getting-started/updating.md +231 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/guides/automate-with-cron.md +266 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/guides/automation-blueprints.md +595 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/guides/aws-bedrock.md +170 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/guides/azure-foundry.md +334 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/guides/cron-script-only.md +247 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/guides/cron-troubleshooting.md +227 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/guides/daily-briefing-bot.md +268 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/guides/delegation-patterns.md +239 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/guides/github-pr-review-agent.md +303 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/guides/google-gemini.md +254 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/guides/local-llm-on-mac.md +240 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/guides/local-ollama-setup.md +317 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/guides/microsoft-graph-app-registration.md +180 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/guides/migrate-from-openclaw.md +244 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/guides/minimax-oauth.md +228 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/guides/oauth-over-ssh.md +96 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/guides/operate-teams-meeting-pipeline.md +288 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/guides/pipe-script-output.md +217 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/guides/python-library.md +333 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/guides/run-hermes-with-nous-portal.md +273 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/guides/team-telegram-assistant.md +441 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/guides/tips.md +234 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/guides/use-mcp-with-hermes.md +490 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/guides/use-soul-with-hermes.md +264 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/guides/use-voice-mode-with-hermes.md +469 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/guides/webhook-github-pr-review.md +329 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/guides/work-with-skills.md +290 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/guides/xai-grok-oauth.md +243 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/index.mdx +117 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/integrations/buzz.md +57 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/integrations/index.md +100 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/integrations/nous-portal.md +272 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/integrations/providers.md +1433 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/reference/cli-commands.md +1259 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/reference/environment-variables.md +678 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/reference/faq.md +859 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/reference/mcp-config-reference.md +250 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/reference/model-catalog.md +103 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/reference/optional-skills-catalog.md +220 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/reference/profile-commands.md +467 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/reference/skills-catalog.md +156 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/reference/slash-commands.md +272 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/reference/tools-reference.md +261 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/reference/toolsets-reference.md +162 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/checkpoints-and-rollback.md +251 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/cli.md +445 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/configuration.md +1746 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/configuring-models.md +239 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/docker.md +595 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/acp.md +341 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/api-server.md +456 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/batch-processing.md +229 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/browser.md +629 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/built-in-plugins.md +269 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/code-execution.md +240 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/codex-app-server-runtime.md +441 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/computer-use.md +144 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/context-files.md +218 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/context-references.md +142 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/credential-pools.md +240 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/cron.md +761 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/curator.md +248 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/delegation.md +355 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/deliverable-mode.md +91 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/extending-the-dashboard.md +907 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/fallback-providers.md +408 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/goals.md +180 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/honcho.md +233 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/hooks.md +1388 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/image-generation.md +150 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/kanban-tutorial.md +308 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/kanban-worker-lanes.md +117 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/kanban.md +863 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/lsp.md +217 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/mcp.md +591 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/memory-providers.md +570 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/memory.md +233 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/overview.md +52 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/personality.md +271 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/plugins.md +346 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/provider-routing.md +200 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/skills.md +760 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/skins.md +271 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/spotify.md +279 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/subscription-proxy.md +163 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/tool-gateway.md +187 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/tools.md +223 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/tts.md +456 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/vision.md +210 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/voice-mode.md +521 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/web-dashboard.md +351 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/web-search.md +422 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/features/x-search.md +147 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/git-worktrees.md +173 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/messaging/bluebubbles.md +143 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/messaging/dingtalk.md +283 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/messaging/discord.md +843 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/messaging/email.md +190 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/messaging/feishu.md +538 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/messaging/google_chat.md +283 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/messaging/homeassistant.md +252 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/messaging/index.md +569 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/messaging/line.md +199 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/messaging/matrix.md +677 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/messaging/mattermost.md +340 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/messaging/msgraph-webhook.md +137 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/messaging/ntfy.md +155 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/messaging/open-webui.md +296 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/messaging/qqbot.md +123 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/messaging/signal.md +257 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/messaging/simplex.md +98 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/messaging/slack.md +614 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/messaging/sms.md +203 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/messaging/teams-meetings.md +233 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/messaging/teams.md +255 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/messaging/telegram.md +1241 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/messaging/webhooks.md +601 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/messaging/wecom-callback.md +149 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/messaging/wecom.md +292 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/messaging/weixin.md +312 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/messaging/whatsapp.md +236 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/messaging/yuanbao.md +341 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/profile-distributions.md +573 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/profiles.md +272 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/secrets/bitwarden.md +143 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/secrets/index.md +9 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/security.md +664 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/sessions.md +609 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/apple/apple-apple-notes.md +106 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/apple/apple-apple-reminders.md +114 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/apple/apple-findmy.md +147 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/apple/apple-imessage.md +118 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/apple/apple-macos-computer-use.md +175 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/autonomous-ai-agents/autonomous-ai-agents-claude-code.md +763 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/autonomous-ai-agents/autonomous-ai-agents-codex.md +143 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/autonomous-ai-agents/autonomous-ai-agents-hermes-agent.md +947 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/autonomous-ai-agents/autonomous-ai-agents-opencode.md +237 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/creative/creative-architecture-diagram.md +165 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/creative/creative-ascii-art.md +338 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/creative/creative-ascii-video.md +261 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/creative/creative-baoyu-infographic.md +256 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/creative/creative-claude-design.md +609 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/creative/creative-comfyui.md +547 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/creative/creative-design-md.md +189 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/creative/creative-excalidraw.md +210 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/creative/creative-humanizer.md +594 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/creative/creative-manim-video.md +289 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/creative/creative-p5js.md +574 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/creative/creative-popular-web-designs.md +211 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/creative/creative-pretext.md +238 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/creative/creative-sketch.md +238 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/creative/creative-songwriting-and-ai-music.md +305 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/email/email-himalaya.md +305 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/github/github-codebase-inspection.md +132 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/github/github-github-auth.md +265 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/github/github-github-code-review.md +499 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/github/github-github-issues.md +388 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/github/github-github-pr-workflow.md +385 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/github/github-github-repo-management.md +534 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/media/media-gif-search.md +106 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/media/media-songsee.md +98 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/media/media-youtube-content.md +93 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/mlops/mlops-evaluation-evaluating-llms-harness.md +512 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/mlops/mlops-evaluation-weights-and-biases.md +609 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/mlops/mlops-huggingface-hub.md +100 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/mlops/mlops-inference-llama-cpp.md +267 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/mlops/mlops-inference-serving-llms-vllm.md +386 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/note-taking/note-taking-obsidian.md +81 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/productivity/productivity-airtable.md +243 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/productivity/productivity-google-workspace.md +325 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/productivity/productivity-maps.md +196 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/productivity/productivity-nano-pdf.md +69 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/productivity/productivity-notion.md +463 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/productivity/productivity-ocr-and-documents.md +190 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/productivity/productivity-powerpoint.md +257 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/productivity/productivity-teams-meeting-pipeline.md +127 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/research/research-arxiv.md +300 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/research/research-blogwatcher.md +152 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/research/research-llm-wiki.md +469 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/research/research-research-paper-writing.md +2395 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/smart-home/smart-home-openhue.md +124 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/social-media/social-media-xurl.md +428 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/software-development/software-development-dogfood.md +181 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/software-development/software-development-hermes-agent-skill-authoring.md +183 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/software-development/software-development-node-inspect-debugger.md +337 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/software-development/software-development-python-debugpy.md +391 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/software-development/software-development-requesting-code-review.md +287 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/software-development/software-development-spike.md +217 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/software-development/software-development-systematic-debugging.md +385 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/bundled/software-development/software-development-test-driven-development.md +361 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/google-workspace.md +191 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/autonomous-ai-agents/autonomous-ai-agents-blackbox.md +162 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/autonomous-ai-agents/autonomous-ai-agents-honcho.md +446 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/blockchain/blockchain-evm.md +227 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/blockchain/blockchain-hyperliquid.md +210 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/blockchain/blockchain-solana.md +206 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/communication/communication-one-three-one-rule.md +114 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/creative/creative-audiocraft-audio-generation.md +588 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/creative/creative-concept-diagrams.md +379 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/creative/creative-heartmula.md +189 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/creative/creative-hyperframes.md +205 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/creative/creative-kanban-video-orchestrator.md +173 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/creative/creative-meme-generation.md +147 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/data-science/data-science-jupyter-notebook.md +180 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/devops/devops-docker-management.md +297 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/devops/devops-inference-sh-cli.md +173 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/devops/devops-pinggy-tunnel.md +327 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/devops/devops-watchers.md +126 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/dogfood/dogfood-adversarial-ux-test.md +209 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/email/email-agentmail.md +143 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/finance/finance-3-statement-model.md +451 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/finance/finance-comps-analysis.md +682 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/finance/finance-dcf-model.md +1288 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/finance/finance-excel-author.md +262 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/finance/finance-lbo-model.md +309 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/finance/finance-merger-model.md +162 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/finance/finance-polymarket.md +94 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/finance/finance-pptx-author.md +191 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/finance/finance-stocks.md +108 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/health/health-fitness-nutrition.md +255 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/health/health-neuroskill-bci.md +431 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/mcp/mcp-fastmcp.md +315 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/mcp/mcp-mcporter.md +138 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/migration/migration-openclaw-migration.md +316 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/mlops/mlops-accelerate.md +350 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/mlops/mlops-chroma.md +425 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/mlops/mlops-clip.md +272 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/mlops/mlops-faiss.md +240 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/mlops/mlops-flash-attention.md +381 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/mlops/mlops-guidance.md +591 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/mlops/mlops-huggingface-tokenizers.md +535 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/mlops/mlops-inference-outlines.md +671 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/mlops/mlops-instructor.md +759 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/mlops/mlops-lambda-labs.md +568 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/mlops/mlops-llava.md +323 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/mlops/mlops-modal.md +362 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/mlops/mlops-models-segment-anything-model.md +525 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/mlops/mlops-nemo-curator.md +401 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/mlops/mlops-peft.md +452 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/mlops/mlops-pinecone.md +377 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/mlops/mlops-pytorch-fsdp.md +145 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/mlops/mlops-pytorch-lightning.md +365 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/mlops/mlops-qdrant.md +514 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/mlops/mlops-saelens.md +407 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/mlops/mlops-simpo.md +237 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/mlops/mlops-slime.md +486 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/mlops/mlops-stable-diffusion.md +542 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/mlops/mlops-tensorrt-llm.md +206 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/mlops/mlops-torchtitan.md +378 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/mlops/mlops-training-axolotl.md +181 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/mlops/mlops-training-trl-fine-tuning.md +477 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/mlops/mlops-training-unsloth.md +98 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/mlops/mlops-whisper.md +336 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/productivity/productivity-canvas.md +114 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/productivity/productivity-here-now.md +231 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/productivity/productivity-memento-flashcards.md +336 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/productivity/productivity-shop.md +354 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/productivity/productivity-shopify.md +377 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/productivity/productivity-siyuan.md +305 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/productivity/productivity-telephony.md +435 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/research/research-bioinformatics.md +252 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/research/research-darwinian-evolver.md +188 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/research/research-domain-intel.md +117 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/research/research-drug-discovery.md +237 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/research/research-duckduckgo-search.md +255 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/research/research-gitnexus-explorer.md +213 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/research/research-osint-investigation.md +243 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/research/research-parallel-cli.md +411 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/research/research-qmd.md +435 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/research/research-scrapling.md +351 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/research/research-searxng-search.md +229 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/security/security-1password.md +173 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/security/security-oss-forensics.md +421 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/security/security-sherlock.md +208 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/software-development/software-development-rest-graphql-debug.md +531 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/web-development/web-development-page-agent.md +207 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/skills/optional/yuanbao/yuanbao-yuanbao.md +125 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/tui.md +256 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/windows-native.md +325 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-guide/windows-wsl-quickstart.md +332 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/i18n/zh-Hans/user-stories.mdx +10 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/llms-full.txt +88833 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/llms.txt +267 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/site-pages-map.txt +928 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src/site-pages.json +4218 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src-README.md +101 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src-scripts/clone_repo.sh +17 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src-scripts/crawl.py +82 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src-scripts/gen_mapping.py +112 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src-scripts/retry-none.json +305 -0
- package/docs/80_upstream-docs-and-skills/hermes-dev-skill/src-scripts/verify_orphans.py +53 -0
- package/docs/specs/ctx/spec.md +78 -6
- package/docs/specs/model-picker-ios-blur/spec.md +168 -0
- package/docs/specs/plugins-page-components/spec.md +79 -0
- package/docs/superpowers/plans/2026-10-02-ctx-navigation.md +319 -0
- package/docs/superpowers/specs/2026-10-02-ctx-navigation-design.md +209 -0
- package/lib/client/index.js +20 -20
- package/lib/compaction/index.d.ts +57 -0
- package/lib/compaction/index.js +145 -0
- package/lib/failover/index.d.ts +59 -0
- package/lib/failover/index.js +147 -0
- package/lib/fs-aware/sandbox-plugin.js +3 -3
- package/lib/index.d.ts +1 -32
- package/lib/index.js +193 -8034
- package/lib/{lsp-server-registry-_hk-Wcia.js → lsp-server-registry-XU6aHSqZ.js} +1 -1
- package/lib/mobile/plugin.d.ts +29 -0
- package/lib/mobile/plugin.js +54 -0
- package/lib/native-capture-x_Hos2e8.js +68 -0
- package/lib/remote/plugin.d.ts +24 -0
- package/lib/remote/plugin.js +1095 -0
- package/lib/url-schemes/index.d.ts +88 -0
- package/lib/url-schemes/index.js +7461 -0
- package/lib/web-password.d.ts +156 -0
- package/lib/web-password.js +562 -0
- package/lib/web-trust-BO66y72w.js +361 -0
- package/lib/web-trust-BihHCelF.d.ts +106 -0
- package/lib/web-trust.d.ts +2 -0
- package/lib/web-trust.js +3 -0
- package/lib/{wrap-JFjcWwZf.js → wrap-Bzdimp4p.js} +112 -112
- package/package.json +101 -56
- /package/lib/{lsp-server-registry-DkaYmTwt.js → lsp-server-registry-946ysdqg.js} +0 -0
|
@@ -0,0 +1,790 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Relay ↔ Connector Contract"
|
|
3
|
+
description: "Wire contract between the Hermes gateway relay adapter and external connectors (experimental)"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Relay ↔ Connector Contract (v1, EXPERIMENTAL)
|
|
7
|
+
|
|
8
|
+
> **Status:** EXPERIMENTAL. This contract MAY CHANGE without a deprecation
|
|
9
|
+
> cycle until at least two real Class-1 platforms (Discord + Telegram) have
|
|
10
|
+
> validated it. Evolution during the experimental phase is **additive-only**,
|
|
11
|
+
> gated by `contract_version`. A breaking change updates both repos in lockstep.
|
|
12
|
+
|
|
13
|
+
This document is the formal interface between the **Hermes gateway** (Python,
|
|
14
|
+
`gateway/relay/`) and the **connector** (Node/TypeScript,
|
|
15
|
+
`NousResearch/gateway-gateway`). The connector implementer's first action is to
|
|
16
|
+
read this file.
|
|
17
|
+
|
|
18
|
+
The gateway runs a generic `RelayAdapter` that dials **out** to the connector,
|
|
19
|
+
receives a `CapabilityDescriptor` at handshake, then exchanges normalized
|
|
20
|
+
`MessageEvent`s (inbound) and actions (outbound) over a per-turn bidirectional
|
|
21
|
+
WebSocket. The gateway never learns which concrete platform is fronting it; the
|
|
22
|
+
connector owns all platform-specific socket/identity logic.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## 1. Handshake
|
|
27
|
+
|
|
28
|
+
1. Gateway opens the transport (`connect`).
|
|
29
|
+
2. Gateway calls `handshake()`; connector returns a `CapabilityDescriptor`
|
|
30
|
+
(section 2) describing the platform this adapter instance fronts.
|
|
31
|
+
3. Gateway configures the adapter from the descriptor (char limit, length unit,
|
|
32
|
+
draft/edit/thread/markdown capabilities) and registers an inbound handler.
|
|
33
|
+
4. Connector then streams inbound events and accepts outbound actions.
|
|
34
|
+
|
|
35
|
+
`contract_version` (currently `1`) is carried in the descriptor. The gateway
|
|
36
|
+
ignores unknown descriptor fields (forward-compat) and fills missing optional
|
|
37
|
+
fields from defaults.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## 2. CapabilityDescriptor (handshake payload)
|
|
42
|
+
|
|
43
|
+
JSON object. Source of truth: `gateway/relay/descriptor.py`.
|
|
44
|
+
|
|
45
|
+
| Field | Type | Required | Meaning |
|
|
46
|
+
| --- | --- | --- | --- |
|
|
47
|
+
| `contract_version` | int | yes | Contract version (additive-only within a version). |
|
|
48
|
+
| `platform` | string | yes | Platform name (e.g. `"discord"`, `"telegram"`). |
|
|
49
|
+
| `label` | string | yes | Human-readable label. |
|
|
50
|
+
| `max_message_length` | int | yes | Char limit; gateway exposes as `MAX_MESSAGE_LENGTH`. 0 → treat as 4096. |
|
|
51
|
+
| `supports_draft_streaming` | bool | yes | Native draft-streaming preview support. |
|
|
52
|
+
| `supports_edit` | bool | yes | Edit-based streaming possible; if false, consumer degrades to one-message-per-segment. |
|
|
53
|
+
| `supports_threads` | bool | yes | `create_handoff_thread` capability. |
|
|
54
|
+
| `markdown_dialect` | string | yes | `"plain"`, `"markdown_v2"`, `"discord"`, … (drives `supports_code_blocks`). |
|
|
55
|
+
| `len_unit` | string | yes | `"chars"` (builtin len) or `"utf16"` (Telegram UTF-16 code units). |
|
|
56
|
+
| `emoji` | string | no | Display emoji (default 🔌). |
|
|
57
|
+
| `platform_hint` | string | no | System-prompt platform hint. |
|
|
58
|
+
| `pii_safe` | bool | no | Redact PII in session descriptions. |
|
|
59
|
+
| `supports_context` | bool | no | Whether the connector can supply surrounding channel/group **context** for an addressed turn on this platform (Model A on-demand history fetch — Discord/Slack/Matrix; Model B passive buffer — Telegram/Signal/WhatsApp). Default false ⇒ no `context` is attached to inbound events. See §3. |
|
|
60
|
+
| `supports_inchannel_continuable` | bool | no | Whether the platform can host a **flat continuable cron surface** (native Slack's `cron_continuable_surface: in_channel`): the brief posts top-level in the channel/DM and a plain reply continues the job via the flat `(platform, chat_id, None)` session. Default false ⇒ the gateway's scheduler fails safe to thread mode (D6 gate), so an older connector keeps today's thread behavior. |
|
|
61
|
+
| `supports_block_formatting` | bool | no | Whether this platform's sender renders **block-level formatting** from raw markdown when the gateway stamps `metadata.format_hints` on `send`/`edit` frames (Slack: native `markdown` block for tables/lists/code, mrkdwn text kept as fallback). Default false ⇒ the gateway never stamps hints, so an older connector never receives the metadata. |
|
|
62
|
+
| `supported_ops` | string[] | no | Op-level capability discovery: the outbound op names the connector's sender for this platform actually implements (e.g. `["send", "edit", "typing", "follow_up", "get_chat_info"]`). Absent/empty ⇒ the connector predates the field and the gateway assumes the legacy op set (`send`/`edit`/`typing`/`follow_up`); a NEW op is used only when explicitly advertised. |
|
|
63
|
+
|
|
64
|
+
Most fields are a projection of the gateway's existing `PlatformEntry`; the
|
|
65
|
+
runtime-only fields (`len_unit`, `supports_*`, `markdown_dialect`) come from the
|
|
66
|
+
live platform adapter's capability methods.
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## 3. Inbound: `MessageEvent` envelope
|
|
71
|
+
|
|
72
|
+
The connector normalizes each platform wire event into a `MessageEvent`
|
|
73
|
+
(`gateway/platforms/base.py`) and delivers it to the gateway. **Inbound is
|
|
74
|
+
delivered over the gateway's OUTBOUND `/relay` WebSocket** (see the transport
|
|
75
|
+
note below) — the connector pushes an `inbound` frame down the socket the
|
|
76
|
+
gateway already dialed. The gateway keys the session via `build_session_key()`
|
|
77
|
+
from the embedded `SessionSource` — so populating the right discriminators is
|
|
78
|
+
the single highest-correctness responsibility of the connector.
|
|
79
|
+
|
|
80
|
+
### Inbound transport (WS back-channel, not HTTP)
|
|
81
|
+
|
|
82
|
+
The gateway dials **out** to the connector's `/relay` WebSocket for the
|
|
83
|
+
handshake + outbound actions (§4) + its own `/stop` egress (§5). Inbound rides
|
|
84
|
+
the **same socket** in the other direction: the connector pushes an `inbound`
|
|
85
|
+
frame (and `interrupt_inbound` for §5) down the gateway's outbound WS. There is
|
|
86
|
+
**no gateway-side inbound HTTP endpoint** — a gateway need not (and, when hosted,
|
|
87
|
+
cannot) expose any inbound port; everything flows over the connection it
|
|
88
|
+
initiated.
|
|
89
|
+
|
|
90
|
+
**Multi-instance routing.** The connector instance that owns a platform's socket
|
|
91
|
+
(and thus produces inbound events) is generally **not** the instance the gateway
|
|
92
|
+
dialed its outbound WS into. The producing instance therefore publishes the
|
|
93
|
+
event on the connector's internal **relay bus** (Redis pub/sub; `RelayBus` in
|
|
94
|
+
`src/core/relayBus.ts`) keyed by tenant. Every connector instance subscribes and
|
|
95
|
+
routes each message to its **local** sessions for that tenant
|
|
96
|
+
(`RelayServer.routeBusMessage`); the single instance that actually holds the
|
|
97
|
+
gateway's socket delivers it, and instances with no local session for the tenant
|
|
98
|
+
no-op. Cross-instance delivery is thus an in-cluster Redis hop, not a public
|
|
99
|
+
HTTP call.
|
|
100
|
+
|
|
101
|
+
Frames (connector → gateway, over the WS):
|
|
102
|
+
|
|
103
|
+
- `{"type":"inbound", "event": <MessageEvent>, "bufferId"?}`
|
|
104
|
+
- `{"type":"interrupt_inbound", "session_key", "chat_id"}` (§5)
|
|
105
|
+
- `{"type":"passthrough_forward", "forward": <PassthroughForward>, "bufferId"?}` (§5.1)
|
|
106
|
+
|
|
107
|
+
**Channel context on inbound (design relay-channel-context).** When the source
|
|
108
|
+
platform's descriptor advertised `supports_context` (§2) and the chat is
|
|
109
|
+
multi-party (`chat_type` ∈ group/channel/thread/forum, never `dm`), the
|
|
110
|
+
connector MAY attach two optional, additive fields to the inbound `MessageEvent`:
|
|
111
|
+
|
|
112
|
+
- `context`: an array of read-only surrounding messages (same channel, oldest→
|
|
113
|
+
newest) — nearby non-addressed chatter the connector fetched (Model A) or
|
|
114
|
+
buffered (Model B). REFERENCE ONLY: it never triggers the agent (the trigger
|
|
115
|
+
decision was already made connector-side on the addressed event alone). The
|
|
116
|
+
gateway renders it into `MessageEvent.channel_context` (the same read-only
|
|
117
|
+
injection path history-backfill uses).
|
|
118
|
+
- `context_error`: bool, true when the platform is context-capable but the
|
|
119
|
+
fetch/buffer failed and the connector fail-opened to an empty `context`
|
|
120
|
+
(observability marker; surfaced connector-side via the delivery span).
|
|
121
|
+
|
|
122
|
+
Both absent ⇒ byte-identical to today. A connector that never sends them, or a
|
|
123
|
+
`dm`, or a no-context platform, yields no `channel_context`.
|
|
124
|
+
|
|
125
|
+
`PassthroughForward` is the wire form of a forwarded passthrough-plane request
|
|
126
|
+
(Class-2/3 webhooks — Discord interactions, Twilio): `{platform, botId, method, path, headers: [[k,v],…], bodyB64, profile?}`. `profile` is optional — the
|
|
127
|
+
connector stamps it when NAS resolves the target profile for a Team-Gateway
|
|
128
|
+
interaction; omitting it (single-profile gateways) preserves legacy routing to
|
|
129
|
+
the default `agent:main` session namespace, mirroring the `profile` field the
|
|
130
|
+
`inbound` frame's `SessionSource` already carries (#60586). The body is
|
|
131
|
+
base64-encoded so arbitrary bytes survive the newline-delimited-JSON transport;
|
|
132
|
+
the gateway base64-decodes
|
|
133
|
+
back to the exact bytes the connector forwarded (the connector already verified
|
|
134
|
+
the provider signature and stripped any shared-identity credential at the edge —
|
|
135
|
+
§6 — so the gateway re-processes a sanitized, token-free body and acts on it via
|
|
136
|
+
the token-less `follow_up` path). See §3.1.
|
|
137
|
+
|
|
138
|
+
**Trust.** The WS upgrade is authenticated with the gateway's per-gateway secret
|
|
139
|
+
(§6.1), so the channel is trusted end to end — inbound frames are not separately
|
|
140
|
+
HMAC-signed (the authenticated socket subsumes the per-delivery origin proof the
|
|
141
|
+
old HTTP path needed). The relay-bus hop is inside the connector trust domain
|
|
142
|
+
(same as the lease/buffer/capability stores).
|
|
143
|
+
|
|
144
|
+
> Earlier drafts of this contract delivered inbound over a signed **HTTP POST**
|
|
145
|
+
> to a `gatewayEndpoint` (`HttpGatewayDelivery` + a gateway-side
|
|
146
|
+
> `inbound_receiver`), HMAC-signed with a per-tenant delivery key. That required
|
|
147
|
+
> every gateway to expose a reachable inbound URL — impossible for hosted
|
|
148
|
+
> gateways, which have no public IP. The WS back-channel above replaces it; the
|
|
149
|
+
> per-tenant delivery key is retained at provision for forward-compat but is no
|
|
150
|
+
> longer used for inbound. The **passthrough plane** (Class-2/3 webhooks like
|
|
151
|
+
> Discord interactions / Twilio) historically still used `gatewayEndpoint` for
|
|
152
|
+
> its post-ACK forward; Phase 5 §5.1 moves that forward onto the WS too (the
|
|
153
|
+
> `passthrough_forward` frame above), so a hosted gateway needs zero public
|
|
154
|
+
> inbound surface and `gatewayEndpoint` is retired once the cutover lands.
|
|
155
|
+
|
|
156
|
+
### 3.1 Passthrough-plane forward (§5.1)
|
|
157
|
+
|
|
158
|
+
The passthrough plane answers the provider's latency-critical ACK at the
|
|
159
|
+
connector EDGE (e.g. Discord's deferred interaction response within ~3s), then
|
|
160
|
+
does a **fire-and-forget** forward of the real request to the gateway. That
|
|
161
|
+
forward needs no response back (the provider was already satisfied), so it rides
|
|
162
|
+
the same outbound WS as `inbound` via a `passthrough_forward` frame rather than
|
|
163
|
+
an HTTP POST. The gateway processes the decoded request through its normal agent
|
|
164
|
+
path (a Discord interaction is decoded to a `MessageEvent` and handled like a
|
|
165
|
+
message; the reply egresses over the outbound / `follow_up` path). `bufferId` is
|
|
166
|
+
present when the forward was buffered (Phase 5 §5.3 buffered-only flip) and the
|
|
167
|
+
gateway acks it after durable handoff.
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
### SessionSource fields (the wire surface)
|
|
172
|
+
|
|
173
|
+
Source of truth: `SessionSource.to_dict()` in `gateway/session.py`. These are
|
|
174
|
+
every key the gateway accepts on the wire. `platform`, `chat_id`, `chat_type`,
|
|
175
|
+
`user_id`, `user_name`, `thread_id`, `chat_name`, and `chat_topic` are always
|
|
176
|
+
present (may be `null`); the rest are included only when set.
|
|
177
|
+
|
|
178
|
+
| Field | Type | Always sent | Meaning |
|
|
179
|
+
| --- | --- | --- | --- |
|
|
180
|
+
| `platform` | string | yes | Platform name (matches the descriptor's `platform`). |
|
|
181
|
+
| `chat_id` | string | yes | Primary conversation id (channel/chat). Session-key discriminator. |
|
|
182
|
+
| `chat_type` | string | yes | `dm` / `group` / `channel` / `thread` / `forum`. |
|
|
183
|
+
| `chat_name` | string\|null | yes | Human-readable chat name. |
|
|
184
|
+
| `user_id` | string\|null | yes | Message author id. Session-key discriminator. |
|
|
185
|
+
| `user_name` | string\|null | yes | Author display name. |
|
|
186
|
+
| `thread_id` | string\|null | yes | Thread/forum-topic id when in a thread. Session-key discriminator. |
|
|
187
|
+
| `chat_topic` | string\|null | yes | Channel topic/description (Discord, Slack). |
|
|
188
|
+
| `user_id_alt` | string | no | Platform-specific stable alt id (Signal UUID, Feishu union_id). |
|
|
189
|
+
| `chat_id_alt` | string | no | Alternate chat id (e.g. Signal group internal id). |
|
|
190
|
+
| `scope_id` | string | no | Platform-neutral **scope** discriminator: Discord guild / Slack workspace / Matrix server. **REQUIRED for Discord/Slack scope isolation.** Session-key discriminator. (Canonical name as of the D-Q2.5 wire migration.) |
|
|
191
|
+
| `guild_id` | string | no | **Legacy alias, no longer read by the connector.** As of D-Q2.5c the connector reads and writes only `scope_id`; the gateway's agent-wide `SessionSource.to_dict()` still emits `guild_id` (mirrored to `scope_id`) for non-relay session persistence, so it may still appear on the wire but the connector ignores it. Do not depend on it. |
|
|
192
|
+
| `parent_chat_id` | string | no | Parent channel when `chat_id` refers to a thread. |
|
|
193
|
+
| `message_id` | string | no | Id of the triggering message (for pin/reply/react). |
|
|
194
|
+
|
|
195
|
+
> `is_bot` (author-is-a-bot/webhook classification) exists on the gateway-side
|
|
196
|
+
> dataclass but is **intentionally NOT on the wire** in v1 — it is not part of
|
|
197
|
+
> `to_dict()`. Do not add it to the connector's `SessionSource` until it is
|
|
198
|
+
> first added here and to `to_dict()` (additive bump).
|
|
199
|
+
|
|
200
|
+
### SessionSource discriminators per platform
|
|
201
|
+
|
|
202
|
+
| Platform | chat_id | chat_type | user_id | thread_id | scope_id |
|
|
203
|
+
| --- | --- | --- | --- | --- | --- |
|
|
204
|
+
| **Discord** | channel id | `dm`/`group`/`thread` | author id | thread channel id (threads) | **guild id** (REQUIRED for server isolation) |
|
|
205
|
+
| **Telegram** | chat id | `dm`/`group`/`forum` | from id | forum topic id (forums) | — |
|
|
206
|
+
|
|
207
|
+
**Get Discord's `guild_id` wrong and two servers collide into one session.**
|
|
208
|
+
This is the #1 High-severity risk. The gateway's `build_session_key()` is the
|
|
209
|
+
conformance oracle: for a given `SessionSource`, the connector's normalization
|
|
210
|
+
must produce the same key the Python adapter would. (The Phase-1 stub tests
|
|
211
|
+
assert known-input → known-key.)
|
|
212
|
+
|
|
213
|
+
### Bot identity vs tenant (single-bot consolidation, Appendix A)
|
|
214
|
+
|
|
215
|
+
The envelope carries the **originating bot identity** as a field **distinct from
|
|
216
|
+
tenant**. Tenant is resolved from the event's own discriminator (Discord
|
|
217
|
+
`guild_id`, Telegram `chat_id`, webhook path/subdomain) — **never** from which
|
|
218
|
+
token/socket/process delivered it. This keeps one shared bot able to front many
|
|
219
|
+
tenants (Phase 6) without overloading an existing field.
|
|
220
|
+
|
|
221
|
+
### Author-first resolution + the account-link (DM) path (Phase 7)
|
|
222
|
+
|
|
223
|
+
Phase 7 adds **self-serve, per-user onboarding to a shared bot**, which changes
|
|
224
|
+
*which* discriminator resolves the instance for a routed inbound message — and
|
|
225
|
+
adds a management path for users to bind their own account.
|
|
226
|
+
|
|
227
|
+
**Author-first resolution (the multi-tenant-guild rule, D-7.2).** A single
|
|
228
|
+
Discord guild may hold **many** tenants — different members each linked to their
|
|
229
|
+
own agent. So for delivery the connector resolves the destination instance from
|
|
230
|
+
the **authenticated author binding** (`user_instance_binding`, keyed by
|
|
231
|
+
`(tenant, platform, platform_user_id)` via `resolveByUser`), **NOT** by a
|
|
232
|
+
guild→instance route. Concretely:
|
|
233
|
+
|
|
234
|
+
- A routed message authored by a **linked** user reaches **only that user's**
|
|
235
|
+
instance — even when a second linked user in the **same guild** is served by a
|
|
236
|
+
different instance (each reaches only their own).
|
|
237
|
+
- A message authored by an **unlinked** user resolves to **no** instance and is
|
|
238
|
+
dropped (**fail-closed** — never broadcast to the guild's other tenants).
|
|
239
|
+
- The author id used is the **authentic `user_id` off the observed event**, the
|
|
240
|
+
same `SessionSource.user_id` documented above — never a value asserted by a
|
|
241
|
+
gateway or carried in a management frame.
|
|
242
|
+
|
|
243
|
+
This is the per-`user_id` owner-only routing the connector enforces in
|
|
244
|
+
`WsGatewayDelivery` (the gateway-side multi-tenant-guild E2E driver
|
|
245
|
+
`gateway_multitenant_guild_driver.py` is the cross-repo oracle).
|
|
246
|
+
|
|
247
|
+
**The account-link (DM) path.** A user binds their account to an instance with a
|
|
248
|
+
one-time code, redeemed by DMing the shared bot:
|
|
249
|
+
|
|
250
|
+
1. The owner triggers a link from the Portal (or a self-hosted CLI). The
|
|
251
|
+
connector mints a short-lived **link code** for the **authenticated**
|
|
252
|
+
instance (`POST /manage/link`; instanceId comes from the caller's principal —
|
|
253
|
+
a NAS-signed `aud=agent:{instanceId}` token or the instance's own per-gateway
|
|
254
|
+
secret — **never** the request body).
|
|
255
|
+
2. The user sends `/link <code>` as a **direct message** to the shared bot from
|
|
256
|
+
the account they want to bind.
|
|
257
|
+
3. The connector's inbound observer **consumes** that DM (it is not routed to any
|
|
258
|
+
agent) and writes the `user_instance_binding` using the **authentic
|
|
259
|
+
`user_id`** off the observed DM event. From then on, author-first resolution
|
|
260
|
+
routes that user's messages to the bound instance.
|
|
261
|
+
|
|
262
|
+
**Opt-out is connector-authoritative.** Deprovisioning an instance
|
|
263
|
+
(`POST /manage/deprovision`) drops its author bindings (so its users stop
|
|
264
|
+
resolving to it) **and** revokes its per-gateway secret (so its socket can no
|
|
265
|
+
longer authenticate — the next WS upgrade is closed **4401**). A gateway that
|
|
266
|
+
sees a **4401 close after a previously-successful handshake** treats it as a
|
|
267
|
+
terminal revocation: it stops reconnecting and reports the relay platform as
|
|
268
|
+
**disabled** (not a retryable error). A 4401 *before* any successful handshake
|
|
269
|
+
stays retryable (a cold-start / not-yet-provisioned race, not a revocation).
|
|
270
|
+
|
|
271
|
+
### 3.2 Going-idle / buffered-flip primitive (§5.3)
|
|
272
|
+
|
|
273
|
+
A scale-to-zero PRIMITIVE (not the behaviour — nothing here decides to sleep or
|
|
274
|
+
suspends a machine; a later workstream consumes these frames). It lets a gateway
|
|
275
|
+
enter a drain/idle transition without losing inbound that arrives while it is
|
|
276
|
+
gone, by making the connector buffer for that instance and replay on reconnect.
|
|
277
|
+
|
|
278
|
+
Three frames (all keyed by the connection's **authenticated** per-instance id —
|
|
279
|
+
read off the stored secret record at the WS upgrade, never asserted in a frame):
|
|
280
|
+
|
|
281
|
+
- `{"type":"going_idle"}` (gateway → connector) — emitted as part of the
|
|
282
|
+
gateway's EXISTING drain transition (the adapter sends it before tearing down
|
|
283
|
+
the socket). Asks the connector to flip this instance to **buffered-only**.
|
|
284
|
+
- `{"type":"going_idle_ack"}` (connector → gateway) — the connector has flipped:
|
|
285
|
+
live delivery has stopped and subsequent inbound for this instance buffers
|
|
286
|
+
durably. The gateway **stays serving until this ack** (so an event landing in
|
|
287
|
+
the flip window is delivered live, not lost — the same SUBSCRIBE-before-serve
|
|
288
|
+
ordering discipline as the bus). Only after the ack is it safe to close.
|
|
289
|
+
- `{"type":"inbound_ack", "bufferId"}` (gateway → connector) — durable receipt of
|
|
290
|
+
a buffered `inbound` delivery (which carries its `bufferId`) replayed on
|
|
291
|
+
reconnect. The connector acks the buffer entry only after this, giving
|
|
292
|
+
drain-without-dup on the **delivery leg**: an instance that dies mid-drain
|
|
293
|
+
redelivers exactly the unacked tail; an acked entry never redelivers.
|
|
294
|
+
|
|
295
|
+
**Buffer + drain.** While flipped, the connector appends inbound to a durable
|
|
296
|
+
per-instance delivery-leg buffer (`delivery:<instanceId>`) instead of pushing it
|
|
297
|
+
live. On the gateway's **reconnect** (a NET-NEW reconnect loop re-dials +
|
|
298
|
+
re-handshakes after an unexpected close), the new handshake triggers the
|
|
299
|
+
connector to drain that backlog over the new socket **in order, ack-gated**,
|
|
300
|
+
then clear the flip so live delivery resumes. This reuses the same
|
|
301
|
+
`drainWithoutDup` machinery as the Discord→connector ingest leg, applied to the
|
|
302
|
+
connector→gateway delivery leg. Connector-authoritative throughout: a gateway can
|
|
303
|
+
only flip/drain ITS OWN instance.
|
|
304
|
+
|
|
305
|
+
> NOT in scope (deferred behaviour): the autonomous idle timer that DECIDES to
|
|
306
|
+
> drain, the actual machine suspend, and the NAS suspended-health model. The
|
|
307
|
+
> primitive is "when the gateway drains, relay flips to buffered + replays on
|
|
308
|
+
> reconnect, with no loss/dup"; WHAT triggers the drain is out of scope.
|
|
309
|
+
|
|
310
|
+
### 3.3 Wake poke (§5.2)
|
|
311
|
+
|
|
312
|
+
The other half of the sleep/wake loop: how a SUSPENDED gateway finds out it has
|
|
313
|
+
buffered work waiting. A PRIMITIVE — nothing here suspends a machine; it wires
|
|
314
|
+
the wake SIGNAL so a future scale-to-zero behaviour layer can rely on "buffered
|
|
315
|
+
⇒ wake poked."
|
|
316
|
+
|
|
317
|
+
- **Registration.** The gateway registers a **wake URL** at enroll/provision —
|
|
318
|
+
any reachable URL the connector can GET to wake it (a Fly autostart hostname,
|
|
319
|
+
a dashboard host). Self-hosted: `hermes gateway enroll --wake-url <url>` (or
|
|
320
|
+
`GATEWAY_RELAY_WAKE_URL` / `gateway.relay_wake_url`). Managed/NAS: stamped into
|
|
321
|
+
the container env beside `GATEWAY_RELAY_URL`. Forwarded in the
|
|
322
|
+
`/relay/provision` body as `wakeUrl` and stored per-instance on the connector's
|
|
323
|
+
secret record (gateway-asserted but safely scoped — same posture as
|
|
324
|
+
`instanceId`; the org/tenant stays token-verified, so a gateway can only
|
|
325
|
+
register a wake target for ITS OWN instance). DISTINCT from the retired
|
|
326
|
+
`gatewayEndpoint`: a **poke target**, not a delivery target.
|
|
327
|
+
- **The poke.** When a buffered-only (going-idle) destination receives its FIRST
|
|
328
|
+
buffered event, the connector issues a **payload-free, unsigned GET** to that
|
|
329
|
+
instance's registered `wakeUrl`, **directly** (NOT NAS-mediated — relay stays
|
|
330
|
+
NAS-independent). It carries no tenant data and no inbound: it only says "you
|
|
331
|
+
have buffered work, reconnect." Tenant authority is re-established the normal
|
|
332
|
+
way when the gateway re-dials (the authenticated WS upgrade), so a leaked/
|
|
333
|
+
guessed wake URL can at worst cause a spurious reconnect of ITS OWN instance.
|
|
334
|
+
Rate-limited per instance (one poke per cooldown window, not per event), and
|
|
335
|
+
best-effort — a failed poke is swallowed; the gateway still drains whenever it
|
|
336
|
+
next reconnects on its own. No new frame: the wake is an out-of-band HTTP GET,
|
|
337
|
+
not a relay-WS message (the socket is down — that's the whole point).
|
|
338
|
+
|
|
339
|
+
> NOT in scope (deferred behaviour): the actual machine suspend (Fly
|
|
340
|
+
> `autostop:"suspend"`) and the autonomous idle timer that decides to sleep. The
|
|
341
|
+
> primitive is "buffered event for a sleeping instance ⇒ its wakeUrl gets poked";
|
|
342
|
+
> WHAT makes the instance sleep (and wake-to-serve) is the behaviour layer.
|
|
343
|
+
|
|
344
|
+
### 3.4 Obligations on a future scale-to-zero behaviour layer
|
|
345
|
+
|
|
346
|
+
§3.2 and §3.3 ship the **primitives**; this section is the **contract a separate
|
|
347
|
+
scale-to-zero behaviour workstream must honour to consume them safely.** It owns
|
|
348
|
+
the *decision* to suspend, the actual machine suspend, and the platform/health
|
|
349
|
+
model — none of which live here — but it MUST hold these guarantees, which the
|
|
350
|
+
primitives assume:
|
|
351
|
+
|
|
352
|
+
1. **Register a `wakeUrl` before the instance can ever be suspended.** A
|
|
353
|
+
suspended instance with no registered `wakeUrl` is a black hole — buffered
|
|
354
|
+
inbound never triggers a poke, so it sleeps through its own traffic until
|
|
355
|
+
something else reconnects it. The behaviour layer MUST ensure a reachable
|
|
356
|
+
wake target is registered (self-hosted: `--wake-url`; managed: stamped) as a
|
|
357
|
+
precondition of allowing suspend. A wake URL that is unreachable while the
|
|
358
|
+
machine is suspended (e.g. points at the suspended machine itself with no
|
|
359
|
+
platform autostart in front) is equivalent to none.
|
|
360
|
+
2. **Drain through `going_idle` → await `going_idle_ack` BEFORE tearing down the
|
|
361
|
+
socket or suspending.** Never suspend with an un-acked flip in flight. The
|
|
362
|
+
ack is the connector's confirmation that delivery for this instance is now
|
|
363
|
+
buffered-only; a machine that suspends after sending `going_idle` but before
|
|
364
|
+
the ack can drop the inbound that races the flip. The gateway already gates
|
|
365
|
+
socket teardown on the ack (Q-5.3c); the suspend step MUST sit *after* a
|
|
366
|
+
clean drain completes, not race it.
|
|
367
|
+
3. **Keep the NET-NEW reconnect loop live as a precondition of suspend.** The
|
|
368
|
+
wake→drain contract is "poke ⇒ the gateway re-dials ⇒ the connector drains on
|
|
369
|
+
the reconnect handshake." If the reconnect loop is disabled, a poke lands on a
|
|
370
|
+
machine that never re-dials and the buffer strands. The behaviour layer must
|
|
371
|
+
not suspend an instance whose relay transport won't reconnect on wake.
|
|
372
|
+
4. **Treat suspended ≠ down in the health model (Q-5.3b).** A suspended instance
|
|
373
|
+
is healthy-asleep, not failed. The health/monitoring layer MUST distinguish
|
|
374
|
+
the two (e.g. via the platform machine-state) so a suspended instance is not
|
|
375
|
+
restarted, alerted on, or reaped as unhealthy — that would defeat the suspend
|
|
376
|
+
and can race the wake/drain.
|
|
377
|
+
5. **The wake poke is best-effort and rate-limited — do not assume exactly-once
|
|
378
|
+
or immediate wake.** At most one poke per cooldown window per instance, and a
|
|
379
|
+
failed poke is swallowed. The behaviour layer must not rely on the poke as a
|
|
380
|
+
guaranteed/prompt signal; correctness still rests on "the gateway drains
|
|
381
|
+
whenever it next reconnects." A belt-and-suspenders wake (e.g. a scheduled
|
|
382
|
+
job that also reconnects) is the behaviour layer's call, not the primitive's.
|
|
383
|
+
6. **Suspend only when genuinely idle — and idle is connector-observable, not
|
|
384
|
+
gateway-guessed.** WHAT counts as idle (no in-flight turn + no inbound for N
|
|
385
|
+
min) is the behaviour layer's policy, but it must compose with the existing
|
|
386
|
+
drain machinery (`gateway_state` running→draining) rather than introduce a
|
|
387
|
+
parallel relay-only idle path — the same integration constraint §3.2 places
|
|
388
|
+
on `going_idle`.
|
|
389
|
+
|
|
390
|
+
These are guarantees the behaviour layer OWES the primitives; the primitives owe
|
|
391
|
+
the behaviour layer only what §3.2/§3.3 already specify (a flip-on-going_idle,
|
|
392
|
+
a durable per-instance buffer + ack-gated reconnect drain, and a poke on the
|
|
393
|
+
first buffered event for a flipped instance).
|
|
394
|
+
|
|
395
|
+
---
|
|
396
|
+
|
|
397
|
+
## 4. Outbound: action set
|
|
398
|
+
|
|
399
|
+
The gateway calls the transport with action dicts. Source of truth:
|
|
400
|
+
`gateway/relay/transport.py` + `gateway/relay/adapter.py`.
|
|
401
|
+
|
|
402
|
+
| `op` | Fields | Result |
|
|
403
|
+
| --- | --- | --- |
|
|
404
|
+
| `send` | `chat_id`, `content`, `reply_to?`, `metadata?` | `{success: bool, message_id?, error?}` |
|
|
405
|
+
| `edit` | `chat_id`, `message_id`, `content`, `metadata?` | `{success: bool, error?}` |
|
|
406
|
+
| `typing` | `chat_id`, `content?`, `metadata?` | `{success: bool}` |
|
|
407
|
+
| `follow_up` | `session_key`, `kind`, `content`, `metadata?` | `{success: bool, message_id?, error?}` |
|
|
408
|
+
| `send_media` | `chat_id`, `media_kind`, `source_url`, `content?` (caption), `filename?`, `reply_to?`, `metadata?` | `{success: bool, message_id?, error?}` |
|
|
409
|
+
| `prompt` | `chat_id`, `prompt_kind`, `prompt_id`, `content` (the question), `options[]{id,label,style?}`, `timeout_s?`, `reply_to?`, `metadata?` | `{success: bool, message_id?, error?}` |
|
|
410
|
+
| `react` | `chat_id`, `message_id`, `emoji`, `remove?`, `metadata?` | `{success: bool, error?}` |
|
|
411
|
+
| `thread_create` | `chat_id` (parent), `thread_name`, `message_id?` (anchor), `metadata?` | `{success: bool, thread_id?, error?}` |
|
|
412
|
+
| `thread_rename` | `chat_id` (parent), `message_id` (the THREAD id), `thread_name`, `only_if_current_name?`, `metadata?` | `{success: bool, error?}` |
|
|
413
|
+
|
|
414
|
+
`get_chat_info(chat_id)` is a separate proxied call returning at least
|
|
415
|
+
`{name, type}`.
|
|
416
|
+
|
|
417
|
+
**`send_media` (Phase 2 media egress).** Media crosses the wire BY REFERENCE:
|
|
418
|
+
`source_url` is either (a) a **connector re-host** the gateway previously
|
|
419
|
+
uploaded via `POST {connector}/relay/media` (raw bytes body, `Content-Type` +
|
|
420
|
+
optional `X-Media-Filename` headers, per-gateway HMAC bearer — the same token
|
|
421
|
+
scheme as the WS upgrade; response `{id, size}` → reference
|
|
422
|
+
`{connector}/relay/media/{id}`), or (b) a **public http(s) URL** (e.g. a
|
|
423
|
+
fal.media generation) the connector downloads directly. `media_kind` is one of
|
|
424
|
+
`image` / `voice` / `audio` / `video` / `document` and selects the
|
|
425
|
+
platform-native upload lane (Telegram `sendPhoto`/`sendVoice`/…, Discord
|
|
426
|
+
multipart attachment, Slack external upload, WhatsApp media upload + media
|
|
427
|
+
message). The caption rides `content` and renders through the platform's
|
|
428
|
+
normal markdown lane; platforms without native captions get a follow-up text
|
|
429
|
+
send (connector-side). Both routes and the op are gated on `supported_ops`
|
|
430
|
+
advertising `send_media` — a legacy connector never sees the op (the gateway's
|
|
431
|
+
media sends degrade to their pre-media text fallbacks). Size cap 25 MB
|
|
432
|
+
(connector `mediaStore.ts` MEDIA_MAX_BYTES; uploads over it are rejected 413).
|
|
433
|
+
|
|
434
|
+
**Inbound media (Phase 2 media ingress).** An inbound event's `media_urls`
|
|
435
|
+
carry fetchable references: platform-public URLs pass through (Discord CDN);
|
|
436
|
+
auth-gated/expiring platform URLs (Telegram file API, Slack `url_private`,
|
|
437
|
+
WhatsApp Graph media) are downloaded connector-side with the PLATFORM
|
|
438
|
+
credential and re-hosted as `{connector}/relay/media/{id}` — the platform
|
|
439
|
+
credential never crosses the wire. Re-host references are readable by any
|
|
440
|
+
authenticated gateway (capability-URL semantics: the id is 128-bit random and
|
|
441
|
+
was already delivered to every admitted recipient); the gateway downloads each
|
|
442
|
+
reference with its per-gateway bearer and presents LOCAL file paths to the
|
|
443
|
+
agent, mirroring native adapters. Re-hosts expire (TTL ~1h) — download on
|
|
444
|
+
receipt, not lazily. A parallel `media` array (same order) adds `kind`, `mime`,
|
|
445
|
+
`size`, `filename`, `caption` metadata; `message_type` reflects the first
|
|
446
|
+
attachment's kind (`image`/`audio`/`document`).
|
|
447
|
+
|
|
448
|
+
**`prompt` (Phase 3 interactive).** One platform-abstract op renders the
|
|
449
|
+
gateway's highest-stakes interactions (exec approvals, slash confirms,
|
|
450
|
+
clarify pickers) with NATIVE controls: Discord button components, Telegram
|
|
451
|
+
inline keyboards, Slack Block Kit actions, WhatsApp button messages (≤3
|
|
452
|
+
options) / list messages (4–10; >10 degrades to the numbered-text fallback).
|
|
453
|
+
`prompt_kind` (`approval`/`clarify`/`choice`) is a styling hint only.
|
|
454
|
+
`prompt_id` is gateway-minted and opaque to the connector; each
|
|
455
|
+
option's callback payload carries the token `hp1:<prompt_id>:<option_id>`
|
|
456
|
+
(≤64 bytes — Telegram's `callback_data` cap binds every lane; option ids are
|
|
457
|
+
`[A-Za-z0-9_.-]`, ≤32 chars). The gateway mints the prompt id as
|
|
458
|
+
`<per-process nonce>.<8 hex>` within that same alphabet and budget: the
|
|
459
|
+
connector fans a passthrough forward (a Discord press) out to EVERY live
|
|
460
|
+
gateway session of the tenant, unlike a message, which it narrows to the
|
|
461
|
+
admitted instance set, so the nonce is how a gateway tells its OWN prompt
|
|
462
|
+
from a sibling's. `style` maps per-platform
|
|
463
|
+
(primary/success/danger/secondary). `timeout_s` is advisory on the wire —
|
|
464
|
+
expiry is enforced GATEWAY-side (the pending-prompt registry drops expired
|
|
465
|
+
entries; the owning gateway then replies with a short "no longer waiting"
|
|
466
|
+
notice).
|
|
467
|
+
|
|
468
|
+
**`prompt_response` (Phase 3 inbound).** The user's press crosses back as a
|
|
469
|
+
normal inbound MessageEvent carrying
|
|
470
|
+
`prompt_response: {prompt_id, option_id, label?, prompt_message_id?}` — never
|
|
471
|
+
a bare platform `custom_id`. The event's `text` mirrors `/{option_id}` with
|
|
472
|
+
`message_type: "command"` so a gateway predating the field routes the press
|
|
473
|
+
as a typed reply instead of dropping it. A gateway that DOES understand the
|
|
474
|
+
field always consumes the press instead: a prompt id it did not mint belongs
|
|
475
|
+
to a sibling gateway that the same fan-out also reached, and letting the
|
|
476
|
+
`/{option_id}` text reach the chat lane made every sibling answer
|
|
477
|
+
"Unknown command" under the owner's single ack. The SOURCE is the authentic
|
|
478
|
+
CLICKING user (connector-observed: Telegram `callback_query.from`, Slack
|
|
479
|
+
`block_actions.user`, WhatsApp `messages[].from`, Discord interaction
|
|
480
|
+
member/user), so gateway-side authorization gates apply to a button press
|
|
481
|
+
exactly as to a typed `/approve`. Ingest lanes: Telegram `callback_query`
|
|
482
|
+
(polled, `allowed_updates` widened; best-effort `answerCallbackQuery`
|
|
483
|
+
spinner-stop), Slack `POST /slack/interactions` (raw-bytes HMAC + replay
|
|
484
|
+
window, same posture as `/slack/commands`), WhatsApp interactive
|
|
485
|
+
`button_reply`/`list_reply` (webhook normalize arm), Discord type-3
|
|
486
|
+
component interactions (passthrough §5.1 sanitized forward; the type-3 edge
|
|
487
|
+
ack is `DEFERRED_UPDATE` so no visible "thinking…" reply). Foreign
|
|
488
|
+
callback payloads (another integration's buttons) never become prompt
|
|
489
|
+
events: Telegram/Slack/WhatsApp drop them at the connector; Discord type-3
|
|
490
|
+
forwards keep the legacy custom_id-as-text shape.
|
|
491
|
+
|
|
492
|
+
**`react` (Phase 3 ack lifecycle).** Adds/removes the bot's own `emoji`
|
|
493
|
+
reaction on `message_id` — restoring the native adapters' 👀→✅/❌
|
|
494
|
+
processing-lifecycle acks over the relay. Unicode emoji on the wire; the
|
|
495
|
+
Slack sender maps to Slack's name vocabulary (`eyes`, `white_check_mark`, …)
|
|
496
|
+
and treats `already_reacted`/`no_reaction` as success (idempotent). Telegram
|
|
497
|
+
uses `setMessageReaction` (empty set = remove; Telegram's curated-emoji
|
|
498
|
+
restriction can reject glyphs — the failure is structured and the gateway
|
|
499
|
+
treats reactions as cosmetic). WhatsApp sends a reaction message (empty
|
|
500
|
+
emoji = remove). Reactions are best-effort by contract: a `react` failure
|
|
501
|
+
must never fail a turn.
|
|
502
|
+
|
|
503
|
+
**`thread_create` / `thread_rename` (Phase 4 thread lifecycle).** One
|
|
504
|
+
platform-abstract pair covers handoff threads, Telegram DM/forum topics, and
|
|
505
|
+
LLM-title semantic renames. `thread_create`: Discord posts a channel thread
|
|
506
|
+
(type 11) or a message-anchored thread when `message_id` is set; Telegram
|
|
507
|
+
`createForumTopic` (topic id returned); Slack posts a NAMED seed root
|
|
508
|
+
message and returns its `ts` (threads there are message-anchored — an
|
|
509
|
+
explicit `message_id` anchor is echoed back verbatim). The created id rides
|
|
510
|
+
`SendResult.thread_id`. `thread_rename`: Discord PATCHes the thread channel;
|
|
511
|
+
Telegram `editForumTopic`. The **`only_if_current_name` no-clobber guard**
|
|
512
|
+
is the native adapters' human-rename-wins semantics, enforced
|
|
513
|
+
CONNECTOR-side: Discord reads the current name first and no-ops (structured
|
|
514
|
+
`success:false`) on mismatch; Telegram has no topic-name read, so a GUARDED
|
|
515
|
+
rename is unsatisfiable and fails safe (unguarded renames proceed). Slack
|
|
516
|
+
does not advertise `thread_rename` (a root message's text is content, not a
|
|
517
|
+
name). WhatsApp advertises neither (no threads).
|
|
518
|
+
|
|
519
|
+
**Auto-thread markers + gateway-declared command manifest (Phase 4
|
|
520
|
+
inbound/handshake).** When the connector's auto-thread egress policy creates
|
|
521
|
+
a Discord thread, later inbound events from that thread carry
|
|
522
|
+
`source.auto_thread_created: true` + `source.auto_thread_initial_name` — the
|
|
523
|
+
connector-observed evidence that lights the gateway's semantic-rename lane
|
|
524
|
+
(the LLM session title renames the thread via a GUARDED `thread_rename`;
|
|
525
|
+
per-instance memory, so in an N>1 fleet a miss simply never lights the
|
|
526
|
+
lane). The gateway may also declare its slash-command set on the Discord
|
|
527
|
+
`hello` frame (`command_manifest: [{name, description, options?}]`); the
|
|
528
|
+
connector reconciles Discord's GLOBAL application-command registration
|
|
529
|
+
against it (GET → diff → bulk PUT overwrite; idempotent, debounced,
|
|
530
|
+
best-effort — a registration failure never affects the handshake). Commands
|
|
531
|
+
still dispatch through the passthrough plane as before; the manifest only
|
|
532
|
+
keeps Discord's registry in sync with what the gateway's dispatcher handles.
|
|
533
|
+
|
|
534
|
+
**Inbound `reply_to` enrichment (Phase 4).** A platform reply may carry
|
|
535
|
+
`reply_to: {text?, author?, is_own?}` alongside `reply_to_message_id` — what
|
|
536
|
+
the user QUOTED, populated only from data the connector already had in hand
|
|
537
|
+
(Discord's inline `referenced_message`, Telegram's inline
|
|
538
|
+
`reply_to_message`, WhatsApp `context.from` + a bounded per-instance
|
|
539
|
+
inbound-text cache for the text leg). Absent fields mean the platform didn't
|
|
540
|
+
carry the data — never triggers an extra platform API call. `is_own` = the
|
|
541
|
+
quoted message was authored by the fronted bot (same evidence as the
|
|
542
|
+
`is_reply_to_bot` relevance marker). The gateway maps these onto the same
|
|
543
|
+
MessageEvent reply-context fields native adapters populate.
|
|
544
|
+
|
|
545
|
+
**`typing` `content?` (Slack status clear).** A `typing` frame normally omits
|
|
546
|
+
`content` — the connector renders its platform's active indicator ("is
|
|
547
|
+
typing…" Assistant status on Slack, one-shot typing elsewhere). An **empty
|
|
548
|
+
string** `content` is an explicit *clear* request: on Slack the connector sets
|
|
549
|
+
the Assistant thread status to `""`, dismissing it. The gateway emits the
|
|
550
|
+
clear only for Slack (persistent status); one-shot platforms never receive it.
|
|
551
|
+
Additive within `contract_version` 1, but note the deploy order: a connector
|
|
552
|
+
predating gateway-gateway #154 ignores `content` and would *set* "is typing…"
|
|
553
|
+
on a clear frame — deploy the connector first.
|
|
554
|
+
|
|
555
|
+
**`follow_up` (A2 capability action).** Some inbound payloads carry a credential
|
|
556
|
+
that acts on the **shared** bot identity (e.g. a Discord interaction follow-up
|
|
557
|
+
token). Per §6 the connector strips that at the edge and binds it in its
|
|
558
|
+
capability vault keyed by the session; it **never reaches the gateway**. To use
|
|
559
|
+
it, the gateway issues `follow_up` naming the **session it is already in**
|
|
560
|
+
(`session_key`) plus the capability `kind` (e.g. `discord.interaction_token`) —
|
|
561
|
+
**never a token**. The connector resolves the real value from its vault,
|
|
562
|
+
enforces the tenant match (tenant B can never wield tenant A's capability), and
|
|
563
|
+
egresses. `success: false` when the capability is absent/expired or the tenant
|
|
564
|
+
doesn't match — the gateway has nothing to retry with, by design (a leaked
|
|
565
|
+
gateway holds zero capability material). Source of truth:
|
|
566
|
+
`gateway/relay/transport.py` (`send_follow_up`) + `gateway/relay/adapter.py`.
|
|
567
|
+
|
|
568
|
+
---
|
|
569
|
+
|
|
570
|
+
## 5. Interrupt (`/stop`) routing
|
|
571
|
+
|
|
572
|
+
- **Gateway → connector:** `send_interrupt(session_key, reason?)` egresses a
|
|
573
|
+
mid-turn `/stop` over the outbound WS. The connector MUST forward it to the
|
|
574
|
+
gateway instance running that `session_key` (the routing invariant).
|
|
575
|
+
- **Connector → gateway:** an inbound interrupt for a `session_key` is delivered
|
|
576
|
+
as an `interrupt_inbound` frame down the gateway's outbound WS (§3 transport
|
|
577
|
+
note) — routed cross-instance via the relay bus to whichever instance holds
|
|
578
|
+
the socket — and bridged by the adapter's `on_interrupt(session_key, chat_id)`
|
|
579
|
+
into the existing per-session interrupt mechanism, cancelling exactly that turn
|
|
580
|
+
(siblings untouched).
|
|
581
|
+
|
|
582
|
+
Both directions ride the gateway's outbound WS: the gateway→connector `/stop`
|
|
583
|
+
egresses over it, and the connector→gateway interrupt rides the same `inbound`
|
|
584
|
+
back-channel as a normalized event.
|
|
585
|
+
|
|
586
|
+
---
|
|
587
|
+
|
|
588
|
+
## 6. Trust boundary & signed-body handling (A2)
|
|
589
|
+
|
|
590
|
+
**The connector is the sole crypto/identity boundary. The gateway re-validates
|
|
591
|
+
nothing.**
|
|
592
|
+
|
|
593
|
+
Webhook signatures (Discord ed25519, Twilio HMAC, WeCom BizMsgCrypt) are
|
|
594
|
+
computed over exact raw bytes, and some payloads are *encrypted* with a shared
|
|
595
|
+
secret. The connector fronts a **shared** bot for many tenants and holds every
|
|
596
|
+
tenant's platform secrets, so it:
|
|
597
|
+
|
|
598
|
+
- **verifies / decrypts at the edge** (the only place the secrets live),
|
|
599
|
+
- **normalizes** the payload into a tenant-scoped `MessageEvent` (§3),
|
|
600
|
+
- **strips any shared-identity capability** out of the payload and binds it in
|
|
601
|
+
its capability vault, keyed by the session (see §4 `follow_up`),
|
|
602
|
+
- **forwards only the sanitized `MessageEvent`** — never the raw signed body.
|
|
603
|
+
|
|
604
|
+
The gateway therefore performs **no** platform signature/crypto verification on
|
|
605
|
+
the relay path; it trusts the normalized event. This is an enforced invariant on
|
|
606
|
+
the gateway side (`tests/gateway/relay/test_relay_sheds_crypto.py`: the relay
|
|
607
|
+
package imports/calls no platform-crypto).
|
|
608
|
+
|
|
609
|
+
**Why not "forward the signed body byte-for-byte so the gateway re-validates"?**
|
|
610
|
+
That earlier model is incoherent under an untrusted, disposable tenant gateway:
|
|
611
|
+
|
|
612
|
+
- Re-validating Twilio HMAC / WeCom crypto would require handing the gateway the
|
|
613
|
+
**shared signing secret** — which is itself the leak, and on a shared bot it's
|
|
614
|
+
a *cross-tenant* leak.
|
|
615
|
+
- WeCom payloads are encrypted with the shared secret; the connector must decrypt
|
|
616
|
+
at the edge just to route, so forwarding ciphertext would again require giving
|
|
617
|
+
the gateway the secret.
|
|
618
|
+
- A Discord interaction token lives **inside** the signed JSON body — you cannot
|
|
619
|
+
both preserve the bytes and strip the credential; they are the same bytes.
|
|
620
|
+
|
|
621
|
+
So byte-preservation is abandoned deliberately: the connector re-serializes the
|
|
622
|
+
sanitized event and the gateway trusts it. This also unifies the passthrough and
|
|
623
|
+
relay planes — both are "verify at the edge → emit a normalized event," differing
|
|
624
|
+
only in transport. See `docs/capability-trust-boundary.md` (connector repo:
|
|
625
|
+
`gateway-gateway`) for the full A2 rationale and the connector-side vault.
|
|
626
|
+
|
|
627
|
+
### 6.1 Channel authentication (the connector⇄gateway link itself)
|
|
628
|
+
|
|
629
|
+
A2 makes the connector the sole holder of platform secrets while the gateway may
|
|
630
|
+
be **customer-managed and internet-exposed**, so the connector⇄gateway channel
|
|
631
|
+
is itself authenticated. The gateway holds an enrollment- or provision-issued
|
|
632
|
+
**per-gateway secret** (`hermes gateway enroll` → connector `/relay/enroll`, or
|
|
633
|
+
managed self-provision → `/relay/provision`) that authenticates its outbound WS
|
|
634
|
+
upgrade. It is an HMAC-SHA256 scheme with a multi-secret rotation verify list
|
|
635
|
+
(gateway side: `gateway/relay/auth.py`; connector side:
|
|
636
|
+
`src/core/relayAuthToken.ts`).
|
|
637
|
+
|
|
638
|
+
| Leg | Credential | Mechanism |
|
|
639
|
+
|-----|-----------|-----------|
|
|
640
|
+
| Gateway → connector WS upgrade | per-gateway secret | An `Authorization` bearer header on the `/relay` upgrade. The token is `base64url(payload:exp:sig)` where `payload = gatewayId` and `sig = HMAC(payload:exp, secret)`. Connector verifies and rejects the upgrade (**close 4401**) on mismatch/absence/revocation. The authenticated tenant comes from the connector's store, never the `hello` frame. |
|
|
641
|
+
| Connector → gateway inbound (`inbound` / `interrupt_inbound` frames) | — (rides the authenticated WS) | Inbound is pushed down the gateway's already-authenticated outbound socket (§3), so no per-message signature is needed. A **per-tenant delivery key** is still issued at enroll/provision and retained for forward-compat, but is no longer used to sign inbound. |
|
|
642
|
+
|
|
643
|
+
This is the **channel** authenticator — distinct from platform crypto, which the
|
|
644
|
+
relay path still sheds entirely (§6). The gateway holds zero platform secrets;
|
|
645
|
+
the per-gateway secret authenticates only the connector link. Full threat model +
|
|
646
|
+
enrollment/rotation/kill-switch design: `docs/connector-gateway-auth-design.md`
|
|
647
|
+
(connector repo).
|
|
648
|
+
|
|
649
|
+
---
|
|
650
|
+
|
|
651
|
+
## 7. Per-instance delivery & the management plane (Phase 6)
|
|
652
|
+
|
|
653
|
+
Phases 1–5 treat the connector as a single-tenant front: inbound events for a
|
|
654
|
+
tenant fan out to that tenant's gateway socket(s). **Phase 6 makes delivery
|
|
655
|
+
per-INSTANCE** — a shared bot can front many users/agents in one tenant (one
|
|
656
|
+
Discord guild, one Telegram bot) without cross-delivery — and adds a small
|
|
657
|
+
**management plane** the agent (or a managed Portal) uses to declare who-sees-what
|
|
658
|
+
and what's-relevant. All of this lives **connector-side**; the gateway's only new
|
|
659
|
+
responsibility is to **declare its relevance policy** at boot (§7.3).
|
|
660
|
+
|
|
661
|
+
### 7.1 The delivery gate (connector-side, informational)
|
|
662
|
+
|
|
663
|
+
For each inbound event the connector decides which instances receive it by
|
|
664
|
+
composing three AND-ed filters. The gateway does not implement these — they run
|
|
665
|
+
in the connector — but they define the delivery semantics the gateway relies on:
|
|
666
|
+
|
|
667
|
+
| Layer | Question | Source of truth |
|
|
668
|
+
| --- | --- | --- |
|
|
669
|
+
| **owner / scope ∧ principal** | May this instance *see* this author here? | per-user `user_id → instance` bindings (the owner floor) + per-instance `(guild, channel)` scope grants + an `owner-only` / `allow-list` / `any` principal policy. |
|
|
670
|
+
| **visibility floor** | Can the instance's bound owner actually `VIEW_CHANNEL` this in Discord? | live Discord ACL (effective permissions), fail-closed. Narrows an over-broad scope grant downward. |
|
|
671
|
+
| **relevance** | *Given* it may see it, should the agent engage? | the relevance policy declared in §7.3 (address-gating / free-response / allow-bots). |
|
|
672
|
+
|
|
673
|
+
The composition only ever **narrows** delivery (`deliver ⇔ authorized ∧ visible
|
|
674
|
+
∧ relevant`); the **owner floor bypasses the relevance layer** (an author's own
|
|
675
|
+
message always reaches their own instance — you don't @mention your own agent).
|
|
676
|
+
A message authored by an unbound user reaches no instance (fail-closed). The
|
|
677
|
+
full design + invariants live in the connector repo
|
|
678
|
+
(`NousResearch/gateway-gateway`); this section is the gateway-facing summary.
|
|
679
|
+
|
|
680
|
+
### 7.2 Management routes (connector-side, authenticated)
|
|
681
|
+
|
|
682
|
+
The connector mounts authenticated management routes. They share the **same
|
|
683
|
+
dual-auth** as the WS upgrade: either a managed NAS-signed `aud=agent:{instanceId}`
|
|
684
|
+
RS256 JWT, **or** the gateway's own per-gateway secret bearer (§6.1
|
|
685
|
+
`make_upgrade_token`). In both cases the connector resolves the authoritative
|
|
686
|
+
`{tenant, instanceId}` from its **stored** record — **never** from the request
|
|
687
|
+
body (a body-asserted `instanceId` is ignored).
|
|
688
|
+
|
|
689
|
+
| Route | Purpose |
|
|
690
|
+
| --- | --- |
|
|
691
|
+
| `POST /manage/link` | Issue a short-lived code to bind a platform account to the authenticated instance (the `/link <code>` flow; the connector reads the authentic `user_id` off the inbound event). |
|
|
692
|
+
| `POST /manage/scope`, `/manage/scope/release` | Claim / release a `(guild, channel)` scope for the authenticated instance. A channel is owned by at most one instance (non-overlap is a PK constraint). |
|
|
693
|
+
| `POST /manage/principal` | Set the instance's principal policy (`owner-only` \| `allow-list` \| `any`). |
|
|
694
|
+
| `POST /manage/dm-default` | Set the user's DM-default instance (DM tie-break when a user linked more than one). |
|
|
695
|
+
| `POST /relay/policy` | Declare the instance's **relevance policy** (§7.3). |
|
|
696
|
+
|
|
697
|
+
These are connector-owned (the management plane is not part of the gateway's
|
|
698
|
+
agent path); the gateway only calls `POST /relay/policy` (§7.3). The others are
|
|
699
|
+
driven by the managed Portal / `hermes` CLI.
|
|
700
|
+
|
|
701
|
+
### 7.3 Relevance-policy declaration (the gateway's responsibility)
|
|
702
|
+
|
|
703
|
+
The relevance layer (§7.1) is the per-tenant parity for the gateway's own
|
|
704
|
+
behaviour knobs (`require_mention`, `free_response_channels`,
|
|
705
|
+
`{PLATFORM}_ALLOW_BOTS`). So the **same** behaviour governs relay delivery, the
|
|
706
|
+
gateway projects those knobs into a **platform-agnostic** policy and POSTs it to
|
|
707
|
+
`POST /relay/policy` at boot (after its per-gateway secret is resolved).
|
|
708
|
+
|
|
709
|
+
Body (`gateway/relay/__init__.py` `relay_relevance_policy()` → `send_relay_policy()`):
|
|
710
|
+
|
|
711
|
+
| Field | Type | Projected from | Meaning |
|
|
712
|
+
| --- | --- | --- | --- |
|
|
713
|
+
| `platform` | string | the fronted platform (`relay_platform_identity`) | which platform this policy applies to. |
|
|
714
|
+
| `requireAddress` | bool | `require_mention` | a non-owner message must @mention / reply-to the bot to be relevant. |
|
|
715
|
+
| `freeResponseScopes` | string[] | `free_response_channels` | scope (channel) ids where `requireAddress` is waived. Same scope vocabulary as §7.1's scope grants. |
|
|
716
|
+
| `allowOtherBots` | bool | `{PLATFORM}_ALLOW_BOTS ∈ {mentions, all}` | admit bot-authored messages (default off). |
|
|
717
|
+
|
|
718
|
+
Auth is the per-gateway upgrade token (§6.1), so the connector attaches the
|
|
719
|
+
policy to the authenticated instance. The gateway is the **source of truth** and
|
|
720
|
+
re-declares **every boot** (a full replace, mirroring the `routeKeys` upsert at
|
|
721
|
+
provision — self-healing). When the projected policy is all-default the gateway
|
|
722
|
+
sends nothing (the connector's absent-row default already matches). The POST is
|
|
723
|
+
**fail-soft**: a failure logs and boot proceeds — relevance is an optimization
|
|
724
|
+
layered on the authorization gate (§7.1), never a boot dependency. There is **no
|
|
725
|
+
new gateway inbound surface** and **no new credential** — it reuses the
|
|
726
|
+
per-gateway secret and the same host as `/relay/provision`.
|
|
727
|
+
|
|
728
|
+
> A relevance drop happens **before** the connector wakes a scaled-to-zero agent
|
|
729
|
+
> (Phase 5), so excluded chatter never spins an agent up — relevance is the
|
|
730
|
+
> primary scale-to-zero lever as well as a correctness filter.
|
|
731
|
+
|
|
732
|
+
---
|
|
733
|
+
|
|
734
|
+
## 8. Gateway-side platform behavior controls (enterprise)
|
|
735
|
+
|
|
736
|
+
Enterprise deployments configure fronted-platform behavior on the GATEWAY
|
|
737
|
+
side, under `platforms.relay.extra.<platform>` — a supported subset of that
|
|
738
|
+
platform's native options. The native platform block (e.g. `platforms.slack`)
|
|
739
|
+
is not read on the relay lane; the connector receives the *outcome* of these
|
|
740
|
+
controls as frame metadata (§4) and executes mechanically — it holds no
|
|
741
|
+
platform behavior policy of its own.
|
|
742
|
+
|
|
743
|
+
```yaml
|
|
744
|
+
platforms:
|
|
745
|
+
relay:
|
|
746
|
+
extra:
|
|
747
|
+
slack:
|
|
748
|
+
reply_in_thread: true # default
|
|
749
|
+
```
|
|
750
|
+
|
|
751
|
+
Resolution: nested `extra.<platform>` object wins → legacy flat key on
|
|
752
|
+
`extra` honored as fallback → default. Source of truth:
|
|
753
|
+
`RelayAdapter._effective_reply_in_thread` (`gateway/relay/adapter.py`).
|
|
754
|
+
Values coerce exactly as the native Slack adapter's do — `1/true/yes/on`
|
|
755
|
+
(case-insensitive, whitespace-trimmed) are ON, anything else is OFF — so a
|
|
756
|
+
YAML-quoted `"false"` turns a knob off rather than being read as a truthy
|
|
757
|
+
string.
|
|
758
|
+
|
|
759
|
+
Current controls (Slack):
|
|
760
|
+
|
|
761
|
+
| Key | Default | Effect |
|
|
762
|
+
| --- | --- | --- |
|
|
763
|
+
| `reply_in_thread` | `true` | `true`: thread-per-message — each top-level DM message anchors its own thread (status, progress, prompts, final reply all carry that `metadata.thread_id`). `false`: flat rolling DM — send-lane frames carry NO thread anchor (stripped, not omitted), one shared session per DM. |
|
|
764
|
+
| `dm_top_level_threads_as_sessions` | `true` | Native-parity escape hatch (mirrors `platforms.slack.extra.dm_top_level_threads_as_sessions`). `true`: in thread-per-message mode each top-level DM message keys its own session, so concurrent messages run in parallel. `false`: threaded reply placement is kept but the session stamp is skipped — one rolling DM session (legacy steer/queue posture). No effect in flat mode, which always keeps the single rolling session. |
|
|
765
|
+
|
|
766
|
+
Typing/status frames always carry the triggering-ts anchor when one is known
|
|
767
|
+
(liveliness is unconditional, both modes): Slack's status line is
|
|
768
|
+
thread-scoped, and in flat mode the send-side anchor strip guarantees the
|
|
769
|
+
status anchor can never leak into reply placement. Semantics of the native
|
|
770
|
+
key: see [Slack](/user-guide/messaging/slack).
|
|
771
|
+
|
|
772
|
+
Thread-anchor resolution applies to EVERY send lane — text (`send`) and media
|
|
773
|
+
(`send_media`) alike — through one choke point
|
|
774
|
+
(`RelayAdapter._apply_slack_thread_anchor`). Media frames egress via the same
|
|
775
|
+
connector-side Slack sender, which threads on `metadata.thread_id` only, so an
|
|
776
|
+
attachment resolves its anchor identically to a text reply: promoted into
|
|
777
|
+
metadata in thread-per-message mode, stripped in flat mode.
|
|
778
|
+
|
|
779
|
+
Changes take effect on gateway restart; no connector involvement.
|
|
780
|
+
|
|
781
|
+
---
|
|
782
|
+
|
|
783
|
+
## 9. Versioning policy
|
|
784
|
+
|
|
785
|
+
- `contract_version` is an int; bump **only** for additive changes during the
|
|
786
|
+
experimental phase (new optional fields, new `op`s).
|
|
787
|
+
- A breaking change (renamed/removed field, changed semantics) requires a
|
|
788
|
+
coordinated update of both repos and a version bump.
|
|
789
|
+
- The connector's first PR references the commit SHA of this file it implements
|
|
790
|
+
against.
|