{"_id":"@metaharness/host-hermes","_rev":"6-2df21123049fcd93a93a97b8dd7ac873","name":"@metaharness/host-hermes","dist-tags":{"latest":"0.1.5"},"versions":{"0.1.0":{"name":"@metaharness/host-hermes","version":"0.1.0","keywords":["agent-harness","hermes-agent","nous-research","mcp","host-adapter","ruflo"],"license":"MIT","_id":"@metaharness/host-hermes@0.1.0","maintainers":[{"name":"ruvnet","email":"ruv@ruv.net"}],"homepage":"https://github.com/ruvnet/agent-harness-generator","bugs":{"url":"https://github.com/ruvnet/agent-harness-generator/issues"},"dist":{"shasum":"a4948db706cff7a61254dc85831ffcf1c2cf5a49","tarball":"https://registry.npmjs.org/@metaharness/host-hermes/-/host-hermes-0.1.0.tgz","fileCount":7,"integrity":"sha512-1covE/WBVch+9YkA9l6CAPfzmF19gNIPvzw0AspmMPsyeoeJYVPfXtnsIz/2nZNoL9RSb3rrQhNhAN+9RvT70w==","signatures":[{"sig":"MEYCIQCiFXSzXJTBew+vmiFJ+ghH3UfwVUgnuPvT1aASqf67jwIhAJMmmFblWU1bVlKu/itafiyvVUm97HfwO8FwtydcuRyl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12619},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"5b81b587a95a11537dac220392b949e14934e873","scripts":{"lint":"tsc --noEmit","test":"vitest run --passWithNoTests","build":"tsc"},"_npmUser":{"name":"ruvnet","email":"ruv@ruv.net"},"repository":{"url":"git+https://github.com/ruvnet/agent-harness-generator.git","type":"git","directory":"packages/host-hermes"},"_npmVersion":"11.10.0","description":"Hermes Agent (NousResearch) host adapter for agent-harness-generator (MCP + <think>/<tool_call> scrubbing)","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@metaharness/kernel":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","typescript":"^5.4.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/host-hermes_0.1.0_1781486116267_0.15076088971452806","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@metaharness/host-hermes","version":"0.1.1","keywords":["agent-harness","hermes-agent","nous-research","mcp","host-adapter","ruflo"],"license":"MIT","_id":"@metaharness/host-hermes@0.1.1","maintainers":[{"name":"ruvnet","email":"ruv@ruv.net"}],"homepage":"https://github.com/ruvnet/agent-harness-generator","bugs":{"url":"https://github.com/ruvnet/agent-harness-generator/issues"},"dist":{"shasum":"6b5761175bcd4596c7bcc5793480a3f8e4ae2510","tarball":"https://registry.npmjs.org/@metaharness/host-hermes/-/host-hermes-0.1.1.tgz","fileCount":7,"integrity":"sha512-C9v5wIPtJpN2l92LoyE1t9CHdPcix+mscdtakDKW+bTc6W86cVRtcypEJaMvIzlwk8K9cc4WrDa8MkF/TQ8Umw==","signatures":[{"sig":"MEUCIQDUZOsz3FT+ap4nB4t60GmU97+EFjwLPFoz2pOauzPjRwIgKJ7vHMvBOAXDGvlX9Zpq7T3u5+hQWz4aIzfOOuOGo3c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14857},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"db1af4134a9c8330bacaa1a53cba2a21d28b78ad","scripts":{"lint":"tsc --noEmit","test":"vitest run --passWithNoTests","build":"tsc"},"_npmUser":{"name":"ruvnet","email":"ruv@ruv.net"},"repository":{"url":"git+https://github.com/ruvnet/agent-harness-generator.git","type":"git","directory":"packages/host-hermes"},"_npmVersion":"10.9.7","description":"Hermes Agent (NousResearch) host adapter for agent-harness-generator (MCP + <think>/<tool_call> scrubbing)","directories":{},"_nodeVersion":"22.22.2","dependencies":{"@metaharness/kernel":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","typescript":"^5.4.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/host-hermes_0.1.1_1781637572915_0.8554017832489194","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@metaharness/host-hermes","version":"0.1.2","keywords":["agent-harness","hermes-agent","nous-research","mcp","host-adapter","ruflo"],"license":"MIT","_id":"@metaharness/host-hermes@0.1.2","maintainers":[{"name":"ruvnet","email":"ruv@ruv.net"}],"homepage":"https://github.com/ruvnet/agent-harness-generator","bugs":{"url":"https://github.com/ruvnet/agent-harness-generator/issues"},"dist":{"shasum":"1f89cad102790db536c2a26f988f4439d6d8a6e1","tarball":"https://registry.npmjs.org/@metaharness/host-hermes/-/host-hermes-0.1.2.tgz","fileCount":7,"integrity":"sha512-h771rmTo4LRKQIlkuY47IxFai1WjGM+3+sIZYo478R/IjRiDrCyWkx5HRRCgKlPHTXDT6qrdJrrlbZxwBnliyg==","signatures":[{"sig":"MEQCIBaBfSd30QlqtJVIADiL4xXhaSfQ4ayyA4O8rGU79CcCAiBwAXV8YOXCEyrKo1dFWJ6NE5LP3hvXdLnoWY6+RVpO3g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14858},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"82b3ce543ca7807e8bf95115563e81a601fc0738","scripts":{"lint":"tsc --noEmit","test":"vitest run --passWithNoTests","build":"tsc"},"_npmUser":{"name":"ruvnet","email":"ruv@ruv.net"},"repository":{"url":"git+https://github.com/ruvnet/agent-harness-generator.git","type":"git","directory":"packages/host-hermes"},"_npmVersion":"10.9.7","description":"Hermes Agent (NousResearch) host adapter for agent-harness-generator (MCP + <think>/<tool_call> scrubbing)","directories":{},"_nodeVersion":"22.22.2","dependencies":{"@metaharness/kernel":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","typescript":"^5.4.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/host-hermes_0.1.2_1781736106881_0.06996865532726981","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@metaharness/host-hermes","version":"0.1.3","keywords":["agent-harness","hermes-agent","nous-research","mcp","host-adapter","ruflo"],"license":"MIT","_id":"@metaharness/host-hermes@0.1.3","maintainers":[{"name":"ruvnet","email":"ruv@ruv.net"}],"homepage":"https://github.com/ruvnet/agent-harness-generator","bugs":{"url":"https://github.com/ruvnet/agent-harness-generator/issues"},"dist":{"shasum":"b88e09d11ef29ebe0bca6294063b92533c36bf45","tarball":"https://registry.npmjs.org/@metaharness/host-hermes/-/host-hermes-0.1.3.tgz","fileCount":7,"integrity":"sha512-rpbnO9RCt3kIjA3gdaCyvPUY+bX++4D/nyyAgrIQyPOzAaB4rZqNMY+V7ejhk2nbgMhj5Zy9ptIuqU/oxKjEOA==","signatures":[{"sig":"MEUCIBcPs7UvbZmC4Is2LOAcLfCjKKKxbdO5vtAyJVGJQfPpAiEAkw8HDfUyViuEVTZc7DMwFNi/mn47HkxtRWUg08e1q40=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16706},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"tsc --noEmit","test":"vitest run --passWithNoTests","build":"tsc"},"_npmUser":{"name":"ruvnet","email":"ruv@ruv.net"},"repository":{"url":"git+https://github.com/ruvnet/agent-harness-generator.git","type":"git","directory":"packages/host-hermes"},"_npmVersion":"10.9.7","description":"Hermes Agent (NousResearch) host adapter for agent-harness-generator (MCP + <think>/<tool_call> scrubbing)","directories":{},"_nodeVersion":"22.22.2","dependencies":{"@metaharness/kernel":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","typescript":"^5.4.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/host-hermes_0.1.3_1786722964799_0.019435943955164126","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@metaharness/host-hermes","version":"0.1.4","keywords":["agent-harness","hermes-agent","nous-research","mcp","host-adapter","ruflo"],"license":"MIT","_id":"@metaharness/host-hermes@0.1.4","maintainers":[{"name":"ruvnet","email":"ruv@ruv.net"}],"homepage":"https://github.com/ruvnet/agent-harness-generator","bugs":{"url":"https://github.com/ruvnet/agent-harness-generator/issues"},"dist":{"shasum":"c81e659c904081be3372165e8b69dab5a60c6867","tarball":"https://registry.npmjs.org/@metaharness/host-hermes/-/host-hermes-0.1.4.tgz","fileCount":7,"integrity":"sha512-4+04Knn39VWA7JDXCq+0DaW8we6RlkeRXq3Zun5d7FxXbkpWyk4qojJhTRKoebL2YaJ/gvnLDZY7yorXEVnn0Q==","signatures":[{"sig":"MEUCIQCiIO8YSmSgNVZ+angeV54hRc1pbmBHTjv4msBXEcuyqgIgJXIDJa7hv/o+NFQafVvosGPu4D9OM00ZPBvYbCOgJes=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCmr36Xn1Tln9hH2f+SxbBuvxx99UroRQZ8Ey30DgZzPwIgZhcuY5iIjoFv/b75SefAui6C26zVQ3BXYwtqC7E/dh0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17224},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"tsc --noEmit","test":"vitest run --passWithNoTests","build":"tsc"},"_npmUser":{"name":"ruvnet","email":"ruv@ruv.net"},"repository":{"url":"git+https://github.com/ruvnet/agent-harness-generator.git","type":"git","directory":"packages/host-hermes"},"_npmVersion":"10.9.8","description":"Hermes Agent (NousResearch) host adapter for agent-harness-generator (MCP + <think>/<tool_call> scrubbing)","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@metaharness/kernel":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","typescript":"^5.4.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/host-hermes_0.1.4_1790437830943_0.7260672680905182","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"_id":"@metaharness/host-hermes@0.1.5","bugs":{"url":"https://github.com/ruvnet/metaharness/issues"},"dist":{"shasum":"14e5cf921da52add1ab4b2d0d8ac1342bb0edf6b","tarball":"https://registry.npmjs.org/@metaharness/host-hermes/-/host-hermes-0.1.5.tgz","fileCount":7,"integrity":"sha512-kBnAwJqe0snDKId5LrC/Z0n+6eDGpbCqrr/Z/5LELpQrV+lp5l6KgyHXFHCnkB2/BPBU8EbMfCUb5qFsWH2dig==","signatures":[{"sig":"MEUCIQCb0PFtWreKBJT6NL0RfDglQeR3U1+844z6m6A7PKjeTAIgdyNXTskuAAkPi+YiGIccZdalrJ3zQWx4bBvzNWmolyo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCodmg1QJmU0XLg5BACRETCIhl0nEXtxQtXnXszn0RBkgIgTgPp+aCRydfhWWzBZJqgRLequPZqKoFQAoy8+czHHSE="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@metaharness%2fhost-hermes@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20304},"main":"./dist/index.js","name":"@metaharness/host-hermes","type":"module","_from":"file:/home/runner/work/metaharness/metaharness/dist-release/metaharness-host-hermes-0.1.5.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"license":"MIT","scripts":{"lint":"tsc --noEmit","test":"vitest run --passWithNoTests","build":"tsc"},"version":"0.1.5","_npmUser":{"name":"ruvnet","email":"ruv@ruv.net"},"homepage":"https://ruv.io","keywords":["metaharness","agent-harness","hermes-agent","nous-research","mcp","model-context-protocol","host-adapter","tool-calling"],"_resolved":"/home/runner/work/metaharness/metaharness/dist-release/metaharness-host-hermes-0.1.5.tgz","_integrity":"sha512-kBnAwJqe0snDKId5LrC/Z0n+6eDGpbCqrr/Z/5LELpQrV+lp5l6KgyHXFHCnkB2/BPBU8EbMfCUb5qFsWH2dig==","repository":{"url":"git+https://github.com/ruvnet/metaharness.git","type":"git","directory":"packages/host-hermes"},"_npmVersion":"10.9.9","description":"Hermes Agent (Nous Research) host adapter for MetaHarness: MCP wiring plus scrubbing of <think> and <tool_call> blocks.","directories":{},"maintainers":[{"name":"ruvnet","email":"ruv@ruv.net"}],"_nodeVersion":"22.23.4","dependencies":{"@metaharness/kernel":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.12","typescript":"^5.4.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/host-hermes_0.1.5_1794227093299_0.7822770214211219"}}},"time":{"created":"2026-06-15T01:15:16.070Z","modified":"2026-11-09T12:24:53.758Z","0.1.0":"2026-06-15T01:15:16.397Z","0.1.1":"2026-06-16T19:19:33.075Z","0.1.2":"2026-06-17T22:41:47.016Z","0.1.3":"2026-08-14T15:56:04.964Z","0.1.4":"2026-09-26T15:50:31.039Z","0.1.5":"2026-11-09T12:24:53.399Z"},"bugs":{"url":"https://github.com/ruvnet/metaharness/issues"},"license":"MIT","homepage":"https://ruv.io","keywords":["metaharness","agent-harness","hermes-agent","nous-research","mcp","model-context-protocol","host-adapter","tool-calling"],"repository":{"url":"git+https://github.com/ruvnet/metaharness.git","type":"git","directory":"packages/host-hermes"},"description":"Hermes Agent (Nous Research) host adapter for MetaHarness: MCP wiring plus scrubbing of <think> and <tool_call> blocks.","maintainers":[{"name":"ruvnet","email":"ruv@ruv.net"}],"readme":"# @metaharness/host-hermes\n\n<!-- ruv-seo:start (ADR-356) -->\nTurns a MetaHarness harness spec into a Hermes Agent (Nous Research) `cli-config.yaml` plus optional MCP server files, and exports `scrubHermesBlocks()` to strip `<think>` and `<tool_call>` blocks from Hermes output.\n\n**Supported environments:** Node.js 20+ on Linux, macOS and Windows. ESM only (`import`, not `require`). Pure JavaScript with no native build step; `@metaharness/kernel` is used only for its `HarnessSpec` and `HostAdapter` types.\n\n## Quickstart\n\n```bash\nnpm install @metaharness/host-hermes\n```\n\nSave this as `quickstart.mjs` and run `node quickstart.mjs`:\n\n```js\nimport adapter from '@metaharness/host-hermes';\n\nconst files = adapter.generateConfig({\n  name: 'my-bot',\n  description: 'demo harness',\n  mcpServers: [{ name: 'my-bot', command: ['node', './bin/mcp.js'] }],\n});\nconsole.log(`host: ${adapter.name}`);\nfor (const [path, body] of Object.entries(files)) {\n  console.log(`${path}  (${body.split('\\n').length} lines)`);\n}\n```\n\nExpected output:\n\n```text\nhost: hermes\ncli-config.yaml  (9 lines)\noptional-mcps/my-bot.yaml  (5 lines)\n```\n\n**Next:** [`@metaharness/hermes`](https://www.npmjs.com/package/@metaharness/hermes) — scaffold a complete, doctor-checked harness for this host in one command (`npx @metaharness/hermes my-bot`).\n\n**Where it fits:** `npx metaharness new <name> --host hermes` adds this package as a dependency of the generated harness, and the generated `__tests__/smoke.test.ts` imports it, so `npm test` in that harness fails if the adapter is missing or broken.\n<!-- ruv-seo:end -->\n\n## Reference\n\n[Hermes Agent (NousResearch)](https://hermes-agent.nousresearch.com/docs/) host adapter for the [agent-harness-generator](https://github.com/ruvnet/agent-harness-generator) project.\n\nGenerates the host-specific files a Hermes-targeted harness needs:\n\n- `cli-config.yaml` with the system prompt and scrubbing flags\n- `optional-mcps/*.yaml` per MCP server\n- `scrubHermesBlocks()` helper exported for runtime use\n\n## Hermes-4 quirk (mandatory handling)\n\nHermes-4 models emit `<think>...</think>` reasoning blocks AND occasionally raw `<tool_call>` text instead of using the OpenAI-compatible function-calling channel. See [hermes-agent#741](https://github.com/NousResearch/hermes-agent/issues/741).\n\n**This adapter scrubs both** — same pattern as ruflo's `scrubReasoningBlocks`. The `cli-config.yaml` sets both flags:\n\n```yaml\nscrub_think_blocks: true\nscrub_stray_tool_calls: true\n```\n\n## Two distinct Hermes projects — do not conflate\n\n| Project | What it is |\n|---|---|\n| [NousResearch/Hermes-Function-Calling](https://github.com/NousResearch/Hermes-Function-Calling) | OLDER function-calling reference for Hermes 2/3 |\n| [NousResearch/hermes-agent](https://github.com/NousResearch/hermes-agent) | CURRENT long-running agent runtime with MCP support |\n\nThis adapter targets the **current** runtime.\n\n## Usage\n\n```js\nimport adapter, { scrubHermesBlocks } from '@metaharness/host-hermes';\n\nconst config = adapter.generateConfig({\n  name: 'my-bot',\n  systemPrompt: 'You are a helpful agent.',\n  mcpServers: [{ name: 'my-bot', command: ['npx', '-y', 'my-bot', 'mcp'] }],\n});\n// config['cli-config.yaml'] = '<YAML>'\n// config['optional-mcps/my-bot.yaml'] = '<YAML>'\n\n// At runtime:\nconst safe = scrubHermesBlocks(modelResponse);\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}