{"_id":"@dungle-scrubs/harness-cli-normalizer","_rev":"60-7e1f94286cbe8538179af08c1534b740","name":"@dungle-scrubs/harness-cli-normalizer","dist-tags":{"latest":"0.9.3"},"versions":{"0.1.1":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.1.1","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.1.1","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"dist":{"shasum":"88707ebdc9fb6daee450f9d12693386ce012e0d2","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.1.1.tgz","fileCount":178,"integrity":"sha512-sJJA8oO/2DiL+J0NhJ4fkdwZp7driW2UDVZWRSZiDR7wlGtyu1uz8Aj4Pr1gth98RWIOtZvUrs9bGFoye9ePLw==","signatures":[{"sig":"MEUCIQDFYLphC612CyZ8tRSSSIv6l7QbLZKV85ZuaB8Pk8H9zgIgMy/DnWDoq2XqQDdK6uKgIEJHpo3ad+xRmYWadTzPrK4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":393895},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./execution":{"types":"./dist/execution/index.d.ts","import":"./dist/execution/index.js"},"./knowledge":{"types":"./dist/knowledge/index.d.ts","import":"./dist/knowledge/index.js"},"./package.json":"./package.json","./interpretation":{"types":"./dist/interpretation/index.d.ts","import":"./dist/interpretation/index.js"}},"gitHead":"07380c36d732059bbd19142b86eb3640f1ae96ae","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm test:bun && pnpm build && pnpm check:package","prepack":"pnpm build","prepare":"git config --local core.hooksPath .git/hooks && lefthook install --force","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","smoke:claude":"bun scripts/smoke-claude.ts","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts"},"_npmUser":{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"11.12.1","description":"One stable interface to four coding-agent CLIs that survives their updates.","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^4.1.10","lefthook":"^2.1.10","typescript":"^7.0.2","@types/node":"^26.2.0","@biomejs/biome":"^2.5.7"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.1.1_1786582602049_0.8327823170091966","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.1.2","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.1.2","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"dist":{"shasum":"b09c8bd32e6d642f32bd6ff2f982bb8f09866f71","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.1.2.tgz","fileCount":178,"integrity":"sha512-pv1kq30MgTBd7ApqOMYR+Ic41/b87I7bX2ai4fNWV+AKxB6i3CQ05Z7nwa8SlrnoLU/T/lJys/g/0vSop4MeAQ==","signatures":[{"sig":"MEUCIQCQY8vJRUCjqSkU9RIylS6EUYbWhApKKuFQ5yasGD2LgAIgVDyWBECb2ACFzjzX1zg4oQ+LjHc3xSV0u13HDXwpPMw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":393899},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./execution":{"types":"./dist/execution/index.d.ts","import":"./dist/execution/index.js"},"./knowledge":{"types":"./dist/knowledge/index.d.ts","import":"./dist/knowledge/index.js"},"./package.json":"./package.json","./interpretation":{"types":"./dist/interpretation/index.d.ts","import":"./dist/interpretation/index.js"}},"gitHead":"22d3559f9a501aebaa808e477ebb9cb7b68fbe0a","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm test:bun && pnpm build && pnpm check:package","prepack":"pnpm build","prepare":"git config --local core.hooksPath .git/hooks && lefthook install --force","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","smoke:claude":"bun scripts/smoke-claude.ts","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable interface to four coding-agent CLIs that survives their updates.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^4.1.10","lefthook":"^2.1.10","typescript":"^7.0.2","@types/node":"^26.2.0","@biomejs/biome":"^2.5.7"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.1.2_1786583290159_0.014961817099151897","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.1.3","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.1.3","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"dist":{"shasum":"c17b8db935bcb16e6910dbe359058faf16174c93","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.1.3.tgz","fileCount":178,"integrity":"sha512-EhyiuG9a+1VWSSE/Z50/WOCfR7mCKumwFGo1/vGph3FNwFAR6hzSmhRfsY/qz7hKv2ebpCS/kQTUMd/On2c3/g==","signatures":[{"sig":"MEUCIBuSOAGDgW6hee9wrdlbpwmeG5GGzqYsnJhfMzcimLCDAiEA3K5yihLXZ2OWMxsd88/NpiVY+KrZFt223uOgNA7QOZw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":393899},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./execution":{"types":"./dist/execution/index.d.ts","import":"./dist/execution/index.js"},"./knowledge":{"types":"./dist/knowledge/index.d.ts","import":"./dist/knowledge/index.js"},"./package.json":"./package.json","./interpretation":{"types":"./dist/interpretation/index.d.ts","import":"./dist/interpretation/index.js"}},"gitHead":"bd46e08ac4e09344c4f7813095092906ba766d92","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm test:bun && pnpm build && pnpm check:package","prepack":"pnpm build","prepare":"git config --local core.hooksPath .git/hooks && lefthook install --force","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","smoke:claude":"bun scripts/smoke-claude.ts","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable interface to four coding-agent CLIs that survives their updates.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^4.1.10","lefthook":"^2.1.10","typescript":"^7.0.2","@types/node":"^26.2.0","@biomejs/biome":"^2.5.7"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.1.3_1786583438478_0.6972079602373209","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.3.0","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.3.0","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"e37a8608c22c88ad2b45e49c79edf99d7eec1aaa","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.3.0.tgz","fileCount":254,"integrity":"sha512-ANXx9XMZHdCQ2EUg/EGIbQ7SOcSTnwykDaxAWywmPWJGxPNJXjWAQfWg83C7mP0qKUGGun0MTbczFx7xZbVN7A==","signatures":[{"sig":"MEYCIQChW6JcRctg+fZbkIWKMCxQeX/ZNpk4ZCsbU7blbgZ1NgIhAL+fvoAadj6Er9ItWw/+XOXXd6bsUWFAiOTs50DFSldX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":728446},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./execution":{"types":"./dist/execution/index.d.ts","import":"./dist/execution/index.js"},"./knowledge":{"types":"./dist/knowledge/index.d.ts","import":"./dist/knowledge/index.js"},"./package.json":"./package.json","./interpretation":{"types":"./dist/interpretation/index.d.ts","import":"./dist/interpretation/index.js"}},"gitHead":"a6176701c3647013c432f88d30517fac0f72ad8e","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm test:bun && pnpm build && pnpm check:package","prepack":"pnpm build","prepare":"git config --local core.hooksPath .git/hooks && lefthook install --force","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","smoke:claude":"bun scripts/smoke-claude.ts","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable interface to four coding-agent CLIs.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^4.1.10","lefthook":"^2.1.10","typescript":"^7.0.2","@types/node":"^26.2.0","@biomejs/biome":"^2.5.7"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.3.0_1786632341414_0.21560172326050586","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.3.1","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.3.1","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"f4561df3fa44060cc7e6fdd4817a3a100b6955b5","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.3.1.tgz","fileCount":254,"integrity":"sha512-Skvv06t0Ef6XPQlYmqfz0ir3Ac+5SrTAXLUSx2+67Ief9Tfl8ar5oKnvwVS4AiWW/f6Jjhcp15nLT80EpA3AIA==","signatures":[{"sig":"MEYCIQCFZ+yaZu2sWLJ8P+jSwruMt6RbWCJduhn5dC+YpQGdSwIhAMWE07AXNMGHKvWLLJnjtTwKXf8a2WKtodCT6cSY8a7X","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":732770},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./execution":{"types":"./dist/execution/index.d.ts","import":"./dist/execution/index.js"},"./knowledge":{"types":"./dist/knowledge/index.d.ts","import":"./dist/knowledge/index.js"},"./package.json":"./package.json","./interpretation":{"types":"./dist/interpretation/index.d.ts","import":"./dist/interpretation/index.js"}},"gitHead":"2f28b6b5a45c62e7f4c4b6336a7912115231e32d","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm test:bun && pnpm build && pnpm check:package","prepack":"pnpm build","prepare":"git config --local core.hooksPath .git/hooks && lefthook install --force","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","smoke:claude":"bun scripts/smoke-claude.ts","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable interface to four coding-agent CLIs.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^4.1.10","lefthook":"^2.1.10","typescript":"^7.0.2","@types/node":"^26.2.0","@biomejs/biome":"^2.5.7"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.3.1_1786965257524_0.5016710290960005","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.4.0","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.4.0","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"f4f926ea107e904581874cdd12202a49818fb92a","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.4.0.tgz","fileCount":279,"integrity":"sha512-5gb0/lp3XhEF17ommZCaa7Z7YD6aZc/5rW2+wwcG0abd1XIYBf1FZ2mW/TJ2gXQJa7s/RM6Ef0CQofNRYlqRhg==","signatures":[{"sig":"MEQCIGdemgi6KBIYOGIJBlH/MrGYh1A8nsP6rhUQQA2U78lsAiBsBvjQgej6W+gcEW6I1a5Jd2SVCiO2BE3PvSMOfEExHg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":877704},"type":"module","engines":{"node":">=24"},"gitHead":"88c2dacbf52d85c11cc94fc940322774440795c5","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm test:bun && pnpm build && pnpm check:package","prepack":"pnpm build","prepare":"git config --local core.hooksPath .git/hooks && lefthook install --force","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","smoke:claude":"bun scripts/smoke-claude.ts","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to four coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^4.1.10","lefthook":"^2.1.10","typescript":"^7.0.2","@types/node":"^26.2.0","@biomejs/biome":"^2.5.7"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.4.0_1787128023684_0.855519164650824","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.4.1","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.4.1","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"5bf499079fa8c2ab094b000568af4787066e0ced","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.4.1.tgz","fileCount":289,"integrity":"sha512-j8vo7Rt2tmDzI9ijH8JCk0QlmLwr6jFghIvJxk5L/m/yKgHjnLaW5/StahUC9bb6nClea9SYny1gGF6+RoHMtw==","signatures":[{"sig":"MEUCIQDOgvMv8/AxNhqjNIQNJhGxHYVjR0GEEE+yPaEXZUZ04gIgAKOWOsIc13PutAyF4kh0yM1oaDKiwaH7Jhwfe9trkro=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":915824},"type":"module","engines":{"node":">=24"},"gitHead":"c29bcd3811b858d7fea6cf7599aa684a77d9ded6","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm test:bun && pnpm build && pnpm check:package","prepack":"pnpm build","prepare":"git config --local core.hooksPath .git/hooks && lefthook install --force","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","smoke:claude":"bun scripts/smoke-claude.ts","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to four coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^4.1.10","lefthook":"^2.1.10","typescript":"^7.0.2","@types/node":"^26.2.0","@biomejs/biome":"^2.5.7"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.4.1_1787138174100_0.3759625328583789","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.4.2","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.4.2","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"8071dac94e2d48b7dd994e396b466e03f65d4215","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.4.2.tgz","fileCount":294,"integrity":"sha512-EySm3KQrGkkAeXQO0a0nvMBo50d/X2HDgy1kwYVxMiAB2ftDd6Xb5hwfY2/as9N4pJhKrr0zHWeS7D0aFTEcyw==","signatures":[{"sig":"MEQCIGvUMW3yQMoNUun697BHbp94pojhErnkfMp2FDWF8h6NAiB4An1T/Ex0u54wU8nbagTxOLXNlGYVQaTZunDLBLIJhA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":958384},"type":"module","engines":{"node":">=24"},"gitHead":"2fc668f061a9cc6e8c20afeb5b2908193bcec1b0","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm test:bun && pnpm build && pnpm check:package","prepack":"pnpm build","prepare":"git config --local core.hooksPath .git/hooks && lefthook install --force","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","smoke:claude":"bun scripts/smoke-claude.ts","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to four coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^4.1.10","lefthook":"^2.1.10","typescript":"^7.0.2","@types/node":"^26.2.0","@biomejs/biome":"^2.5.7"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.4.2_1787143275030_0.3206205710145109","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.4.3","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.4.3","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"9294f541e093bf1629499480aa2314ab41d7384f","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.4.3.tgz","fileCount":294,"integrity":"sha512-RWRQ4TEiOXofujrRK0NRm9hNzIcbLDjBry2CLoCXUV/U4ry04mTigsScv80tyXx8y3pL/pgL4j+KRX0z/4MT0w==","signatures":[{"sig":"MEYCIQCAWtnabklYNppd6frPFwUuEcXQ8JZudKrOdQuIdigktQIhAIkdQkOoQD47sIqdcI21/JFkbLaF8zb+286WhT17PT4D","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":999524},"type":"module","engines":{"node":">=24"},"gitHead":"ce242c2a64f066ae3eb41ac8cdf558bd2b271ae8","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm test:bun && pnpm build && pnpm check:package","prepack":"pnpm build","prepare":"git config --local core.hooksPath .git/hooks && lefthook install --force","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","smoke:claude":"bun scripts/smoke-claude.ts","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to four coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^4.1.10","lefthook":"^2.1.10","typescript":"^7.0.2","@types/node":"^26.2.0","@biomejs/biome":"^2.5.7"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.4.3_1787202252284_0.1939872496067021","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.4.4","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.4.4","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"2458cb17457cbe330fe1e36c6fc169c8819a6fe8","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.4.4.tgz","fileCount":294,"integrity":"sha512-E0de01vTQsb/6B2boU9/pNVV1EkveqmsOcrVgDHefVJbAFJ3Pc7SNBXt0ncPdqnh1e/qpPfyKBXPsLWHYAddOw==","signatures":[{"sig":"MEYCIQCvfBIUDnDv0C+s3x9EBCmih1iFHpSrfT66D98CVq4wlQIhAPx0A7SVzZupoVn6YdoTv/Z6qR6DXhqeTQRnrfuYLWSv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.4.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":999524},"type":"module","engines":{"node":">=24"},"gitHead":"4b66f55c45f3900171c6446b71ba82f7d57fc49e","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm test:bun && pnpm build && pnpm check:package","prepack":"pnpm build","prepare":"git config --local core.hooksPath .git/hooks && lefthook install --force","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","smoke:claude":"bun scripts/smoke-claude.ts","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to four coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^4.1.10","lefthook":"^2.1.10","typescript":"^7.0.2","@types/node":"^26.2.0","@biomejs/biome":"^2.5.7"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.4.4_1787204385428_0.33611435352836616","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.4.5","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.4.5","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"7c5e17e6ec839c2a3ee43f38979ac8f19c144a0b","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.4.5.tgz","fileCount":294,"integrity":"sha512-7zTHF/B1n+25n3s7kJ+YabIlJ7yULxpdKzffRRcg2tkSAkzsARDO1O3TBOdL/NQY7cCwMhIzSwxMa2iNxIGpPg==","signatures":[{"sig":"MEQCIGOimhqzz9Xg/yGQ9K4UnKhA37L7hE96bKxehqtrSE4mAiALwkE6Jc4AHecPG/xG+5TBZXMsXEJG0BbJhP9xixtNLA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.4.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1058068},"type":"module","engines":{"node":">=24"},"gitHead":"4f29ea3aac871a8018f83dbbb160d36890c87730","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm test:bun && pnpm build && pnpm check:package","prepack":"pnpm build","prepare":"git config --local core.hooksPath .git/hooks && lefthook install --force","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","smoke:claude":"bun scripts/smoke-claude.ts","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to four coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^4.1.10","lefthook":"^2.1.10","typescript":"^7.0.2","@types/node":"^26.2.0","@biomejs/biome":"^2.5.7"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.4.5_1787295109203_0.9195860493878578","host":"s3://npm-registry-packages-npm-production"}},"0.4.6":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.4.6","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.4.6","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"6bbd610d88788d1b0b3952b3e79cebc6201a4b59","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.4.6.tgz","fileCount":299,"integrity":"sha512-HL4Yp15tTfPPArharYaeU0sZre4hKfzgPKOC+ZLAe0YAydLD4WLDs47NDmtn7MOtepsUuL9MDX5WNA+mvWy3Lg==","signatures":[{"sig":"MEYCIQCAAOrSo2ZkghvIK6DOx/kN8IWUbXnufKIO8TpQEcLeNQIhAKZBV9sh4wUczp98UNIq/leHSD8IsGMvJKWcSp+LbkKA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.4.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1078896},"type":"module","engines":{"node":">=24"},"gitHead":"34aefb640870ade5f5b374e24db5435098d450d6","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm test:bun && pnpm build && pnpm check:package","prepack":"pnpm build","prepare":"git config --local core.hooksPath .git/hooks && lefthook install --force","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","smoke:claude":"bun scripts/smoke-claude.ts","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to four coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^4.1.10","lefthook":"^2.1.10","typescript":"^7.0.2","@types/node":"^26.2.0","@biomejs/biome":"^2.5.7"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.4.6_1787296915471_0.7058682069436926","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.5.0","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.5.0","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"2d7270e946c7af665ed6952a73c9979659d8d070","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.5.0.tgz","fileCount":309,"integrity":"sha512-j07Ep7BVN+6cR+AEqQ9rvJTLl/n0qglInXYqFHpQk/CRQvZQaqUXYttfBLo21n0tEwDT3tm14dVVzvTK700Vww==","signatures":[{"sig":"MEUCIQDhdT3WLdwtISuzqJVsJx6rU617bD+xWBc703Q/FZl0CgIgU67/bJvpuDdfn4PAtTkEV407jtqDHjMuepUMvS8XZU0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1177172},"type":"module","engines":{"node":">=24"},"gitHead":"2fff8b47be3027d5585bdd866528560f306ba974","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm test:bun && pnpm build && pnpm check:package","prepack":"pnpm build","prepare":"git config --local core.hooksPath .git/hooks && lefthook install --force","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","smoke:claude":"bun scripts/smoke-claude.ts","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to four coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^4.1.10","lefthook":"^2.1.10","typescript":"^7.0.2","@types/node":"^26.2.0","@biomejs/biome":"^2.5.7"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.5.0_1787308628575_0.8477745747574821","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.5.1","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.5.1","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"8527fa5051c1dab68d33a13ffdeff06d8112b732","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.5.1.tgz","fileCount":314,"integrity":"sha512-SOFmBNoYp88tUlOVBBl8V/q1rqDLOUUwaVZM9+Mnb0JARmxoj+dWZcjNs0nGCFWAvId3nz1KameFO5R3+sEtwQ==","signatures":[{"sig":"MEYCIQDnU2ShHsBOfBuMvOc04M+PMMbU/DLYajPHjppTF0AoYgIhAIzKOAiG9QGpCjrwqF8y1k/kgw9JAz6FGzQcuxydd/4N","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1181190},"type":"module","engines":{"node":">=24"},"gitHead":"c09d825a3112fd3e71fe3a9e35cec0f3b84a7fb8","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm test:bun && pnpm build && pnpm check:package","prepack":"pnpm build","prepare":"git config --local core.hooksPath .git/hooks && lefthook install --force","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","smoke:claude":"bun scripts/smoke-claude.ts","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to four coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^4.1.10","lefthook":"^2.1.10","typescript":"^7.0.2","@types/node":"^26.2.0","@biomejs/biome":"^2.5.7"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.5.1_1787311422801_0.006564652117492242","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.5.2","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.5.2","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"7a4c8f9ff305ab2cfd1ef73beae40ac51e092459","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.5.2.tgz","fileCount":314,"integrity":"sha512-KQ/aB5lbr6h/U+kLj8qYcDrUNU5UPWLV6tFAYFX18qeSnDBzE/EEx2QFFPOFcJdlXZbbpE1nNqtJA08Lp/Kr1Q==","signatures":[{"sig":"MEYCIQDIFwEG1xZLh8OcE1gZ1NGreOSCNcSS9PD5gISdsjTaMwIhAPO15hh2JPtGSZgOrkvFyyr0KnBZbH5qp4s+SGxa3j4B","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1183446},"type":"module","engines":{"node":">=24"},"gitHead":"53361b723f2bd22e59a205519458956bdb83ba26","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm test:bun && pnpm build && pnpm check:package","prepack":"pnpm build","prepare":"git config --local core.hooksPath .git/hooks && lefthook install --force","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","smoke:claude":"bun scripts/smoke-claude.ts","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to four coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^4.1.10","lefthook":"^2.1.10","typescript":"^7.0.2","@types/node":"^26.2.0","@biomejs/biome":"^2.5.7"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.5.2_1787311785969_0.7789266794955414","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.5.3","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.5.3","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"ee672b4ca3b6c990f1a8c08f4b7f6f21601bb774","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.5.3.tgz","fileCount":314,"integrity":"sha512-8RWGgcmkwglmbLz3+kv+YleLovjvfHQ/eR/WoRCFTPEQvWev4Huj6DYWE2chi/1MYSW0QtH4WaUr/vtwM9A6wQ==","signatures":[{"sig":"MEYCIQDmyZmwh8wXpmVikR7IALZRkXZsLVlm2NeMzs7GFJ3mAwIhAIoVCi6ZcGpj2rUSvOP2h124aEz5DDOjzZJPVEchRaN7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.5.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1189203},"type":"module","engines":{"node":">=24"},"gitHead":"2c141595898025e0ce64523dc951f5009f154159","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm test:bun && pnpm build && pnpm check:package","prepack":"pnpm build","prepare":"git config --local core.hooksPath .git/hooks && lefthook install --force","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","smoke:claude":"bun scripts/smoke-claude.ts","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to four coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^4.1.10","lefthook":"^2.1.10","typescript":"^7.0.2","@types/node":"^26.2.0","@biomejs/biome":"^2.5.7"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.5.3_1787314273508_0.8266803964442517","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.5.4","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.5.4","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"c3d9c5c2a9825e2397bf5cbe2dc2688093543279","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.5.4.tgz","fileCount":319,"integrity":"sha512-3TqIMU3fxgAJ9evJXiSzniSo9t1DSwOpTDgKZNAf4VR8m1pun8sot/Fetxh557xxsZcGJjzUF5H9wV6rVZLYxA==","signatures":[{"sig":"MEYCIQDbnCMASzoiC28sCiHShb+5BkUXWuMVkzE+fBHVjxJYEQIhAN6XrwVOcqoM8q45U9A4DzzdMpWyek0fIYSqhs4QFRGQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.5.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1251775},"type":"module","engines":{"node":">=24"},"gitHead":"c0df6f3ce3b625cbc278bd40deb8044f10dfd9e0","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm test:bun && pnpm build && pnpm check:package","prepack":"pnpm build","prepare":"git config --local core.hooksPath .git/hooks && lefthook install --force","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","smoke:claude":"bun scripts/smoke-claude.ts","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to four coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^4.1.10","lefthook":"^2.1.10","typescript":"^7.0.2","@types/node":"^26.2.0","@biomejs/biome":"^2.5.7"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.5.4_1787388775772_0.9547535756465384","host":"s3://npm-registry-packages-npm-production"}},"0.5.5":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.5.5","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.5.5","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"2bee90926a59e153c7eb6cc4d80d82fd42ef0224","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.5.5.tgz","fileCount":319,"integrity":"sha512-ByNVl0IIs0VZUBNNopXfVBPtX8YG0+e9rhALeTnfcUBR2qO3SxYpGnfkw2w6d3iXqJ9jWwXS1DUw7bfr9AN+9Q==","signatures":[{"sig":"MEUCIFislD+LN1fyRT9XADOAf1xhz06gdy6vxWSYofkYQ2E9AiEAwz5Idi9j2SEOiIOaMAAzOCXi76ODVmxNJyXxxLWYy5M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.5.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1259131},"type":"module","engines":{"node":">=24"},"gitHead":"47d53deaec7dd70a95375933f195145c14d8b299","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm test:bun && pnpm build && pnpm check:package","prepack":"pnpm build","prepare":"git config --local core.hooksPath .git/hooks && lefthook install --force","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","smoke:claude":"bun scripts/smoke-claude.ts","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to four coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^4.1.10","lefthook":"^2.1.10","typescript":"^7.0.2","@types/node":"^26.2.0","@biomejs/biome":"^2.5.7"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.5.5_1787392157041_0.046708529684728495","host":"s3://npm-registry-packages-npm-production"}},"0.5.6":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.5.6","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.5.6","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"0b10a0798d0049810b1437c0e9a92e1e69c768b8","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.5.6.tgz","fileCount":319,"integrity":"sha512-8DnBlopj25tH1kinvqfnQXzZe+1cXdeBNIhILKanLN2PpZmLsb30CLJdrO3fDbPGOjtWaacXJ3G4QgTBLIUUZQ==","signatures":[{"sig":"MEUCIBwFJjK88W1DxzP3W0OWFaBv1JZx7mRIm1DlvECFgkodAiEAxc/2oDTUKcCNmo6TdIvj3xEMoF3sP1axpgQYTITYdsM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.5.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1306041},"type":"module","engines":{"node":">=24"},"gitHead":"405a940fd4da2af0481ae641586edb1924af4c99","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm test:bun && pnpm build && pnpm check:package","prepack":"pnpm build","prepare":"git config --local core.hooksPath .git/hooks && lefthook install --force","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","smoke:claude":"bun scripts/smoke-claude.ts","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to four coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^4.1.10","lefthook":"^2.1.10","typescript":"^7.0.2","@types/node":"^26.2.0","@biomejs/biome":"^2.5.7"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.5.6_1787490841336_0.8689846727030726","host":"s3://npm-registry-packages-npm-production"}},"0.5.7":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.5.7","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.5.7","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"e7edd4b680baf8f9223853b616a707ba6c25efa5","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.5.7.tgz","fileCount":319,"integrity":"sha512-CEZ/aL/ePHelYmWtLp21n2CWcNHodWXl3Idi4qHaJ9nN3XRa3ZLCKRwU5+KusyKEe3BTKdnjCg2/IjFF3eCEdQ==","signatures":[{"sig":"MEYCIQCbWj7RwDtu/Zy/XvjXUNW4FUXMQCZiHQiJfyozBIpgkgIhAKhfsPmaftPDA0t7jCmkED/tweTpeZ6JUDLoZX/dx7nP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.5.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1310018},"type":"module","engines":{"node":">=24"},"gitHead":"f5cd7b8d8f6d27c6a0cdefaf12e3ec7e03da82ea","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm test:bun && pnpm build && pnpm check:package","prepack":"pnpm build","prepare":"git config --local core.hooksPath .git/hooks && lefthook install --force","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","smoke:claude":"bun scripts/smoke-claude.ts","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to four coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^4.1.10","lefthook":"^2.1.10","typescript":"^7.0.2","@types/node":"^26.2.0","@biomejs/biome":"^2.5.7"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.5.7_1787547316894_0.2870403079892032","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.6.0","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.6.0","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"e2af33edee14f339ea8cb6fa8b3fdea5d27b5b15","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.6.0.tgz","fileCount":319,"integrity":"sha512-pmy4tfRjTOQhpqmaC+q5M/9ydj07Q7ETzjYB8VHZl8+JTV7081gmqdaf1EXHyvoMRNEih072XTsPsTYD3ymCIQ==","signatures":[{"sig":"MEUCIC0L3k0VG4zfEBEpy1RDCPQjNNqOtQz6bvMAL2t8YvwVAiEAhdq3CjmxVIl4TquaMVSAqvNMHoSIlhR/cw1e0QQhgpw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1314316},"type":"module","engines":{"node":">=24"},"gitHead":"976603fb6da0e2a6b2a00429b921fb7a5002c0aa","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm test:bun && pnpm build && pnpm check:package","prepack":"pnpm build","prepare":"git config --local core.hooksPath .git/hooks && lefthook install --force","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","smoke:claude":"bun scripts/smoke-claude.ts","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to four coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^4.1.10","lefthook":"^2.1.10","typescript":"^7.0.2","@types/node":"^26.2.0","@biomejs/biome":"^2.5.7"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.6.0_1787979112413_0.18483938168321234","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.6.1","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.6.1","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"3495ae4fb99cc67bc3f88925b4d6b2676a25f08f","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.6.1.tgz","fileCount":324,"integrity":"sha512-qcgOX+SohJU4W4fVWaY8DAl1c0pjp4dBDlmVx3iHgcIyZdcKuRJO5Zdi6bnP/Q8Dyl8H3aB1jIFi/kMQGpmSbg==","signatures":[{"sig":"MEYCIQCfmAtKOdvoWCQZFQPGtjg+4Qt7nj7NoxdfaXV6PkXd3AIhAN+TCFohZADsmQxpBBh8mj1dpsa+ulkeIG3AkwnrTwRa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1309736},"type":"module","engines":{"node":">=24"},"gitHead":"28a5d23e3b32f142d81feb5b799e2210150c61a6","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm test:bun && pnpm build && pnpm check:package","prepack":"pnpm build","prepare":"git config --local core.hooksPath .git/hooks && lefthook install --force","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","smoke:claude":"bun scripts/smoke-claude.ts","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to four coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^4.1.10","lefthook":"^2.1.10","typescript":"^7.0.2","@types/node":"^26.2.0","@biomejs/biome":"^2.5.7"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.6.1_1788674462357_0.02577482592943814","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.6.2","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.6.2","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"e7a26f79c571815c20192807e756d737b9b2a71a","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.6.2.tgz","fileCount":329,"integrity":"sha512-D17EraFVhZuZowyo4IpEzOub8mHGYUspwMMDI3l2m6D5pECikRoPqqyCBpxQ4tglPgK8lv7yBpmk31cp0Jzugw==","signatures":[{"sig":"MEYCIQDY2YlONYcsJa7k62ATMufih1IYvKgBsGq3cn7vwybPWAIhAMl5prymmp6AlOr6Y3Su2pPxyHy32BhHQEZerclT3o++","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1323317},"type":"module","engines":{"node":">=24"},"gitHead":"fa20dacb59a57543c2d3f7ae79eed841868b282a","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm test:bun && pnpm build && pnpm check:package","prepack":"pnpm build","prepare":"git config --local core.hooksPath .git/hooks && lefthook install --force","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","smoke:claude":"bun scripts/smoke-claude.ts","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to four coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^4.1.10","lefthook":"^2.1.10","typescript":"^7.0.2","@types/node":"^26.2.0","@biomejs/biome":"^2.5.7"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.6.2_1788790477504_0.40765719951580004","host":"s3://npm-registry-packages-npm-production"}},"0.6.3":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.6.3","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.6.3","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"3aabde82f8d165c72b20c966da4b9fa397e3b4f0","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.6.3.tgz","fileCount":329,"integrity":"sha512-3spRvx4VUfx1ga6evtOCk+e/US5qEOt0RuReZRBqJHtk46U+mkCor4Xl/jJ1yTeEivaYlBSTOS7mbkHoiPiyyg==","signatures":[{"sig":"MEUCIQCL64IsA+nRohc7Ekj2lBrWBPPRSiGc2Rrkbdl5Cq7uwgIgIDCP+qmmv1xoFuM9b5t6mkwXd6M2zmjiJVPPi2boUGw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.6.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1323639},"type":"module","engines":{"node":">=24"},"gitHead":"e010665d6a1a69901d212b7fd87cd2c161d7833a","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm test:bun && pnpm build && pnpm check:package","prepack":"pnpm build","prepare":"git config --local core.hooksPath .git/hooks && lefthook install --force","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","smoke:claude":"bun scripts/smoke-claude.ts","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to four coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^4.1.10","lefthook":"^2.1.10","typescript":"^7.0.2","@types/node":"^26.2.0","@biomejs/biome":"^2.5.7"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.6.3_1788829636682_0.5394521855540999","host":"s3://npm-registry-packages-npm-production"}},"0.6.4":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.6.4","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.6.4","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"d447d4f9d5f3f732f4e75fdc96604399662e1034","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.6.4.tgz","fileCount":359,"integrity":"sha512-M5tC89ZGCg21lNNBl7hkYY/CqNtizXs2t/qMg8O5aucxl867z0aJJC1tnIsJajWZNIQoO4z6vM4UzOFQpVuaFw==","signatures":[{"sig":"MEUCIQD5w1VGTXarMs4EX0KPA+PgHd9o9i/Eg2yNQZCPddAy6AIgYOsip/WWUWfE5YbhHot24IJH6Y+t8IW6A4tJfvTotaA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.6.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1422562},"type":"module","engines":{"node":">=24"},"gitHead":"273c16cc700fd8af649a02aa76c115b5e4e73448","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm test:bun && pnpm build && pnpm check:package","prepack":"pnpm build","prepare":"node scripts/install-hooks.ts","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","smoke:claude":"bun scripts/smoke-claude.ts","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to four coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^4.1.10","lefthook":"^2.1.10","typescript":"^7.0.2","@types/node":"^26.2.0","@biomejs/biome":"^2.5.7"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.6.4_1788844116780_0.4329869193533826","host":"s3://npm-registry-packages-npm-production"}},"0.6.5":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.6.5","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.6.5","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"3fb340255b7a91823ce9b1262d208cf5b1e7e7b9","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.6.5.tgz","fileCount":359,"integrity":"sha512-vxzWXGCbec08e4WUs5TAiL/dBmDxXsH3EpV4SItLpgfJ3g/iSgVml8C3MiscWJFfOPiJvbAmBzhBUr7bXvWSag==","signatures":[{"sig":"MEUCIFbDdwJ75x+DcqZR66xaL/Q5oo6btA8RXyXG12azXRmrAiEAsoRiTL2avBTnP70GCVjR4/9p48JdmEsieX/LtyV4xAM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.6.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1424762},"type":"module","engines":{"node":">=24"},"gitHead":"00e943e2dea42d1d8c439876fdc6a766cf159303","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm test:bun && pnpm build && pnpm check:package","prepack":"pnpm build","prepare":"node scripts/install-hooks.ts","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","smoke:claude":"bun scripts/smoke-claude.ts","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to four coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^4.1.10","lefthook":"^2.1.10","typescript":"^7.0.2","@types/node":"^26.2.0","@biomejs/biome":"^2.5.7"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.6.5_1788879472277_0.8542048440899375","host":"s3://npm-registry-packages-npm-production"}},"0.6.6":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.6.6","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.6.6","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"892c33d92114d572b81040b15ff83bc912920043","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.6.6.tgz","fileCount":359,"integrity":"sha512-/4F5PtMs33OJYqCRN/SV3/Qur/5ued44KTYrNcpdoLrA2MJlNHGQM+kBjceSLyyCwke2AFpp6+OwDoe/oGY/kg==","signatures":[{"sig":"MEUCIDaKfgjRzU75GjDSpZdzo2Q0BS5prh9ZDJkAH9ZLp2rbAiEAzG9H03kGgzW+3kNPqqMdIOQHqHX1LZrboprRNG8LAds=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.6.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1437654},"type":"module","engines":{"node":">=24"},"gitHead":"0797859cac085553095e9457a313fe452580d222","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm test:bun && pnpm build && pnpm check:package","prepack":"pnpm build","prepare":"node scripts/install-hooks.ts","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","smoke:claude":"bun scripts/smoke-claude.ts","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to four coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^4.1.10","lefthook":"^2.1.10","typescript":"^7.0.2","@types/node":"^26.2.0","@biomejs/biome":"^2.5.7"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.6.6_1789051925648_0.7641647191298035","host":"s3://npm-registry-packages-npm-production"}},"0.6.7":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.6.7","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.6.7","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"66ee41440788e118b465aa099a9da6ad0e7f4315","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.6.7.tgz","fileCount":359,"integrity":"sha512-0ImQ06fcmpkvHfXgopQYP9jscU4vMCz3va+womOBCtMSug5Q+fOeiQ7LP0PlXRQmhWZwIFq1W+p5hconnw4xvQ==","signatures":[{"sig":"MEQCIE3bFs8ox2HaKYs++wNOH4lsZ3mNkU2nLei5zHinnrNvAiBWlIxwOQGBH06oTh0xeFtV+iqqyHMqJsMI/qC3YrJzXg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.6.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1436186},"type":"module","engines":{"node":">=24"},"gitHead":"288a28e291a0ae99494409a4d00735ba7c9a1b1d","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm test:bun && pnpm build && pnpm check:package","prepack":"pnpm build","prepare":"node scripts/install-hooks.ts","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","smoke:claude":"bun scripts/smoke-claude.ts","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to four coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^4.1.10","lefthook":"^2.1.10","typescript":"^7.0.2","@types/node":"^26.2.0","@biomejs/biome":"^2.5.7"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.6.7_1789106412789_0.5393954170085331","host":"s3://npm-registry-packages-npm-production"}},"0.6.8":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.6.8","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.6.8","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"98111ddd2beee9f110cca68b26209e8d60e002c5","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.6.8.tgz","fileCount":496,"integrity":"sha512-u37P14qdop7Tm9C33f+t6UgfsDkA9kY4KDc8WMt4NzWDaOVtNL6WFMDlFYSdz8hgbnHln9RjwoNqWVv5R8yrLA==","signatures":[{"sig":"MEUCIBggprGN9J7xy+2GbKFrraQ8/ZUuar4/eKPZ9mNpGhEEAiEA9KuBM3r7dxTA7nkc6HStPiBfNvEsvm5olJ3/N0pvgWQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.6.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3504409},"type":"module","engines":{"node":">=24"},"gitHead":"4cfb6e22c89e63ac4e6dd1acc542cb954af392ee","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm test:bun && pnpm build && pnpm check:package","prepack":"pnpm build:release","prepare":"node scripts/install-hooks.ts","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","build:native":"node scripts/build-native.ts","smoke:claude":"bun scripts/smoke-claude.ts","build:release":"node scripts/build.ts --release","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to four coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^5.0.0","lefthook":"^2.1.12","typescript":"^7.0.2","@types/node":"^26.4.1","@biomejs/biome":"^2.5.12"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.6.8_1789229723936_0.863060212074368","host":"s3://npm-registry-packages-npm-production"}},"0.6.9":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.6.9","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.6.9","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"83a30b782c381fa8cb4094edb626d6319982a4af","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.6.9.tgz","fileCount":626,"integrity":"sha512-5/8577RbzzUU7LAJjGGsfSST1XrgWeeu6/4jI2YSnFfxi4NSsh6IHDOH7x2WGUB/8nTTugIokIn4nzy8VPdfbQ==","signatures":[{"sig":"MEUCIQDqv5ipWP/KYNwII8PZEjVGGebMJWuMkWLgjS3zyoHV8gIgRHXJmAySS3hUrYrwVVJpqPv/v5+6QBZjjRM2Ody4Www=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.6.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3865414},"type":"module","engines":{"node":">=24"},"gitHead":"b56754068219551ee7198c91253d7045ba821efe","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm test:bun && pnpm build && pnpm check:package","prepack":"pnpm build:release","prepare":"node scripts/install-hooks.ts","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","build:native":"node scripts/build-native.ts","smoke:claude":"bun scripts/smoke-claude.ts","build:release":"node scripts/build.ts --release","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to four coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"koffi":"3.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^5.0.0","lefthook":"^2.1.12","typescript":"^7.0.2","@types/node":"^26.4.1","@biomejs/biome":"^2.5.12"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.6.9_1789279110908_0.7986039969226935","host":"s3://npm-registry-packages-npm-production"}},"0.6.10":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.6.10","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.6.10","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"6110d98019f201556fe66037092ed4d00c631e9c","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.6.10.tgz","fileCount":626,"integrity":"sha512-tLlbiQhVk44kxFeXwHpgy1M95WUdUBaSpxfdWSutPq17fs0D6EB2+maWzVFL8+HtzOMivY5eP24nOvQjhQ6Hvg==","signatures":[{"sig":"MEUCIQCWfD3gK9nfjE6uMGezppOMGzwyaCgh0YGL54da41Q6OwIgGjMEYBPaDs4HdyDx+wRMNkVIzuU9gh9laHweWeXFhHI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.6.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3889864},"type":"module","engines":{"node":">=24"},"gitHead":"4b9f98b3198ecde7a9ec99d5b4a566eade8b7f88","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm test:bun && pnpm build && pnpm check:package","prepack":"pnpm build:release","prepare":"node scripts/install-hooks.ts","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","build:native":"node scripts/build-native.ts","smoke:claude":"bun scripts/smoke-claude.ts","build:release":"node scripts/build.ts --release","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to four coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"koffi":"3.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^5.0.0","lefthook":"^2.1.12","typescript":"^7.0.2","@types/node":"^26.4.1","@biomejs/biome":"^2.5.12"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.6.10_1789398446362_0.9166795356818029","host":"s3://npm-registry-packages-npm-production"}},"0.6.11":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.6.11","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.6.11","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"2c82fc60676cd85b1095e43ef99d0547a8acf8b7","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.6.11.tgz","fileCount":626,"integrity":"sha512-osUxarX1nangs93KEaQHg2F+MGLFtsgRivrLOWtIH6MJDCpGCGuop0vtMuGIEaZlmLaT1BFGlhZUgXoed5rmmA==","signatures":[{"sig":"MEUCIEMcde1fLMDGyj21nuE2STUWS67denHhOKf98X0wEqcwAiEA/cAX7YiADFu9SbHdEP3LmVSYq+aCseIpf0YcJHh+2Ao=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.6.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3890766},"type":"module","engines":{"node":">=24"},"gitHead":"f7a3ccc00c864decd05162085dc508d9589d4033","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm test:bun && pnpm build && pnpm check:package","prepack":"pnpm build:release","prepare":"node scripts/install-hooks.ts","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","build:native":"node scripts/build-native.ts","smoke:claude":"bun scripts/smoke-claude.ts","build:release":"node scripts/build.ts --release","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to four coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"koffi":"3.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^5.0.0","lefthook":"^2.1.12","typescript":"^7.0.2","@types/node":"^26.4.1","@biomejs/biome":"^2.5.12"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.6.11_1789399674472_0.36934453823319524","host":"s3://npm-registry-packages-npm-production"}},"0.6.12":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.6.12","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.6.12","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"8fd692e849b466433ac6917854de3729a231a453","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.6.12.tgz","fileCount":626,"integrity":"sha512-gjpVgnuVywWYTZVTLaz4RJm+Bx66XcJdsx0FvuJEqT8mmbo5XLX5llROQSRAoVT6adPXn9TIRhFsZqQBrz9VyQ==","signatures":[{"sig":"MEYCIQDqQCqrm8GigDgDNHWzzqUpTznGrJ1GLfyomwEOzhrbcgIhAMXR7quMC0il9mh04bYtqJZ7psGFcIC3vDwVrsOiAFGM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHAr0ZiyZTN1Rj/fzw4jzjwvZPlAkvU3p5Ai+v86l6UFAiAaGoaYbQGI+XI4cz/Q1WFMuusfjksgzz45bSbInHFrBg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.6.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3902851},"type":"module","engines":{"node":">=24"},"gitHead":"953b8b95c7b60f471b8679f96102d46f25eff3cd","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm test:bun && pnpm build && pnpm check:package","prepack":"pnpm build:release","prepare":"node scripts/install-hooks.ts","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","build:native":"node scripts/build-native.ts","smoke:claude":"bun scripts/smoke-claude.ts","build:release":"node scripts/build.ts --release","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to four coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"koffi":"3.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^5.0.0","lefthook":"^2.1.12","typescript":"^7.0.2","@types/node":"^26.4.1","@biomejs/biome":"^2.5.12"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.6.12_1789441628931_0.9161978861226792","host":"s3://npm-registry-packages-npm-production"}},"0.6.13":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.6.13","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.6.13","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"a0fc7470bb6ca1835542facaf9676cade0c4e4b7","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.6.13.tgz","fileCount":636,"integrity":"sha512-3E2WzoK8SObiMsb69z0Fk+w2jHPhdcxvMapAViwo1U9S3+Uyei1Kz1UVXXfcQEwcsGzOFq+2KO/JFo+gumPJvw==","signatures":[{"sig":"MEUCIEgL/c9V+vcUIvnp1N7WjtxC+mJcl8gzpswFDRYSYdiPAiEA/5iLe+YNbwhpTpsyCQrB/c1KvxuUFSRPE1ntuMLXcQA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGCEazp5uskLWo2RmTH+Tf+u4Z471LqmWWnpdeuplivQAiEAvDzLnlGGeYyVl4BozjSPSn6eKqXr3Zd9Z2nIm7qpmTY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.6.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3920102},"type":"module","engines":{"node":">=24"},"gitHead":"ed3b5636f1af0687a9653919b09ba1450828a399","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm test:bun && pnpm build && pnpm check:package","prepack":"pnpm build:release","prepare":"node scripts/install-hooks.ts","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","build:native":"node scripts/build-native.ts","smoke:claude":"bun scripts/smoke-claude.ts","build:release":"node scripts/build.ts --release","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to four coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"koffi":"3.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^5.0.0","lefthook":"^2.1.12","typescript":"^7.0.2","@types/node":"^26.4.1","@biomejs/biome":"^2.5.12"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.6.13_1789464358777_0.30657615660251714","host":"s3://npm-registry-packages-npm-production"}},"0.6.14":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.6.14","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.6.14","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"f48ea779549362ac1c9de830e4a76af00979d20f","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.6.14.tgz","fileCount":646,"integrity":"sha512-yfnmoTZOVRnKKGy5dV7wNP98Y3LeITDvC7W2Y27jspdGlzDrqhUQLyA3iq9CeO6E5H7LhRBbg0f7He7vQANvTA==","signatures":[{"sig":"MEQCICDRGmzM5sssgpaC7yA1o8Cpxl3Zp1pM7puaSelydpU3AiAq9rr7iICwx3kO0FZv9etB73ejpPvhm+NjH/JdORY4GA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFQ/rEXRNsT0gtjDMLxKVDBbEKCl9w800Ks1KMkHPZ2cAiEAjEArDUdAtMismCjYyWdORWhJr+FuxD2n0Yf6ieGxOsc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.6.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4109236},"type":"module","engines":{"node":">=24"},"gitHead":"894d7c091ae1fc2b7f8a608ca8d3ef7a13d5c095","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm test:bun && pnpm build && pnpm check:package","prepack":"pnpm build:release","prepare":"node scripts/install-hooks.ts","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","build:native":"node scripts/build-native.ts","smoke:claude":"bun scripts/smoke-claude.ts","build:release":"node scripts/build.ts --release","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to four coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"koffi":"3.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^5.0.0","lefthook":"^2.1.12","typescript":"^7.0.2","@types/node":"^26.4.1","@biomejs/biome":"^2.5.12"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.6.14_1789619280864_0.16341112773281918","host":"s3://npm-registry-packages-npm-production"}},"0.6.15":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.6.15","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.6.15","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"51b76bfb0690fc16f22d6741a2fd67506e6b9275","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.6.15.tgz","fileCount":656,"integrity":"sha512-bjFmJVjtE7OtkTJcjgDQCCKt2323BiBKdKw365vSuqMgnoxwALXX6tFRgYpo9MtGIUN1KBnl6cN2kHhrykIUwg==","signatures":[{"sig":"MEUCIQCkkMM4M0FyrxVjTyt2Ltab1la048u1ShQ8pddJyvcdqQIgdTPCfc+CoNcbVv1BrG1mtlnzbdUno1XU4rT8JdmHfsA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCJ0CIayJPYbFkR/nKl7Gqr/tgT1imCdLCB1EcK8/By5QIhAKvseycLz5FI34YvDE+6efEYybxFwLJiQBvQpCDmnI0h","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.6.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4181043},"type":"module","engines":{"node":">=24"},"gitHead":"5d30d16f08917e2acb9e59883f1d4d6ba2c41d70","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm test && pnpm test:bun && pnpm build && pnpm check:package","prepack":"pnpm build:release","prepare":"node scripts/install-hooks.ts","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","build:native":"node scripts/build-native.ts","smoke:claude":"bun scripts/smoke-claude.ts","build:release":"node scripts/build.ts --release","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to four coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"koffi":"3.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^5.0.0","lefthook":"^2.1.12","typescript":"^7.0.2","@types/node":"^26.4.1","@biomejs/biome":"^2.5.12"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.6.15_1789629393578_0.7747499336496992","host":"s3://npm-registry-packages-npm-production"}},"0.6.16":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.6.16","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.6.16","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"42633494a97db2f6bda910dfa3e1c4b34bacc441","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.6.16.tgz","fileCount":666,"integrity":"sha512-LQvTKyastFZZw5lUZXT4bNs6sllmhmVjHiYVOl05nCHBVCLRTIIt1g8PQM17yymPCncKed1IAjX4WNwMnfZvfA==","signatures":[{"sig":"MEYCIQCxf7DG+N35kd0z7DBtRlA4HNjbMuNk7JeiBHuJv3LyngIhAJLthKfy4i5j9TWd9RdD37plrhWHxI4PwH+mAKbdeH7i","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDbipFkcOVu21LiIVGRCAiCULZawJFO5EI2w2+2bbjtQAIhAMLK9tTiX2VFq5k5RBAraEdqNYURuQlg+QinDBa1POSA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.6.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4261342},"type":"module","engines":{"node":">=24"},"gitHead":"40dae6ff4a762d5eddc5d78b46cb4eab966c7551","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm build && pnpm test && pnpm test:bun && pnpm check:package","prepack":"pnpm build:release","prepare":"node scripts/install-hooks.ts","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","build:native":"node scripts/build-native.ts","smoke:claude":"bun scripts/smoke-claude.ts","build:release":"node scripts/build.ts --release","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to four coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"koffi":"3.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^5.0.0","lefthook":"^2.1.12","typescript":"^7.0.2","@types/node":"^26.4.1","@biomejs/biome":"^2.5.12"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.6.16_1789642970784_0.9058197130276537","host":"s3://npm-registry-packages-npm-production"}},"0.6.17":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.6.17","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.6.17","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"412ddf571e1b99b21637e4e4ae4f2ad4273af2e8","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.6.17.tgz","fileCount":666,"integrity":"sha512-8mPz+E9JQWKSl7SIFjjNHdajX+YarQ3ssOQiAP2mQS7ET/VxPGWN/zpAxzH68+kAj/ElqczgiG62QGfLWAqKDw==","signatures":[{"sig":"MEUCIQC3/3L8SF6i4qviwu1Fx30CSKepW/Dtl+5Ta+1fyv2LrQIgcUx6drjU1xEY7K8g36VJQAoGkIpPIl8Ijlx2WpcHTGY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBKGUZ0lf4A2tTQu4RsYLDuxx+vOEMRsk5isD0nBuIMGAiARBBSSnmTJ3jXMM/MuUlcGdFaHS1QvXzlQW1i10KaG+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.6.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4261940},"type":"module","engines":{"node":">=24"},"gitHead":"7fbb615fab09cf4815d96c251b83c9dcb1c30b45","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm build && pnpm test && pnpm test:bun && pnpm check:package","prepack":"pnpm build:release","prepare":"node scripts/install-hooks.ts","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","build:native":"node scripts/build-native.ts","smoke:claude":"bun scripts/smoke-claude.ts","build:release":"node scripts/build.ts --release","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to four coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"koffi":"3.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^5.0.0","lefthook":"^2.1.12","typescript":"^7.0.2","@types/node":"^26.4.1","@biomejs/biome":"^2.5.12"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.6.17_1789646877623_0.4882627193563738","host":"s3://npm-registry-packages-npm-production"}},"0.6.18":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.6.18","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.6.18","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"976d8680a6e12b2bf33379f3ffb3fd93d42d86fc","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.6.18.tgz","fileCount":666,"integrity":"sha512-Lcb7ZVEuWSEpYdRB56kmf27ChhRdHwEP+0Zhdm5Y2e5MiH1zizi9Lerc2UqeJcE02x6zAJd8W0+O/S1yk8pJ+g==","signatures":[{"sig":"MEYCIQDrEoB7VfNpzgCeBPYqqDncwQGjvbekohv3kV2wogQ7rwIhANiJKuRqh96OqeUalz4Z5OZibwOppYwD70Ks8oLqIqDs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAyyuuMD0zhzj/2sFvyw3O0SUftv+el+9EiZ7QTvpCamAiAWbY4DAWv0MCVw3eoBgaVtc/2MQC8IdS0cbSjDj113Kw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.6.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4269225},"type":"module","engines":{"node":">=24"},"gitHead":"3620a89c71af0d921f6ef8b6861a126bdbd5b71d","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm build && pnpm test && pnpm test:bun && pnpm check:package","prepack":"pnpm build:release","prepare":"node scripts/install-hooks.ts","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","build:native":"node scripts/build-native.ts","smoke:claude":"bun scripts/smoke-claude.ts","build:release":"node scripts/build.ts --release","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to four coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"koffi":"3.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^5.0.0","lefthook":"^2.1.12","typescript":"^7.0.2","@types/node":"^26.4.1","@biomejs/biome":"^2.5.12"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.6.18_1789783066090_0.1834009139589481","host":"s3://npm-registry-packages-npm-production"}},"0.6.20":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.6.20","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.6.20","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"5c8c6103225f4788434a559885a0c4cb25004a41","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.6.20.tgz","fileCount":666,"integrity":"sha512-ig/13jhYzCFqmHtaJc8dqCo1jAswSe2pUUo19b0ozEsqzchzAuOk96ZYku/O3eTMKDXkYiUC/oHKtOL0Y6xnJg==","signatures":[{"sig":"MEUCIG+pQ4Qh12qcsdE/fuxyEc7zuVB9W2f38SH145g9CdsyAiEApY1FaZdfDIalC0Bs83qK1K7elJemPGnfn7FAp9pxXYA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD8JJf6xNbN+UhaQ7Gb32dXY2B434bkyrcGF0hmqZEe6wIhAPVgOpbVmh4eKcpO9Dd8FEO3fbLxi6oTSEle4MUFIt91","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.6.20","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4269223},"type":"module","engines":{"node":">=24"},"gitHead":"ed5e7728d814506cf3b5074efafb0d8e3370ff1d","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm build && pnpm test && pnpm test:bun && pnpm check:package","prepack":"pnpm build:release","prepare":"node scripts/install-hooks.ts","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","build:native":"node scripts/build-native.ts","smoke:claude":"bun scripts/smoke-claude.ts","build:release":"node scripts/build.ts --release","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to four coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"koffi":"3.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^5.0.0","lefthook":"^2.1.12","typescript":"^7.0.2","@types/node":"^26.4.1","@biomejs/biome":"^2.5.12"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.6.20_1789786210034_0.8399461856980952","host":"s3://npm-registry-packages-npm-production"}},"0.6.21":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.6.21","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.6.21","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"e5cec860b337c38c5a305848cde083deba4bcb1f","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.6.21.tgz","fileCount":666,"integrity":"sha512-WjQYqBr04ge78InPtY3GZ1Vfwh1je/MDulWS8PZGnS8TU1g9jY+LYWAV+Ajratg56L+y6udn9HfAj8Z70z/tFw==","signatures":[{"sig":"MEYCIQDNekPN3yj+ZyOMNOrn0h1dkLZYPZdNOsy0EC3CelFo3wIhAN/yK3X/Zf3ichBzOKSBIuiw2kL/sxutkAR8VlISSScw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCL0Vf985yBlalEJ0r9Nr+3vqXyYbuEhElN2uTqXTNhdgIhAJDcirLaMrWC/4K66bsPVB4Mp3hd4/HLrDFmgmIoGuck","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.6.21","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4282767},"type":"module","engines":{"node":">=24"},"gitHead":"ad7ade3aadd6e8c8bf8b626db7572095dee59b45","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm build && pnpm test && pnpm test:bun && pnpm check:package","prepack":"pnpm build:release","prepare":"node scripts/install-hooks.ts","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","build:native":"node scripts/build-native.ts","smoke:claude":"bun scripts/smoke-claude.ts","build:release":"node scripts/build.ts --release","check:package":"node scripts/check-package.ts","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to four coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"koffi":"3.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^5.0.0","lefthook":"^2.1.12","typescript":"^7.0.2","@types/node":"^26.4.1","@biomejs/biome":"^2.5.12"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.6.21_1789802668484_0.3456312353094875","host":"s3://npm-registry-packages-npm-production"}},"0.6.22":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.6.22","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.6.22","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"89715f307ffcdac681730b02955aaa5542292b76","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.6.22.tgz","fileCount":716,"integrity":"sha512-ByTcaBCnsSOtJFGMwo/KGNjtykEmFtJV2DIpvmMSrx6ViqqotKvK6HzEGnOwDxIK3X2CAAX+NslyuhFscCLSBw==","signatures":[{"sig":"MEQCIG4LlOL6oKqg1JSz0acHRWpS7Lk8OIxfzufcfaa2rPs2AiBpxspYq/xfbrpyJRNyrhzsbi6UGz+p4UnElBfeFuFsHw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD0y4u2JD7Oge//AeCZsj8qSDcaV1WhEH+sW4Zk5Hpw/wIhAK1MH8tY1Vw+9dC6X8hhH7H7Y81dECEwdG2NOC2I2960","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.6.22","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4554882},"type":"module","engines":{"node":">=24"},"gitHead":"55eb1116a3c8dcd5fe6359886bcbfa8ac7ea22fa","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm build && pnpm test && pnpm test:bun && pnpm check:package","prepack":"pnpm build:release","prepare":"node scripts/install-hooks.ts","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","build:native":"node scripts/build-native.ts","smoke:claude":"bun scripts/smoke-claude.ts","build:release":"node scripts/build.ts --release","check:package":"node scripts/check-package.ts","test:mutation":"pnpm test:mutation:failure && pnpm test:mutation:argv && pnpm test:mutation:content && pnpm test:mutation:session-input","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts","test:mutation:argv":"stryker run --mutate src/interpretation/argv.ts","test:mutation:content":"stryker run --mutate src/interpretation/content.ts","test:mutation:failure":"stryker run --mutate src/execution/failure.ts","test:mutation:session-input":"stryker run --mutate src/interpretation/session-input.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to six coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"koffi":"3.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^5.0.0","lefthook":"^2.1.12","typescript":"^7.0.2","@types/node":"^26.4.1","@biomejs/biome":"^2.5.12","@stryker-mutator/core":"10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.6.22_1789883566690_0.6865974139642221","host":"s3://npm-registry-packages-npm-production"}},"0.6.23":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.6.23","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.6.23","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"999f22438b1be755195ad986df10173a9a38bf68","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.6.23.tgz","fileCount":716,"integrity":"sha512-ZDIYxfraQmc0Hs9EayCeF7AyBWNL4BF3VJICuPPoRpUH88eVh8wPTYry0eT8nbttV/rRbISz4t1i1Mt05j65iQ==","signatures":[{"sig":"MEUCIQCiw0yLTzW5FHPxusHK+I/L0zWcJYnMKOdsGTCyHZKrkgIgb79iPt7q3HoCnYsmpH5BRrDpuxbOVttHMOM6b2HAeL8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIH3afU53qYO7tuxzftKOVOYopFpG9XsPtjD0VW7qh8gxAiBQ6S6vpf6/ne7Tm5Zlz1Gdva7dE+sYLJWPhmN1/tqgoA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.6.23","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4558265},"type":"module","engines":{"node":">=24"},"gitHead":"3117aa9463abffcf08b3a49a3ec358bf76d755c0","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm build && pnpm test && pnpm test:bun && pnpm check:package","prepack":"pnpm build:release","prepare":"node scripts/install-hooks.ts","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","build:native":"node scripts/build-native.ts","smoke:claude":"bun scripts/smoke-claude.ts","build:release":"node scripts/build.ts --release","check:package":"node scripts/check-package.ts","test:mutation":"pnpm test:mutation:failure && pnpm test:mutation:argv && pnpm test:mutation:content && pnpm test:mutation:session-input","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts","test:mutation:argv":"stryker run --mutate src/interpretation/argv.ts","test:mutation:content":"stryker run --mutate src/interpretation/content.ts","test:mutation:failure":"stryker run --mutate src/execution/failure.ts","test:mutation:session-input":"stryker run --mutate src/interpretation/session-input.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to six coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"koffi":"3.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^5.0.0","lefthook":"^2.1.12","typescript":"^7.0.2","@types/node":"^26.4.1","@biomejs/biome":"^2.5.12","@stryker-mutator/core":"10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.6.23_1789911057590_0.25782997082012793","host":"s3://npm-registry-packages-npm-production"}},"0.6.24":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.6.24","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.6.24","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"efcde87e5f4c5a15a9018e64539972bdbc8218f4","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.6.24.tgz","fileCount":721,"integrity":"sha512-yJfgsUItTLSEtz443IkBfvfU7cxS2QEW4UtssRKnxjkq1Q9fbFoFZwSZmMdfe2qkc+rIgMy7sa52kVwXnUesCw==","signatures":[{"sig":"MEYCIQCtU8WQ5TCb8oJMVII55IGCf3jgHF84ECEAQwQH8k58nwIhAMicAcNGD0TTlzeuMnFMhP24CkoVOcpK7ondDkyIqZ/9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBrh2XEHqthpFVdbcoxR69kJyPTVb5bQvHQxDcAEGNWPAiEApvfvtzeaS4Qo3JVZjzLaciA8kYxyunSF3ABc/9lbSv0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.6.24","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4599066},"type":"module","engines":{"node":">=24"},"gitHead":"dfd0044d155d6a3534ad3224af58d8b4af034975","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm build && pnpm test && pnpm test:bun && pnpm check:package","prepack":"pnpm build:release","prepare":"node scripts/install-hooks.ts","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","build:native":"node scripts/build-native.ts","smoke:claude":"bun scripts/smoke-claude.ts","build:release":"node scripts/build.ts --release","check:package":"node scripts/check-package.ts","test:mutation":"pnpm test:mutation:failure && pnpm test:mutation:argv && pnpm test:mutation:content && pnpm test:mutation:session-input","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts","test:mutation:argv":"stryker run --mutate src/interpretation/argv.ts","test:mutation:content":"stryker run --mutate src/interpretation/content.ts","test:mutation:failure":"stryker run --mutate src/execution/failure.ts","test:mutation:session-input":"stryker run --mutate src/interpretation/session-input.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to six coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"koffi":"3.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^5.0.0","lefthook":"^2.1.12","typescript":"^7.0.2","@types/node":"^26.4.1","@biomejs/biome":"^2.5.12","@stryker-mutator/core":"10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.6.24_1789919983916_0.3780593217806638","host":"s3://npm-registry-packages-npm-production"}},"0.6.25":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.6.25","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.6.25","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"c930ba1cea0282ded37ae74908639794b2b6ac7f","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.6.25.tgz","fileCount":721,"integrity":"sha512-xpiBjh5zSOINNAcP/s+1oLAkL2Vi5VuK7ADkSJDnFVwXo3InhBtg8cd7UyjmoGzgtC7qPSVKbhtda5XqN+tjoQ==","signatures":[{"sig":"MEUCIQC90nvRObekMFqBCt1gOfu2ncbPMvJ8c2boGwWW9MQrZwIgD69nBcqrNJHQZQjOHJQdKR5IU3a1VKMfKA9c4dK5gX4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDAwSQosOBD8MbH0d7qgGFUk8iLb/t2ADaIQdcAThZ7KgIgDXPoAoG7jT7f7Ld3yG/Z6XB9rl2VeOwJGhQ6YFsT6eA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.6.25","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4599050},"type":"module","engines":{"node":">=24"},"gitHead":"fe2ee8bb3741548dd09e32aa652ed19d24f1953a","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm build && pnpm test && pnpm test:bun && pnpm check:package","prepack":"pnpm build:release","prepare":"node scripts/install-hooks.ts","test:bun":"bun test","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","build:native":"node scripts/build-native.ts","smoke:claude":"bun scripts/smoke-claude.ts","build:release":"node scripts/build.ts --release","check:package":"node scripts/check-package.ts","test:mutation":"pnpm test:mutation:failure && pnpm test:mutation:argv && pnpm test:mutation:content && pnpm test:mutation:session-input","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts","test:mutation:argv":"stryker run --mutate src/interpretation/argv.ts","test:mutation:content":"stryker run --mutate src/interpretation/content.ts","test:mutation:failure":"stryker run --mutate src/execution/failure.ts","test:mutation:session-input":"stryker run --mutate src/interpretation/session-input.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.0.2","description":"One stable CLI to six coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"koffi":"3.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^5.0.0","lefthook":"^2.1.12","typescript":"^7.0.2","@types/node":"^26.4.1","@biomejs/biome":"^2.5.12","@stryker-mutator/core":"10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.6.25_1789951573416_0.6188921159516829","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.7.0","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.7.0","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"34553eaeaf4bc51f45fbe1461ae932472ddae157","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.7.0.tgz","fileCount":746,"integrity":"sha512-DTamKtsnIqVOnboD02xW27UEp9z51+xZAuTEDSiJydYduEt0Y8mtm5Ac6qcibB6bwIxiJ14jw9DYFwHUw75PIw==","signatures":[{"sig":"MEUCIQCSGQJVDdmA/tnEutNKfifmk1xlCpvGVTBl54cvM2L+gwIgaumoO9SMxRrm+2vqoX5WezTohdGi1ayPFATZtxzzL0A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC+qutzcqSjtE2+WO/T5C0Bp6ZPPnKGczvq/hzhiPMukAIhAOKSLsGApbkrxf/S6nRbobKRREw64NJ0tH+rGJoJqN14","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4799824},"type":"module","engines":{"node":">=24"},"gitHead":"b4401fda81d705a3afe70207f13352ef9b3b83e5","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm build && pnpm test && pnpm test:bun && pnpm check:package","prepack":"pnpm build:release","prepare":"node scripts/install-hooks.ts","test:bun":"bun test --timeout=20000","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","build:native":"node scripts/build-native.ts","smoke:claude":"bun scripts/smoke-claude.ts","build:release":"node scripts/build.ts --release","check:package":"node scripts/check-package.ts","test:mutation":"pnpm test:mutation:failure && pnpm test:mutation:argv && pnpm test:mutation:content && pnpm test:mutation:session-input","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts","test:mutation:argv":"stryker run --mutate src/interpretation/argv.ts","test:mutation:content":"stryker run --mutate src/interpretation/content.ts","test:mutation:failure":"stryker run --mutate src/execution/failure.ts","test:mutation:session-input":"stryker run --mutate src/interpretation/session-input.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.1.0","description":"One stable CLI to six coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"koffi":"3.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^5.0.0","lefthook":"^2.1.12","typescript":"^7.0.2","@types/node":"^26.4.1","@biomejs/biome":"^2.5.12","@stryker-mutator/core":"10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.7.0_1790239189773_0.00854368377527015","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.7.1","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.7.1","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"1d7780b5cf464f14c9d0643b9d0e1d99bdb657f0","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.7.1.tgz","fileCount":746,"integrity":"sha512-YosoLM+DCh75bgnl9UnH1/ohGJp9Xvs5m87Qp/9FpixG2HVzdfQIzE28Gikzr6c/8cCutqQ7iC2jZAx4ms6Hww==","signatures":[{"sig":"MEQCIHxZ/Gy6ljJjSvjckgvlMwNMFzLs5Oon4g0WrWxqs9fKAiBZkRwSiYrDOrIMe1bBwjSvroWs3lwLSIj31tK3bz0xvA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHthhBGDZkKzSms57qbuvocdgh3FfeNa2y7CEx97JcaOAiEAholFQ85+43W/9stWEdJBsNN+T3VwKtEjKymodmRvXTc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4802194},"type":"module","engines":{"node":">=24"},"gitHead":"66bc2a4e7868ea4a339ce21769aea8b3840b30b5","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm build && pnpm test && pnpm test:bun && pnpm check:package","prepack":"pnpm build:release","prepare":"node scripts/install-hooks.ts","test:bun":"bun test --timeout=20000","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","build:native":"node scripts/build-native.ts","smoke:claude":"bun scripts/smoke-claude.ts","build:release":"node scripts/build.ts --release","check:package":"node scripts/check-package.ts","test:mutation":"pnpm test:mutation:failure && pnpm test:mutation:argv && pnpm test:mutation:content && pnpm test:mutation:session-input","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts","test:mutation:argv":"stryker run --mutate src/interpretation/argv.ts","test:mutation:content":"stryker run --mutate src/interpretation/content.ts","test:mutation:failure":"stryker run --mutate src/execution/failure.ts","test:mutation:session-input":"stryker run --mutate src/interpretation/session-input.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.1.0","description":"One stable CLI to six coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"koffi":"3.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^5.0.0","lefthook":"^2.1.12","typescript":"^7.0.2","@types/node":"^26.4.1","@biomejs/biome":"^2.5.12","@stryker-mutator/core":"10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.7.1_1790242354127_0.2107299812563561","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.7.2","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.7.2","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"665c5cc0ff3f9750194a58faeb37151052b9562b","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.7.2.tgz","fileCount":746,"integrity":"sha512-5CBbBUNFE8YHMdqmhjbFBh+JmGdRqhXYC/xJvLDPQe8/ZLEeOnaE5DzGJLdgcVT1pkzcNACnlBexy8+adeINYA==","signatures":[{"sig":"MEUCIQCrXkVVw9yHCjEzJyjiLZwqOmySJ73fOskw3ZoV4C3WLgIgBeQ9uRXs62KsnkPY51hBqkpVCam438DuAkbW9sHtWec=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHKFSKjfYVxGtju8xxQA4d22JB9Qk8c7vgVjr0rCVXNlAiBGPxmWHuvoRoUeNQRmY84kOv2GS+OtBiU2XEhsFrQA6g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.7.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4808437},"type":"module","engines":{"node":">=24"},"gitHead":"309279c5251ead528fb0b78b9cb83864a186f57d","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm build && pnpm test && pnpm test:bun && pnpm check:package","prepack":"pnpm build:release","prepare":"node scripts/install-hooks.ts","test:bun":"bun test --timeout=20000","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","build:native":"node scripts/build-native.ts","smoke:claude":"bun scripts/smoke-claude.ts","build:release":"node scripts/build.ts --release","check:package":"node scripts/check-package.ts","test:mutation":"pnpm test:mutation:failure && pnpm test:mutation:argv && pnpm test:mutation:content && pnpm test:mutation:session-input","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts","test:mutation:argv":"stryker run --mutate src/interpretation/argv.ts","test:mutation:content":"stryker run --mutate src/interpretation/content.ts","test:mutation:failure":"stryker run --mutate src/execution/failure.ts","test:mutation:session-input":"stryker run --mutate src/interpretation/session-input.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.1.0","description":"One stable CLI to six coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.21.0","dependencies":{"koffi":"3.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^5.0.0","lefthook":"^2.1.12","typescript":"^7.0.2","@types/node":"^26.4.1","@biomejs/biome":"^2.5.12","@stryker-mutator/core":"10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.7.2_1790261623245_0.8621740800081859","host":"s3://npm-registry-packages-npm-production"}},"0.7.3":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.7.3","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.7.3","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"2061b1345f6e607d18845f8e31ed6f86ddf4e17a","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.7.3.tgz","fileCount":746,"integrity":"sha512-1RWoByFb8ea29ik8Og6WIaAls6t7QXjDk0G924YEzBE+yO/dep6dMWJpVEMOruEqYCsM4FXzT/RuvvhlRqgZwg==","signatures":[{"sig":"MEQCIEXN3c2Htx8GcBlrkZ4qRfcbEnnSb0+7CHCmH/QHFSgKAiBkew3EVMSV/2TKbqKEymKbMWChheJ71zx9w1P+LlBd9Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAz6tbChDJK1dNC+1B6T9mtZjpmhm8bS27NDF6mXr+9VAiB5Ju023y1aO3n0iOnZXWBq8F5bknsLxW57e2y3fqJWLw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.7.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4809058},"type":"module","engines":{"node":">=24"},"gitHead":"df53750c001d63af63e9a8f06acd235a7b6a635c","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm build && pnpm test && pnpm test:bun && pnpm check:package","prepack":"pnpm build:release","prepare":"node scripts/install-hooks.ts","test:bun":"bun test --timeout=20000","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","build:native":"node scripts/build-native.ts","smoke:claude":"bun scripts/smoke-claude.ts","build:release":"node scripts/build.ts --release","check:package":"node scripts/check-package.ts","test:mutation":"pnpm test:mutation:failure && pnpm test:mutation:argv && pnpm test:mutation:content && pnpm test:mutation:session-input","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts","test:mutation:argv":"stryker run --mutate src/interpretation/argv.ts","test:mutation:content":"stryker run --mutate src/interpretation/content.ts","test:mutation:failure":"stryker run --mutate src/execution/failure.ts","test:mutation:session-input":"stryker run --mutate src/interpretation/session-input.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.1.0","description":"One stable CLI to six coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.21.0","dependencies":{"koffi":"3.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^5.0.0","lefthook":"^2.1.12","typescript":"^7.0.2","@types/node":"^26.4.1","@biomejs/biome":"^2.5.12","@stryker-mutator/core":"10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.7.3_1790302250744_0.5599327258359106","host":"s3://npm-registry-packages-npm-production"}},"0.7.4":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.7.4","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.7.4","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"624232693a66f981ba5e007513479376a4526513","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.7.4.tgz","fileCount":746,"integrity":"sha512-c4yPy76CenccdLkCFbq/O47FYS39b7YNoKDLmMGf8SoX+hfr1i4ldoe1aJkQzcvkok84ifWOBlD7QM2EhDYuPA==","signatures":[{"sig":"MEQCIEGA5kvT1eO+UpzfnEEDmBcF5EYL+nbRthxm8PR7KMPFAiAvEbWbxCIHS0HnupTV0yHWvAmNAPmnDCaC9SQp6pkkMA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCD5GfSRRtwKE00HGF8AEvzkoTJ0G64gtR2BiJZdC64NwIgTz1C6c/MTFtPhx3EXQk6x1jgF1exgosmkvclAhcLBcM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.7.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4814148},"type":"module","engines":{"node":">=24"},"gitHead":"bbb6199cbd2158f8c5fa36fbc15150972b8fa573","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm build && pnpm test && pnpm test:bun && pnpm check:package","prepack":"pnpm build:release","prepare":"node scripts/install-hooks.ts","test:bun":"bun test --timeout=20000","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","build:native":"node scripts/build-native.ts","smoke:claude":"bun scripts/smoke-claude.ts","build:release":"node scripts/build.ts --release","check:package":"node scripts/check-package.ts","test:mutation":"pnpm test:mutation:failure && pnpm test:mutation:argv && pnpm test:mutation:content && pnpm test:mutation:session-input","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts","test:mutation:argv":"stryker run --mutate src/interpretation/argv.ts","test:mutation:content":"stryker run --mutate src/interpretation/content.ts","test:mutation:failure":"stryker run --mutate src/execution/failure.ts","test:mutation:session-input":"stryker run --mutate src/interpretation/session-input.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.1.0","description":"One stable CLI to six coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.21.0","dependencies":{"koffi":"3.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^5.0.0","lefthook":"^2.1.12","typescript":"^7.0.2","@types/node":"^26.4.1","@biomejs/biome":"^2.5.12","@stryker-mutator/core":"10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.7.4_1790476283110_0.3456805266746179","host":"s3://npm-registry-packages-npm-production"}},"0.7.5":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.7.5","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.7.5","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"8078e6a75460cacef2adfa2676dc5f85009bf21a","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.7.5.tgz","fileCount":756,"integrity":"sha512-wiwbkJiPMTgRgc3QDODHUtxvA0ic4pv+eocYrOqbE2S79onRGF+XpE+wkoiblSnUYc2idCSGho1GJwupjOYL+w==","signatures":[{"sig":"MEYCIQCq/ne8dySbz0VgCQaoqeT5Wpl+SlrrAcHcG2Nd7qkz2AIhAJBVkfdCcZ+XH4mKpU0GH5XsA0bKCV7WD37JmVAYMruo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBfwyF5aVtVI/CillBRsHGfYT8eLo2E4wu8Jgw0Bc5ZrAiEAlmbFjneoSA5XsD/9lRewIUDIQ/eN4kA6z1ojxl71WWk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.7.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4865340},"type":"module","engines":{"node":">=24"},"gitHead":"53f315af5e5b16590bd833f6119d019ecee11dbd","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm build && pnpm test && pnpm test:bun && pnpm check:package","prepack":"pnpm build:release","prepare":"node scripts/install-hooks.ts","test:bun":"bun test --timeout=20000","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","build:native":"node scripts/build-native.ts","smoke:claude":"bun scripts/smoke-claude.ts","build:release":"node scripts/build.ts --release","check:package":"node scripts/check-package.ts","test:mutation":"pnpm test:mutation:failure && pnpm test:mutation:argv && pnpm test:mutation:content && pnpm test:mutation:session-input","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts","test:mutation:argv":"stryker run --mutate src/interpretation/argv.ts","test:mutation:content":"stryker run --mutate src/interpretation/content.ts","test:mutation:failure":"stryker run --mutate src/execution/failure.ts","test:mutation:session-input":"stryker run --mutate src/interpretation/session-input.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.1.0","description":"One stable CLI to six coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.21.0","dependencies":{"koffi":"3.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^5.0.0","lefthook":"^2.1.12","typescript":"^7.0.2","@types/node":"^26.4.1","@biomejs/biome":"^2.5.12","@stryker-mutator/core":"10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.7.5_1790480664119_0.44050841274066466","host":"s3://npm-registry-packages-npm-production"}},"0.7.6":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.7.6","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.7.6","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"b7a31bc121f5f9aa3ef38445b7f21b413985653b","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.7.6.tgz","fileCount":756,"integrity":"sha512-j9y/lrI7x3Tun8ZqDZ6rq+76ZBKRlI954ifDNtdB7Qx2XAshOL+zE8J4KsxqBocVwINPX7iPJxlwS5RTcMBLOw==","signatures":[{"sig":"MEUCIQCuoT5JcSCfYtF1UnZ7HkfFcDnMCMJU5MFjNXhlCJXljgIgBCWk3snlVUpmvkUd1tOkhGWlg8WOeBYDJTNTx6mLFRU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIC4if5OaNZE2BQxlAEGUvcH6own85HXacJzs0O1ed9ODAiARDRSHITK/eeh2w1MpB2nardIAYg67XDB4iMzMjORHOQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.7.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4866120},"type":"module","engines":{"node":">=24"},"gitHead":"40489b906188b482d95dd807344b274856bba6fc","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm build && pnpm test && pnpm test:bun && pnpm check:package","prepack":"pnpm build:release","prepare":"node scripts/install-hooks.ts","test:bun":"bun test --timeout=20000","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","build:native":"node scripts/build-native.ts","smoke:claude":"bun scripts/smoke-claude.ts","build:release":"node scripts/build.ts --release","check:package":"node scripts/check-package.ts","test:mutation":"pnpm test:mutation:failure && pnpm test:mutation:argv && pnpm test:mutation:content && pnpm test:mutation:session-input","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts","test:mutation:argv":"stryker run --mutate src/interpretation/argv.ts","test:mutation:content":"stryker run --mutate src/interpretation/content.ts","test:mutation:failure":"stryker run --mutate src/execution/failure.ts","test:mutation:session-input":"stryker run --mutate src/interpretation/session-input.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.1.0","description":"One stable CLI to six coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.21.0","dependencies":{"koffi":"3.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^5.0.0","lefthook":"^2.1.12","typescript":"^7.0.2","@types/node":"^26.4.1","@biomejs/biome":"^2.5.12","@stryker-mutator/core":"10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.7.6_1790482781769_0.6109200669039825","host":"s3://npm-registry-packages-npm-production"}},"0.7.7":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.7.7","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.7.7","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"b7ab2a8d6968a194b378fcdea5b5903eb0b1dddc","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.7.7.tgz","fileCount":756,"integrity":"sha512-/xKmJHN1jPJaapjmTZcwI+P5fHexIFc3Z1TyQGztt8xqBzGw7O0Wsn4XuebiQmftWn/5aUzIYovFS5FtdqPeJw==","signatures":[{"sig":"MEUCIQDCOLaPgqlU9o4PWhky/7jEEHL9NwZ2yYACLkSdAERGpwIgfIoDLt7zxL36Dvp/tWGH0E7O45+RACguORIQ3F2MPgY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCQq/PxI2BQQcv4lCyiyVQT3dMI8pfpVt2oYAzvOjxEaQIhAMlKy1IZ8+nuK7cPmgraRQGwJWtq7XOmLdvoinxl4Vh5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.7.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4879008},"type":"module","engines":{"node":">=24"},"gitHead":"606e8030cef7f44f7d88677e485d1d06e5a5cbaa","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm build && pnpm test && pnpm test:bun && pnpm check:package","prepack":"pnpm build:release","prepare":"node scripts/install-hooks.ts","test:bun":"bun test --timeout=20000","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","build:native":"node scripts/build-native.ts","smoke:claude":"bun scripts/smoke-claude.ts","build:release":"node scripts/build.ts --release","check:package":"node scripts/check-package.ts","test:mutation":"pnpm test:mutation:failure && pnpm test:mutation:argv && pnpm test:mutation:content && pnpm test:mutation:session-input","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts","test:mutation:argv":"stryker run --mutate src/interpretation/argv.ts","test:mutation:content":"stryker run --mutate src/interpretation/content.ts","test:mutation:failure":"stryker run --mutate src/execution/failure.ts","test:mutation:session-input":"stryker run --mutate src/interpretation/session-input.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.1.0","description":"One stable CLI to six coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.21.0","dependencies":{"koffi":"3.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^5.0.0","lefthook":"^2.1.12","typescript":"^7.0.2","@types/node":"^26.4.1","@biomejs/biome":"^2.5.12","@stryker-mutator/core":"10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.7.7_1790554336295_0.9134609811985028","host":"s3://npm-registry-packages-npm-production"}},"0.7.8":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.7.8","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.7.8","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"1986a5187dedfbf2a45b99cd9388eec0af1d819d","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.7.8.tgz","fileCount":756,"integrity":"sha512-VerHxdh4h/w9v1/D6nbrQWt3PTnhKtuFnx8vu8hKaPlFFXoULQrvQv8WcgauK6eJrZWTGZWNpNQVYuLY/vyZng==","signatures":[{"sig":"MEYCIQD1ui1FcP0u2iRq57wcXfItNIW8jmtEVT3Ydx18xFt4WAIhAJAm5ZCZc3ezBR6S8wHelmdYvfGIwKVwQeVnexF+Q5Ac","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD2c0ky/3VexUTeTAsjxqUlPokrwxlLTaOLxr71ioWRvAIgatvOlF3ekUARNOPP+wyZnaf16wWxj3sWzzFRAYzPT/U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.7.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4879104},"type":"module","engines":{"node":">=24"},"gitHead":"1639c283c5be1af0328b1e28bb56ce1de6d550be","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm build && pnpm test && pnpm test:bun && pnpm check:package","prepack":"pnpm build:release","prepare":"node scripts/install-hooks.ts","test:bun":"bun test --timeout=20000","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","build:native":"node scripts/build-native.ts","smoke:claude":"bun scripts/smoke-claude.ts","build:release":"node scripts/build.ts --release","check:package":"node scripts/check-package.ts","test:mutation":"pnpm test:mutation:failure && pnpm test:mutation:argv && pnpm test:mutation:content && pnpm test:mutation:session-input","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts","test:mutation:argv":"stryker run --mutate src/interpretation/argv.ts","test:mutation:content":"stryker run --mutate src/interpretation/content.ts","test:mutation:failure":"stryker run --mutate src/execution/failure.ts","test:mutation:session-input":"stryker run --mutate src/interpretation/session-input.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.1.0","description":"One stable CLI to six coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.21.0","dependencies":{"koffi":"3.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^5.0.0","lefthook":"^2.1.12","typescript":"^7.0.2","@types/node":"^26.4.1","@biomejs/biome":"^2.5.12","@stryker-mutator/core":"10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.7.8_1790555741713_0.602800921837553","host":"s3://npm-registry-packages-npm-production"}},"0.7.9":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.7.9","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.7.9","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"7d88e35814c4fe6a19c57b4bb81c02e366c256d5","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.7.9.tgz","fileCount":766,"integrity":"sha512-XrQ/VoorBqcnjKtZibkwVTXzV8CX1rWTJii3yDKVHfLfXkKQ6jPsJCi10vhIlg9EzoVjmn99KPRPzUMlpEFyNg==","signatures":[{"sig":"MEUCIDJX6P4mYSv9wcOqZGUveHoDh6urOzA1bgr+hU62dlBlAiEAnke7HhlWhee+cvJPfHfiKhtetKDQfus6HEXBmALlBXk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCb+XQ8n2Ynk+7NdO4cbjL2bBWVywi6Q/+KvEcKthhtPAIgTrADFwKQZ7NoQF3BOFGyp8oyOPoUGwSGE5jiUT7JxOk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.7.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4936828},"type":"module","engines":{"node":">=24"},"gitHead":"d4de420aa07e469b06a71eaef58fb5fbbb5d309f","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm build && pnpm test && pnpm test:bun && pnpm check:package","prepack":"pnpm build:release","prepare":"node scripts/install-hooks.ts","test:bun":"bun test --timeout=20000","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","build:native":"node scripts/build-native.ts","smoke:claude":"bun scripts/smoke-claude.ts","build:release":"node scripts/build.ts --release","check:package":"node scripts/check-package.ts","test:mutation":"pnpm test:mutation:failure && pnpm test:mutation:argv && pnpm test:mutation:content && pnpm test:mutation:session-input","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts","test:mutation:argv":"stryker run --mutate src/interpretation/argv.ts","test:mutation:content":"stryker run --mutate src/interpretation/content.ts","test:mutation:failure":"stryker run --mutate src/execution/failure.ts","test:mutation:session-input":"stryker run --mutate src/interpretation/session-input.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.1.0","description":"One stable CLI to six coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.21.0","dependencies":{"koffi":"3.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^5.0.0","lefthook":"^2.1.12","typescript":"^7.0.2","@types/node":"^26.4.1","@biomejs/biome":"^2.5.12","@stryker-mutator/core":"10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.7.9_1790561493462_0.20274270517986914","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.8.0","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.8.0","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"dac7c4abd79c66ce0ae7cac3dc30db019e64b440","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.8.0.tgz","fileCount":771,"integrity":"sha512-E5tcvC2SX7/3xK6udHSqB8adLBpe7OHF2eDeAdy5nyLXk32fSFcuNKsFuvW6LQW6tAsh4zkx6V621WoYoJra1g==","signatures":[{"sig":"MEQCICTARvv0tDNdIh2LA2N/8HJXg2eEkIMbfOGUhfMYaJ54AiBRbIXQ0HIYkB+JItvlge4b56YSesO5SjOg6FtnLB/3sg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIE452/zn5gTF/ueXOLcm8Lp6Qd+nKzWouuXPHmSOWREtAiEA/SKCI8dHlzORYmeI4bkHnAHBUq4bSewNEI7v0UXL1wg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4979422},"type":"module","engines":{"node":">=24"},"gitHead":"07d9abb83245e02f92c82683b5b3be4aa2bab74a","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm build && pnpm test && pnpm test:bun && pnpm check:package","prepack":"pnpm build:release","prepare":"node scripts/install-hooks.ts","test:bun":"bun test --timeout=20000","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","build:native":"node scripts/build-native.ts","smoke:claude":"bun scripts/smoke-claude.ts","build:release":"node scripts/build.ts --release","check:package":"node scripts/check-package.ts","test:mutation":"pnpm test:mutation:failure && pnpm test:mutation:argv && pnpm test:mutation:content && pnpm test:mutation:session-input","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts","test:mutation:argv":"stryker run --mutate src/interpretation/argv.ts","test:mutation:content":"stryker run --mutate src/interpretation/content.ts","test:mutation:failure":"stryker run --mutate src/execution/failure.ts","test:mutation:session-input":"stryker run --mutate src/interpretation/session-input.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.1.0","description":"One stable CLI to six coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.21.0","dependencies":{"koffi":"3.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^5.0.0","lefthook":"^2.1.12","typescript":"^7.0.2","@types/node":"^26.4.1","@biomejs/biome":"^2.5.12","@stryker-mutator/core":"10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.8.0_1790564204082_0.46335661131356076","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.9.0","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.9.0","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"08259043dcfe7303196485a14af30bc8dc708869","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.9.0.tgz","fileCount":771,"integrity":"sha512-iYyCFOhKdaI2La5kFWVKKr8yDdaXg6fDVvVKyA0ytfx1newVnEf1ZL5aH1+srDPBRJlhF7egbHH34gcSD9bMQQ==","signatures":[{"sig":"MEUCIDYhpHuY4UxjQE6eBxoS1TSbt6wLzk/2mHQeOWo0XBBkAiEAu8PvAymt0DZZgJ5k0wp09MwkgXahLJAaR0HQwyzy+O4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCL5+sNfTRdUoekQRsAR/a8Qa1fGAKAOhDf4zCp/hT5PQIgeM5Kprp2fyi4iClOR0ZDC7Y+2vprmQKnpHfauIuFDCQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4965834},"type":"module","engines":{"node":">=24"},"gitHead":"b28ddbd0c38a11f0dded316193ade18393d4ddde","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm build && pnpm test && pnpm test:bun && pnpm check:package","prepack":"pnpm build:release","prepare":"node scripts/install-hooks.ts","test:bun":"bun test --timeout=20000","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","build:native":"node scripts/build-native.ts","smoke:claude":"bun scripts/smoke-claude.ts","build:release":"node scripts/build.ts --release","check:package":"node scripts/check-package.ts","test:mutation":"pnpm test:mutation:failure && pnpm test:mutation:argv && pnpm test:mutation:content && pnpm test:mutation:session-input","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts","test:mutation:argv":"stryker run --mutate src/interpretation/argv.ts","test:mutation:content":"stryker run --mutate src/interpretation/content.ts","test:mutation:failure":"stryker run --mutate src/execution/failure.ts","test:mutation:session-input":"stryker run --mutate src/interpretation/session-input.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.1.0","description":"One stable CLI to six coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.21.0","dependencies":{"koffi":"3.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^5.0.0","lefthook":"^2.1.12","typescript":"^7.0.2","@types/node":"^26.4.1","@biomejs/biome":"^2.5.12","@stryker-mutator/core":"10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.9.0_1790585390976_0.32892414334638254","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.9.1","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.9.1","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"26d1b99e26a517380d9f6029a9edab895dd70e25","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.9.1.tgz","fileCount":771,"integrity":"sha512-rLz3ykHSB4QhaLYdtfjGJai4eb1h5I9v71KszhhdU0GB9OnKoLZD/aqqamuxb+v1CfOWG6hp8b0lTqfG1f/rUQ==","signatures":[{"sig":"MEUCIQDSbYiKnAGUOM6F2IGf1/4yyMT8h1sUf/+F4aZ7d3WmzwIgGvIXbun0qPLpPCpgP53w43TAks163Xo2ccC03M/hGQw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEznGaXdrFSh4OkaHLmC3SFjsVz5/5uKGy0o2sCEVG1OAiB41h48P21lvTIUZ7RBCIx+VHJtizNxa9uMg9lRyJa+XQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4986179},"type":"module","engines":{"node":">=24"},"gitHead":"ab752d7d864a100aa874fc217d108f414b50c5e1","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm build && pnpm test && pnpm test:bun && pnpm check:package","prepack":"pnpm build:release","prepare":"node scripts/install-hooks.ts","test:bun":"bun test --timeout=20000","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","build:native":"node scripts/build-native.ts","smoke:claude":"bun scripts/smoke-claude.ts","build:release":"node scripts/build.ts --release","check:package":"node scripts/check-package.ts","test:mutation":"pnpm test:mutation:failure && pnpm test:mutation:argv && pnpm test:mutation:content && pnpm test:mutation:session-input","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts","test:mutation:argv":"stryker run --mutate src/interpretation/argv.ts","test:mutation:content":"stryker run --mutate src/interpretation/content.ts","test:mutation:failure":"stryker run --mutate src/execution/failure.ts","test:mutation:session-input":"stryker run --mutate src/interpretation/session-input.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.1.0","description":"One stable CLI to six coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.21.0","dependencies":{"koffi":"3.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^5.0.0","lefthook":"^2.1.12","typescript":"^7.0.2","@types/node":"^26.4.1","@biomejs/biome":"^2.5.12","@stryker-mutator/core":"10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.9.1_1790665744790_0.038933570074779045","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"@dungle-scrubs/harness-cli-normalizer","version":"0.9.2","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/harness-cli-normalizer@0.9.2","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"bin":{"hcn":"dist/cli.js"},"dist":{"shasum":"f27be78e50f3c2bcf99c849f646db1c11881d3fb","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.9.2.tgz","fileCount":771,"integrity":"sha512-L7+w7G9gFdS3e+ausogU6PIj/ZIKM/mcTv3zxHh8b4ig6Zn2GLhj+qeSJQo8+j91L02IJz/mKKWBbibVj7OlhQ==","signatures":[{"sig":"MEUCIQD6ZFybhk+8fCzfomUJbIRR8Q/jZkVSZl59fZvBEnt1+AIgLVnoIS+L4MFVvJ4x9a6MO90XYs3g/anWBjuInvi0/dQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGboP4enJrquhTgSFTxY2eJa9GoCk1UgQXqcFpq9oyorAiEA/YzxJDa3itybHjf5QRnFRRTQsBqToNq3VP1oxfQrZao=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.9.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5008787},"type":"module","engines":{"node":">=24"},"gitHead":"f916e460d3df771d17892fa168d0eec1ab0e9c90","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm build && pnpm test && pnpm test:bun && pnpm check:package","prepack":"pnpm build:release","prepare":"node scripts/install-hooks.ts","test:bun":"bun test --timeout=20000","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","build:native":"node scripts/build-native.ts","smoke:claude":"bun scripts/smoke-claude.ts","build:release":"node scripts/build.ts --release","check:package":"node scripts/check-package.ts","test:mutation":"pnpm test:mutation:failure && pnpm test:mutation:argv && pnpm test:mutation:content && pnpm test:mutation:session-input","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts","test:mutation:argv":"stryker run --mutate src/interpretation/argv.ts","test:mutation:content":"stryker run --mutate src/interpretation/content.ts","test:mutation:failure":"stryker run --mutate src/execution/failure.ts","test:mutation:session-input":"stryker run --mutate src/interpretation/session-input.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.1.0","description":"One stable CLI to six coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"sideEffects":false,"_nodeVersion":"24.21.0","dependencies":{"koffi":"3.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^5.0.0","lefthook":"^2.1.12","typescript":"^7.0.2","@types/node":"^26.4.1","@biomejs/biome":"^2.5.12","@stryker-mutator/core":"10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/harness-cli-normalizer_0.9.2_1790735357475_0.7497854082516624","host":"s3://npm-registry-packages-npm-production"}},"0.9.3":{"_id":"@dungle-scrubs/harness-cli-normalizer@0.9.3","bin":{"hcn":"dist/cli.js"},"bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"dist":{"shasum":"a70b7121f864d2de7ec49f85872376fcbed23a32","tarball":"https://registry.npmjs.org/@dungle-scrubs/harness-cli-normalizer/-/harness-cli-normalizer-0.9.3.tgz","fileCount":771,"integrity":"sha512-i8sLpLCNm4dDyys7prAMQI2tQvaZO4Avw/hzSkjFITflN/FXDyGetXpHAf5FyqzL/EBGAREbeyPz9F8H5Is45w==","signatures":[{"sig":"MEQCICwIwdzcB4QTOhnplRDPaHf1pBIZa/V18Qi4AsVpKLLiAiA17G04QPQU3IOUAHbXR4eJKpQY98NGbRJTPHrJr6jMaA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIH34IKaPM/pF/nmNwpZfhSUvI2P6bUKv9/eBkLkzOctIAiEAjwp0xbAX32V7JoH7m96cL56QBluYH1SXlzOQ/BfxeGI="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fharness-cli-normalizer@0.9.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5070616},"name":"@dungle-scrubs/harness-cli-normalizer","type":"module","author":{"name":"Kevin Frilot"},"engines":{"node":">=24"},"gitHead":"4bafa495ec74f878501789eca2b8d2e7166676af","license":"MIT","scripts":{"demo":"bun scripts/demo.ts","lint":"biome check .","test":"vitest run","build":"node scripts/build.ts","check":"pnpm lint && pnpm typecheck && pnpm build && pnpm test && pnpm test:bun && pnpm check:package","prepack":"pnpm build:release","prepare":"node scripts/install-hooks.ts","test:bun":"bun test --timeout=20000","smoke:all":"bun scripts/smoke-all.ts","typecheck":"tsc --noEmit","smoke:seven":"bun scripts/smoke-seven.ts","build:native":"node scripts/build-native.ts","smoke:claude":"bun scripts/smoke-claude.ts","build:release":"node scripts/build.ts --release","check:package":"node scripts/check-package.ts","test:mutation":"pnpm test:mutation:failure && pnpm test:mutation:argv && pnpm test:mutation:content && pnpm test:mutation:session-input","check:versions":"bun scripts/check-versions.ts","smoke:questions":"bun scripts/smoke-questions.ts","test:mutation:argv":"stryker run --mutate src/interpretation/argv.ts","test:mutation:content":"stryker run --mutate src/interpretation/content.ts","test:mutation:failure":"stryker run --mutate src/execution/failure.ts","test:mutation:session-input":"stryker run --mutate src/interpretation/session-input.ts"},"version":"0.9.3","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"e3cbb36f-3290-4b48-a5f0-e45b6fddf459"}},"homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"_npmVersion":"12.1.0","description":"One stable CLI to six coding-agent harnesses: normalized flags, defaults, and events.","directories":{},"maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"sideEffects":false,"_nodeVersion":"24.21.0","dependencies":{"koffi":"3.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"vitest":"^5.0.0","lefthook":"^2.1.12","typescript":"^7.0.2","@types/node":"^26.4.1","@biomejs/biome":"^2.5.12","@stryker-mutator/core":"10.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/harness-cli-normalizer_0.9.3_1790768821183_0.996755505962678"}}},"time":{"created":"2026-08-13T00:56:41.909Z","modified":"2026-09-30T11:47:01.808Z","0.1.1":"2026-08-13T00:56:42.209Z","0.1.2":"2026-08-13T01:08:10.288Z","0.1.3":"2026-08-13T01:10:38.645Z","0.3.0":"2026-08-13T14:45:41.665Z","0.3.1":"2026-08-17T11:14:17.671Z","0.4.0":"2026-08-19T08:27:03.832Z","0.4.1":"2026-08-19T11:16:14.243Z","0.4.2":"2026-08-19T12:41:15.171Z","0.4.3":"2026-08-20T05:04:12.515Z","0.4.4":"2026-08-20T05:39:45.603Z","0.4.5":"2026-08-21T06:51:49.360Z","0.4.6":"2026-08-21T07:21:55.673Z","0.5.0":"2026-08-21T10:37:08.726Z","0.5.1":"2026-08-21T11:23:42.953Z","0.5.2":"2026-08-21T11:29:46.115Z","0.5.3":"2026-08-21T12:11:13.705Z","0.5.4":"2026-08-22T08:52:55.918Z","0.5.5":"2026-08-22T09:49:17.174Z","0.5.6":"2026-08-23T13:14:01.487Z","0.5.7":"2026-08-24T04:55:17.053Z","0.6.0":"2026-08-29T04:51:52.574Z","0.6.1":"2026-09-06T06:01:02.509Z","0.6.2":"2026-09-07T14:14:37.648Z","0.6.3":"2026-09-08T01:07:16.861Z","0.6.4":"2026-09-08T05:08:36.963Z","0.6.5":"2026-09-08T14:57:52.445Z","0.6.6":"2026-09-10T14:52:05.782Z","0.6.7":"2026-09-11T06:00:12.921Z","0.6.8":"2026-09-12T16:15:24.088Z","0.6.9":"2026-09-13T05:58:31.115Z","0.6.10":"2026-09-14T15:07:26.520Z","0.6.11":"2026-09-14T15:27:54.657Z","0.6.12":"2026-09-15T03:07:09.113Z","0.6.13":"2026-09-15T09:25:58.934Z","0.6.14":"2026-09-17T04:28:01.025Z","0.6.15":"2026-09-17T07:16:33.712Z","0.6.16":"2026-09-17T11:02:50.952Z","0.6.17":"2026-09-17T12:07:57.738Z","0.6.18":"2026-09-19T01:57:46.203Z","0.6.20":"2026-09-19T02:50:10.178Z","0.6.21":"2026-09-19T07:24:28.603Z","0.6.22":"2026-09-20T05:52:46.838Z","0.6.23":"2026-09-20T13:30:57.776Z","0.6.24":"2026-09-20T15:59:44.054Z","0.6.25":"2026-09-21T00:46:13.538Z","0.7.0":"2026-09-24T08:39:49.882Z","0.7.1":"2026-09-24T09:32:34.257Z","0.7.2":"2026-09-24T14:53:43.371Z","0.7.3":"2026-09-25T02:10:50.894Z","0.7.4":"2026-09-27T02:31:23.218Z","0.7.5":"2026-09-27T03:44:24.226Z","0.7.6":"2026-09-27T04:19:41.904Z","0.7.7":"2026-09-28T00:12:16.398Z","0.7.8":"2026-09-28T00:35:41.852Z","0.7.9":"2026-09-28T02:11:33.583Z","0.8.0":"2026-09-28T02:56:44.183Z","0.9.0":"2026-09-28T08:49:51.082Z","0.9.1":"2026-09-29T07:09:04.937Z","0.9.2":"2026-09-30T02:29:17.593Z","0.9.3":"2026-09-30T11:47:01.389Z"},"bugs":{"url":"https://github.com/dungle-scrubs/harness-cli-normalizer/issues"},"author":{"name":"Kevin Frilot"},"license":"MIT","homepage":"https://github.com/dungle-scrubs/harness-cli-normalizer#readme","repository":{"url":"git+https://github.com/dungle-scrubs/harness-cli-normalizer.git","type":"git"},"description":"One stable CLI to six coding-agent harnesses: normalized flags, defaults, and events.","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"readme":"# harness-cli-normalizer\n\nOne stable interface to seven coding-agent CLIs.\n\n[![CI](https://github.com/dungle-scrubs/harness-cli-normalizer/actions/workflows/ci.yml/badge.svg)](https://github.com/dungle-scrubs/harness-cli-normalizer/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/@dungle-scrubs/harness-cli-normalizer.svg)](https://www.npmjs.com/package/@dungle-scrubs/harness-cli-normalizer) [![license: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n\n<!-- D-001 / v1: CLI-only -->\nharness-cli-normalizer is a CLI, `hcn`, that normalizes six coding-agent harnesses - Claude Code, Codex, pi, Muse, Cursor CLI (binary `agent`), and Antigravity CLI (binary `agy`) - into one surface: normalized flags, ratified behavior defaults, a single `HarnessEvent` NDJSON stream, and one exit-code contract. It normalizes the interface and the defaults, and reports divergence where a harness cannot express a dimension - it does not pretend parity. There is no library API; the `hcn` binary is the product. Descriptors are pinned to their verified CLI version and a weekly check flags when a harness has moved ahead (npm harnesses via registry; `muse`, Cursor CLI, and Antigravity CLI via their local version probes, skipped in CI where not installed - see Version-pinning and drift).\n\n```bash\npnpm add @dungle-scrubs/harness-cli-normalizer\n```\n\n## Install\n\nRequires Node 24 or newer. Install the public package from npm with your package manager:\n\n```bash\npnpm add @dungle-scrubs/harness-cli-normalizer\n```\n\nThe repository uses pnpm and Bun for development and its dual-runtime test lane. Consumers do not\nneed either one unless their application runs on Bun.\n\n## CLI\n\nThe package ships a `hcn` binary for shell and CI use. This is the primary interface - use it for one-off turns, sessions, and inspection without writing TypeScript. Install it with your package manager or run it ad-hoc with `npx`:\n\n```bash\npnpm add @dungle-scrubs/harness-cli-normalizer\nnpx hcn --help\nnpm install -g @dungle-scrubs/harness-cli-normalizer  # global\n```\n\nOne-shot turn:\n\n```bash\nhcn run claude \"explain a monad in one sentence\"\nhcn run codex \"what is 2+2\" --model gpt-5.6-sol\nhcn run pi \"name three primes\" --model zai/glm-5.2\nhcn run muse \"say hi\" --no-write\nhcn run antigravity \"summarize this repository\"\n```\n\nPiped JSON for programmatic use:\n\n```bash\nhcn run claude \"say hi\" --json | jq .\nhcn run claude \"hi\" --json | head -n 5  # abandonment-safe, no hanging handles\n```\n\nSession (claude, pi, Antigravity, popeye, codex):\n\n```bash\nhcn session claude\nhcn session claude --model opus --session-id 550e8400-e29b-41d4-a716-446655440000\nhcn session pi --effort high\nhcn session antigravity --effort medium\nhcn session codex --json   # app-server JSON-RPC; see \"Machine session\" below\n```\n\nSessions resolve the memory dimension at spawn - default off, same as\nruns (`--memory` / `--no-memory`, config `memory` in both tiers;\nclaude spawns with `CLAUDE_CODE_DISABLE_AUTO_MEMORY=1`, pi has no\nbuilt-in memory).\n\n### Saved native transcripts\n\nInspect and export retained messages and tool results without resuming a model:\n\n```sh\nhcn inspect pi --transcript\nhcn transcript read pi --file /path/to/native.jsonl > transcript.jsonl\nhcn transcript ls --limit 20\n```\n\n`hcn transcript ls` lists the saved native sessions of every harness for one\nworkspace, newest first, computed from the native stores on each call.\n\nPi v3 supports full reads, batches, and caller-held bookmarks. Codex 0.147.0\nlegacy and paginated rollouts support full reads, ID lookup, batches, and\nbookmarks, including verified inherited ranges. Compressed sources are\nunsupported. Claude main-file history and Muse schema-1 session logs support\nID/file reads, batches and bookmarks through a passive filesystem clone on\nsupported macOS/Linux filesystems. Cursor chat stores and Antigravity step logs\nuse the same clone. A Cursor chat refuses while a turn is still writing it and\nreads normally once the turn ends. See [native transcripts](docs/transcripts.md)\nfor the listing contract, capability checks, failure handling, custom Pi\nconditions, and consumer rules.\n\n### Native terminal resume (`hcn interactive`)\n\nThis operation resumes an exact native session with inherited terminal I/O.\nThe caller supplies a separate writable pipe with `--control-fd <fd>` (fd 3 or\nhigher), a UUID v4 `--launch-id`, `--interface`, `--resume`, and absolute `--cwd`.\n`--env KEY=VALUE` uses the existing environment rules, including removal by empty\nvalue. Optional `--startup-prompt <text>` starts one native turn on resume.\nThe text must be nonempty, valid UTF-8, at most 8,192 bytes and contain no NUL.\nIt is passed once as prompt data, including leading hyphens and newlines. Duplicate\nstartup options or invalid text refuse before spawn. Omitting it keeps idle resume.\nNo model switch, fork, fresh fallback, or native argv is accepted. The control\npipe never includes prompt text or claims prompt receipt or model adherence.\n\nEach control line carries `v: 1`, `operation: \"interactive\"`, and `launchId`:\n\n- `ready`: preflight passed. No process creation is proved yet.\n- `refused`: `evidence: \"spawn-not-attempted\"` and a reason from\n  `unsupported-interface`, `resume-unavailable`, `cwd-refused`, `invalid-request`,\n  `executable-unavailable`, or `spawn-rejected`. Only this evidence proves no child.\n- `started`: the exact `sessionId`, `cwd`, `interface`, and native `owner`\n  (`pid`, kernel `startedAt`, `executable`). This proves creation, not history loading.\n- `closed`: native `exitCode` (null for signal exit) and `cleanupComplete`.\n\nA lost or truncated control stream is uncertain. Exit code 2 alone is not\nno-child evidence because a native process can also exit with that code.\nHCN supervises only its own child; the caller owns reconnect reservations and\nthe later proof that the native session attached.\n\nThe current implementation supports the Codex native executable on macOS/Linux,\nchecking an exact saved UUID and folder. Wrapper launchers, Claude, Pi, Muse,\nand Codex desktop currently return unavailable. They require separate native\nlaunch validation. This operation does not yet establish full consumer handoff\nacceptance. Run `hcn interactive --help` for the command contract.\n\n### Native approvals during one response\n\n`hcn run codex --json --native-approvals --resume ID --cwd ABSOLUTE --native-settings-fingerprint HASH --prompt TEXT` resumes one response through Codex app-server. Obtain `HASH` from passive native settings inspection below. HCN verifies the saved source again, restores its supported settings, and compares the effective settings before sending the prompt. This is an opt-in alternative to ordinary `exec resume`.\n\nThe current lane preserves recorded read-only filesystem, restricted network, user reviewer, and `on-request` or `never` approval policy. Unsupported settings refuse before a prompt. Fresh sessions, native passthrough, explicit `--memory` or `--no-memory`, and competing model, effort, provider or permission options are refused. Memory overrides remain available on ordinary resume; this lane accepts only its verified native settings. Use `--prompt-file PATH` for a file-backed prompt; stdin is reserved for decisions, so `--prompt-file -` is refused.\n\nAfter the native resume response confirms the exact session and effective settings,\nHCN reports an `identity` event with `authority: \"harness-minted\"` before submitting\nthe prompt. This confirms the resumed native identity; it does not mean a new\nsession was created or that the response completed.\n\nThe JSON stream adds three version-1 events:\n\n- `approval-request`: opaque `requestId`, exact `sessionId` and native `turnId`, `category`, complete plain-text `details`, and `choices` with `id`, `label`, `scope`.\n- `approval-disposition`: decision `id`, `requestId`, `status` (`sent` or `rejected`), and a rejection `reason` when applicable. Malformed IDs are null.\n- `approval-cleared`: `requestId` and `reason` (`native-resolved`, `turn-ended`, `process-ended`, `channel-failed`). Clearing says that the request stopped waiting; it does not prove tool success.\n\nSend one UTF-8 NDJSON line on the same live process's stdin:\n\n```json\n{\"v\":1,\"op\":\"approval\",\"id\":\"<new decision UUID>\",\"requestId\":\"<offered request UUID>\",\"choiceId\":\"<offered choice ID>\"}\n```\n\nChoices alone define authority. Supported command choices include once, native session, deny, cancel, and an explicitly offered persistent command-prefix rule. File choices show the complete patch; their session grant covers future changes to those same files. Permission requests support exact absolute-path entries and an explicit network toggle, with response or session duration and an empty denial. Native payloads remain private. Symbolic/glob/legacy permission scopes, grouped network command requests, non-local environments and file `grantRoot` currently terminate as unsupported. Native model questions and MCP elicitation are also unsupported by this responder.\n\nA repeated decision ID with identical content returns its recorded disposition without another native write. Conflicting content is rejected. A decision is consumed before its write, so uncertain delivery is never retried. A cleared request loses its answer right. Native request IDs cannot be reused within the process because a late clear could otherwise affect a different action. HCN stores no approval state across processes; the caller owns durable choice and write-intent records.\n\nBounds: 4 KiB per decision including newline, 64 KiB UTF-8 details, 16 choices, 32 pending requests or buffered pre-ack requests, and 4096 request identities and recorded decisions during one process. Invalid UTF-8, framing overflow or an unsupported request ends the channel and cleans up the child. Details are never truncated into an approvable action.\n\nHuman approval waits pause inactivity detection. An explicit `--timeout` still runs. Initialize, resume and turn acknowledgement each have a 30-second protocol deadline. Closing decision stdin ends the response, including when no request is pending. HCN completes child cleanup before `done`. Existing HCN question blocks retain `awaiting-input`; native interruption reports `killed`.\n\nFailures carry `nativeApproval` evidence: `phase` (`preflight`, `initialize`, `resume`, `turn-start`, `running`), `process` (`not-attempted`, `not-started`, `started`, `unknown`), `prompt` (`not-submitted`, `submission-unknown`, `acknowledged`), and `reason`. A prompt write without native acknowledgement is unknown delivery. Exit codes and elapsed time do not prove that a prompt was absent. This evidence never authorizes automatic replay.\n\n### Passive native settings (`hcn inspect codex --native-settings`)\n\n```bash\nhcn inspect codex --native-settings --resume <native-session-id> --cwd <absolute-path> --json\n```\n\nThis reads Codex's saved session without starting a native process. It returns the\nlatest supported turn or native settings update's exact model and effort, the\nmost recently recorded provider (initially the session header's provider),\nand a SHA-256 source fingerprint. It does not resolve model aliases or apply\nHCN profiles or browser preferences. A custom model selector can be inspected\neven when ordinary `hcn run --model` does not accept it.\n\nThe result is one JSON object, with or without `--json`. `status: \"available\"`\nexits 0; `status: \"unavailable\"` and a `reason` exit 2. Pi has its own source (below).\nOther harnesses return `unsupported-harness`. The operation accepts only `--resume` (or `--session-id`), `--cwd`, and\n`--json`; other inspection modes, turn options and native passthrough are refused.\n\nThe lookup requires one matching native session file, its matching header ID,\nand matching saved folders. Symlinks, special files, incomplete or malformed\nrecords, missing settings, and changed sources refuse. The scan is bounded at\n16384 directory entries, 64 MiB per file and 1 MiB per line. An invalid latest\nturn or settings update never falls back to earlier settings. Conversation text is never returned.\n\nThe `permissions` field reports recorded local-command limits separately from\nmodel settings. The currently recognized native profile is read-only filesystem\naccess with restricted network access and an explicit `never` or `on-request`\napproval policy. These values carry `status: \"recorded\"`. Missing, extended,\ncontradictory or unsupported permission metadata carries `status: \"unavailable\"`\nand a permission-specific reason; model inspection can still succeed. An older\nv1 producer may omit this field, which means unknown. The latest turn or\nsettings update supplies both facets; permission grants never fall back to an\nearlier record. Named-profile provenance, network overrides and extra filesystem\npolicy are unavailable until their full restoration semantics are supported.\n\nWhen recorded, `permissions.approvalsReviewer` identifies `user`, `automatic`, or\n`unknown`. An omitted reviewer is also unknown. Codex retains its last explicit\nreviewer when a later turn omits or nulls that field; inspection follows this\nnative rule without inheriting older permission grants. An unrecognized explicit\nreviewer replaces older authority with unknown. A settings update without its\nrequired reviewer also yields unknown. The fingerprint includes this facet.\n\nRecorded permissions are observations, not a promise that headless resume can\npreserve them. In Codex 0.154.0, a disposable native probe changed `on-request`\nto `never` during `exec resume`, with the read-only sandbox unchanged. The\nverified settings flag below restores model, effort and provider only. It does\nnot restore the recorded approval policy or native permission profile.\n\nThe fingerprint identifies this read, including file identity and metadata. Use\nit to require the same source when resuming:\n\n```bash\nhcn run codex --resume <native-session-id> --cwd <absolute-path> --native-settings-fingerprint <fingerprint> --prompt \"continue\"\n```\n\nPlanning and the runner each read the native source again. A matching read\nrenders the saved model, effort and recorded provider before the prompt. Competing\n`--model`, `--effort`, `--provider`, native passthrough, fresh launch and other\nharnesses refuse. `inspect --argv` and `inspect --runtime` support the same flag.\nOrdinary resume without this flag still follows native settings behavior.\n\n`native-settings-changed` means the fingerprint no longer matches;\n`native-settings-unavailable` means the source cannot be read and verified.\nInspect the same native session again before retrying. A planning refusal exits\n2; a refusal found at the final runner read uses the failure/done stream and\nexits 1. Exit status alone does not prove whether a process started.\n\nThese operations grant no ownership or permissions. The fingerprint does not\ncapture provider configuration contents or freeze another process's writes.\n\nEvery available snapshot carries `continuation`: `native-approvals` for Codex\n(the app-server channel above) and `resume` for Pi (an ordinary one-turn\nresume). A caller picks the transport from this field, not from the harness\nname.\n\n### Pi native settings (`hcn inspect pi --native-settings`)\n\n```bash\nhcn inspect pi --native-settings --resume <session-id> --cwd <absolute-path> --json\n```\n\nThis reads the Pi session file (source `pi-session-v1`) from the store Pi uses:\n`PI_CODING_AGENT_SESSION_DIR`, else `<PI_CODING_AGENT_DIR or ~/.pi/agent>/sessions/<folder>`.\nIt applies Pi's own restoration rule (Pi 0.87.1 `session-manager.js`): the path\nfrom the last entry through `parentId` links, the later of a `model_change` or\nan assistant message for provider and model, and the last\n`thinking_level_change` for effort (`off` when there is none). The header must\nbe the first parsed entry and match the ID and folder. Blank lines are skipped;\na malformed line, a settings entry without a valid provider and model, a cycle,\nor an unknown thinking level refuses. Bounds match the Codex source. Pi records\nno approval policy, so Pi snapshots have no `permissions` field.\n\n```bash\nhcn run pi --json --resume <session-id> --cwd <absolute-path> --native-settings-fingerprint <fingerprint> --prompt \"continue\"\n```\n\nA matching read spawns a flagless resume (`pi --session-id <id> -p --mode json`),\nso Pi restores the settings itself. Beside the fingerprint only `--extension`,\n`--env`, `--timeout`, `--questions`, and the prompt are accepted; model, effort,\nprovider, tools, skills, access, discovery, system prompts, and native\npassthrough refuse before spawn.\nCallers still own duplicate-session prevention, permissions, input delivery and\nprocess cleanup. This is not completed consumer handoff support.\n\n### Machine session (`hcn session <harness> --json`)\n\n`--json` is the same session for a program instead of a human: NDJSON events\non stdout, NDJSON commands on stdin, for a consumer that owns its own input\ntiming (queue, fence, replay). Without `--json` the human REPL is unchanged.\n\nstdout is NDJSON only - no prompt, no rendered text. The first line is a\n`session` event, the last is one `closed` line. Each turn between them is a\n`turn` line, the harness's own `HarnessEvent` lines (the same kinds as\n`hcn run --json`; see \"Reference\"), and a turn-scoped `done` (`exitCode`\nnull; a turn cut short by the harness dying carries the process exit code,\nequal to `closed.exitCode`). The four control events that frame the stream:\n\n```jsonl\n{\"kind\":\"session\",\"sessionId\":\"..\",\"harness\":\"claude\",\"hcn\":\"0.5.3\",\"escalateQuestions\":true,\"origin\":\"fresh\"}\n{\"kind\":\"turn\",\"turnId\":\"<sessionId>:turn-1\",\"id\":\"in-1\"}\n{\"kind\":\"disposition\",\"id\":\"in-1\",\"disposition\":\"started\"}\n{\"kind\":\"closed\",\"exitCode\":0,\"cause\":\"clean\"}\n```\n\n- `session.sessionId` is the caller-side handle (the `--session-id` value,\n  or a random UUID). The `identity` event inside the first turn carries the\n  id the harness confirmed; on pi that is the harness-minted id.\n- `session.origin` is `fresh` for a new conversation or `resumed` when `--resume` (or its `--session-id` alias) continued a conversation that already exists in the harness store. A refused unknown-id resume emits no `session` event at all.\n- `turn.id` is the id of the `send` that opened the turn.\n- `closed.cause` is one of `clean`, `limit`, `crash`, `stall`, `killed`.\n  `closed.failure` carries the reduced `FailureSummary` when the cause is\n  not clean and a failure was seen. `awaiting-input` ends a turn, never a\n  session.\n\nstdin carries one command per line (blank lines are ignored):\n\n```jsonl\n{\"op\":\"send\",\"id\":\"in-1\",\"text\":\"explain a monad in one sentence\"}\n{\"op\":\"answer\",\"id\":\"in-2\",\"text\":\"prod\"}\n{\"op\":\"close\"}\n```\n\n- Every well-formed `send`/`answer` gets exactly one `disposition` event,\n  in command order. `started`: the harness accepted the text. Pi and codex\n  wait for their native command response before reporting this disposition\n  (codex settles on the `turn/start` / `turn/steer` JSON-RPC response).\n  When no turn was open, a turn opened; when one was, the harness holds the\n  text natively (claude queues it for the next turn; pi and codex deliver\n  it INTO the running turn - codex under its `expectedTurnId` precondition,\n  so a send that arrives after the native turn ended reports `rejected`,\n  not silence). hcn keeps no queue of its own - ADR 0007. `rejected`: the\n  text was not delivered and will not be. Rejected reasons: `closed`\n  (session closing or harness dead), `no-open-question` (`answer` with no\n  `awaiting-input` turn to answer), `native-rejected` (Pi or codex refused\n  the command), or `write-failed` (the harness's stdin pipe broke; a\n  `closed` follows).\n- A send's id rides to the turn it opens: correlate by reading `turn.id`,\n  not by counting turns. On codex a mid-turn send rides the ALREADY-OPEN\n  turn (its disposition is the correlation; the steered text appears inside\n  the running turn), so `turn.id` keeps naming the send that OPENED it.\n- `answer` composes hcn's question-answer preamble\n  (`The user answered the question: \"<q>\" with: <text>. Continue accordingly.`)\n  around the text, so the consumer never re-derives it. A plain `send` after\n  a question opens a turn with no preamble: `answer` to answer, `send` to\n  change the subject.\n- End of stdin means `close`. A malformed line (not JSON, unknown `op`,\n  missing or empty `id`, non-string `text`) produces an `error` event, no\ndisposition, and the session continues.\n\nExit codes: 0 when `closed.cause` is `clean`; 1 otherwise; 2 for a refusal\nbefore the stream opens (invalid flag, no-session-mode harness, unknown\nmodel, unknown effort, provider off pi, bad `--stall`); 4 for an hcn\ninternal crash - an `internal` failure and a `closed` pair with `cause`\n`crash` reach stdout when the crash handler runs, and a hard kill (no\nhandler output at all) leaves the durable command ledger's start line\nwithout an end (see \"Crash tier and the command ledger\"). A refusal still owes the stream its\nterminal pair: the prose goes to stderr, and stdout carries\n`{\"kind\":\"failure\",...}` then `{\"kind\":\"closed\",\"cause\":\"failed\"}`. A spawn\nfailure (harness binary missing) writes a `transport` failure and the same\n`closed`, exit 1. The exit code is always set after the terminal line is\nflushed, so a consumer reading to `closed` never loses it. If the consumer\nstops reading and stdout breaks (EPIPE), hcn closes the session - grace,\nthen signal - and exits 1, rather than leaving the harness child running.\n\nSession flags on `--json`: `--stall <seconds>` is a per-turn inactivity\nbudget - a turn that produces no output for the budget ends `done` with\n`cause: \"stall\"` and the session closes with `cause: \"stall\"`. `0`\ndisables it; there is no default. `--provider` is pi only, validated the\nsame way as on `hcn run` and refused elsewhere with exit 2. `--effort <v>`\nsets the effort for the session spawn, validated against the ladder that\napplies to the picked `--model` exactly as on `hcn run` (claude `--effort`,\npi `--thinking`); a session without it runs at the harness's own default\n- no profile effort is pinned onto sessions. `--skills <a,b>` is the same\nallowlist `hcn run --skills` takes, resolved against `$HCN_SKILLS_ROOT`\nthrough the same code path: pi loads only the picks, claude narrows the\nregistry via `--settings skillOverrides`, codex via `-c skills.config`.\nThe allowlist is a spawn property, so it holds for the whole session across\nevery turn (resume included); antigravity and popeye cannot enforce it and\nrefuse with exit 2 rather than open with the full set, and unknown names\nrefuse with exit 2 before spawn. The other\nsession flags (`--model`, `--session-id`, `--cwd`, `--escalate-questions` /\n`--no-escalate-questions`) behave as in the REPL.\n\nOne send, then close (stdin EOF after the send lets the turn finish, then\ncloses the session):\n\n```bash\nprintf '%s\\n' '{\"op\":\"send\",\"id\":\"in-1\",\"text\":\"say hi\"}' \\\n  | hcn session claude --json | jq -c '{kind, disposition, cause}'\n```\n\nDriving it from a process that keeps the session open:\n\n```js\nimport { spawn } from \"node:child_process\";\nimport { createInterface } from \"node:readline\";\n\nconst child = spawn(\"hcn\", [\"session\", \"claude\", \"--json\"], {\n  stdio: [\"pipe\", \"pipe\", \"inherit\"],\n});\nchild.stdin.write(`${JSON.stringify({ op: \"send\", id: \"in-1\", text: \"say hi\" })}\\n`);\n\nconst rl = createInterface({ input: child.stdout });\nfor await (const line of rl) {\n  const ev = JSON.parse(line);\n  if (ev.kind === \"message\") console.log(ev.text);\n  if (ev.kind === \"disposition\") console.error(`in=${ev.id} ${ev.disposition}`);\n  if (ev.kind === \"closed\") console.error(`closed cause=${ev.cause} exit=${ev.exitCode}`);\n}\n```\n\nInspection and drift (no spawn):\n\n```bash\nhcn ls\nhcn inspect claude\nhcn inspect claude --argv --prompt \"hi\" --effort high\nhcn inspect claude --capabilities\nhcn inspect pi --capabilities --mode headless-session --model zai/glm-5.2\nhcn check\nhcn check --json\n```\n\n`--capabilities` prints the capability record (`vision`, `images`,\n`streaming`, `session`, `source`, `confidence`) as one JSON line for the\ngiven `--mode` (`headless-turn` | `headless-session` | `interactive`;\ndefault `headless-turn`) and `--model` (absent = the harness default model;\na model outside the vocabulary degrades to `source: \"unknown\"`). It is\nmutually exclusive with `--argv` and `--runtime`.\n\n`hcn inspect claude --context --model opus --prompt-file request.txt --json`\nreports a native estimate of the full staged request, including native history\nwhen `--resume ID` is given. The result includes the resolved executable,\nversion, observed model, used tokens, and supported input limit. Callers own\ntheir extra reserve and dispatch policy. The probe forks resumed sessions with\npersistence disabled and stages the prompt with `shouldQuery:false`; it never\nasks the assistant to execute it. Native startup hooks can still run. The\nClaude headless-turn adapter supports this operation, including fresh\n`--isolation tool-free` requests. It validates the native operation independently\nof version metadata. Other adapters report unavailable.\nPersistent-process accounting is not established by this command. It refuses\nnative passthrough and other inspection modes, bounds serialized prompts to\n8 MiB, and defaults to a 30-second deadline followed by bounded process cleanup.\nA positive `--timeout` or configured timeout changes that deadline; zero keeps\nthe bounded default. Interruption aborts and cleans up before exiting 1.\nInvalid requests exit 2 with the standard failure/done pair under `--json`.\nAn ordinary inspection returns one version-1 JSON object. `accounting.status`\nis `available` or `unavailable`; an available result carries\n`method: \"native-context-estimate\"`, `model`, `totalTokens`,\n`contextWindowTokens`, and `inputLimitTokens`. The input limit is the smaller\nof the native window and its enabled automatic-compaction threshold.\nUnavailable reasons distinguish unsupported adapters,\nauth or limit failures, native exits, transport bounds/errors, invalid native\nprotocol, timeout, cancellation, and cleanup failure. Neither an unavailable\nresult nor a total window alone is permission to dispatch. Usage remains\nprovisional until output and cleanup settle. Query activity, unknown frame\ncategories, malformed usage, or incomplete output invalidate the count.\nKnown startup hooks, command lifecycle, nonblocking rate notices, and successful\nzero-turn results are permitted, including nonzero aggregate usage.\n`transport` with `executable.path: null` means the executable could not be\nresolved; `resume.reason` supplies that safe explanation. Otherwise transport\ndenotes a failure to open or use the process channel.\n\nDescriptor inspection separately exposes `nativeContextManagement`. Codex,\nMuse and Cursor CLI declare `{ kind: \"auto-compaction\", modes: [\"headless-turn\"] }`,\nAntigravity CLI declares the same kind for `[\"headless-session\"]`, and Pi\ndeclares it for both headless modes. Claude declares\n`{ kind: \"native-session-auto-compaction\", modes: [\"headless-turn\"] }`.\nOnly the mode a live probe observed is claimed, so a null or a missing mode is\nunknown support, never a denial. This covers native session growth; callers\nmust still prepare imported history.\nFresh mandatory content can exceed the native request limit, and compaction\ndoes not promise lossless recall.\nThese declarations describe native handling, not a count or a\nsuccessful budget check. Callers decide whether to delegate context management\nafter verifying the selected executable and mode. Codex and Muse preflight accounting\ncontinue to return `unsupported-adapter`. A declaration is a curated descriptor\nfact; it does not detect whether native compaction is currently enabled.\n\n`hcn inspect <harness> --runtime --prompt \"validation\"` reports version-1\nJSON containing redacted argv, the resolved executable path and version,\nthe adapter's verified version, and native-resume compatibility. This runs\nonly a version probe. The argv is a diagnostic preview, not a command to\nexecute. All seven harnesses use invocation-based resume admission, including\nsupported persistent sessions. A resolved executable and a supported invocation\nare required; missing or different version metadata does not reject them.\nThe native operation can still fail on changed flags, protocol, or session state.\nNo admission result proves session existence or\nrecall. Pass the same working folder and options as the intended turn.\n\nFor persistent resume use `--mode headless-session --resume <session-id>`.\nThat preview needs no prompt and accepts model, effort, provider, and cwd.\nIt refuses other process options that persistent startup cannot apply,\nincluding tool grants, environment overrides, and native passthrough.\n\nFlag table (maps to `TurnOptions` / `TurnRunOptions`):\n\nClaude prompts larger than 65,536 UTF-8 bytes use native print-mode stdin,\nwith an empty prompt argument. This applies to fresh and resumed turns and\nkeeps large requests out of the operating system's argument limit. The\ndescriptor reports this alternate transport as `launch.stdinPrompt`.\nThe same composed prompt is written once and stdin is closed. A broken pipe\nis a transport failure and terminates that child; a late pipe error after\nthe child exits preserves its native failure classification. Ordinary prompts retain\ntheir existing argv shape. This uses Claude's documented\n[piped input](https://code.claude.com/docs/en/headless#pipe-data-through-claude)\nsupport; its native 10MB input cap still applies.\n\n| CLI flag | TurnOptions field | Notes |\n|---|---|---|\n| `--prompt <text>` | `prompt` | Alternative to positional; mutual exclusion |\n| `--prompt-file <path\\|->` | `prompt` | Reads UTF-8 file or stdin (`-`) |\n| `--isolation <tool-free>` | `isolation` | Fresh Claude run only; no tools or native discovery; invocation-only |\n| `--model <id>` | `model` | Validated via `validateModel` |\n| `--effort <value>` | `effort` | Validated via `validateEffort` |\n| `--sandbox <value>` | `sandbox` | Codex; Antigravity accepts normalized `workspace-write` and renders its boolean `--sandbox` flag |\n| `--context-window <tokens>` | `contextWindow` | Codex, integer 1-272000; launch default 272000 |\n| `--provider <value>` | `provider` | pi only |\n| `--agent <name>` | `agent` | Select a named agent the harness defines natively - hcn selects among them, never defines them. claude, antigravity, and popeye (native `--agent`); pi is **extension-registered** (ADR 0010): its subagent extension provides the flag, hcn verifies with a runtime probe before spawn (`extension-option-unavailable` refusal names the extension when it is absent; one provenance line on a verified pass), and `inspect pi --runtime` answers for the machine; codex, muse, and cursor refuse before spawn. An unknown name is the harness's own native error (antigravity and pi tolerate one and continue with a warning; claude and popeye reject with a typed error); no harness exposes a stable machine roster, so hcn does not validate the name beyond the selector rule. Rendered on session spawn and on resume as well (probed: claude `--resume`, antigravity `--conversation`) |\n| `--tools <a,b>` | `tools` | Canonical names (read, write, edit, shell, grep, glob, list, web-fetch, web-search, subagent, skill); `native:<name>` passes a harness-native or extension tool through. Per-tool allowlist; claude and pi (pi strict, claude via grant + deny-complement). A bare name matching a configured toolset expands to it |\n| `--exclude-tools <a,b>` | `excludeTools` | Canonical names (same vocabulary, `native:<name>` passthrough); complement over known tool names; mutually exclusive with `--tools` |\n| `-- <harness args>` | `passthrough` | Verbatim harness tokens rendered at the harness's descriptor placement with no separator (ADR 0003); failures surface as labeled native errors (hcn exit 1, native exit code as data). A harness that declares `prompt-joins` refuses a non-empty tail before spawn instead of rewriting the prompt (none do today) |\n| `--autonomy` / `--no-autonomy` | `autonomy` | |\n| `--write` / `--no-write` | `write` | Muse |\n| `--shell` / `--no-shell` | `shell` | Muse |\n| `--memory` / `--no-memory` | `memory` | Persistent cross-session memory, default OFF (profile). claude renders the `CLAUDE_CODE_DISABLE_AUTO_MEMORY=1` spawn env var (shown as an `env:` line in `inspect --argv`, never an argv token); codex renders `--disable memories`; pi has no built-in memory (renders nothing - already off); muse cannot turn memory off (explicit values refuse with a hint; the profile default reports divergence and muse's memory tools stay on). `--memory` removes HCN's disable override and uses native settings; it does not force memory on. Config key `memory` in both tiers |\n| `--max-steps <n>` | `maxSteps` | Muse, 1-10000 |\n| `--no-tools, --no-instruction-files, --no-extensions, --no-skills` | `discovery` | |\n| `--cwd <path>` | `cwd` | Working directory |\n| `--env KEY=VAL` | `env` | Repeatable; `KEY=` deletes |\n| `--resume <uuid>` | `resume` | Resume session |\n| `--session-id <uuid>` | `resume` | Alias for `--resume`; UUID of session to resume or re-enter |\n| `--resume-last` | `resumeLast` | Resume the harness's most recent session in the spawn cwd, without naming an id (claude, codex, pi, cursor, antigravity; muse refuses). Mutually exclusive with `--resume`/`--session-id`; refused on `hcn session`, with `--native-approvals`, and with `--native-settings-fingerprint` |\n| `--skills <a,b>` | `skills` | Skill allowlist; claude, pi and codex (pi strict via --skill, claude via --settings skillOverrides, codex via -c skills.config) |\n| `--timeout <seconds>` | `timeoutSeconds` | Wall-clock budget for the run (hcn-enforced; 0 disables; no default) |\n| `--escalate-questions` / `--no-escalate-questions` | `escalateQuestions` | Let worker ask when blocked (DEFAULT) / never ask, state assumption and continue |\n| `--system-prompt <text>` | `systemPrompt` | Replace built-in system prompt (claude, pi; codex uses -c instructions; muse refuses) |\n| `--append-system-prompt <text>` | `appendSystemPrompt` | Append to built-in prompt (claude, pi only) |\n| `--extension <path>` | `extensions` | Load this extension file for the turn (pi only; absolute path to a regular file; repeatable; loads even with `--no-extensions`; allowed beside `--native-settings-fingerprint`) |\n| `--access <read|write>` | `access` | Access preset - read = read, grep, glob, list, web-fetch, web-search (canonical); write = no restriction; claude/pi via --tools (toolMap aware), codex via --sandbox, muse via --disable-write/--disable-shell; mutually exclusive with --tools/--exclude-tools and with --sandbox on codex; no default |\n| `--json` | output mode | NDJSON `HarnessEvent` to stdout |\n\nFor development, `bun run demo claude \"hi\"` remains as a live-rendering alternative.\n\n### Tool-free turns\n\n`hcn run claude --isolation tool-free --model opus --effort high --timeout 60 \"Name this quoted prompt\"`\nstarts a separate turn with built-in tools and MCP tools disabled. It also\nskips native instruction, hook, skill, and extension discovery. This option\nis invocation-only. Other harnesses refuse it. Resume, sessions, native\npassthrough, and explicit tool, skill, access, autonomy, or discovery overrides\nrefuse. Config defaults for these dimensions yield to tool-free isolation;\nmodel and effort defaults still apply.\n\nClaude uses bare mode, which requires authentication that works in that mode;\nOAuth-only installations may fail. A caller doing optional naming must keep\nits fallback on failure. See the [native CLI reference](https://code.claude.com/docs/en/cli-reference).\n\n### Resume-last\n\n`hcn run <harness> --resume-last \"prompt\"` resumes the harness's most\nrecent session in the exact spawn cwd through each harness's own\nmost-recent grammar (claude `--continue --fork-session`, codex\n`exec resume --last`, pi `--continue`, cursor `--continue`, Antigravity\n`--continue`; muse refuses with\n`unsupported-option`). Most-recent resolution stays inside the harness;\nhcn only renders. A resume-last turn is resume-semantics: no defaults\nprofile runs, so a silently created session runs with native defaults.\n\nEvery resume-last turn emits one fixed pre-spawn warning event plus a\n`store root <root> for scope <cwd>` diagnostic event before any harness\noutput, and, where a per-cwd directory exists (claude, pi, cursor),\nwarns (never refuses) when the per-cwd store directory is\nabsent. The `identity` event carries `resumeLast: true`:\nthe announced id was picked by the harness as most-recent, never\nrequested by the caller, and MAY be a fresh session or a stranger\nsession (another run's session, including a killed, failed, or unrelated\nrun's). On claude the announced id is the fork id, never the source id.\nCallers that need strict continuation store ids and use `--resume`.\n\n## Defaults, config, provenance\n\nEvery launch resolves through one precedence chain:\n\n```\nargs  >  .hcn/config.json (git root, auto-discovered)  >  ~/.config/hcn/config.json (XDG)  >  built-in profile  >  harness default\n```\n\nThe built-in profile pins the ratified defaults: effort `medium` (the only\nvalue in all five uniform ladders; profile-tier effort reports divergence on\ncursor, whose ladders are per-family), sandbox `workspace-write` (codex and\nAntigravity; reported as divergence elsewhere), context window `272000` (codex-only; divergence\nelsewhere), discovery fully on, autonomy off, memory off. A dimension a\nharness cannot express is reported as divergence, never a silent skip and\nnever a refusal. Resume turns bypass turn-option resolution and pass explicit\nturn options. Omitted settings follow the native harness's resume behavior;\nCodex can use current configuration instead of the saved model and effort.\nDo not infer settings preservation from session-ID continuity. Question escalation (below) is the\ndeliberate exception: it rides each turn's prompt, so it resolves on\nlaunch AND resume.\n\nUser config (`~/.config/hcn/config.json`, `$XDG_CONFIG_HOME` respected):\n\n```json\n{ \"version\": 1, \"effort\": \"high\" }\n```\n\n`memory: true` in either config tier removes HCN's disable override for\nthat machine or repo. Native memory settings still apply:\n\n```json\n{ \"version\": 1, \"memory\": true }\n```\n\nCodex callers can set `\"contextWindow\": 100000` in either config file or\npass `--context-window 100000`. The range is 1-272000 tokens. hcn renders\nthe numeric Codex override `-c model_context_window=272000` for a bare\nlaunch. Resume applies only an explicit flag, without profile or config\ndefaults. Codex owns automatic compaction; this setting is not a hard\nper-request token or billing limit. A large prompt or tool result can\nexceed the configured window before compaction. Native arguments after\n`--` can also override it. See the [Codex config reference](https://developers.openai.com/codex/config-reference).\n\nProject config (`.hcn/config.json` at the git root, code-reviewed with the\nrepo) also carries tool floors and named toolsets:\n\n```json\n{\n  \"version\": 1,\n  \"effort\": \"low\",\n  \"tools\": [\"read\", \"grep\", \"glob\", \"list\"],\n  \"toolsets\": { \"review\": [\"read\", \"grep\"] }\n}\n```\n\nThe project `tools` key is both the default grant and the FLOOR: a `--tools`\narg exceeding it refuses with exit 2 naming both sets - never a silent\nclamp. An empty floor refuses every grant (the turn-everything-off\nworkflow). Config parsing is hard-fail: unknown keys, malformed JSON, or a\nversion mismatch exit 2 naming the offender.\n\n### Tool names\n\n`--tools` and `--exclude-tools` accept canonical names only. Bare native names are not accepted; use `native:<name>` to pass a harness-native or extension tool through. The live table is printed by `hcn inspect <harness>` (`toolVocabulary`).\n\n| canonical | claude | pi | codex | muse |\n|---|---|---|---|---|\n| read | Read | read | - | - |\n| write | Write | write | - | category write |\n| edit | Edit | edit | - | category write |\n| shell | Bash | bash | - | category shell |\n| grep | Grep | grep | - | - |\n| glob | Glob | find | - | - |\n| list | - | ls | - | - |\n| web-fetch | WebFetch | - | - | category web |\n| web-search | WebSearch | - | - | category web |\n| subagent | Task | - | - | - |\n| skill | Skill | - | - | - |\n\n`toolMap` extends the vocabulary per harness via config (`toolMap.<harness>.<canonical> = \"<native>\"`):\n\n```json\n{ \"version\": 1, \"toolMap\": { \"pi\": { \"web-search\": \"web_search\" }, \"muse\": { \"write\": \"write_file\" } } }\n```\n\nPrecedence is `project > user`; a category-only harness (muse) refuses a `toolMap` key whose canonical is not in its categories, naming the key (e.g. `toolMap.muse.read`). A canonical name with no counterpart on the current harness refuses with `unsupported-option` and the hint `add toolMap.<harness>.<name> to ~/.config/hcn/config.json or pass native:<name>`. hcn cannot verify that a declared native name exists at run time; a wrong name reaches the harness as an unknown tool.\n\nOn pi, `--tools` is a strict allowlist: any rendered list - an explicit\ngrant or `--access read` - drops the extension and MCP tools pi registered\nat run time (`web_search`, `background_task`, tool-proxy). A bare pi run\ntherefore renders no list (the profile's all-known marker emits nothing on\na strict-allowlist harness; pi's dormant `grep`, `find`, `ls` stay off\nunless granted). A pi grant that needs an extension tool names it through\n`toolMap` or `native:<name>`.\n\n`--access` is a preset allowlist: `read` = `read, grep, glob, list, web-fetch, web-search` (canonical), `write` = no restriction.\n\nRendering per harness:\n\n| harness | `read` renders | `write` renders |\n|---|---|---|\n| claude | `--allowedTools Read,Grep,Glob,WebFetch,WebSearch` + deny complement (toolMap aware) | nothing (harness default) |\n| pi | `--tools read,grep,find,ls` (+ web-search via toolMap) | nothing |\n| codex | `--sandbox read-only` | `--sandbox workspace-write` |\n| muse | `--disable-write --disable-shell` | nothing |\n\n`--access` together with `--tools` or `--exclude-tools` in the same run refuses `mutually-exclusive-options` (access is a preset allowlist, not a filter over one). `--access` together with an explicit `--sandbox` on codex refuses the same way.\n\n## Question escalation (issue #41)\n\nA headless worker can ask the CALLER's user when a genuine decision blocks\nprogress, and the answer flows back via resume. `escalateQuestions`\ndefaults ON (`--escalate-questions` / `--no-escalate-questions`, config\nkey `escalateQuestions` in both tiers; precedence arg > project > user >\ndefault). It is a behavior instruction, not a turn option: no flag ever\nreaches the harness - the transport is a short protocol contract hcn\nprepends to the prompt. It is independent of autonomy by ratified design:\nautonomy covers interrupts the HARNESS raises (permission gates),\nescalateQuestions covers interrupts the MODEL raises (judgment gaps) -\n`--autonomy --escalate-questions` is \"tools free, judgment supervised.\"\n\nProtocol: a worker that must ask ends its turn with a fenced `hcn-question`\nblock (`{\"question\",\"options\":[..],\"recommended\":..}`) as the last content\nof its final message. hcn detects it and emits a typed `question` event\n(structured-first: the fields ARE the question; prose renders from them);\n`done` carries cause `awaiting-input` with process exit 0 - asking is a\nsuccessful turn. The caller escalates through its own question tool, then\nresumes with the answer: `hcn run <harness> --resume <id> --prompt \"<answer>\"`.\nId continuity per harness: claude stable, pi/muse caller-assigned, codex\nminted (the identity event carries the id). With `--no-escalate-questions`\nthe worker is instructed never to ask - it states the assumption it\nproceeded under and continues.\n\nA turn that ends `awaiting-input` arms no answer timer: the process has\nexited, and the session id stays resumable for as long as the harness\nkeeps the session. `hcn session` keeps the process alive while it waits\nand applies no idle budget of its own, so the caller owns any timeout.\n\nEvery resolved setting prints its provenance to stderr:\n\n```\nprovenance: effort = \"high\" (user-config)\nprovenance: discovery = {\"tools\":true,...} (profile)\ndivergence: profile \"sandbox\" not expressible on pi; harness default applies\n```\n\n## Concepts\n\nThree layers, one direction: `knowledge` (frozen descriptors - facts about\neach CLI, stamped to `verifiedAgainst`) feeds `interpretation` (pure\nfunctions - argv construction, validation, refusals, option resolution)\nfeeds `execution` (process lifecycle - the only impure layer, through an\ninjected `{ spawn, clock, signal }` adapter). The source is public and the\nlayers are real, but they are internal structure, not an install surface:\nfrom 1.0 the `hcn` CLI is the only supported interface.\n\nA harness that cannot express an option REFUSES rather than guessing -\nrefusals carry structured fields (`supportedBy`: which harnesses express\nit, with native spellings; `hint`: the nearest alternative on your current\nharness). A native flag typed before `--` is recognized and redirected to\nits normalized spelling.\n\n\n## Failure taxonomy\n\nEvery failure - provider, work, transport, or refusal - arrives as a typed `failure` event and reduces to one self-sufficient summary on `done`:\n\n```ts\ntype FailureClass = \"rate-limit\" | \"usage-limit\" | \"quota\" | \"auth\" | \"budget\" | \"task\" | \"transport\" | \"unavailable\" | \"rejected\" | \"native\" | \"timeout\" | \"trust-refused\" | \"internal\";\ninterface FailureSummary { class: FailureClass; retryable: boolean; message: string; code?: LimitCode; authKind?: AuthFailureKind; resetsAt?: number; issue?: RefusalIssue; option?: TurnOptionKey; facet?: DiscoveryFacet; supported?: readonly string[]; supportedBy?: ReadonlyArray<{ harness: string; spelling: string }>; hint?: string; nativeExitCode?: number; }\ntype HarnessEvent = ... | ({ kind: \"failure\" } & FailureSummary) | { kind: \"done\"; exitCode: number | null; cause: ExitCause; failure?: FailureSummary };\ntype ExitCause = \"clean\" | \"limit\" | \"crash\" | \"stall\" | \"killed\" | \"failed\" | \"awaiting-input\";\n```\n\nThe canonical consumer check, identical for a deterministic router and an agent:\n\n```ts\nif (done.failure) {\n  if (done.failure.retryable) descendFallbackChain(done.failure);\n  else pivot(done.failure); // rejected -> change options; budget -> raise cap; task -> surface\n}\n```\n\n`nativeExitCode` is the harness process's own exit code. It is set on a `native` failure and on the `transport` failure hcn reports for a nonzero exit with empty stderr.\n\nA harness writes each record on one output line, and a whole reply (reasoning included) can ride on one line. hcn reads lines up to 16,777,216 characters on every stdout and stderr stream of a run or a session. A longer line is discarded and is never silent: it fails the run (or the session turn it lands in) with a `transport` failure whose message starts `output line overflow:` and names the stream and the line's size in UTF-8 bytes.\n\nA pi reply that ends with `stopReason` `stop` or `length` and no answer text (for example, reasoning only) fails the run with a `task` failure. Its message names the stop reason and pi's token counts, for example `pi turn ended with stopReason length and no text (usage: input 1234, output 5678, reasoning 910)`. A later reply with text in the same run supersedes it, as for `stopReason` `error`.\n\n`retryable` is `false` for `task`, `budget`, `rejected`, `native`, `timeout`, `internal` and `true` for the rest. `unavailable` is a provider that cannot serve the requested model or route (model not found, not loaded); retryable, route elsewhere. `rejected` is non-retryable across the whole model chain because the remedy is different options or a different harness.\n\n### Crash tier and the command ledger\n\n`internal` is hcn's own bug, not a harness outcome. An uncaught exception,\nan unhandled rejection, or a rejected main loop routes to one crash handler:\nstderr carries the message and stack; a `--json` stream additionally gets\n`{\"kind\":\"failure\",\"class\":\"internal\",...}` then\n`{\"kind\":\"done\",\"exitCode\":4,\"cause\":\"crash\",...}` (a session stream ends\nwith `closed` instead); the process exits **4**, a code no ordinary class\nuses. A dispatch-level usage error (unknown command, unknown harness,\nmissing harness) exits 2 and, when `--json` is anywhere in argv, writes the\nsame `failure`/terminal pair so a parser never sees an empty stream.\n\nEvery invocation also appends two lines to a durable command ledger at\n`$HCN_STATE_DIR`/`$XDG_STATE_HOME`/`~/.local/state` + `hcn/commands.jsonl`:\na `start` line (command, pid, timestamp) before work and an `end` line\n(exit, ok) after. A crash appends its end line with `crashed: true`. A\n`start` with no `end` is the trace of a hung or killed invocation. Appends\nare diagnostics: a failed append never fails the command.\n\nThe ledger is diagnostic only. The run lifecycle observer (RFC-03 slice 11) is\na separate, off-by-default seam: when `HCN_OBSERVER` holds a non-empty\nabsolute path, `hcn run` streams lifecycle records to that command as\n`hcn-observer/1` NDJSON - one `started` line, one line per run event, the\nterminal `done` - exactly as the \"Run lifecycle observer\" section below\ndocuments. The harness child receives `HCN_INVOCATION_ID` so an observer can\ncorrelate. A delivery failure is swallowed: it never fails or delays the run.\nThe deployment sets the variable only where an observer is installed and the\nreflection intake's backup gate has passed; the observer side refuses while\nthe gate is closed.\n\n### Run lifecycle observer (ADR 0011)\n\nWhen `HCN_OBSERVER` names an executable file, `hcn run` streams lifecycle\nrecords to that command's stdin as `hcn-observer/1` NDJSON: one `started`\nline (invocation id, timestamp, harness, cwd, hcn version), one line per run\nevent (the same objects `--json` prints, minus token and progress), and the\nterminal `done` (exit code plus hcn's own exit cause, `killed` included). The\nharness child receives `HCN_INVOCATION_ID` so an observer can correlate. The\nchild is detached and fire-and-forget: a missing, failing or slow observer\nnever fails or delays the run, and an unset variable leaves it byte for byte\nunchanged. The stream contract is\nhttps://github.com/dungle-scrubs/harness-cli-normalizer/blob/main/docs/observer.md;\nthe reflection intake ships one such observer.\n`resetsAt` is present when the harness reports a reset time: claude's\n`rate_limit_event`, and a limit wall whose text states one (codex\n`try again at ...`, rendered in the harness's local zone at minute\nprecision and reported as the end of that minute; pi's\n`Try again in ~N min`). Pi on `openai-codex` states the reset only over\nits SSE transport, where the backend answers HTTP 429. Over WebSocket,\nwhich pi's default `transport: \"auto\"` picks first, pi reports\n`Codex error: The usage limit has been reached` and drops the reset, so\nthe failure carries no `resetsAt`. The workaround is `\"transport\": \"sse\"`\nin pi's `settings.json`. It costs something on every run: WebSocket keeps\none connection per session and sends only the new conversation items\nafter the first request, while SSE resends the full history on every\nmodel call, including each tool-call round inside one turn. A consumer\ntreats an absent `resetsAt` as unknown, not as \"retry now\".\n\n### Muse pending native approvals (issue #179)\n\n`muse exec` omits pending approvals from stdout, so a headless turn blocked\non one would hang with no event until `--timeout` (`hcn run` arms no stall\nclock; `--stall` is session-only). While a muse turn runs, hcn polls the\nread-only MSP `approval/listPending` operation through a helper `muse serve`\nprocess owned by that turn and reaped with it. The helper never loads the\nsession, never decides anything, and carries only the blocked subject\n(approval vs input), the approval's subject kind, and whether the approval\nis a sandbox escalation - never request payloads.\n\nA single non-empty sample stops nothing: judge-decided approvals for\nordinary tool calls appear briefly, then clear. The turn ends only when the\nsame request identity persists across 30 consecutive polls (about 30\nseconds), or at once when an approval is judge-escalated (a human was\nasked, and a headless run has none) or asks to run outside the muse\nsandbox (`sandbox_permissions: require_escalated` in the tool args - muse\nnever sends that class to its approval judge, so no wait can resolve it).\nA request that resolves itself (`autoResolutionMs`) is never reported\nbefore its deadline plus a margin. Either way the turn emits an `error`\nnaming the blocked subject, then `failure class=task` (`retryable: false` -\na sandbox escalation names `-- --sandbox-network enabled` first: it keeps\napprovals and the filesystem sandbox and fits a command that needs network\nor a local listening socket; otherwise answer it in muse, or rerun with\n`--autonomy` only if unattended approvals are acceptable; never auto-route)\nand `done cause=failed` with exit 1. When the pending set itself cannot be\nread (the helper is slow to start, crashes, or answers unreadably three\npolls in a row), the turn fails closed with `failure class=transport`\n(`retryable: true` - hcn could not watch the pending set, so the run was\nstopped rather than risking a silent hang).\n\n## Refusals\n\nAn unexpressible option throws `ArgvRefusalError` from the builders and is also delivered as `failure class=rejected` + `done cause=failed` from `streamTurn` (which never throws out of its first `next()`):\n\n```ts\nclass ArgvRefusalError extends Error { issue: RefusalIssue; harness: HarnessName; option?: TurnOptionKey; facet?: DiscoveryFacet; supported: readonly string[]; }\ntype RefusalIssue = \"unsupported-option\" | \"unsupported-option-facet\" | \"unsupported-on-resume\" | \"invalid-option-value\" | \"unknown-effort\" | \"unknown-model\" | \"invalid-env\" | \"invalid-tool-grant\" | \"prompt-flag-injection\" | \"no-autonomy-mode\" | \"no-session-mode\";\n```\n\nEvery refusal names an alternative in `supported` and `message`, not only a negation.\n\n## Reference\n\n- Descriptors live in `src/knowledge/` (`claude-code.ts`, `codex.ts`, `pi.ts`, `muse.ts`, `cursor.ts`, `antigravity.ts`), with shared types in `descriptor.ts`.\n- The normalized event surface is `HarnessEvent` in `src/execution/events.ts`: `identity`, `token`, `message`, `progress`, `tool`, `compaction`, `limit`, `error`, `failure`, `question` (issue #41), `done` (with `done.failure`; `done.cause` includes `awaiting-input`). Event kinds and failure classes are additive across releases; a consumer ignores a kind or class it does not recognize and still waits for `done`. Additive optional fields (such as `resumeLast: true` on `identity`) never break that rule: branch on presence, never on prose.\n- Narrow or override a descriptor's facts with `parseOverrides` (`src/knowledge/overrides.ts`). An override a harness cannot satisfy throws `OverrideRefusalError` instead of producing a broken argv. `limitMatchers`/`authMatchers` are now serializable `{pattern, flags, code/kind}` objects so they can be overridden from JSON; bad patterns are refused at load with file and harness named.\n- `DROPPABLE_KINDS` (`token`, `progress`) marks events safe to drop when you only need the full messages. `failure` is never droppable, and neither is `compaction`.\n- `compaction` reports that the harness compacted its own context (ADR 0009). It carries `state`, a closed union of `started`, `compacted`, `noop`, `failed` and `aborted`, so a consumer branches with no default arm. `trigger` (`auto`, `manual`, `overflow`), `tokensBefore`, `tokensAfter` and `durationMs` are present only where the harness itself reported them; hcn derives none of them, and no harness pushes a context-occupancy percentage on a live signal. `detail` carries the harness's own reason or error text, so branch on `state` and never on it. Which harnesses report is `capabilities.compactionReporting` on the `identity` event; the roster is below. **Count `compacted`, not `started`:** hcn reports each record the harness sends, and claude has been observed sending two `compacting` status records for one compaction, so a start can repeat. A compaction can also arrive **between** turns - pi checks its threshold before a new prompt, so the event may reach a session caller on the next turn rather than the one that triggered it. Muse compacts **before** the turn and blocking, so its event arrives once the observer's first view page is read, after the turn has already started.\n### Which harnesses report compaction\n\n`compactionReporting` is on the descriptor and rides the `identity` event as\n`capabilities.compactionReporting`, so a caller reads it once per session on the\nsame channel, with no stderr parsing. `hcn inspect <harness> --json` prints it for\nplanning.\n\n| Harness | Source | States | Tokens |\n|---|---|---|---|\n| Claude | stream | `started`, `compacted`, `failed` | yes |\n| Pi | stream | `started`, `compacted`, `failed`, `aborted` | yes |\n| Antigravity | stream | `compacted` | no (duration only) |\n| Muse | MSP view | `compacted`, `noop`, `failed`, `aborted` | yes |\n| Codex | - | none | - |\n| Cursor | - | none | - |\n\n**`null` means the harness reports nothing, not that it never compacts.** Codex and\ncursor both compact natively, and neither says so on any channel hcn reads. Silence\nfrom them is absence of reporting, not absence of compaction.\n\nNo per-run `divergence:` line is written for this. That line names a key the caller\nasked for and the harness could not render; nobody asks for compaction reporting, so\nthe line would print on every codex and cursor run, including every run where\nnothing compacted.\n\n- **Compaction pauses the stream.** A harness goes quiet while it compacts: measured 25 to 47 s on claude, 24 to 33 s on codex, 25 to 39 s on cursor, 4.5 to 18 s on antigravity, 7 to 10 s on pi and about 7 s on muse (`docs/research/2026-09-22-compaction-signals/`). Set `--stall` above those, or a healthy run is killed mid-compaction. `--stall` is opt-in and unset by default.\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md). The short version: run `pnpm check` before pushing, so lint, typecheck, vitest, and the bun test lane all pass. Keep the layer purity and chat-seam invariants intact, and do not edit files under `test/fixtures/`. Commits follow Conventional Commits.\n\n## Status\n\n1.0. CLI-only surface. Six harnesses are described (Claude Code, Codex,\npi, Muse, Cursor CLI, Antigravity CLI); one-shot turns are normalized across all seven with a ratified\ndefaults profile, user and project config tiers, tool selection\n(include/exclude with floors and named toolsets), passthrough with native\nerror labeling, and provenance on every resolved setting. Persistent sessions (`hcn session`) are available for claude, pi, Antigravity,\npopeye, and codex (codex drives `codex app-server`, newline-delimited JSON-RPC\nover stdio - one process, `turn/start` / `turn/steer` per send; evidence in\ntest/fixtures/codex-0.159.2/session). Antigravity's\nauthenticated contract is verified against `1.2.8`; its account model list stays\nextensible because plan eligibility and configured custom models can differ. Drift detection runs weekly\nin CI for the three npm harnesses; Muse, Cursor CLI, and Antigravity CLI are `installed`\nand only checked locally via their native version commands. Re-verifying a descriptor's capability\nclaims against a new CLI version follows the [harness update procedure](docs/harness-updates.md):\nlocal behavioral probes and fixture capture. CI tests version-independent\nadmission and the recorded contracts; a version difference alone never disables\nan invocation. Authentication\nand usage-limit signals are parsed from each harness's stream, but hcn\nnever holds or ships credentials; each harness authenticates under the\nend user's own session.\n\n\n## Prior art\n\nThe seven harness CLIs this normalizes: [Claude Code](https://www.npmjs.com/package/@anthropic-ai/claude-code), [Codex](https://www.npmjs.com/package/@openai/codex), [pi](https://www.npmjs.com/package/@earendil-works/pi-coding-agent), Muse (installed from source, not on a registry), Cursor CLI (installed via script, binary `agent`, not on a registry), and [Antigravity CLI](https://antigravity.google/docs/cli/), plus popeye (source install, binary `popeye`).\n\n## License\n\nMIT. See [LICENSE](LICENSE).\n","readmeFilename":"README.md"}