{"_id":"gnhf","_rev":"48-e3970cafe3dc5a5869f8b7b9de1193df","name":"gnhf","dist-tags":{"latest":"0.1.49"},"versions":{"0.1.0":{"name":"gnhf","version":"0.1.0","_id":"gnhf@0.1.0","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"95da8fbc75c36225feec13020657889a381bd7b9","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.0.tgz","fileCount":4,"integrity":"sha512-IP/tAgVbzDzPLHr7Sy28z+BfJ4IsaiDIkW4ynvX7JAfXJc7bCEAZ4btIB9A3D7rsxzA9aPaMH8itjbYUTSjMeQ==","signatures":[{"sig":"MEQCIDxaX68Gh7IvFp0FYyLo2u2JJYrUl9tQqn3tZLWsDufDAiBpl8gZnDJD0TSSgRs/Cqz3Vqb459dPhSc4274SZGEsfA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49399},"type":"module","engines":{"node":">=20"},"gitHead":"c8ae6d21f4cf0b493386c00bdaa023b947d02451","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"vitest run","build":"tsdown","start":"node dist/cli.js","format":"prettier --write src","format:check":"prettier --check src","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"kunchenguid","email":"kunchenguid@gmail.com"},"_npmVersion":"11.8.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.13.1","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.0_1774991339695_0.4395776384747043","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"gnhf","version":"0.1.2","_id":"gnhf@0.1.2","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"02361ae421757711af760cd64c6d58fb66bcc60c","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.2.tgz","fileCount":4,"integrity":"sha512-ek0GT/ULakeVPm6RqrXHmUxCUnheR5s8Y51VnQ+MsoyCX7cecsAV7luEvGIyERAtWY4/D16ngrvRbI7kC+YV6A==","signatures":[{"sig":"MEQCIBVU6kiePz90AT4Ac//3ToLbW6DJBS56sr2AWTJKGdXkAiB63UvSZXuOs5bi3ov9Nx27xzOop1c9ZwqBTo6lLkSRNw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50102},"type":"module","engines":{"node":">=20"},"gitHead":"4a10bbfee2b77c2100c256f9178ccc5bda19b01a","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"vitest run","build":"tsdown","start":"node dist/cli.js","format":"prettier --write src","format:check":"prettier --check src","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.9.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.0","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.2_1774997717525_0.5481402653560854","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"gnhf","version":"0.1.3","_id":"gnhf@0.1.3","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"0b4da7921c36446886ccc473203f4959a14aa823","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.3.tgz","fileCount":4,"integrity":"sha512-ZZRPzJrFo42/CgT4wNj4Fq/oZkF125AUho5nN+OEfvsJFS2qvdQTvAwk/gpcr6vevEic+5Xh6YgVR8BI9oWKwg==","signatures":[{"sig":"MEUCIQD53i/jybNLqeeNT9jjZFM4nnwJor+YlGlulSWBCUyr1wIgKrygADJeXTD+3WAc/N34rGBaFwfv/M7SpfZtn+EfYs8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50309},"type":"module","engines":{"node":">=20"},"gitHead":"1847259f599400303297a33c00ffafe6abd17e2a","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"vitest run","build":"tsdown","start":"node dist/cli.js","format":"prettier --write src","format:check":"prettier --check src","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.9.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.0","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.3_1775001259125_0.9294951093212771","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"gnhf","version":"0.1.4","_id":"gnhf@0.1.4","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"07d29ab991e9f14bb39bfa6ecfa382adf6bc3650","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.4.tgz","fileCount":4,"integrity":"sha512-/U+4ur9Ig0DcxkmYSMKxNb9vp1jNhzEmF24H2l4bT7GugBJgAEiL4rTM0u/kNLbZiaeJUqsmQzGJcIHy3LliEQ==","signatures":[{"sig":"MEUCIDl2Ojm1/A4NY/qT3KKono5YaZOywtWfDpsoja7AKjPeAiEAm5k6lvfRypzKkOZ7jmRlvE7aEdcstDh0wNEAtoxekJE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53602},"type":"module","engines":{"node":">=20"},"gitHead":"e809f01b428ad3937d18d1d2f9eda70dcd356ed2","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"vitest run","build":"tsdown","start":"node dist/cli.js","format":"prettier --write src","format:check":"prettier --check src","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.9.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.0","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.4_1775020973748_0.4253313525205764","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"gnhf","version":"0.1.5","_id":"gnhf@0.1.5","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"255ad02c928f099580c4440eeb9bc1537777767f","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.5.tgz","fileCount":4,"integrity":"sha512-Ve+Sq0ZIrVIMWTbxTr9Kmmrv+yAcLMbt6faTU8S/1+UHwWPj3aqHCWC8PNvXZE8WZQd9UZYapNplAaZBKB/SNA==","signatures":[{"sig":"MEUCIHxPNzfn5tUJR3ekN4Y7FG06IjYLNmhgLRtdN7ztBvwrAiEAkdw09vcUwNavbhHMQ30F7dslznomhTyC1aPXedU8ejI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":54717},"type":"module","engines":{"node":">=20"},"gitHead":"dcabaaee5d5c554569baec9d736a14f696df1195","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"vitest run","build":"tsdown","start":"node dist/cli.js","format":"prettier --write src","format:check":"prettier --check src","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.9.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.0","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.5_1775022636862_0.7246398878043006","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"gnhf","version":"0.1.6","_id":"gnhf@0.1.6","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"5b4676d524f3d55efe0d0780a93dbe9dca8871bd","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.6.tgz","fileCount":4,"integrity":"sha512-RjCTsTcMBBC0latjJlJ1pM8ORX5MXqeRIm4GTdCNkS4u7py/XKgUjUEZpa4wPhHJ0YEYkifnm7O+TsPgOwbCSw==","signatures":[{"sig":"MEUCIQCQEBNFGFLir1BxUTgacE/aNf0GmatbZN+sSVCk7jX/XwIgbWuCOTR5qWEjoHKzMt0IUU91OhvFtKB7QBPXrHi0QHM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58076},"type":"module","engines":{"node":">=20"},"gitHead":"3a46aa6f49a5b675ff496cdb2a3aae4b694aaaed","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"vitest run","build":"tsdown","start":"node dist/cli.js","format":"prettier --write src","format:check":"prettier --check src","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.9.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.0","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.6_1775025518368_0.9711998402721751","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"gnhf","version":"0.1.7","_id":"gnhf@0.1.7","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"a9a098d23c2edd228c646716555132e8c5a61ac4","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.7.tgz","fileCount":4,"integrity":"sha512-+YZvk2VpBMNvJXLoVFjidavp2Tonf2cuomGdlZS/K1Uxttg0CxryeK0DgLg9J95u7D/rvV8r4j+VpKAqA2jPmQ==","signatures":[{"sig":"MEQCIC2X1nAwfDJY1MHhvsIrvmQX9bCRMg84jYERB7pu8WXMAiAxiwkB6GfsL86o4FTRXoy/akoz1XfAPNhbU8sUabA0EA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":89985},"type":"module","engines":{"node":">=20"},"gitHead":"bf8562f6e3f1fd98a93329e678b5ebd3431200f6","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"vitest run","build":"tsdown","start":"node dist/cli.js","format":"prettier --write src","format:check":"prettier --check src","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.9.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.0","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.7_1775079290695_0.04618250265876256","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"gnhf","version":"0.1.8","_id":"gnhf@0.1.8","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"4be4c198b5ffd281ca4249fcc8993d0dd5b5ae4e","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.8.tgz","fileCount":4,"integrity":"sha512-nY47EsEdKOIYdo9J1AkaF1w8EIaD90EvN2EJDHNk0KRUEYhlJ+hR+RLEUSZUmQK0a6m75rCPaR4NLK77TpcBcw==","signatures":[{"sig":"MEUCID/g49g2EdntU8nZv/yhUbsbJOt7fjCp6EQCf3amQMZAAiEA2mv5xMdvMRPb7bonP2Ef2oqTERA6V7nZhfGRmQlqKnM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91276},"type":"module","engines":{"node":">=20"},"gitHead":"71b823fddd5f3656485faf54de95205acc9ab685","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"vitest run","build":"tsdown","start":"node dist/cli.js","format":"prettier --write src","format:check":"prettier --check src","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.9.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.0","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.8_1775111313528_0.9047601008447381","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"gnhf","version":"0.1.9","_id":"gnhf@0.1.9","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"b744720821a953c193c7bad370250039aa72dc58","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.9.tgz","fileCount":4,"integrity":"sha512-/lB870yIY2btlcvj0SHP7opBT21OxqNpjMEQ1FBcizfMayA640kX13RTTiwLqRQrUAZqjzVn0U+KyVsuJnwcSA==","signatures":[{"sig":"MEUCIDaH5pN6hw3HFjXeXxcIdsfluhkV72HTRozcHuULO/HxAiEA8CLUO+DewOtfYP0cguAsp/LLY9KdxjP+ZUQG7DzSQ3o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":109900},"type":"module","engines":{"node":">=20"},"gitHead":"a38f80cf4f7461cf6e89c1b1a3e735913fd3bb56","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"npm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"npm run build && vitest run test/e2e.test.ts","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude test/e2e.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.11.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.1","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.9_1775202686570_0.23149182269185253","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"gnhf","version":"0.1.10","_id":"gnhf@0.1.10","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"af5adf9ae01f45525e23c64361c59b537b037dca","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.10.tgz","fileCount":4,"integrity":"sha512-TjHsDD69iihtn7C695yA9cS9jqfdAFF0ztW7rdDLOewlXzE/rnMS8qv9MO3DpHZRaR+SpMvXNU+FSdwfMkInJQ==","signatures":[{"sig":"MEUCIEt8TzeKXtF1C7Z01fPWiQ4Uq39qoeEmGYKx9z6kqdgNAiEApDjUP2gjAdzzKkLce+rY/FvAnalmn/NDrwkw248/Viw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":114961},"type":"module","engines":{"node":">=20"},"gitHead":"c2af81e7331fcfc33413196d7b517cdcae1aa749","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"npm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"npm run build && vitest run test/e2e.test.ts","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude test/e2e.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.11.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.1","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.10_1775244144673_0.1275201171640643","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"gnhf","version":"0.1.11","_id":"gnhf@0.1.11","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"dc589c461d22f174876a966af1f7b55eb8f43771","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.11.tgz","fileCount":4,"integrity":"sha512-l27YOjknkomA18uxOPTPUz6Ae3MF56jWilARZ95BRq0v92st4fQ8Lqwz9u0CgiHIAKWChh08EQrWu2+PH7DdPQ==","signatures":[{"sig":"MEYCIQDUAaGj+4p4+MKZANw8Z7QXj3W72K1rUy5AX1P3VWfsDgIhAJeW6sml0696w8hnqzI6EFaMwTOAx+H2UmZ5BJS+QVpb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":122654},"type":"module","engines":{"node":">=20"},"gitHead":"579a2589fe48a86cac1091dacb8baf4dfbd8fc89","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"npm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"npm run build && vitest run test/e2e.test.ts","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude test/e2e.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.11.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.1","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.11_1775291224172_0.4649625303759257","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"gnhf","version":"0.1.12","_id":"gnhf@0.1.12","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"41c37358e8549e9bae4706e65d69f0a691b064a8","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.12.tgz","fileCount":4,"integrity":"sha512-ZBuAh1HNkOzZHVzrkObxxvuIzONzyoYGSvDZkvuxVP+/D/heyeoAlyXZsyBGljzdgHgq0M31BLEWyPa6zqC/rg==","signatures":[{"sig":"MEUCIQChQwhw8rYxB4bCdNsicgrwDkKejqjz7QLXqL9aOKK4QgIgAb6WTcUAQw6wUOxhpyUBmZfQ+N4gDvplcKFnhkka3JY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":123371},"type":"module","engines":{"node":">=20"},"gitHead":"08be6fbe9c2bfa479162d566f2517c3cbb2a688f","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"npm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"npm run build && vitest run test/e2e.test.ts","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude test/e2e.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.11.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.1","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.12_1775354472158_0.9412090652002594","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"gnhf","version":"0.1.13","_id":"gnhf@0.1.13","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"e74adca5d5a120714c1688534997ee367e996e94","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.13.tgz","fileCount":4,"integrity":"sha512-2Bn9KCsO9scUgquw8GIXxYP7xP4GytaZrubBB2WyR++wNobNqSymVTYj3xWuGXVND/CwPMot+MILR4hEH1Pilw==","signatures":[{"sig":"MEYCIQCUIGv3ybNL3mg0mdgQX6UWSEW5ZJhFqbmX5yTefxIFEwIhAPys6mu61xqof3UouRRbZzOvx63LEaPayqtimqkp7Qi/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":143464},"type":"module","engines":{"node":">=20"},"gitHead":"11385d43ba4101e170bec0f9a79df7b46c357b06","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"npm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"npm run build && vitest run test/e2e.test.ts","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude test/e2e.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.11.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.1","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.13_1775457335874_0.1383935863997725","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"gnhf","version":"0.1.14","_id":"gnhf@0.1.14","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"a9eabbc9c0fdcb498933c125fe709514f365bb7c","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.14.tgz","fileCount":4,"integrity":"sha512-9q+By4wfD9FeqCkc5FUzG/fyd9LZyel9+rYmrTAZKEhV7aDAudiervGVBrH2HNOuAAQ1tvoiCszHen+KM9+BDA==","signatures":[{"sig":"MEYCIQDf8YR/smfPKCuL+biuHNSIoddYljt3U9GOzYF/tabs/QIhANwVyVNrWb4FJZWvxDi9kZ/PHxE6qV9MnusPgOIZO3Kb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":143007},"type":"module","engines":{"node":">=20"},"gitHead":"2a616c71e19300d3598fe259b0b82d05689d03c7","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"npm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"npm run build && vitest run test/e2e.test.ts","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude test/e2e.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.11.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.1","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.14_1775586298616_0.9440138906099795","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"gnhf","version":"0.1.15","_id":"gnhf@0.1.15","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"e4cdc970ce92f4b12e49eb9e14771b7da21f5323","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.15.tgz","fileCount":4,"integrity":"sha512-bdBU+3kGeXCF4XEJYsMM2bIOjuP2ag0DjkwVkDmc3R17F/TcF4KtIPfNCZH1ERglILr34lkBvyHiX1QfNSL7qw==","signatures":[{"sig":"MEQCICfdgWL3trxbdxcCODN6qC/7KB+d3GA1eeuDe4kXBGNeAiAAqeypv3kT+MvC5faawe74hxHhMvfvtb2E8K38T5cEUg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":143416},"type":"module","engines":{"node":">=20"},"gitHead":"bdeb8f8c69388dc3a41e558ec753676ebe56c365","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"npm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"npm run build && vitest run test/e2e.test.ts","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude test/e2e.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.11.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.1","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.15_1775673638593_0.11023995774626649","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"gnhf","version":"0.1.16","_id":"gnhf@0.1.16","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"7750769392480362cd15c1ba7759bc38af60bd06","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.16.tgz","fileCount":4,"integrity":"sha512-sH7ZYQvPRSyMrPFvfPbMWRpvU51BVXtgxeVSK4S5hZlaplHmCvWaPqO4obP8623ydmy20SwCFdOp9BhhEQ/RsQ==","signatures":[{"sig":"MEUCIQCliwf9bd8yMG4miNC9Ws0vo1J88xsAcPGMxw+Ofi+I/wIgYziKrAG9yeO9V2CviIR+9XceYFDPSywNsVt7ACTg/mo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":149218},"type":"module","engines":{"node":">=20"},"gitHead":"9caec4b9240e3ac283cf78633fe0ff0c2f4b15b6","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"npm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"npm run build && vitest run test/e2e.test.ts","typecheck":"tsc -p tsconfig.typecheck.json --noEmit","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude test/e2e.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.11.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.1","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.16_1775699298164_0.15950827011465618","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"gnhf","version":"0.1.17","_id":"gnhf@0.1.17","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"04466a451e17ca8a185cdac6bd25f2c9e872ba06","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.17.tgz","fileCount":4,"integrity":"sha512-cHMj+gk8dx18mjHgPzSWN5EOuFky+sFdDwJDxftOPExKSS4J4s0ZDvLt2+BX1uBFVR2EknFQH2c5BFbWI+tyTQ==","signatures":[{"sig":"MEUCIQDj4U4t1bKn5/U5dwIRieVNtaIANWdyfEPMA8zA+cb7yQIgJ5NG7HytALlCI7Fxq+sOLEcSOmyyoH7EZZed1fAJvMs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":149312},"type":"module","engines":{"node":">=20"},"gitHead":"0ad9d1748e83ab621f03c6b93dcf5c54139782b1","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"npm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"npm run build && vitest run test/e2e.test.ts","typecheck":"tsc -p tsconfig.typecheck.json --noEmit","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude test/e2e.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.11.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.1","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.17_1775801026789_0.4120855429246799","host":"s3://npm-registry-packages-npm-production"}},"0.1.18":{"name":"gnhf","version":"0.1.18","_id":"gnhf@0.1.18","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"3341e3dd1fc1d5b20c993a4c20c3319c50f406cd","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.18.tgz","fileCount":4,"integrity":"sha512-lDoQl9MTZ8qWNuIfJcBCXZc/IdYE7OGAEp618mVzzqyjisZ/mMokBzu2zOX/fzzuZBBaw/SQndoHRkMUWIH1rQ==","signatures":[{"sig":"MEUCIGA9HGt0JLn7fwehDWAOj9ejh0F/0RnFpZvulIMQ624nAiEAnY2Q6K2Ng+RcyyWVSC4md6ujNdSl2cveXzcDqZoODDc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":152684},"type":"module","engines":{"node":">=20"},"gitHead":"1eb40bbd54dddc0b99a1aa701feef396cbf0ccfe","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"npm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"npm run build && vitest run test/e2e.test.ts","typecheck":"tsc -p tsconfig.typecheck.json --noEmit","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude test/e2e.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.11.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.1","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.18_1775863141410_0.46410813537932105","host":"s3://npm-registry-packages-npm-production"}},"0.1.19":{"name":"gnhf","version":"0.1.19","_id":"gnhf@0.1.19","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"b1492a96e578eb35ae7f4071434e6549b2db33cc","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.19.tgz","fileCount":4,"integrity":"sha512-cnNpUXYybpz5KqKCyuuq7pAVL9lW3SVDudLLcujkFmIFO+HEz6sqU8tTj4oO/mdVM0JjkVReVCwWAaTCw9bkZQ==","signatures":[{"sig":"MEUCIQCkunENUw8esQq9z6K4S0Raq49n44ZomAV+1q8i5o1xYgIgHc3HfgqMdcHzLjcWau87UIdBe4rQv7WcoIMA5VIn0Co=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":152845},"type":"module","engines":{"node":">=20"},"gitHead":"2d515feb4766d29b28d81bd375330cd8e8a33d9d","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"npm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"npm run build && vitest run test/e2e.test.ts","typecheck":"tsc -p tsconfig.typecheck.json --noEmit","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude test/e2e.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.11.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.1","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.19_1776023270324_0.35894741891426274","host":"s3://npm-registry-packages-npm-production"}},"0.1.20":{"name":"gnhf","version":"0.1.20","_id":"gnhf@0.1.20","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"e83ae812ed3e94c9631a28b562792642aecf784d","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.20.tgz","fileCount":4,"integrity":"sha512-iUo3WoxlTW/YTwrFUT6MF9A4xM+GpUaYsrKZ1gO3hsbc4vOTGbXPgaI+F91zCyOzUV+SYxNeOYZHR1CfWYfE5w==","signatures":[{"sig":"MEQCIEbnxa65ZkrG9MwXGfzVuM9KXCvu7kkT01RQzVTVIjvtAiBCk/f/ivm7mc4ct5b/XyE4FoDmdwthxjnxsp4MPR8u6g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.20","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":152821},"type":"module","engines":{"node":">=20"},"gitHead":"59ffb03f94a4cb61e342be9ee3c8108cad9d3349","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"npm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"npm run build && vitest run test/e2e.test.ts","typecheck":"tsc -p tsconfig.typecheck.json --noEmit","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude test/e2e.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.11.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.1","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.20_1776411020035_0.8239840150143944","host":"s3://npm-registry-packages-npm-production"}},"0.1.21":{"name":"gnhf","version":"0.1.21","_id":"gnhf@0.1.21","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"dbe7c4da6f17fb152a12386e3489465151559c9b","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.21.tgz","fileCount":4,"integrity":"sha512-NuQgM5zdr3A07o13eTRexevwytPUu0hUCnC/skkdrGax6kkhoG3vZ6diz4rLOeNrkVms4Z9gyXTm/3Lc1drYew==","signatures":[{"sig":"MEUCIF5TaLqNNVVPZQWWYXXMgtuwVaJ56lEgs3CCN3bVp/7OAiEAjLAf9bSAMweN0rhTMRtH2C6ff7fc6X1EhDFczkKHy+I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.21","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":154466},"type":"module","engines":{"node":">=20"},"gitHead":"c42cfa503d1fd0f8178f618e61a56a305c0da8d1","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"npm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"npm run build && vitest run test/e2e.test.ts","typecheck":"tsc -p tsconfig.typecheck.json --noEmit","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude test/e2e.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.11.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.1","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.21_1776451397498_0.5368359191310903","host":"s3://npm-registry-packages-npm-production"}},"0.1.22":{"name":"gnhf","version":"0.1.22","_id":"gnhf@0.1.22","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"00bcc2523c3ed7701ff1efdbe1f344a13875df05","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.22.tgz","fileCount":4,"integrity":"sha512-UnpfBE/2BoRCb2bGUNFJxvo1aQSWT3Yc5oSOBc0IukstahFT3bg/xivTRf7aVKwjDQ7FtGr82RlJtEjKxUzQQQ==","signatures":[{"sig":"MEYCIQDk4Njw3mYi62WHhAghBE4JBy8Wq/WrnXrR8uuYB8DKuwIhAKTM8j/IVdIBJsRnl3utT+Fhu0bFKQrTOBUj4byKHalh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.22","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":157442},"type":"module","engines":{"node":">=20"},"gitHead":"aa19958862e992dd0120ae4c26133c4672d9aa54","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"npm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"npm run build && vitest run test/e2e.test.ts","typecheck":"tsc -p tsconfig.typecheck.json --noEmit","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude test/e2e.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.11.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.1","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.22_1776462223204_0.5447073186785125","host":"s3://npm-registry-packages-npm-production"}},"0.1.23":{"name":"gnhf","version":"0.1.23","_id":"gnhf@0.1.23","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"2e9b593362790e7a8ef712bde6ee1caacc42e7db","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.23.tgz","fileCount":4,"integrity":"sha512-F88mVi7xb56aNxifPPfLtw9MhX/VWO4aXECROzYGBeX9UYlKgB6Fb1DBchnksYZ9RRTbSQeYaL/V+JwC04ce+w==","signatures":[{"sig":"MEYCIQCmavgMJ4IsZ78pLdibX0lOXDDDrYdW+6As4Qg7eQEGlgIhAMSCFUTZj/eIKhDHZR8sUfZaYxssSt7Z4VG6Y1TMGgo4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.23","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":158783},"type":"module","engines":{"node":">=20"},"gitHead":"3c09bb3e9b18a561ae6a0f9b45b19bd0bd1e61c3","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"npm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"npm run build && vitest run test/e2e.test.ts","typecheck":"tsc -p tsconfig.typecheck.json --noEmit","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude test/e2e.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.11.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.1","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.23_1776479533156_0.8826774005230011","host":"s3://npm-registry-packages-npm-production"}},"0.1.24":{"name":"gnhf","version":"0.1.24","_id":"gnhf@0.1.24","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"6d362932d8ba262241284a4e44d6abafe138f8e5","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.24.tgz","fileCount":4,"integrity":"sha512-amUSh/49WcAWcnYeIIZq5E7Fmg3ks4TCPfpb4NG56nL0IizOW7JxEBvpv3wJP6jNOv4kKN9yR72ueAyb+2N67A==","signatures":[{"sig":"MEYCIQD2dFUg8KcZ5HF8/2XldtYfznXm903/2NQYKBoeyz6lXQIhAJ2jSu+omVUnDgHZlG/SgRrcb/0ZoBUBwyH9PrHZY4TG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.24","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":162244},"type":"module","engines":{"node":">=20"},"gitHead":"9093bc8579617d5b55721c9a478dcda2b27a6459","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"npm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"npm run build && vitest run test/e2e.test.ts","typecheck":"tsc -p tsconfig.typecheck.json --noEmit","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude test/e2e.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.11.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.1","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.24_1776923858484_0.5296592247753231","host":"s3://npm-registry-packages-npm-production"}},"0.1.25":{"name":"gnhf","version":"0.1.25","_id":"gnhf@0.1.25","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"5a79b45a95f0337044780ba444788cb4fbfee9d2","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.25.tgz","fileCount":4,"integrity":"sha512-fEv565lW1W5z0jUb7sFdltoxIYMVER8/oUZ4far3BnL9Yz/5BrbacKdPYJ5iAlGMLlLudtnJedLd0DZoDW6aYA==","signatures":[{"sig":"MEUCIQD/eY0MGxbuFYWNgm2oknIZcssL3N8On6bK3idmrVMiKAIgQZoMb+14zmC5QPm480gsX7TYtoz5fG9S4zB4H3cQZM4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.25","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":163109},"type":"module","engines":{"node":">=20"},"gitHead":"ba90e3cf0e07d5e3aec992421f9dd1488e03b5ef","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"npm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"npm run build && vitest run test/e2e.test.ts","typecheck":"tsc -p tsconfig.typecheck.json --noEmit","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude test/e2e.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.11.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.1","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.25_1776967296068_0.20043532102871664","host":"s3://npm-registry-packages-npm-production"}},"0.1.26":{"name":"gnhf","version":"0.1.26","_id":"gnhf@0.1.26","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"232a91b26d51743fb7a759da040c5056ae2f33bb","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.26.tgz","fileCount":4,"integrity":"sha512-QqoNo8tFMdXxjx+jP2hxK2uudX1LLeatDo6+22G58Qnqy8Ph49+RDvMUvya2D3bxEw/E+k9M4nBw1DAeHYsUqQ==","signatures":[{"sig":"MEUCIDGSY2ACERJzLsnDhrTnieBoFTzPpTq2Qohd51z1LxwhAiEAl0QMGshSbPlRzl/ZB0x601ZSVE3uGBj6/tGMuF+PYas=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.26","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":165263},"type":"module","engines":{"node":">=20"},"gitHead":"7c5a6b91c322588a441ed4213c09726a6c52d96d","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"npm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"npm run build && vitest run test/e2e.test.ts","typecheck":"tsc -p tsconfig.typecheck.json --noEmit","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude test/e2e.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.11.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.1","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.26_1777016182445_0.950369707241776","host":"s3://npm-registry-packages-npm-production"}},"0.1.27":{"name":"gnhf","version":"0.1.27","_id":"gnhf@0.1.27","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"e6e34d7a122a107a3f52347917a089e6ae02eb5d","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.27.tgz","fileCount":4,"integrity":"sha512-GKUFK2ZmBo7Y2nxGGzmnqooBKLoVRSRsiUFCRXB0A1GZCmzv0k/IAnMDDTgyZa+958BUIrs3Vav+Jcyqtj3lQg==","signatures":[{"sig":"MEUCIQD/I1Vefs1eHKtnadHfcZGw7LG0YnXdM/pUDsTWVuF0KwIgViA/QPNGTt4RHXQOTIN6TfGQbk/kmOnJmbxb0XYJdFE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.27","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":192130},"type":"module","engines":{"node":">=20"},"gitHead":"d3368ad080b664636d06529435a83f6327515d39","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"npm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"npm run build && vitest run test/e2e.test.ts","typecheck":"tsc -p tsconfig.typecheck.json --noEmit","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude test/e2e.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.11.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.1","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.27_1777478693265_0.2370874460681831","host":"s3://npm-registry-packages-npm-production"}},"0.1.28":{"name":"gnhf","version":"0.1.28","_id":"gnhf@0.1.28","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"d9a09f724259d873472aa5b288b83a5854ad51a0","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.28.tgz","fileCount":4,"integrity":"sha512-Ogz9o24oGEr3YP1jDywXOQpr8Y8nRdqIsC6sPrvpswUzOMnq7dsn52a5kPhIpy6cVBJq+taXkVCkERg6NbEfAg==","signatures":[{"sig":"MEUCIExLbHrcJ8ZWM8SWyqKD0I121Md/Dj4AjYxY7gJKBchNAiEAnvYDwO4C0VVoj/CPnBXR5wtiylu4EcZbqMwQWtG7P0U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.28","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":193629},"type":"module","engines":{"node":">=20"},"gitHead":"5ec05e4e4c3564d7c221ffda5d818078903347d4","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"npm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"npm run build && vitest run test/e2e.test.ts","typecheck":"tsc -p tsconfig.typecheck.json --noEmit","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude test/e2e.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.11.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.1","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.28_1777495782204_0.11374622694723935","host":"s3://npm-registry-packages-npm-production"}},"0.1.29":{"name":"gnhf","version":"0.1.29","_id":"gnhf@0.1.29","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"829d0ee2f4abc48bd0741c0ed84175db6276cd4a","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.29.tgz","fileCount":4,"integrity":"sha512-x3ZdkVOcc/vs4FSnsoDWrBXuwCeB5LQIwGCc9wMzX8qFd0Er1wTRpS7j3SOZuhZovAdMn+bkcNUimQ/RkpSDrw==","signatures":[{"sig":"MEQCIACrmRznxlnlOTgwMfA2cwVVuMuui2GJWWYU8Fp4SdNQAiAh+tIwF2I0zg4fkTpYr7gCvxhFEt3qZIvH1YA4770J9Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.29","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":193629},"type":"module","engines":{"node":">=20"},"gitHead":"5d4f0337ff76e7e8561a66cb8a6d934a2728c432","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"npm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"npm run build && vitest run test/e2e.test.ts","typecheck":"tsc -p tsconfig.typecheck.json --noEmit","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude test/e2e.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.11.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.1","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.29_1777498518958_0.8771718768899368","host":"s3://npm-registry-packages-npm-production"}},"0.1.30":{"name":"gnhf","version":"0.1.30","_id":"gnhf@0.1.30","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"d0c5722b15ed7f8f6e9f2f09df7a16d0df2d3a3d","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.30.tgz","fileCount":4,"integrity":"sha512-5Yg7FfYCkrWMaIYt58zdeij+l3zVKRgomi5HFPQeCoSE0UghQIgjhD77jqbUtPiJ5GETXarX27MEPdSkGIZS+w==","signatures":[{"sig":"MEYCIQD4Zzch1vbyn3p4PjxSwcY1O23SEb0CGtQC0VLhcjguZgIhAOtm51yHvgbdFdn9eHzbQbL5qcVYDHa11I0f8KeRbnAB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.30","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":196016},"type":"module","engines":{"node":">=20"},"gitHead":"479be2a47fd5122bd892211b98a0a85e71a49bab","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"npm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"npm run build && vitest run test/e2e.test.ts","typecheck":"tsc -p tsconfig.typecheck.json --noEmit","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude test/e2e.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.11.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.1","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.30_1777506604872_0.97591684592812","host":"s3://npm-registry-packages-npm-production"}},"0.1.31":{"name":"gnhf","version":"0.1.31","_id":"gnhf@0.1.31","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"eeec80a6c4f0e6aa5eb9c72ba447e01fb05e5e51","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.31.tgz","fileCount":4,"integrity":"sha512-xIbsiQr549iXvYB3AjYwXyeWcHboDlRmdWEvP727Dxn9RMIzf2/9KWt40bewZcMahiDqZp5VXYaAQ8l/bnG82Q==","signatures":[{"sig":"MEUCIQD8C43lsjFXXbtL40NIBLM6eGElViJJut5ZW126z/qtugIgV1IMqZfDegJpA2LTkFId53qduB+b4Yqq3+rhR2Mf0d4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.31","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":628802},"type":"module","engines":{"node":">=20"},"gitHead":"33807a824439e5751d25ea56dce01ac5b1140da8","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"npm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"npm run build && vitest run e2e/","typecheck":"tsc -p tsconfig.typecheck.json --noEmit","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude \"e2e/**\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.11.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.1","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"acpx":"^0.6.1","eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","@vitest/coverage-v8":"^4.1.2","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.31_1777747386029_0.17795262479738438","host":"s3://npm-registry-packages-npm-production"}},"0.1.32":{"name":"gnhf","version":"0.1.32","_id":"gnhf@0.1.32","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"7691206c51f259057e04bc58cc482822740b8d0b","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.32.tgz","fileCount":4,"integrity":"sha512-zRFgQDeNEBCD9NWsPCOAmdlT3Bfwq+3YHW/4XN1hPGzosggyF2JWrh2mmPmGFfUB4Rqhs7Dw19MYeXgChNd+Lg==","signatures":[{"sig":"MEUCIAKXFKiYVKnJHf+BBwVe8hmB4+UBWFfbld1rIrkW7ojYAiEApoOlFkZPc7Up5bgqfqTOyJ5qaomvWxCAL9TA+tkpx9I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.32","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":628838},"type":"module","engines":{"node":">=20"},"gitHead":"e0c8d63a5729a70a89444c4784e0fec161d29878","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"npm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"npm run build && vitest run e2e/","typecheck":"tsc -p tsconfig.typecheck.json --noEmit","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude \"e2e/**\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.11.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.1","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"acpx":"^0.6.1","eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","@vitest/coverage-v8":"^4.1.2","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.32_1777747667929_0.6220188826350708","host":"s3://npm-registry-packages-npm-production"}},"0.1.33":{"name":"gnhf","version":"0.1.33","_id":"gnhf@0.1.33","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"277ed29ecc15274f5055beebeba0e646a46fc563","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.33.tgz","fileCount":4,"integrity":"sha512-AlovMgo8+suC92HeNWdVmGkEqYL72Z+PcKy4pQfVfe/MZ42C4grbovZk+S/eARbsd3jbMqG8G0HI9vMDSJHVsA==","signatures":[{"sig":"MEQCIB+IxkpelWBx/NV1gtLrE0rtoM2dDivMRiJfCY7SLsxKAiBqQI+DZ7R6ksIjzyG8BcSYw0Bl9ldyKGUEdY4t0V8KcQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.33","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":633876},"type":"module","engines":{"node":">=20"},"gitHead":"f767cb0f287c2e53d86e72097cf412223da85c25","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"npm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"npm run build && vitest run e2e/","typecheck":"tsc -p tsconfig.typecheck.json --noEmit","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude \"e2e/**\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.11.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.1","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"acpx":"^0.6.1","eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","acp-mock":"^1.1.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","@vitest/coverage-v8":"^4.1.2","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.33_1777775507065_0.41535474023215624","host":"s3://npm-registry-packages-npm-production"}},"0.1.34":{"name":"gnhf","version":"0.1.34","_id":"gnhf@0.1.34","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"7f2195efdc81f74a72ef11a38e3559a0805399cc","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.34.tgz","fileCount":4,"integrity":"sha512-VD12jhqOn4BntyHR3hwZiwVt0jEjUbCZYJXvi8s8rAd8S3ZSXbsGoZC+mR5TedO2e5FiTehp/Fg9DEFuwCDMMg==","signatures":[{"sig":"MEQCIE1tBrMDGxVLLB8YDrX1SLfbA7EhRRWbWElVlT9YgsJAAiBgvh2Oy0A6aKi2RGoXWPiW4ujPkV8D58GxgO5QyoBOBQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.34","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":643040},"type":"module","engines":{"node":">=20"},"gitHead":"011f3d38ed8e8ef4177c3512f1df3579255c7a0a","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"npm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"npm run build && vitest run e2e/","typecheck":"tsc -p tsconfig.typecheck.json --noEmit","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude \"e2e/**\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.11.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.1","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"acpx":"^0.6.1","eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","acp-mock":"^1.1.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","@vitest/coverage-v8":"^4.1.2","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.34_1777786703113_0.5184666572184584","host":"s3://npm-registry-packages-npm-production"}},"0.1.35":{"name":"gnhf","version":"0.1.35","_id":"gnhf@0.1.35","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"388f396aef13d4894700072de45c398f19d3a43f","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.35.tgz","fileCount":4,"integrity":"sha512-W/6hGo9AReQhNBnhXgS8MRrLKVwvblHNxEhvHeZos6OWYkG/cWn0B4fcHbI2P8wHPdIlfTYLfHX3tG6qKxJk0Q==","signatures":[{"sig":"MEUCIQDbwDblyn06CEHVNyp02hRFlRmMaB9dyTgFOoN+yrrRWgIgNSBX89TUTmvv/podELA+qZ/rwofHbUQb8/sxvbIZIsw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.35","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":643434},"type":"module","engines":{"node":">=20"},"gitHead":"95d3b1405413d5b4b62113316b71ab025b356e02","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"npm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"npm run build && vitest run e2e/","typecheck":"tsc -p tsconfig.typecheck.json --noEmit","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude \"e2e/**\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.11.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.1","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"acpx":"^0.6.1","eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","acp-mock":"^1.1.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","@vitest/coverage-v8":"^4.1.2","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.35_1777846794404_0.20128353093418605","host":"s3://npm-registry-packages-npm-production"}},"0.1.36":{"name":"gnhf","version":"0.1.36","_id":"gnhf@0.1.36","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"9caa526b31912693ee950a93f431fcec8a1fe924","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.36.tgz","fileCount":4,"integrity":"sha512-2O87EUV2OHUkcPkgQMWNWQ8VGILl3bMnx490ZEIRffTsoXQA+62bmpLpnA5MJD/oPWh9QwF+KFKvZGb4+HryfQ==","signatures":[{"sig":"MEYCIQC7SY67Y9/13idyktPwy4mEuTSZIQC45z4Yt1/IeXHSVgIhAMTz5q06/xHTeb3a/zJbo6ws0JXXuyJ4QR5ANCmqSKUu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.36","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":650118},"type":"module","engines":{"node":">=20"},"gitHead":"bc62c780c32e01fce77bd7fe924259440db22059","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"npm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"npm run build && vitest run e2e/","typecheck":"tsc -p tsconfig.typecheck.json --noEmit","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude \"e2e/**\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.11.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.1","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"acpx":"^0.6.1","eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","acp-mock":"^1.1.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","@vitest/coverage-v8":"^4.1.2","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.36_1778022588716_0.9481542350309715","host":"s3://npm-registry-packages-npm-production"}},"0.1.37":{"name":"gnhf","version":"0.1.37","_id":"gnhf@0.1.37","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"430a235dea29df8e39f4703dbe14acbf29b8b6f3","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.37.tgz","fileCount":4,"integrity":"sha512-p//WWfdUGxn2cdmwI2emQ4BlIDvPNtZCEc3I4W7CKg3M4gxdHTS5TpwTlRcgLJcyppWcrjhhRSOlbFqFu2Zhwg==","signatures":[{"sig":"MEYCIQCQtxcU/a5sBxqcTqoD9C3zT09m7DwFA6Shamkx9cK4GwIhAOT1J8hqkJzIHu1u9PcniOnijHBIlGGKD7xe91YbKYZg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.37","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":654187},"type":"module","engines":{"node":">=20"},"gitHead":"80e1a447d8ca6427bd4dc9932a5c9f12500d38e2","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"npm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"npm run build && vitest run e2e/","typecheck":"tsc -p tsconfig.typecheck.json --noEmit","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude \"e2e/**\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.11.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.1","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"acpx":"^0.6.1","eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","acp-mock":"^1.1.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","@vitest/coverage-v8":"^4.1.2","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.37_1778029812277_0.48832285719734236","host":"s3://npm-registry-packages-npm-production"}},"0.1.38":{"name":"gnhf","version":"0.1.38","_id":"gnhf@0.1.38","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"0c76842ab0456f1c348f5824d8febf8462ffeb99","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.38.tgz","fileCount":4,"integrity":"sha512-+D2hbKSRZjXeQFhtbytr+OZvKUx28CF5SXNaG43JbA/fnAK9QKCP4GJ720cb7A/m3jL45ak2tnYAqDXLNRxg/Q==","signatures":[{"sig":"MEUCIGu9guF3u83c/GmJQtqaQ25mBNq/GYjAw0Jrx/9EtPO4AiEA7UKPAgSfhC5qJ8G59NoUgiCzl5RNDkrlYlFdrRrMXfE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.38","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":655039},"type":"module","engines":{"node":">=20"},"gitHead":"804bd5892f313b7364e0e43728532ab4e55c1ab0","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"npm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"npm run build && vitest run e2e/","typecheck":"tsc -p tsconfig.typecheck.json --noEmit","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude \"e2e/**\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.11.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.1","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"acpx":"^0.6.1","eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","acp-mock":"^1.1.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","@vitest/coverage-v8":"^4.1.2","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.38_1778047122778_0.7086196438223291","host":"s3://npm-registry-packages-npm-production"}},"0.1.39":{"name":"gnhf","version":"0.1.39","_id":"gnhf@0.1.39","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"4b4637ffc1ec7a620cb811450372317837b1443e","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.39.tgz","fileCount":4,"integrity":"sha512-dZczmylYPpNYRRk9zprRYe1re6AsO/qNFS7+mNFl1F4zdD2IxIkbASj5UV22VPPEDuZbZvK/7Sgwg/osGk2wlA==","signatures":[{"sig":"MEYCIQDOqRHmBgCU3dZS6zb1K05B2SyBynShSoIS4IJUCEhYBgIhAMD41qTcVAqHrs2JE5obNGKG3UMZiUKn8jAgzrGnhzU3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.39","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":655867},"type":"module","engines":{"node":">=20"},"gitHead":"d189b3442a46d9add67cf4ea4c3302834f9359ba","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"npm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"npm run build && vitest run e2e/","typecheck":"tsc -p tsconfig.typecheck.json --noEmit","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude \"e2e/**\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.11.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.1","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"acpx":"^0.6.1","eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","acp-mock":"^1.1.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","@vitest/coverage-v8":"^4.1.2","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.39_1778082995503_0.8529306511517374","host":"s3://npm-registry-packages-npm-production"}},"0.1.40":{"name":"gnhf","version":"0.1.40","_id":"gnhf@0.1.40","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"a57353f46545bfdf120e4dc55e46d1fc2224b9b4","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.40.tgz","fileCount":4,"integrity":"sha512-dFbTtn1NsSirTAiOvtqZ9TeSeKsNEEqMOdPEKs6vOXb4qbao77jPPPiaJ4WcEYNObth5uyXJDRJYCDBEQLsyqA==","signatures":[{"sig":"MEUCIQCARYgF+sOwJUmkuIFA1HBnQoFHorje2uApLUXERu7ZEAIgONV4BqCWdTRd75D8QL7+G52fg/beeIs5I9zy4n1Nxd8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.40","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":657342},"type":"module","engines":{"node":">=20"},"gitHead":"8702e7c0dc7cfad7393ee8d17d16e88f9c4e5a6a","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"npm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"npm run build && vitest run e2e/","typecheck":"tsc -p tsconfig.typecheck.json --noEmit","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude \"e2e/**\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.11.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.1","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"acpx":"^0.6.1","eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","acp-mock":"^1.1.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","@vitest/coverage-v8":"^4.1.2","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.40_1778088050633_0.45243439431440047","host":"s3://npm-registry-packages-npm-production"}},"0.1.41":{"name":"gnhf","version":"0.1.41","_id":"gnhf@0.1.41","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"952eb633a4bdfa65c8c4ac96045473bcba6f08d0","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.41.tgz","fileCount":5,"integrity":"sha512-+/0LyPJSIanjvSPnNdO+B9QOq0N2uU57lLtfSIFPlxd0wWD0KU9W61EXGKBaCL9XVH+8zqNYVRfURhexF1kQxw==","signatures":[{"sig":"MEQCIBS1JPWpcMLeRWqUI0BjbT0UIvaqRzflmmcHQZ5EqisGAiBmtSQiIwxZBn+7N/nEPjAqq8c+4wAVYpI0O1z6B0cE2A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.41","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":667453},"type":"module","engines":{"node":">=20"},"gitHead":"208c4248d1991ef32e1a5eb9d317624bf1239b06","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"npm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"npm run build && vitest run e2e/","typecheck":"tsc -p tsconfig.typecheck.json --noEmit","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude \"e2e/**\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.11.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.14.1","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"acpx":"^0.6.1","eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","acp-mock":"^1.1.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","@vitest/coverage-v8":"^4.1.2","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.41_1778175630480_0.4691568522594214","host":"s3://npm-registry-packages-npm-production"}},"0.1.43":{"name":"gnhf","version":"0.1.43","_id":"gnhf@0.1.43","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"fefd57d0de0676c06a284b6e5d2df2e7be0ca869","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.43.tgz","fileCount":5,"integrity":"sha512-ezLBWU8rYkZ8hv9sAcD6hcBkFUhy2h3kQ0EZJOf/84IaqShAle1vhByRmCfWaxxT43yFS4gSisEcts18NIH6tA==","signatures":[{"sig":"MEYCIQDWpSa36IWyYk/ip8Yq18ENoVIJhHTBKJvtEPRlVTaZ2QIhAKy5ku3dcPvmZPeXU5xH4uR0czvREUdpcpKx+yVHzeSt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.43","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":669315},"type":"module","engines":{"node":">=20"},"gitHead":"ba19acc777a5b66fd92e20d9f033f7684a9364e2","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"pnpm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"pnpm run build && vitest run e2e/","typecheck":"tsc -p tsconfig.typecheck.json --noEmit","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude \"e2e/**\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.16.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.18.0","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.1","devDependencies":{"acpx":"^0.6.1","eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","acp-mock":"^1.1.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","@vitest/coverage-v8":"^4.1.2","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.43_1785475243864_0.7241056378707411","host":"s3://npm-registry-packages-npm-production"}},"0.1.44":{"name":"gnhf","version":"0.1.44","_id":"gnhf@0.1.44","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"bada167e63ce4a943f2391ba623cb9ffccc6973a","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.44.tgz","fileCount":5,"integrity":"sha512-ESUbdQTLks7PrHxLDhC7EeNBA3oW8C95wGJ59oy6Z3e/8YWjt8pPCafq6iFu4mrM94V5ugV58cgCMsJZRZlB2A==","signatures":[{"sig":"MEUCIGpIB0kSJJCV87Z5LrfMZy8F3dvVBGilTdNVtfSLTJhyAiEA81UsBV7ORLK17FhKMu2huXupUh4hF1w85BpOodgvFl8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.44","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":683796},"type":"module","engines":{"node":">=20"},"gitHead":"60f9aa5667fe57aeb2ad3615ae2947345f1b6dc0","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"pnpm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"pnpm run build && vitest run e2e/","typecheck":"tsc -p tsconfig.typecheck.json --noEmit","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude \"e2e/**\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.16.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.18.0","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.1","devDependencies":{"acpx":"^0.6.1","eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","acp-mock":"^1.1.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","@vitest/coverage-v8":"^4.1.2","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.44_1786662692486_0.8798301336941012","host":"s3://npm-registry-packages-npm-production"}},"0.1.45":{"name":"gnhf","version":"0.1.45","_id":"gnhf@0.1.45","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"9371d4598c7632f941bb7b104d4e1dbde7b88c51","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.45.tgz","fileCount":5,"integrity":"sha512-iYr5XE/c5OACwAmN9zFM+kMa/Mu4lAUaFBHhp1QGKgsHm0EbwFAXP3r4wXnpIU4Gse5lhyQ38ziIic6xK1e+lQ==","signatures":[{"sig":"MEYCIQC6GCsq0dEp8tThXHnA+KkFLg3/Cs0iymxrptRCcXYf2gIhALMA/+VPk4/n5qhxbMUEw9COqN+wIWSZr8B8ca1QKpdI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.45","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":694868},"type":"module","engines":{"node":">=20"},"gitHead":"66527a2de68ab074559bbe2836e6f202c8ce7e06","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"pnpm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"pnpm run build && vitest run e2e/","typecheck":"tsc -p tsconfig.typecheck.json --noEmit","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude \"e2e/**\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.17.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.19.0","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.1","devDependencies":{"acpx":"^0.6.1","eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","acp-mock":"^1.1.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","@vitest/coverage-v8":"^4.1.2","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.45_1787274664991_0.7382967717873896","host":"s3://npm-registry-packages-npm-production"}},"0.1.46":{"name":"gnhf","version":"0.1.46","_id":"gnhf@0.1.46","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"1e8df8efa5262eb574a14a5237ac6c04c29d5d2b","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.46.tgz","fileCount":5,"integrity":"sha512-XZGkr4pmeDGbc4L3odm2cG8C6AgzzXkwv7RPA3efuWs2Hr/SJr/TCql/cVtHvS37Pn6zjMvQL4Z757VHVQL5Aw==","signatures":[{"sig":"MEYCIQC/jRiufy33/0JIVUISg/P+fZyQGIpiCQzAeq2GGNrkXAIhAI04KtqVsIY7Ftqk9xBbOojXAdiUxxWQeHtsS50N2mZ5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.46","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":697663},"type":"module","engines":{"node":">=20"},"gitHead":"49982a9cbc56473177b99c98d0b6b880f47af6f3","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"pnpm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"pnpm run build && vitest run e2e/","typecheck":"tsc -p tsconfig.typecheck.json --noEmit","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude \"e2e/**\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.17.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.19.0","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.1","devDependencies":{"acpx":"^0.6.1","eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","acp-mock":"^1.1.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","@vitest/coverage-v8":"^4.1.2","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.46_1787925039463_0.9589036066186363","host":"s3://npm-registry-packages-npm-production"}},"0.1.47":{"name":"gnhf","version":"0.1.47","_id":"gnhf@0.1.47","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"36baa565b244d422389d6b4be5c9933703fb53ef","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.47.tgz","fileCount":5,"integrity":"sha512-fX1cuETEmCb0Ts2ECdbF+qj3/GMGBB6g/LTrvzCbO31+Hy9tdUq/nGwiV2qyCmMwSZRRxnQFb9iXInaExLsEaQ==","signatures":[{"sig":"MEQCIG+SBlgwfGZE7JPJh/WX17KsjghfY7uBZpmjIU56wHArAiAyS6C36+dO7kUWgAAfmmLvG006encBRxyj4uSPLJdO8Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.47","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":698023},"type":"module","engines":{"node":">=20"},"gitHead":"504dac462bbba1e899c2959e877f47499eb72295","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"pnpm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"pnpm run build && vitest run e2e/","typecheck":"tsc -p tsconfig.typecheck.json --noEmit","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude \"e2e/**\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.17.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.19.0","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.1","devDependencies":{"acpx":"^0.6.1","eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","acp-mock":"^1.1.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","@vitest/coverage-v8":"^4.1.2","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.47_1788097292833_0.68960019579055","host":"s3://npm-registry-packages-npm-production"}},"0.1.48":{"name":"gnhf","version":"0.1.48","_id":"gnhf@0.1.48","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"homepage":"https://github.com/kunchenguid/gnhf#readme","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"bin":{"gnhf":"dist/cli.mjs"},"dist":{"shasum":"7915b6d5fa10d68e7ec3022125336b1222252fde","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.48.tgz","fileCount":5,"integrity":"sha512-V0jWFXI7z1ipwiqIrV925qIABdRldX5Zhn2Y7eV2MAiTNK0W2APEJhZWkHX5IkdhJcAcXQUwYVLTbHi220MJ4w==","signatures":[{"sig":"MEYCIQDxP970O2V7yHRjUMlDZo6yc1PTmBRIA8DWkQBV44JO/gIhAICo28OnVOP7rPhrM3MXX798Fl+T0rgOc4x3uc04YEXt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.48","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":701790},"type":"module","engines":{"node":">=20"},"gitHead":"b9f0c2a55eb11bda7b3e67b4e456267a5e2c0c42","scripts":{"dev":"tsdown --watch","lint":"eslint src","test":"pnpm run build && vitest run","build":"tsdown","start":"node dist/cli.mjs","format":"prettier --write src","test:e2e":"pnpm run build && vitest run e2e/","typecheck":"tsc -p tsconfig.typecheck.json --noEmit","format:check":"prettier --check src","test:coverage":"vitest run --coverage --exclude \"e2e/**\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"repository":{"url":"git+https://github.com/kunchenguid/gnhf.git","type":"git"},"_npmVersion":"11.17.0","description":"Before I go to bed, I tell my agents: good night, have fun","directories":{},"_nodeVersion":"24.19.0","dependencies":{"js-yaml":"^4.1.1","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.1.1","devDependencies":{"acpx":"^0.6.1","eslint":"^9.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","acp-mock":"^1.1.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.0.0","@vitest/coverage-v8":"^4.1.2","eslint-config-prettier":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gnhf_0.1.48_1788357573552_0.7707705440615267","host":"s3://npm-registry-packages-npm-production"}},"0.1.49":{"name":"gnhf","version":"0.1.49","packageManager":"pnpm@11.1.1","description":"Before I go to bed, I tell my agents: good night, have fun","type":"module","bin":{"gnhf":"dist/cli.mjs"},"scripts":{"build":"tsdown","dev":"tsdown --watch","start":"node dist/cli.mjs","lint":"eslint src","format":"prettier --write src","format:check":"prettier --check src","typecheck":"tsc -p tsconfig.typecheck.json --noEmit","test":"pnpm run build && vitest run","test:e2e":"pnpm run build && vitest run e2e/","test:coverage":"vitest run --coverage --exclude \"e2e/**\""},"dependencies":{"commander":"^14.0.3","js-yaml":"^4.1.1"},"devDependencies":{"@eslint/js":"^9.0.0","@types/js-yaml":"^4.0.9","@types/node":"^22.0.0","@vitest/coverage-v8":"^4.1.2","acp-mock":"^1.1.0","acpx":"^0.6.1","eslint":"^9.0.0","eslint-config-prettier":"^10.0.0","prettier":"^3.0.0","tsdown":"^0.21.7","typescript":"^5.8.0","typescript-eslint":"^8.0.0","vitest":"^4.1.2"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/kunchenguid/gnhf.git"},"engines":{"node":">=20"},"gitHead":"0227fe415d38e6df0fad4828c7999ba2a3b065de","_id":"gnhf@0.1.49","bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"homepage":"https://github.com/kunchenguid/gnhf#readme","_nodeVersion":"24.20.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-HzvxCzLaNZ2ipN7bqkn90f0sVbp4BgHv11RDOJY9fB1HL5cAdrSIDNQvpwjtqsPLRjRoymHnyJpsz2WOynbL2g==","shasum":"0a821e768d71ab6e717d6b22b1f12e98f733a7c5","tarball":"https://registry.npmjs.org/gnhf/-/gnhf-0.1.49.tgz","fileCount":5,"unpackedSize":710318,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/gnhf@0.1.49","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCijueAYCIzgWndBmk0w2MHOtWp89vn40eek9oDTptT1AIgAV52YbfFWfxu1gZAt3Dcqc4c4HnM8wCg0tzaEzyBbak="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3a38cdf-7bc4-4626-892b-2f972ab8ae86"}},"directories":{},"maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/gnhf_0.1.49_1788530969534_0.38985215500805603"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-31T21:08:59.625Z","modified":"2026-09-04T14:09:30.017Z","0.1.0":"2026-03-31T21:08:59.852Z","0.1.2":"2026-03-31T22:55:17.681Z","0.1.3":"2026-03-31T23:54:19.254Z","0.1.4":"2026-04-01T05:22:53.884Z","0.1.5":"2026-04-01T05:50:36.992Z","0.1.6":"2026-04-01T06:38:38.519Z","0.1.7":"2026-04-01T21:34:50.844Z","0.1.8":"2026-04-02T06:28:33.697Z","0.1.9":"2026-04-03T07:51:26.715Z","0.1.10":"2026-04-03T19:22:24.823Z","0.1.11":"2026-04-04T08:27:04.361Z","0.1.12":"2026-04-05T02:01:12.300Z","0.1.13":"2026-04-06T06:35:36.055Z","0.1.14":"2026-04-07T18:24:58.754Z","0.1.15":"2026-04-08T18:40:38.761Z","0.1.16":"2026-04-09T01:48:18.330Z","0.1.17":"2026-04-10T06:03:46.932Z","0.1.18":"2026-04-10T23:19:01.575Z","0.1.19":"2026-04-12T19:47:50.469Z","0.1.20":"2026-04-17T07:30:20.158Z","0.1.21":"2026-04-17T18:43:17.647Z","0.1.22":"2026-04-17T21:43:43.374Z","0.1.23":"2026-04-18T02:32:13.295Z","0.1.24":"2026-04-23T05:57:38.687Z","0.1.25":"2026-04-23T18:01:36.212Z","0.1.26":"2026-04-24T07:36:22.582Z","0.1.27":"2026-04-29T16:04:53.495Z","0.1.28":"2026-04-29T20:49:42.367Z","0.1.29":"2026-04-29T21:35:19.097Z","0.1.30":"2026-04-29T23:50:05.000Z","0.1.31":"2026-05-02T18:43:06.178Z","0.1.32":"2026-05-02T18:47:48.069Z","0.1.33":"2026-05-03T02:31:47.277Z","0.1.34":"2026-05-03T05:38:23.315Z","0.1.35":"2026-05-03T22:19:54.555Z","0.1.36":"2026-05-05T23:09:48.886Z","0.1.37":"2026-05-06T01:10:12.524Z","0.1.38":"2026-05-06T05:58:43.005Z","0.1.39":"2026-05-06T15:56:35.742Z","0.1.40":"2026-05-06T17:20:50.791Z","0.1.41":"2026-05-07T17:40:30.661Z","0.1.43":"2026-07-31T05:20:44.654Z","0.1.44":"2026-08-13T23:11:32.679Z","0.1.45":"2026-08-21T01:11:05.149Z","0.1.46":"2026-08-28T13:50:39.634Z","0.1.47":"2026-08-30T13:41:32.963Z","0.1.48":"2026-09-02T13:59:33.717Z","0.1.49":"2026-09-04T14:09:29.673Z"},"bugs":{"url":"https://github.com/kunchenguid/gnhf/issues"},"homepage":"https://github.com/kunchenguid/gnhf#readme","repository":{"type":"git","url":"git+https://github.com/kunchenguid/gnhf.git"},"description":"Before I go to bed, I tell my agents: good night, have fun","maintainers":[{"name":"kunchenguid","email":"kunchenguid@gmail.com"}],"readme":"<p align=\"center\">Before I go to bed, I tell my agents:</p>\n<h1 align=\"center\">good night, have fun</h1>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/gnhf\"\n    ><img\n      alt=\"npm\"\n      src=\"https://img.shields.io/npm/v/gnhf?style=flat-square\"\n  /></a>\n  <a href=\"https://github.com/kunchenguid/gnhf/actions/workflows/ci.yml\"\n    ><img\n      alt=\"CI\"\n      src=\"https://img.shields.io/github/actions/workflow/status/kunchenguid/gnhf/ci.yml?style=flat-square&label=ci\"\n  /></a>\n  <a href=\"https://github.com/kunchenguid/gnhf/actions/workflows/release-please.yml\"\n    ><img\n      alt=\"Release\"\n      src=\"https://img.shields.io/github/actions/workflow/status/kunchenguid/gnhf/release-please.yml?style=flat-square&label=release\"\n  /></a>\n  <a\n    href=\"https://img.shields.io/badge/platform-macOS%20%7C%20Linux%20%7C%20Windows-blue?style=flat-square\"\n    ><img\n      alt=\"Platform\"\n      src=\"https://img.shields.io/badge/platform-macOS%20%7C%20Linux%20%7C%20Windows-blue?style=flat-square\"\n  /></a>\n  <a href=\"https://x.com/kunchenguid\"\n    ><img\n      alt=\"X\"\n      src=\"https://img.shields.io/badge/X-@kunchenguid-black?style=flat-square\"\n  /></a>\n  <a href=\"https://discord.gg/Wsy2NpnZDu\"\n    ><img\n      alt=\"Discord\"\n      src=\"https://img.shields.io/discord/1439901831038763092?style=flat-square&label=discord\"\n  /></a>\n</p>\n\n<p align=\"center\">\n  <img src=\"docs/splash.png\" alt=\"gnhf - Good Night, Have Fun\" width=\"800\">\n</p>\n\nNever wake up empty-handed.\n\ngnhf is a [ralph](https://ghuntley.com/ralph/), [autoresearch](https://github.com/karpathy/autoresearch)-style orchestrator that keeps your agents running while you sleep - each iteration makes one small, committed, documented change towards an objective.\nYou wake up to a branch full of clean work and a log of everything that happened.\n\n- **Dead simple** - one command starts an autonomous loop that runs until you request stop or a configured runtime cap is reached\n- **Long running** - each iteration is committed on success and rolled back on failure, with sensible retries; [How It Works](#how-it-works) has the full failure-handling rules\n- **Live terminal title** - interactive runs keep your terminal title updated with live status, token totals, and commit count, then clear or restore it on exit depending on terminal support; token totals prefixed with `~` are estimates\n- **Exit summary** - every run ends with a permanent summary covering elapsed time, branch, iterations, tokens, branch diff stats, local notes/log paths, and review commands\n- **Agent-agnostic** - works with the popular coding agent CLIs plus any ACP target out of the box; see [Agents](#agents) for the roster\n\n## Quick Start\n\n```sh\n$ gnhf \"reduce complexity of the codebase without changing functionality\"\n# have a good sleep\n```\n\n```sh\n$ gnhf \"reduce complexity of the codebase without changing functionality\" \\\n    --max-iterations 10 \\\n    --max-tokens 5000000\n# have a good nap\n```\n\n```sh\n# Run multiple agents on the same repo simultaneously using worktrees\n$ gnhf --worktree \"implement feature X\" &\n$ gnhf --worktree \"add tests for module Y\" &\n$ gnhf --worktree \"refactor the API layer\" &\n```\n\n```sh\n# Commit directly on the current branch and push after each successful iteration\n$ gnhf --current-branch --push \"keep improving this app\"\n```\n\nRun `gnhf` from inside a Git repository with a clean working tree. If you are starting from a plain directory, run `git init` first.\n`gnhf` supports macOS, Linux, and Windows.\n\n## Install\n\n**npm**\n\n```sh\nnpm install -g gnhf\n```\n\n**From source**\n\n```sh\ngit clone https://github.com/kunchenguid/gnhf.git\ncd gnhf\ncorepack enable\npnpm install\npnpm run build\npnpm link --global\n```\n\n## Agent Skill\n\nThe npm package includes an agent-facing skill at `skills/gnhf/SKILL.md`. Agents that support local skills can copy or reference this file to learn how to run GNHF in Hands-Off mode for bounded overnight work, or Companion mode when the outer agent should steer and review a long-running GNHF run.\n\nAfter installing from npm, the skill is available under the installed package directory. From a source checkout, use `skills/gnhf/SKILL.md` directly.\n\n## How It Works\n\n```\n                    ┌─────────────┐\n                    │  gnhf start │\n                    └──────┬──────┘\n                           ▼\n                ┌──────────────────────┐\n                │  validate clean git  │\n                │  create or use branch │\n                │  write prompt.md     │\n                └──────────┬───────────┘\n                           ▼\n              ┌────────────────────────────┐\n              │  build iteration prompt    │◄──────────────┐\n              │  (inject notes.md context) │               │\n              └────────────┬───────────────┘               │\n                           ▼                               │\n              ┌────────────────────────────┐               │\n              │  invoke your agent         │               │\n              │  (non-interactive mode)    │               │\n              └────────────┬───────────────┘               │\n                           ▼                               │\n                    ┌─────────────┐                        │\n                    │  success?   │                        │\n                    └──┬──────┬───┘                        │\n                  yes  │      │  no                        │\n                       ▼      ▼                            │\n              ┌──────────┐  ┌───────────┐                  │\n              │  commit  │  │ reset or  │                  │\n              │  append  │  │  repair   │                  │\n              │ notes.md │  │           │                  │\n              │maybe wait│  │ maybe wait│                  │\n              └────┬─────┘  └─────┬─────┘                  │\n                   │              │                        │\n                   │   ┌──────────┘                        │\n                   ▼   ▼                                   │\n              ┌────────────┐    yes   ┌──────────┐         │\n              │ 3 consec.  ├─────────►│  abort   │         │\n              │ failures   │          └────▲─────┘         │\n              │ or perm.   ├───────────────┘               │\n              │ error?     │                               │\n              └─────┬──────┘                               │\n                 no │                                      │\n                    └──────────────────────────────────────┘\n```\n\n- **Incremental commits** - each successful iteration is a separate unsigned git commit, so you can cherry-pick or revert individual changes without GPG or SSH signing prompts blocking the run; if `git commit` fails, gnhf preserves the uncommitted work and asks the next agent iteration to repair it\n- **Failure handling** - failed iterations are rolled back with `git reset --hard` except commit failures, which preserve uncommitted work for repair; agent-reported failures proceed to the next iteration immediately, retryable hard agent errors use exponential backoff, and permanent agent errors such as Claude low credit balance abort immediately and print the run log path. Complete no-op iterations are reported as failures and count toward the consecutive-failure abort limit. If the run exits with a pending commit failure, the exit summary warns that uncommitted changes were left for repair.\n- **Usage-limit waits** - gnhf waits out an exhausted usage window (e.g. the subscription 5-hour window) instead of running through it, in both forms it takes. When Claude rejects requests, the iteration is rolled back but not counted as a failure; gnhf reads the reset time from the agent's rate-limit event, waits until shortly after the window resets, then retries the same iteration automatically, so overnight runs resume on their own. Pass `--fallback-model <model>` with `--agent claude` to retry the first rejected iteration on that model instead; without the flag, gnhf never changes models. If no reset time is reported for a rejection, it retries on a bounded escalating interval instead. When usage credits are enabled the provider serves the request and bills the overage rather than rejecting it. A billed iteration that succeeded keeps its committed work and is counted normally; one that failed is rolled back and counted as a failure like any other. Either way gnhf then waits for the reset before starting the next iteration, so the run stops spending credits without throwing away finished work. If the reported reset time has already passed, the included window is back and the run simply continues - if the provider is still billing, the next iteration reports it again with a fresh reset time. If no reset time comes with it at all, or one so far out that gnhf cannot sleep through it in a single wait, gnhf aborts the run rather than keep buying iterations by probing. Use `--max-rate-limit-wait` to set a total wait leash for the run; if the next wait would exceed it, gnhf aborts cleanly. Ctrl+C during the wait works as usual.\n- **Runtime caps** - `--max-iterations` stops before the next iteration begins, `--max-tokens` can abort mid-iteration once reported usage reaches the cap across input, output, cache-read, and cache-write tokens, and `--stop-when` ends the loop after an iteration whose agent output reports the natural-language condition is met unless a commit failure needs repair first; resumed runs reuse the saved stop condition unless you pass a new value, or `--stop-when \"\"` to clear it; pending commit-failure repair work is preserved and other uncommitted work is rolled back, and in the interactive TUI the final state remains visible until you press Ctrl+C to exit\n- **Iteration finalization** - agents are expected to finish validation, stop any background processes they started, and only then emit the final JSON result for the iteration\n- **Graceful interrupts** - in the interactive TUI, the first Ctrl+C requests a graceful stop and lets the current iteration finish (or ends backoff early), the second Ctrl+C force-stops immediately, and `SIGTERM` also force-stops immediately\n- **Exit summary** - after shutdown cleanup, gnhf prints a permanent stdout summary with the final branch, elapsed time, iteration and token totals, branch diff stats, notes/debug-log paths, and review commands\n- **Shared memory** - the agent reads `notes.md` (built up from prior iterations) to communicate across iterations\n- **Local run metadata** - gnhf stores prompt, notes, stop conditions, commit-message convention metadata, and a final `end-state.json` sidecar with the exit status, stop condition, agent error, and counters under `.gnhf/runs/`, and ignores it locally, so your branch only contains intentional work\n- **Resume support** - run `gnhf` while on an existing `gnhf/` branch to pick up where a previous run left off; if you provide a different prompt, gnhf asks whether to update the saved prompt and continue with the existing history, start a new branch, or quit. New runs whose generated branch already exists use a numeric suffix such as `gnhf/<slug>-1`.\n\n### Live Branch Mode\n\nPass `--current-branch` to run on the branch you are already on instead of creating a `gnhf/` branch.\nPass `--push` to push the current branch after each successful iteration.\nTogether, `--current-branch --push` is useful for loose projects where you want a deployed or locally watched branch to update throughout the run.\n\n- Re-running the same prompt with `--current-branch` resumes the existing `.gnhf/runs/<runId>/` history on a clean working tree and continues iteration numbering.\n- Push failures abort the run after preserving the successful local commit.\n- gnhf never force-pushes or auto-pulls for this mode.\n- `--push` also works with the default `gnhf/` branch mode and sets `origin` as the upstream when needed.\n- Do not combine `--current-branch` with `--worktree`; gnhf exits with an error because those modes choose different working directories.\n\n### Worktree Mode\n\nPass `--worktree` to run each agent in an isolated [git worktree](https://git-scm.com/docs/git-worktree). This lets you launch multiple agents on the same repo simultaneously - each gets its own working directory and branch without interfering with the others or your main checkout.\n\n```\n<repo>/                              ← your repo (unchanged)\n<repo>-gnhf-worktrees/\n  ├── <run-slug-1>/                  ← worktree for agent 1\n  └── <run-slug-2>/                  ← worktree for agent 2\n```\n\n- Worktrees with commits are **preserved** after the run so you can review, merge, or cherry-pick the work. gnhf prints the path and cleanup command.\n- Re-running the same prompt with `--worktree` resumes a preserved matching worktree when possible; otherwise gnhf creates a suffixed worktree such as `<run-slug>-1` if the original name is unavailable.\n- Worktrees with **no commits** are automatically removed on exit unless a pending commit failure left uncommitted work to inspect or repair.\n- Known limitation: on Linux, when sleep prevention re-execs gnhf under `systemd-inhibit`, a worktree with no commits is left in place instead of being removed; remove it manually with `git worktree remove`. Tracked as `gnhf-reexec-worktree-leak-l1`.\n- `--worktree` must be run from a non-gnhf branch (typically `main`).\n\n## CLI Reference\n\n| Command                   | Description                                     |\n| ------------------------- | ----------------------------------------------- |\n| `gnhf \"<prompt>\"`         | Start a new run with the given objective        |\n| `gnhf`                    | Resume a run (when on an existing gnhf/ branch) |\n| `echo \"<prompt>\" \\| gnhf` | Pipe prompt via stdin                           |\n| `cat prd.md \\| gnhf`      | Pipe a large spec or PRD via stdin              |\n\nIf you run `gnhf` on an existing `gnhf/` branch with a different prompt, gnhf asks whether to update `prompt.md` and continue the existing run history, start a new branch, or quit. When the prompt came from stdin, that confirmation is read from the controlling terminal, so it must be available.\n\n### Flags\n\n| Flag                               | Description                                                                                        | Default                |\n| ---------------------------------- | -------------------------------------------------------------------------------------------------- | ---------------------- |\n| `--agent <agent>`                  | Agent to use: a native agent name or `acp:<target-or-command>`; see [Agents](#agents)              | config file (`claude`) |\n| `--model <model>`                  | Model for the agent; overrides `agentModel.<agent>` from the config file                           | config file            |\n| `--max-iterations <n>`             | Abort after `n` total iterations                                                                   | unlimited              |\n| `--max-tokens <n>`                 | Abort after `n` total input+output+cache tokens                                                    | unlimited              |\n| `--max-rate-limit-wait <duration>` | Abort after this much total Claude usage-limit wait (`30m`, `2h`, or `0`)                          | 24h safety cap         |\n| `--stop-when <cond>`               | End when the agent reports this condition, after any commit-failure repair; persists across resume | unlimited              |\n| `--prevent-sleep <mode>`           | Prevent system sleep during the run (`on`/`off` or `true`/`false`)                                 | config file (`on`)     |\n| `--worktree`                       | Run in a separate git worktree (enables multiple agents concurrently)                              | `false`                |\n| `--current-branch`                 | Run on the current branch instead of creating a `gnhf/` branch                                     | `false`                |\n| `--push`                           | Push the current branch after each successful iteration                                            | `false`                |\n| `--meteor-frequency <n>`           | Set TUI meteor frequency from 0 to 5 (`0` disables meteors)                                        | `3`                    |\n| `--version`                        | Show version                                                                                       |                        |\n\n## Configuration\n\nConfig lives at `~/.gnhf/config.yml`.\nIf the file does not exist yet, `gnhf` creates it on first run with its defaults.\nA supplied `--agent` is written as the default agent.\nWith the default configuration, it has this exact content:\n\n<!-- This block mirrors src/core/bootstrap-config.golden.yml and is pinned to it by src/core/bootstrap-config.test.ts; update both together. -->\n\n```yaml\n# Agent to use by default: native agent name or acp:<target-or-command>\nagent: claude\n\n# Custom paths to native agent binaries (optional)\n# Paths may be absolute, bare executable names on PATH,\n# ~-prefixed, or relative to this config directory.\n# Note: rovodev overrides must point to an acli-compatible binary.\n# agentPathOverride:\n#   claude: /path/to/custom-claude\n#   codex: /path/to/custom-codex\n#   copilot: /path/to/custom-copilot\n#   pi: /path/to/custom-pi\n#   cursor: /path/to/custom-cursor-agent\n\n# Native agent CLI arg overrides (optional)\n# ACP targets do not support path or arg overrides.\n# agentArgsOverride:\n#   codex:\n#     - -m\n#     - gpt-5.4\n#     - -c\n#     - model_reasoning_effort=\"high\"\n#     - --full-auto\n#   copilot:\n#     - --model\n#     - gpt-5.4\n#   pi:\n#     - --provider\n#     - openai-codex\n#     - --model\n#     - gpt-5.5\n#     - --thinking\n#     - high\n#   cursor:\n#     - --model\n#     - composer-2.5\n\n# Models for supported native agents (optional)\n# Values are forwarded to the CLI except opencode, which receives\n# its model in the request body.\n# agentModel:\n#   claude: sonnet\n#   codex: gpt-5.4\n#   opencode: fireworks-ai/accounts/fireworks/models/qwen3p6-plus\n\n# Custom ACP target commands (optional)\n# Maps acp:<target> names to spawn commands. Useful for naming a\n# local or beta build of an ACP agent.\n# acpRegistryOverrides:\n#   my-fork: \"/usr/local/bin/my-claude-code-fork --acp\"\n#   staging: \"node /opt/staging/agent.mjs\"\n\n# Commit message convention (optional)\n# Defaults to: gnhf <iteration>: <summary>\n# Use Conventional Commits semantic-release headers:\n# commitMessage:\n#   preset: conventional\n\n# Abort after this many consecutive failures\nmaxConsecutiveFailures: 3\n\n# Prevent the machine from sleeping during a run\npreventSleep: true\n```\n\nCLI flags override config file values. `--prevent-sleep` accepts `on`/`off` as well as `true`/`false`; the config file always uses a boolean.\nThe iteration, token, and rate-limit-wait caps are runtime-only flags and are not persisted in `config.yml`; `--stop-when` is persisted per run for resume, but not in config.\n\n`agentArgsOverride.<name>` lets you pass through extra CLI flags for any native agent in the [Agents](#agents) table.\nACP targets do not support path or arg overrides in this version.\nUse `acpRegistryOverrides` to map `acp:<target>` names to custom spawn commands for local, forked, or beta ACP agents.\nYou can also pass a raw custom ACP server command directly as a quoted `acp:` spec, for example `gnhf --agent 'acp:./bin/dev-acp --profile ci' \"fix the tests\"`.\n\n- Use it for agent-specific profiles or reasoning settings that lack a dedicated `gnhf` config field. Set a model with `agentModel.<name>` in config or `--model <model>` for a run; `--model` wins. OpenCode requires a `provider/model` pair, and its `--model`/`-m` overrides are rejected because `opencode serve` does not accept them. Rovo Dev model overrides are unsupported; set `agent.modelId` in Rovo Dev settings instead.\n- For `codex`, `claude`, `copilot`, and `cursor`, `gnhf` adds its usual non-interactive permission default only when you do not provide your own permission or execution-mode flag. If you set one explicitly, `gnhf` treats that as user-managed and does not add its default on top.\n- Flags that `gnhf` manages itself for a given agent, such as output-shaping or local-server startup flags, are rejected during config loading so you get a clear error instead of duplicate-argument ambiguity. For `pi` and `cursor`, `--api-key` is also blocked; configure credentials via Pi's own config or the `CURSOR_API_KEY` environment variable, not via `agentArgsOverride`.\n\n`commitMessage` controls the subject line that gnhf uses for each successful iteration commit.\n\n- Omit it to keep the default `gnhf <iteration>: <summary>` format.\n- Set `preset: conventional` to ask the agent for `type` and optional `scope`, then commit as `type(scope): summary` for semantic-release style workflows. Valid types are `build`, `ci`, `docs`, `feat`, `fix`, `perf`, `refactor`, `test`, and `chore`; invalid or missing types fall back to `chore`, and empty scopes are omitted.\n- The resolved commit-message convention is saved per run, so resuming keeps the original subject format even if `config.yml` changes later.\n\n### Custom Agent Paths\n\nUse `agentPathOverride` to point any native agent at a custom binary - useful for wrappers like Claude Code Switch or custom Codex builds that accept the same flags and arguments as the original:\n\n```yaml\nagentPathOverride:\n  claude: ~/bin/claude-code-switch\n  codex: /usr/local/bin/my-codex-wrapper\n  copilot: ~/bin/copilot-wrapper\n  pi: ~/bin/pi-wrapper\n  cursor: ~/bin/cursor-agent-wrapper\n```\n\nPaths may be absolute, bare executable names already on your `PATH`, `~`-prefixed, or relative to the config directory (`~/.gnhf/`). The override replaces only the binary name; all standard arguments are preserved, so the replacement must be CLI-compatible with the original agent. On Windows, `.cmd` and `.bat` wrappers are supported, including bare names resolved from `PATH`. For `rovodev`, the override must point to an `acli`-compatible binary since gnhf invokes it as `<bin> rovodev serve ...`.\n\n### Sleep Prevention\n\nWhen sleep prevention is enabled, `gnhf` uses the native mechanism for your OS: `caffeinate` on macOS, `systemd-inhibit` on Linux, and a small PowerShell helper backed by `SetThreadExecutionState` on Windows.\nA run is never aborted because that mechanism is unavailable; instead the exit summary adds a `sleep` line reporting either that prevention could not be started for the run, or that the helper started but never confirmed it was holding the machine awake, so the machine may have slept.\n\n## Debug Logs\n\nEvery run writes a JSONL debug log to `.gnhf/runs/<runId>/gnhf.log` alongside `notes.md`. Lifecycle events for the orchestrator, agent, and HTTP requests are captured with elapsed timings and (for failures) the full `error.cause` chain, which is what you need to tell a bare `TypeError: fetch failed` apart from an undici `UND_ERR_HEADERS_TIMEOUT`. The agent's own streaming output still goes to the per-iteration `iteration-<n>.jsonl` file next to it.\nRaw ACP command specs are redacted as `acp:custom`/`custom` in debug logs and related errors, so local paths or secrets in custom commands are not written to `gnhf.log`.\n\nIncluding a snippet of `gnhf.log` is the single most useful thing you can attach when filing an issue.\n\n## Telemetry\n\n`gnhf` sends anonymous usage telemetry to my self-hosted analytics so I can see what's actually getting used.\nNo prompts, repo paths, or branch names are sent.\nSet `GNHF_TELEMETRY=0` to turn it off.\n\n## Agents\n\n`gnhf` supports seven native agents plus ACP targets. ACP support is powered by [`acpx`](https://github.com/openclaw/acpx), which is bundled with `gnhf` and provides the runtime and agent registry for `acp:<target-or-command>` specs.\n\n| Agent              | Flag                              | Requirements                                                                                                                                                                        | Notes                                                                                                                                                                                                                                                                                                                                                                                      |\n| ------------------ | --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| Claude Code        | `--agent claude`                  | Install Anthropic's `claude` CLI and sign in first.                                                                                                                                 | `gnhf` invokes `claude` directly in non-interactive mode. After Claude emits a successful structured result, `gnhf` treats that result as final and shuts down any lingering Claude process tree after a short grace period.                                                                                                                                                               |\n| Codex              | `--agent codex`                   | Install OpenAI's `codex` CLI and sign in first.                                                                                                                                     | `gnhf` invokes `codex exec` directly in non-interactive mode.                                                                                                                                                                                                                                                                                                                              |\n| GitHub Copilot CLI | `--agent copilot`                 | Install GitHub Copilot CLI and sign in first.                                                                                                                                       | `gnhf` invokes `copilot` directly in non-interactive JSONL mode. Copilot currently exposes assistant output tokens, but not full input/cache token totals; see https://github.com/github/copilot-cli/issues/1152.                                                                                                                                                                          |\n| Pi                 | `--agent pi`                      | Install the `pi` CLI and configure a usable provider/model first.                                                                                                                   | `gnhf` invokes `pi` directly in JSON mode, appends the final output schema to the prompt, and disables Pi session persistence with `--no-session`.                                                                                                                                                                                                                                         |\n| Cursor CLI         | `--agent cursor`                  | Install Cursor's CLI and sign in first (`cursor-agent login`).                                                                                                                      | `gnhf` invokes `cursor-agent` (falling back to the `agent` name) directly in non-interactive `--print` stream-json mode, appends the final output schema to the prompt, and defaults to `--force`, `--trust`, and `--approve-mcps` unless you override those flags. After Cursor emits a non-error result, `gnhf` shuts down any lingering Cursor process tree after a short grace period. |\n| Rovo Dev           | `--agent rovodev`                 | Install Atlassian's `acli` and authenticate it with Rovo Dev first.                                                                                                                 | `gnhf` starts a local `acli rovodev serve --disable-session-token <port>` process automatically in the repo workspace.                                                                                                                                                                                                                                                                     |\n| OpenCode           | `--agent opencode`                | Install `opencode` and configure at least one usable model provider first.                                                                                                          | `gnhf` starts a local `opencode serve --hostname 127.0.0.1 --port <port> --print-logs` process automatically, creates a per-run session, and applies a blanket allow rule so tool calls do not block on prompts.                                                                                                                                                                           |\n| ACP target         | `--agent acp:<target-or-command>` | Install and authenticate the target supported by the bundled [`acpx`](https://github.com/openclaw/acpx) registry, such as `acp:gemini`, or pass a quoted custom ACP server command. | `gnhf` runs the target through ACP with a persistent per-run session under `.gnhf/runs/<runId>/acp-sessions`; token usage and `--max-tokens` use ACP `used` deltas when available, with prompt-length plus tool-call estimates as a fallback, and `agentPathOverride` and `agentArgsOverride` do not apply.                                                                                |\n\n## Development\n\nIf you want to contribute changes back to this repo, see [`CONTRIBUTING.md`](./CONTRIBUTING.md) for the required workflow, dev commands, and repo conventions.\n\n## Star History\n\n<a href=\"https://www.star-history.com/?repos=kunchenguid%2Fgnhf&type=date&legend=top-left\">\n <picture>\n   <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/chart?repos=kunchenguid/gnhf&type=date&theme=dark&legend=top-left\" />\n   <source media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/chart?repos=kunchenguid/gnhf&type=date&legend=top-left\" />\n   <img alt=\"Star History Chart\" src=\"https://api.star-history.com/chart?repos=kunchenguid/gnhf&type=date&legend=top-left\" />\n </picture>\n</a>\n","readmeFilename":"README.md"}