{
  "sources": [
    {
      "url": "https://raw.githubusercontent.com/aydnOktay/hermes-done-bell-/3fa519a291d91b0e6c44bd42762190363ce80c39/README.md",
      "quote": "hermes plugins install C:\\Users\\aydin\\Desktop\\nous-puling\\plugins\\done-bell"
    },
    {
      "url": "https://raw.githubusercontent.com/aydnOktay/hermes-done-bell-/3fa519a291d91b0e6c44bd42762190363ce80c39/desktop/plugin.js",
      "quote": "    const ids = new Set([...Object.keys(prev), ...Object.keys(next)])\n    let finished = false\n    ids.forEach((id) => {\n      if (prev[id] && !next[id]) finished = true\n    })"
    },
    {
      "url": "https://raw.githubusercontent.com/NousResearch/hermes-official-plugins/e7a218f26db88426ab3e7376f0e000b6e356f5e7/homeassistant/README.md",
      "quote": "1. **Gateway platform `homeassistant`**: subscribes to Home Assistant's WebSocket event bus and\n   forwards `state_changed` events to the agent, with domain/entity filters and per-entity cooldowns."
    },
    {
      "url": "https://raw.githubusercontent.com/NousResearch/hermes-official-plugins/e7a218f26db88426ab3e7376f0e000b6e356f5e7/homeassistant/tools.py",
      "quote": "    allow = _HASS_ENTITY_ALLOWLIST or (get_secret(\"HASS_ENTITY_ALLOWLIST\", \"\") or \"\")\n    deny = _HASS_ENTITY_DENYLIST or (get_secret(\"HASS_ENTITY_DENYLIST\", \"\") or \"\")\n    return _parse_entity_filter_patterns(allow), _parse_entity_filter_patterns(deny)"
    },
    {
      "url": "https://raw.githubusercontent.com/plutoskiz/herms-gate/26b6f797cd3fb3a4f1669953060d6ea3317ac04e/gate.py",
      "quote": "    if isinstance(parsed, (dict, list)):\n        rebuilt = _walk(parsed, strict, reports)\n        report = _merge(reports)\n        return (json.dumps(rebuilt, ensure_ascii=False) if report[\"changed\"] else None), report"
    },
    {
      "url": "https://raw.githubusercontent.com/plutoskiz/herms-gate/26b6f797cd3fb3a4f1669953060d6ea3317ac04e/README.md",
      "quote": "- Stopping a turn from `pre_llm_call` needs a Hermes version with turn blocking. On 0.21.5 the\n  plugin adds a note to the turn instead, telling the model what was hidden and not to act on it."
    },
    {
      "url": "https://raw.githubusercontent.com/aidonerightcorp/omni-fabric-runtime/be28e1a7b8c2a518e2947393d9b6a5a97066eba8/__init__.py",
      "quote": "                train_reward=float(args[\"train_reward\"]),\n                holdout_reward=float(args[\"holdout_reward\"]),\n                thinking_off_holdout_reward=float(args.get(\"thinking_off_holdout_reward\") or 0.0),"
    },
    {
      "url": "https://raw.githubusercontent.com/ryanomara/hermes-plugin-receipts/c7df9d35f6234eca9adeaa030e450b5ac8ea10e6/receipts/plugin.py",
      "quote": "    ctx.register_cli_command(\n        name=\"receipts\",\n        help=\"Render a session as a self-contained HTML receipt, or a week as a process digest\","
    },
    {
      "url": "https://raw.githubusercontent.com/ryanomara/hermes-plugin-receipts/c7df9d35f6234eca9adeaa030e450b5ac8ea10e6/README.md",
      "quote": "A receipt contains the session's actual content: your prompts, the agent's replies, tool arguments, and command output. Secrets are masked (rule 7), but that masking is pattern-based — it is a safety net, not a guarantee."
    },
    {
      "url": "https://raw.githubusercontent.com/CalQuity/rung/970be4f506c496586a7fec8b818491ceab602e4b/hermes-plugin/tools.py",
      "quote": "    payload = json.dumps({\"cwd\": str(_start_dir(changed_paths or [])), \"stop_hook_active\": attempt >= MAX_NUDGES})\n    try:\n        done = _run([\"hook\", \"stop\"], _start_dir(changed_paths or []), QUICK_TIMEOUT_S, stdin=payload)"
    },
    {
      "url": "https://raw.githubusercontent.com/CalQuity/rung/970be4f506c496586a7fec8b818491ceab602e4b/hermes-plugin/README.md",
      "quote": "- **Shell commands.** The tools run the Rung CLI in the session's working folder. `rung_check` runs the\n  commands recorded in that project's `rung.toml`, which are the project's own test, lint and build\n  commands and any scanners you installed. Review `rung.toml` as you would a Makefile. The hook only\n  reads Rung's local ledger."
    },
    {
      "url": "https://raw.githubusercontent.com/ChienNguyen23/hermes-citation-guard/6916b2ae7f561765883c57b32441db049e246113/__init__.py",
      "quote": "    ncbi_key = str(_cfg(\"ncbi_api_key\", \"\") or \"\")"
    },
    {
      "url": "https://raw.githubusercontent.com/ChienNguyen23/hermes-citation-guard/6916b2ae7f561765883c57b32441db049e246113/sources.py",
      "quote": "    def _get(self, url: str, accept: str = \"application/json\") -> str:\n        key = accept + \" \" + url\n        hit = self.cache.get(key)"
    },
    {
      "url": "https://raw.githubusercontent.com/sanpeita/hermes-calendar-agenda/cb7faabcdcef8ada4b721730a995e5d60327018d/calendar_agenda_service.py",
      "quote": "TIME_ZONE_NAME = \"Asia/Tokyo\"\nTIME_ZONE = ZoneInfo(TIME_ZONE_NAME)\nCALENDAR_ID = \"primary\""
    },
    {
      "url": "https://raw.githubusercontent.com/user1303836/kumi/7f8b0de9f52d4bca526914c469e084a554388486/hermes-plugin/tools.py",
      "quote": "        try:\n            from agent.secret_scope import get_secret  # Hermes's public secret route\n            value = get_secret(generate.KEY_ENV)\n        except Exception:\n            return None"
    },
    {
      "url": "https://raw.githubusercontent.com/user1303836/kumi/7f8b0de9f52d4bca526914c469e084a554388486/hermes-plugin/README.md",
      "quote": "  change only while the runtime that made it is running, and a few only your DAW's own Undo takes back (in Live, a rack\n  chain, a device move or a pad load; a script in any DAW): Kumi says so."
    },
    {
      "url": "https://raw.githubusercontent.com/WestWaters/hermes-live-translator/315085f89fc675b119e1a412ef38873c1365c6da/README.md",
      "quote": "Hearing, translating and speaking run in separate processes so they overlap. Each voice model runs in its own\nenvironment (they pin incompatible libraries)."
    },
    {
      "url": "https://raw.githubusercontent.com/WestWaters/hermes-live-translator/315085f89fc675b119e1a412ef38873c1365c6da/live_translate/server.py",
      "quote": "            host = self.headers.get(\"Host\", \"\")\n            if self.headers.get(\"X-LT-Token\") != TOKEN or (origin and origin not in (f\"http://{host}\", \"null\",\n                                                                                     \"tauri://localhost\",\n                                                                                     \"http://tauri.localhost\")):"
    },
    {
      "url": "https://raw.githubusercontent.com/darshak26/hermes-exam-desk/72340210bb92c1f38831dbff271423785fda2f65/README.md",
      "quote": "Keep `plugins.isolation: in_process`. With `host` isolation the AI review cannot\nreach the model, and evaluation returns `503`."
    },
    {
      "url": "https://raw.githubusercontent.com/dayzell/MLOps_Assistant_Hermes_x_AirFlow/1417f40f29c28fd7aac571758c34475c6dc11ad9/README.md",
      "quote": "This branch contains only the plugin. The full project, on the `main` branch of\n[the repository](https://github.com/dayzell/MLOps_Assistant_Hermes_x_AirFlow), adds:\n\n- the unit tests, with Airflow v1 and v2 mocked;\n- a disposable Airflow 2.9 / 3.4 demo stack with demo DAGs;\n- end-to-end and sandbox smoke tests;\n- the architecture notes."
    }
  ]
}
