hermes-agent/website/sidebars.ts
Teknium c868425467
feat(kanban): durable multi-profile collaboration board (#17805)
Salvage of PR #16100 onto current main (after emozilla's #17514 fix
that unblocks plugin Pydantic body validation). History preserved on
the standing `feat/kanban-standing` branch; this squashes the 22
iterative commits into one clean landing.

What this lands:
- SQLite kernel (hermes_cli/kanban_db.py) — durable task board with
  tasks, task_links, task_runs, task_comments, task_events,
  kanban_notify_subs tables. WAL mode, atomic claim via CAS,
  tenant-namespaced, skills JSON array per task, max-runtime timeouts,
  worker heartbeats, idempotency keys, circuit breaker on repeated
  spawn failures, crash detection via /proc/<pid>/status, run history
  preserved across attempts.
- Dispatcher — runs inside the gateway by default
  (`kanban.dispatch_in_gateway: true`). Ticks every 60s, reclaims
  stale claims, promotes ready tasks, spawns `hermes -p <assignee>
  chat -q "work kanban task <id>"` with HERMES_KANBAN_TASK +
  HERMES_KANBAN_WORKSPACE env. Auto-loads `--skills kanban-worker`
  plus any per-task skills. Health telemetry warns on stuck ready
  queue.
- Structured tool surface (tools/kanban_tools.py) — 7 tools
  (kanban_show, kanban_complete, kanban_block, kanban_heartbeat,
  kanban_comment, kanban_create, kanban_link). Gated on
  HERMES_KANBAN_TASK via check_fn so zero schema footprint in normal
  sessions.
- System-prompt guidance (agent/prompt_builder.py KANBAN_GUIDANCE)
  injected only when kanban tools are active.
- Dashboard plugin (plugins/kanban/dashboard/) — Linear-style board
  UI: triage/todo/ready/running/blocked/done columns, drag-drop,
  inline create, task drawer with markdown, comments, run history,
  dependency editor, bulk ops, lanes-by-profile grouping, WS-driven
  live refresh. Matches active dashboard theme via CSS variables.
- CLI — `hermes kanban init|create|list|show|assign|link|unlink|
  claim|comment|complete|block|unblock|archive|tail|dispatch|context|
  init|gc|watch|stats|notify|log|heartbeat|runs|assignees` +
  `/kanban` slash in-session.
- Worker + orchestrator skills (skills/devops/kanban-worker +
  kanban-orchestrator) — pattern library for good summary/metadata
  shapes, retry diagnostics, block-reason examples, fan-out patterns.
- Per-task force-loaded skills — `--skill <name>` (repeatable),
  stored as JSON, threaded through to dispatcher argv as one
  `--skills X` pair per skill alongside the built-in kanban-worker.
  Dashboard + CLI + tool parity.
- Deprecation of standalone `hermes kanban daemon` — stub exits 2
  with migration guidance; `--force` escape hatch for headless hosts.
- Docs (website/docs/user-guide/features/kanban.md + kanban-tutorial.md)
  with 11 dashboard screenshots walking through four user stories
  (Solo Dev, Fleet Farming, Role Pipeline, Circuit Breaker).
- Tests (251 passing): kernel schema + migration + CAS atomicity,
  dispatcher logic, circuit breaker, crash detection, max-runtime
  timeouts, claim lifecycle, tenant isolation, idempotency keys, per-
  task skills round-trip + validation + dispatcher argv, tool surface
  (7 tools × round-trip + error paths), dashboard REST (CRUD + bulk
  + links + warnings), gateway-embedded dispatcher (config gate, env
  override, graceful shutdown), CLI deprecation stub, migration from
  legacy schemas.

Gateway integration:
- GatewayRunner._kanban_dispatcher_watcher — new asyncio background
  task, symmetric with _kanban_notifier_watcher. Runs dispatch_once
  via asyncio.to_thread so SQLite WAL never blocks the loop. Sleeps
  in 1s slices for snappy shutdown. Respects HERMES_KANBAN_DISPATCH_IN_GATEWAY=0
  env override for debugging.
- Config: new `kanban` section in DEFAULT_CONFIG with
  `dispatch_in_gateway: true` (default) + `dispatch_interval_seconds: 60`.
  Additive — no \_config_version bump needed.

Forward-compat:
- workflow_template_id / current_step_key columns on tasks (v1 writes
  NULL; v2 will use them for routing).
- task_runs holds claim machinery (claim_lock, claim_expires,
  worker_pid, last_heartbeat_at) so multi-attempt history is first-
  class from day one.

Closes #16102.

Co-authored-by: emozilla <emozilla@nousresearch.com>
2026-04-30 13:36:47 -07:00

649 lines
24 KiB
TypeScript

import type {SidebarsConfig} from '@docusaurus/plugin-content-docs';
const sidebars: SidebarsConfig = {
docs: [
{
type: 'category',
label: 'Getting Started',
collapsed: true,
items: [
'getting-started/quickstart',
'getting-started/installation',
'getting-started/termux',
'getting-started/nix-setup',
'getting-started/updating',
'getting-started/learning-path',
],
},
{
type: 'category',
label: 'Using Hermes',
collapsed: true,
items: [
'user-guide/cli',
'user-guide/tui',
'user-guide/configuration',
'user-guide/configuring-models',
'user-guide/sessions',
'user-guide/profiles',
'user-guide/git-worktrees',
'user-guide/docker',
'user-guide/security',
'user-guide/checkpoints-and-rollback',
],
},
{
type: 'category',
label: 'Features',
collapsed: true,
items: [
'user-guide/features/overview',
'user-guide/features/tool-gateway',
{
type: 'category',
label: 'Core',
items: [
'user-guide/features/tools',
'user-guide/features/skills',
'user-guide/features/curator',
'user-guide/features/memory',
'user-guide/features/memory-providers',
'user-guide/features/context-files',
'user-guide/features/context-references',
'user-guide/features/personality',
'user-guide/features/skins',
'user-guide/features/plugins',
'user-guide/features/built-in-plugins',
],
},
{
type: 'category',
label: 'Automation',
items: [
'user-guide/features/cron',
'user-guide/features/delegation',
'user-guide/features/kanban',
'user-guide/features/kanban-tutorial',
'user-guide/features/code-execution',
'user-guide/features/hooks',
'user-guide/features/batch-processing',
],
},
{
type: 'category',
label: 'Media & Web',
items: [
'user-guide/features/voice-mode',
'user-guide/features/browser',
'user-guide/features/vision',
'user-guide/features/image-generation',
'user-guide/features/tts',
],
},
{
type: 'category',
label: 'Management',
items: [
'user-guide/features/web-dashboard',
'user-guide/features/extending-the-dashboard',
],
},
{
type: 'category',
label: 'Advanced',
items: [
'user-guide/features/rl-training',
'user-guide/features/spotify',
],
},
{
type: 'category',
label: 'Skills',
collapsed: true,
items: [
'user-guide/skills/godmode',
'user-guide/skills/google-workspace',
{
type: 'category',
label: 'Bundled (by default)',
collapsed: true,
items: [
{
type: 'category',
label: 'apple',
collapsed: true,
items: [
'user-guide/skills/bundled/apple/apple-apple-notes',
'user-guide/skills/bundled/apple/apple-apple-reminders',
'user-guide/skills/bundled/apple/apple-findmy',
'user-guide/skills/bundled/apple/apple-imessage',
],
},
{
type: 'category',
label: 'autonomous-ai-agents',
collapsed: true,
items: [
'user-guide/skills/bundled/autonomous-ai-agents/autonomous-ai-agents-claude-code',
'user-guide/skills/bundled/autonomous-ai-agents/autonomous-ai-agents-codex',
'user-guide/skills/bundled/autonomous-ai-agents/autonomous-ai-agents-hermes-agent',
'user-guide/skills/bundled/autonomous-ai-agents/autonomous-ai-agents-opencode',
],
},
{
type: 'category',
label: 'creative',
collapsed: true,
items: [
'user-guide/skills/bundled/creative/creative-architecture-diagram',
'user-guide/skills/bundled/creative/creative-ascii-art',
'user-guide/skills/bundled/creative/creative-ascii-video',
'user-guide/skills/bundled/creative/creative-baoyu-comic',
'user-guide/skills/bundled/creative/creative-baoyu-infographic',
'user-guide/skills/bundled/creative/creative-claude-design',
'user-guide/skills/bundled/creative/creative-comfyui',
'user-guide/skills/bundled/creative/creative-creative-ideation',
'user-guide/skills/bundled/creative/creative-design-md',
'user-guide/skills/bundled/creative/creative-excalidraw',
'user-guide/skills/bundled/creative/creative-humanizer',
'user-guide/skills/bundled/creative/creative-manim-video',
'user-guide/skills/bundled/creative/creative-p5js',
'user-guide/skills/bundled/creative/creative-pixel-art',
'user-guide/skills/bundled/creative/creative-popular-web-designs',
'user-guide/skills/bundled/creative/creative-pretext',
'user-guide/skills/bundled/creative/creative-sketch',
'user-guide/skills/bundled/creative/creative-songwriting-and-ai-music',
'user-guide/skills/bundled/creative/creative-touchdesigner-mcp',
],
},
{
type: 'category',
label: 'data-science',
collapsed: true,
items: [
'user-guide/skills/bundled/data-science/data-science-jupyter-live-kernel',
],
},
{
type: 'category',
label: 'devops',
collapsed: true,
items: [
'user-guide/skills/bundled/devops/devops-webhook-subscriptions',
],
},
{
type: 'category',
label: 'dogfood',
collapsed: true,
items: [
'user-guide/skills/bundled/dogfood/dogfood-dogfood',
],
},
{
type: 'category',
label: 'email',
collapsed: true,
items: [
'user-guide/skills/bundled/email/email-himalaya',
],
},
{
type: 'category',
label: 'gaming',
collapsed: true,
items: [
'user-guide/skills/bundled/gaming/gaming-minecraft-modpack-server',
'user-guide/skills/bundled/gaming/gaming-pokemon-player',
],
},
{
type: 'category',
label: 'github',
collapsed: true,
items: [
'user-guide/skills/bundled/github/github-codebase-inspection',
'user-guide/skills/bundled/github/github-github-auth',
'user-guide/skills/bundled/github/github-github-code-review',
'user-guide/skills/bundled/github/github-github-issues',
'user-guide/skills/bundled/github/github-github-pr-workflow',
'user-guide/skills/bundled/github/github-github-repo-management',
],
},
{
type: 'category',
label: 'mcp',
collapsed: true,
items: [
'user-guide/skills/bundled/mcp/mcp-native-mcp',
],
},
{
type: 'category',
label: 'media',
collapsed: true,
items: [
'user-guide/skills/bundled/media/media-gif-search',
'user-guide/skills/bundled/media/media-heartmula',
'user-guide/skills/bundled/media/media-songsee',
'user-guide/skills/bundled/media/media-spotify',
'user-guide/skills/bundled/media/media-youtube-content',
],
},
{
type: 'category',
label: 'mlops',
collapsed: true,
items: [
'user-guide/skills/bundled/mlops/mlops-models-audiocraft',
'user-guide/skills/bundled/mlops/mlops-training-axolotl',
'user-guide/skills/bundled/mlops/mlops-research-dspy',
'user-guide/skills/bundled/mlops/mlops-huggingface-hub',
'user-guide/skills/bundled/mlops/mlops-inference-llama-cpp',
'user-guide/skills/bundled/mlops/mlops-evaluation-lm-evaluation-harness',
'user-guide/skills/bundled/mlops/mlops-inference-obliteratus',
'user-guide/skills/bundled/mlops/mlops-inference-outlines',
'user-guide/skills/bundled/mlops/mlops-models-segment-anything',
'user-guide/skills/bundled/mlops/mlops-training-trl-fine-tuning',
'user-guide/skills/bundled/mlops/mlops-training-unsloth',
'user-guide/skills/bundled/mlops/mlops-inference-vllm',
'user-guide/skills/bundled/mlops/mlops-evaluation-weights-and-biases',
],
},
{
type: 'category',
label: 'note-taking',
collapsed: true,
items: [
'user-guide/skills/bundled/note-taking/note-taking-obsidian',
],
},
{
type: 'category',
label: 'productivity',
collapsed: true,
items: [
'user-guide/skills/bundled/productivity/productivity-airtable',
'user-guide/skills/bundled/productivity/productivity-google-workspace',
'user-guide/skills/bundled/productivity/productivity-linear',
'user-guide/skills/bundled/productivity/productivity-maps',
'user-guide/skills/bundled/productivity/productivity-nano-pdf',
'user-guide/skills/bundled/productivity/productivity-notion',
'user-guide/skills/bundled/productivity/productivity-ocr-and-documents',
'user-guide/skills/bundled/productivity/productivity-powerpoint',
],
},
{
type: 'category',
label: 'red-teaming',
collapsed: true,
items: [
'user-guide/skills/bundled/red-teaming/red-teaming-godmode',
],
},
{
type: 'category',
label: 'research',
collapsed: true,
items: [
'user-guide/skills/bundled/research/research-arxiv',
'user-guide/skills/bundled/research/research-blogwatcher',
'user-guide/skills/bundled/research/research-llm-wiki',
'user-guide/skills/bundled/research/research-polymarket',
'user-guide/skills/bundled/research/research-research-paper-writing',
],
},
{
type: 'category',
label: 'smart-home',
collapsed: true,
items: [
'user-guide/skills/bundled/smart-home/smart-home-openhue',
],
},
{
type: 'category',
label: 'social-media',
collapsed: true,
items: [
'user-guide/skills/bundled/social-media/social-media-xurl',
],
},
{
type: 'category',
label: 'software-development',
collapsed: true,
items: [
'user-guide/skills/bundled/software-development/software-development-debugging-hermes-tui-commands',
'user-guide/skills/bundled/software-development/software-development-hermes-agent-skill-authoring',
'user-guide/skills/bundled/software-development/software-development-node-inspect-debugger',
'user-guide/skills/bundled/software-development/software-development-plan',
'user-guide/skills/bundled/software-development/software-development-python-debugpy',
'user-guide/skills/bundled/software-development/software-development-requesting-code-review',
'user-guide/skills/bundled/software-development/software-development-spike',
'user-guide/skills/bundled/software-development/software-development-subagent-driven-development',
'user-guide/skills/bundled/software-development/software-development-systematic-debugging',
'user-guide/skills/bundled/software-development/software-development-test-driven-development',
'user-guide/skills/bundled/software-development/software-development-writing-plans',
],
},
{
type: 'category',
label: 'yuanbao',
collapsed: true,
items: [
'user-guide/skills/bundled/yuanbao/yuanbao-yuanbao',
],
},
],
},
{
type: 'category',
label: 'Optional (installable)',
collapsed: true,
items: [
{
type: 'category',
label: 'autonomous-ai-agents',
collapsed: true,
items: [
'user-guide/skills/optional/autonomous-ai-agents/autonomous-ai-agents-blackbox',
'user-guide/skills/optional/autonomous-ai-agents/autonomous-ai-agents-honcho',
],
},
{
type: 'category',
label: 'blockchain',
collapsed: true,
items: [
'user-guide/skills/optional/blockchain/blockchain-base',
'user-guide/skills/optional/blockchain/blockchain-solana',
],
},
{
type: 'category',
label: 'communication',
collapsed: true,
items: [
'user-guide/skills/optional/communication/communication-one-three-one-rule',
],
},
{
type: 'category',
label: 'creative',
collapsed: true,
items: [
'user-guide/skills/optional/creative/creative-blender-mcp',
'user-guide/skills/optional/creative/creative-concept-diagrams',
'user-guide/skills/optional/creative/creative-meme-generation',
],
},
{
type: 'category',
label: 'devops',
collapsed: true,
items: [
'user-guide/skills/optional/devops/devops-cli',
'user-guide/skills/optional/devops/devops-docker-management',
],
},
{
type: 'category',
label: 'dogfood',
collapsed: true,
items: [
'user-guide/skills/optional/dogfood/dogfood-adversarial-ux-test',
],
},
{
type: 'category',
label: 'email',
collapsed: true,
items: [
'user-guide/skills/optional/email/email-agentmail',
],
},
{
type: 'category',
label: 'health',
collapsed: true,
items: [
'user-guide/skills/optional/health/health-fitness-nutrition',
'user-guide/skills/optional/health/health-neuroskill-bci',
],
},
{
type: 'category',
label: 'mcp',
collapsed: true,
items: [
'user-guide/skills/optional/mcp/mcp-fastmcp',
'user-guide/skills/optional/mcp/mcp-mcporter',
],
},
{
type: 'category',
label: 'migration',
collapsed: true,
items: [
'user-guide/skills/optional/migration/migration-openclaw-migration',
],
},
{
type: 'category',
label: 'mlops',
collapsed: true,
items: [
'user-guide/skills/optional/mlops/mlops-accelerate',
'user-guide/skills/optional/mlops/mlops-chroma',
'user-guide/skills/optional/mlops/mlops-clip',
'user-guide/skills/optional/mlops/mlops-faiss',
'user-guide/skills/optional/mlops/mlops-flash-attention',
'user-guide/skills/optional/mlops/mlops-guidance',
'user-guide/skills/optional/mlops/mlops-hermes-atropos-environments',
'user-guide/skills/optional/mlops/mlops-huggingface-tokenizers',
'user-guide/skills/optional/mlops/mlops-instructor',
'user-guide/skills/optional/mlops/mlops-lambda-labs',
'user-guide/skills/optional/mlops/mlops-llava',
'user-guide/skills/optional/mlops/mlops-modal',
'user-guide/skills/optional/mlops/mlops-nemo-curator',
'user-guide/skills/optional/mlops/mlops-peft',
'user-guide/skills/optional/mlops/mlops-pinecone',
'user-guide/skills/optional/mlops/mlops-pytorch-fsdp',
'user-guide/skills/optional/mlops/mlops-pytorch-lightning',
'user-guide/skills/optional/mlops/mlops-qdrant',
'user-guide/skills/optional/mlops/mlops-saelens',
'user-guide/skills/optional/mlops/mlops-simpo',
'user-guide/skills/optional/mlops/mlops-slime',
'user-guide/skills/optional/mlops/mlops-stable-diffusion',
'user-guide/skills/optional/mlops/mlops-tensorrt-llm',
'user-guide/skills/optional/mlops/mlops-torchtitan',
'user-guide/skills/optional/mlops/mlops-whisper',
],
},
{
type: 'category',
label: 'productivity',
collapsed: true,
items: [
'user-guide/skills/optional/productivity/productivity-canvas',
'user-guide/skills/optional/productivity/productivity-memento-flashcards',
'user-guide/skills/optional/productivity/productivity-siyuan',
'user-guide/skills/optional/productivity/productivity-telephony',
],
},
{
type: 'category',
label: 'research',
collapsed: true,
items: [
'user-guide/skills/optional/research/research-bioinformatics',
'user-guide/skills/optional/research/research-domain-intel',
'user-guide/skills/optional/research/research-drug-discovery',
'user-guide/skills/optional/research/research-duckduckgo-search',
'user-guide/skills/optional/research/research-gitnexus-explorer',
'user-guide/skills/optional/research/research-parallel-cli',
'user-guide/skills/optional/research/research-qmd',
'user-guide/skills/optional/research/research-scrapling',
],
},
{
type: 'category',
label: 'security',
collapsed: true,
items: [
'user-guide/skills/optional/security/security-1password',
'user-guide/skills/optional/security/security-oss-forensics',
'user-guide/skills/optional/security/security-sherlock',
],
},
{
type: 'category',
label: 'web-development',
collapsed: true,
items: [
'user-guide/skills/optional/web-development/web-development-page-agent',
],
},
],
},
],
},
],
},
{
type: 'category',
label: 'Messaging Platforms',
collapsed: true,
items: [
'user-guide/messaging/index',
'user-guide/messaging/telegram',
'user-guide/messaging/discord',
'user-guide/messaging/slack',
'user-guide/messaging/whatsapp',
'user-guide/messaging/signal',
'user-guide/messaging/email',
'user-guide/messaging/sms',
'user-guide/messaging/homeassistant',
'user-guide/messaging/mattermost',
'user-guide/messaging/matrix',
'user-guide/messaging/dingtalk',
'user-guide/messaging/feishu',
'user-guide/messaging/wecom',
'user-guide/messaging/wecom-callback',
'user-guide/messaging/weixin',
'user-guide/messaging/bluebubbles',
'user-guide/messaging/qqbot',
'user-guide/messaging/yuanbao',
'user-guide/messaging/open-webui',
'user-guide/messaging/webhooks',
],
},
{
type: 'category',
label: 'Integrations',
collapsed: true,
items: [
'integrations/index',
'integrations/providers',
'user-guide/features/mcp',
'user-guide/features/acp',
'user-guide/features/api-server',
'user-guide/features/honcho',
'user-guide/features/provider-routing',
'user-guide/features/fallback-providers',
'user-guide/features/credential-pools',
],
},
{
type: 'category',
label: 'Guides & Tutorials',
collapsed: true,
items: [
'guides/tips',
'guides/local-llm-on-mac',
'guides/daily-briefing-bot',
'guides/team-telegram-assistant',
'guides/python-library',
'guides/use-mcp-with-hermes',
'guides/use-soul-with-hermes',
'guides/use-voice-mode-with-hermes',
'guides/build-a-hermes-plugin',
'guides/automate-with-cron',
'guides/automation-templates',
'guides/cron-troubleshooting',
'guides/work-with-skills',
'guides/delegation-patterns',
'guides/github-pr-review-agent',
'guides/webhook-github-pr-review',
'guides/migrate-from-openclaw',
'guides/aws-bedrock',
'guides/azure-foundry',
],
},
{
type: 'category',
label: 'Developer Guide',
collapsed: true,
items: [
'developer-guide/contributing',
{
type: 'category',
label: 'Architecture',
items: [
'developer-guide/architecture',
'developer-guide/agent-loop',
'developer-guide/prompt-assembly',
'developer-guide/context-compression-and-caching',
'developer-guide/gateway-internals',
'developer-guide/session-storage',
'developer-guide/provider-runtime',
],
},
{
type: 'category',
label: 'Extending',
items: [
'developer-guide/adding-tools',
'developer-guide/adding-providers',
'developer-guide/adding-platform-adapters',
'developer-guide/memory-provider-plugin',
'developer-guide/context-engine-plugin',
'developer-guide/creating-skills',
'developer-guide/extending-the-cli',
],
},
{
type: 'category',
label: 'Internals',
items: [
'developer-guide/tools-runtime',
'developer-guide/acp-internals',
'developer-guide/cron-internals',
'developer-guide/environments',
'developer-guide/trajectory-format',
],
},
],
},
{
type: 'category',
label: 'Reference',
items: [
'reference/cli-commands',
'reference/slash-commands',
'reference/profile-commands',
'reference/environment-variables',
'reference/tools-reference',
'reference/toolsets-reference',
'reference/mcp-config-reference',
'reference/model-catalog',
'reference/skills-catalog',
'reference/optional-skills-catalog',
'reference/faq',
],
},
],
};
export default sidebars;