{
  "sources": [
    {
      "url": "https://raw.githubusercontent.com/0xbyt4/hermes-canvas/d6eeff0d6f7ec653262537bdd7bb001cc6d3c7f8/README.md",
      "quote": "Each\nbox is bound to files and a check command. Box status comes from hooks, not from the model: a box\nis \"doing\" when the agent writes one of its files, and \"done\" or \"failed\" when its check command\nexits. You steer the build by editing the canvas, before and during the build.\n\n![History replay of a 10-box build on the canvas](docs/replay.gif)\n\nThe replay shows one real build with Claude Haiku 5.5. Four subagents build in par"
    },
    {
      "url": "https://raw.githubusercontent.com/0xbyt4/hermes-canvas/d6eeff0d6f7ec653262537bdd7bb001cc6d3c7f8/canvas/hooks.py",
      "quote": "\"\"\"Hermes hook callbacks. Box status comes from here, not from the model.\n\n- `pre_tool_call` blocks writes to files of boxes the user removed. It uses only in-memory data.\n- `post_tool_call` binds writes to boxes (or records drift), sets check results from `terminal`\n  exit codes, and counts blocked writes.\n- `subagent_start` / `subagent_stop` map subagents to the box in their goal tag.\n- `pre_llm_call` gives the agent the pla"
    },
    {
      "url": "https://raw.githubusercontent.com/0xbyt4/hermes-canvas/d6eeff0d6f7ec653262537bdd7bb001cc6d3c7f8/tests/test_hooks.py",
      "quote": "def test_write_marks_box_doing_and_counts(hooks: CanvasHooks, doc_id: str) -> None:\n    write(hooks, f\"{ROOT}/src/payments/api/charge.ts\")\n    write(hooks, \"src/payments/api/charge.ts\")\n    api = hooks.store.get(doc_id).require(\"api\")\n    assert (api.status, api.writes, api.written) == (\"doing\", 2, [\"src/payments/api/charge.ts\"])\n\n\ndef test_write_outside_every_box_creates_one_drift_box(hooks: CanvasHooks, doc_id: str) -> None:"
    },
    {
      "url": "https://raw.githubusercontent.com/PhiBao/manyhands/bc5ec1cb57bb26a133f7967bd06dee6441409544/README.md",
      "quote": "**One Hermes, many people.** Every sender who talks to your bot gets their own identity, their own\nmemory, their own tool allowlist and their own approvals — and you can see who asked for what.\n\n```\nKiter  (owner)   → every tool\nMinh   (member)  → web_search, recall_search, manyhands_remember …\nGuest  (guest)   → web_search, manyhands_whoami\n```\n\nA Hermes gateway is a single-operator agent. The platform already carries per-sen"
    },
    {
      "url": "https://raw.githubusercontent.com/PhiBao/manyhands/bc5ec1cb57bb26a133f7967bd06dee6441409544/hooks.py",
      "quote": "def make_pre_tool_call(rt: Runtime):\n    def hook(**kwargs: Any) -> dict[str, Any] | None:\n        try:\n            return _pre_tool_call(rt, **kwargs)\n        except Exception:\n            return None\n\n    return hook\n\n\n# --------------------------------------------------------------------------- post_api_request\n\n\ndef _post_api_request(rt: Runtime, **kwargs: Any) -> None:\n    usage = kwargs.get(\"usage\") or {}\n    if not isin"
    },
    {
      "url": "https://raw.githubusercontent.com/PhiBao/manyhands/bc5ec1cb57bb26a133f7967bd06dee6441409544/tests/selftest.py",
      "quote": "#!/usr/bin/env python3\n\"\"\"manyhands self-test — stdlib only, no Hermes install required.\n\nRun it from a clean shell:\n\n    python3 tests/selftest.py\n\nIt stubs the two host modules the plugin imports (``plugins.plugin_storage`` for the data directory\nand ``hermes_cli.plugin_storage`` optionally), points the runtime at a temp SQLite file, and drives\nthe hooks, the tools, the approval transport and the policy directly. Every test"
    },
    {
      "url": "https://raw.githubusercontent.com/SilentHacks/look/7c01a94aa651adedaf27e5216598c6deef293050/README.md",
      "quote": "**Source beta for Apple Silicon Mac.** Use one display, native arm64 Python\n3.11–3.14, current stable Google Chrome in Applications, Git and Hermes 0.23.1\nor newer with a model configured. Start with a non-sensitive page.\n\n## Install\n\nRun interactively in a terminal. Review the scanner findings and dependency\npreparation before agreeing:\n\nThe immutable pin below includes the Look rename and security fixes. Catalog\nadmission re"
    },
    {
      "url": "https://raw.githubusercontent.com/SilentHacks/look/7c01a94aa651adedaf27e5216598c6deef293050/browser/browser_tasks.py",
      "quote": "\"\"\"Turn-owned, fixed browser verbs. No model-supplied code or selectors.\"\"\"\nfrom __future__ import annotations\n\nimport ipaddress\nimport re\nimport socket\nimport threading\nfrom urllib.parse import urlsplit\n\nfrom ..resolver.cursor_context import build_context, safe_url\nfrom .actions import control_requires_confirmation\n\n\nclass InvalidDestination(ValueError):\n    \"\"\"A rejected URL before any browser command, not a post-dispatch fa"
    },
    {
      "url": "https://raw.githubusercontent.com/SilentHacks/look/7c01a94aa651adedaf27e5216598c6deef293050/tests/test_extension.py",
      "quote": "class Peer:\n    def __init__(self, root, capability):\n        self.root = root\n        self.commands, self.mutations = [], 0\n        self.hold_focus = False\n        self.socket = socket.socket(socket.AF_UNIX)\n        self.socket.connect(str(root._path))\n        self.stream = self.socket.makefile('rwb', buffering=0)\n        send_message(self.stream, dict(op='pair', capability=capability, request=root.generation, extension_id=EX"
    },
    {
      "url": "https://raw.githubusercontent.com/maxcurrent420/agent-pool/5b973a5c3dfd8633840bb438208211da1c78f3cf/README.md",
      "quote": "A pool is a small team of agents sharing repos. Repos propagate as\nBLAKE3-verified, end-to-end encrypted bundles over Iroh over Tor\n(Tor is mandatory — Iroh-over-Tor is the only byte transport); coordination (tasks, claims, freezes) travels only\nthrough the Hermes gateway via Discord. The plugin never imports `discord`\nand never posts to Discord itself — it returns content for Hermes to post.\n\nThe plugin is a passive add-on. I"
    },
    {
      "url": "https://raw.githubusercontent.com/maxcurrent420/agent-pool/5b973a5c3dfd8633840bb438208211da1c78f3cf/propagation.py",
      "quote": "def _sandbox_scan(clone_dir: Path) -> dict:\n    \"\"\"Run the static scanner. Network-off via bubblewrap when available.\n\n    Falls back to running the same checks directly ONLY when no sandbox\n    binary exists; the caller records which mode ran in the report.\n    \"\"\"\n    import sys\n    script = Path(tempfile.mkdtemp(prefix=\"agentpool-audit-\")) / \"scan.py\"\n    script.write_text(_AUDIT_SCRIPT)\n    bwrap = shutil.which(\"bwrap\")"
    },
    {
      "url": "https://raw.githubusercontent.com/maxcurrent420/agent-pool/5b973a5c3dfd8633840bb438208211da1c78f3cf/tests/test_tor_gate.py",
      "quote": "def test_service_for_real_backend_gates_on_tor(monkeypatch, tmp_path):\n    # _service_for with transport=real must probe tor_ready before\n    # building the real transport and raise TorNotReady naming the unit.\n    import transport as transport_mod\n    monkeypatch.setattr(transport_mod, \"tor_ready\", _boom)\n    monkeypatch.setenv(\"AGENT_POOL_DATA_DIR\", str(tmp_path / \"data\"))\n    plugin = _load_plugin()\n    # plugin imports tra"
    },
    {
      "url": "https://raw.githubusercontent.com/EmotionalThrifty/arachne-flow/46db25db1a7ef13e2adbf12777b7c06941df0895/README.md",
      "quote": "Arachne Flow (`flowcanvas`) adds a visual workspace to Hermes Desktop where you connect tools, AI models, and media files like a wiring diagram — and run the whole pipeline from the canvas, from chat, or on a schedule.\n\n## What you can build\n\n- **Turn one idea into a 3D model** — Type a short prompt, generate a clean front image, create left, back, and right views in parallel, and feed all four angles into an Image-to-3D node"
    },
    {
      "url": "https://raw.githubusercontent.com/EmotionalThrifty/arachne-flow/46db25db1a7ef13e2adbf12777b7c06941df0895/engine/runner.py",
      "quote": "\"\"\"Run a flow: dependency order, parallel branches, cache, cancel, live events.\n\nEvery run executes in its own daemon thread with a private event loop, so the same code serves the\nasync REST handlers and the synchronous agent tools, and a run survives a hot reload of the engine\n(the thread keeps the code it started with). Live handles sit in ``env.state[\"active_runs\"]``.\n\"\"\"\nfrom __future__ import annotations\n\nimport asyncio\ni"
    },
    {
      "url": "https://raw.githubusercontent.com/EmotionalThrifty/arachne-flow/46db25db1a7ef13e2adbf12777b7c06941df0895/tests/test_tools.py",
      "quote": "\"\"\"A7: agent tools, /flow command and declared-vs-registered tool contracts.\"\"\"\nimport importlib.util\nimport json\nimport os\nimport re\nimport sys\nimport unittest\n\nimport helpers\nimport yaml\n\nE = helpers.load_engine()\nEXPECTED = {\"flow_list\", \"flow_get\", \"flow_node_types\", \"flow_apply\", \"flow_run\", \"flow_status\", \"flow_template_save\"}\nTOOLS = [{\"name\": \"echo\", \"toolset\": \"test\", \"parameters\": {\"type\": \"object\", \"properties\": {"
    },
    {
      "url": "https://raw.githubusercontent.com/akinduroifedayo/shadow/38173bc9c696df3b1f87b5b9b60ccecd36a260ab/README.md",
      "quote": "Shadow is a Hermes plugin. It replays recent saved turns on the model you want to try and your current model. A judge compares the answers. The result leads with the numbers: turns won, lost, and tied, and the cost difference per turn. It also shows the win rate with its 95% range, speed, tool steps, and broken calls. You can inspect individual turns and switch models with undo. If the test doesn't back the switch, Shadow warn"
    },
    {
      "url": "https://raw.githubusercontent.com/akinduroifedayo/shadow/38173bc9c696df3b1f87b5b9b60ccecd36a260ab/shadow/trial/safety.py",
      "quote": "import json\nimport threading\nfrom dataclasses import dataclass\nfrom pathlib import Path\n\nfrom ..common.copy import copy\nfrom .reads import scoped_path\n\n\n# Real read-only names the tool_execution middleware answers in memory. A replay\n# child may issue exactly these, plus Shadow's own read tools. Every other real\n# name stops the replay.\n_ANSWERED_READS = frozenset({\n    'read_file', 'search_files', 'skill_view', 'todo', 'todo_"
    },
    {
      "url": "https://raw.githubusercontent.com/akinduroifedayo/shadow/38173bc9c696df3b1f87b5b9b60ccecd36a260ab/tests/test_plugin.py",
      "quote": "def service(tmp_path):\n    ctx = FakeContext()\n    changed = threading.Event()\n    class ProgressStore(Store):\n        def save(self, record):\n            super().save(record)\n            changed.set()\n    def wait_for_change(_):\n        assert changed.wait(10)\n        changed.clear()\n    plugin = TrialPlugin(ctx, store=ProgressStore(tmp_path / 'trial.sqlite'), current=CURRENT,\n                         catalog=[CURRENT, TRIAL,"
    },
    {
      "url": "https://gist.githubusercontent.com/gtmcknight/594c47336546c8763e641b46cf9af4ec/raw/field.json",
      "quote": "d6eeff0d6f7ec653262537bdd7bb001cc6d3c7f8"
    },
    {
      "url": "https://gist.githubusercontent.com/gtmcknight/594c47336546c8763e641b46cf9af4ec/raw/RUN.md",
      "quote": "Everything lives under `test/scratch/`."
    }
  ]
}