{"_id":"@aihq/harness","_rev":"41-96b8d736548f858f4947e83d572b2e93","name":"@aihq/harness","dist-tags":{"next":"0.2.0-rc.0","latest":"6.1.0"},"versions":{"0.2.0-rc.0":{"name":"@aihq/harness","version":"0.2.0-rc.0","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@0.2.0-rc.0","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"43162636fe74c25a27a5b7c284d603c66f347877","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-0.2.0-rc.0.tgz","fileCount":11,"integrity":"sha512-AmXKzpNJ6t3TMeXBAopjEXpB7hBhYOVr/3ycqv4uddIyrrY5yRJR1Gzv2Iz6I+4N38Tel9ulFnGTzgwoRBN+6Q==","signatures":[{"sig":"MEYCIQCZCmxqnxgmpwiHoX421pg/PVWSurY/AARJcx97HDEFxAIhAILTy/GaDwR6TgZQcL+ZTZjXV1E+v5d5EqRdNsIVev/T","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3782233},"type":"module","engines":{"node":">=20"},"gitHead":"2b276a327ec85ceb39c55f2075b402cf6eee4c69","scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup","format":"biome format --write src tests","verify":"npm run typecheck && npm run lint:ci && npm run test:cov && npm run build","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"samartomar","email":"samar_tomar@hotmail.com"},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.8.0","description":"Enterprise AI Bootstrapping Harness — bootstraps governed, proxy-safe AI coding into workstations and repos","directories":{},"_nodeVersion":"24.13.1","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","tsup":"^8.5.1","vitest":"^4.1.9","happy-dom":"^20.10.6","typescript":"^6.0.3","@types/node":"^26.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/harness_0.2.0-rc.0_1782904435405_0.6508629665409742","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"0.2.0":{"name":"@aihq/harness","version":"0.2.0","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@0.2.0","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"2e4a16c9c7b55b64a13aa6a5420df9fcb08963a4","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-0.2.0.tgz","fileCount":12,"integrity":"sha512-TFNllNIV+r/gt58KJcmZ+7GhddLYFR9JhrhwuV98rEgmUn7gEkrWByRTQZUGfsuDnfWsZfxwow4+lSxSUk9g7w==","signatures":[{"sig":"MEUCIDxlccnP64d1TnFz9yXBIcvMVoPHeIF68/lQ2+jzR7qXAiEAkj9Qo+k0+w4hKdd0y/5gNNfmHtwNnxWm0+fpmlnXUGA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3785545},"type":"module","_from":"file:aihq-harness-0.2.0.tgz","engines":{"node":">=20"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup","format":"biome format --write src tests","verify":"npm run typecheck && npm run lint:ci && npm run test:cov && npm run build","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-0.2.0.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-TFNllNIV+r/gt58KJcmZ+7GhddLYFR9JhrhwuV98rEgmUn7gEkrWByRTQZUGfsuDnfWsZfxwow4+lSxSUk9g7w==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.13.0","description":"Enterprise AI Bootstrapping Harness — bootstraps governed, proxy-safe AI coding into workstations and repos","directories":{},"_nodeVersion":"24.17.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","tsup":"^8.5.1","vitest":"^4.1.9","happy-dom":"^20.10.6","typescript":"^6.0.3","@types/node":"^26.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/harness_0.2.0_1782911120372_0.9404345005642187","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"0.3.0":{"name":"@aihq/harness","version":"0.3.0","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@0.3.0","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"5e256f901f28371002fc76df5eca6fe3b40b92cb","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-0.3.0.tgz","fileCount":12,"integrity":"sha512-PGrDZ9xTaVpt+8nmaMajgPCJjzFmtnmyoKmXe3+JATusJovie4OlBkrvOeJAan0wxOT4/+C8zm9HO4UdWxYIag==","signatures":[{"sig":"MEQCIGTwvA6LZU8LfeyziMfqvv49UIh33NsKDjvmgo9tD/TDAiBH1qpHU0XAqTkq2drHh8wEho9lnuOdWChGAl5YzH++yg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3917985},"type":"module","_from":"file:aihq-harness-0.3.0.tgz","engines":{"node":">=20"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup","format":"biome format --write src tests","verify":"npm run typecheck && npm run lint:ci && npm run test:cov && npm run build","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-0.3.0.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-PGrDZ9xTaVpt+8nmaMajgPCJjzFmtnmyoKmXe3+JATusJovie4OlBkrvOeJAan0wxOT4/+C8zm9HO4UdWxYIag==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Enterprise AI Bootstrapping Harness — bootstraps governed, proxy-safe AI coding into workstations and repos","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.22.4","tsup":"^8.5.1","vitest":"^4.1.9","happy-dom":"^20.10.6","typescript":"^6.0.3","@types/node":"^26.0.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/harness_0.3.0_1782940899275_0.19664344814570844","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"0.3.1":{"name":"@aihq/harness","version":"0.3.1","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@0.3.1","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"48eb243f3ead6ccfd3a6d610bb486a78d5f3db16","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-0.3.1.tgz","fileCount":9,"integrity":"sha512-sdopZUwsCTk8UfzEzmfAkjLI6sLsFtsQiq9tte3WBAQNA2qQX9oKSKcoJzd+dTUYYTXKDp9NlCa/dpAgy0WuIQ==","signatures":[{"sig":"MEYCIQDV+KIixexZ43thz+T/2AdPj4+2/3w0rZzv3yxn8iiD3wIhALk2B5fKKfRpHTmHzaIcLjms43trHb+S7qvc0O6cg7De","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1143114},"type":"module","_from":"file:aihq-harness-0.3.1.tgz","engines":{"node":">=20"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup","format":"biome format --write src tests","verify":"npm run typecheck && npm run lint:ci && npm run test:cov && npm run build","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-0.3.1.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-sdopZUwsCTk8UfzEzmfAkjLI6sLsFtsQiq9tte3WBAQNA2qQX9oKSKcoJzd+dTUYYTXKDp9NlCa/dpAgy0WuIQ==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.13.0","description":"Enterprise AI Bootstrapping Harness — bootstraps governed, proxy-safe AI coding into workstations and repos","directories":{},"_nodeVersion":"24.17.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.22.4","tsup":"^8.5.1","vitest":"^4.1.9","happy-dom":"^20.10.6","typescript":"^6.0.3","@types/node":"^26.0.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/harness_0.3.1_1782946042692_0.04673920038686585","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"0.4.0":{"name":"@aihq/harness","version":"0.4.0","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@0.4.0","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"474204a565c2e60974d77804e4e65b02fbcb683f","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-0.4.0.tgz","fileCount":9,"integrity":"sha512-uxOpUqjCiR1/bUWCnu2ej4uvHZe5Oi3XmZ6X/R43pdXD3OP8Au44rNqgf0Gk4b1SoD483RPziSplcomN3E/buA==","signatures":[{"sig":"MEYCIQDMfmZKWKqguUtz2QU/OZnaeNBE6FGm3pT5wxPQ+uZ/7wIhANZ3H2GGQHTER+i6+6wsdzh+G6Ohehq+eaURoy6nRYhT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1159513},"type":"module","_from":"file:aihq-harness-0.4.0.tgz","engines":{"node":">=20"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup","format":"biome format --write src tests","verify":"npm run typecheck && npm run lint:ci && npm run test:cov && npm run build","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-0.4.0.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-uxOpUqjCiR1/bUWCnu2ej4uvHZe5Oi3XmZ6X/R43pdXD3OP8Au44rNqgf0Gk4b1SoD483RPziSplcomN3E/buA==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.13.0","description":"Enterprise AI Bootstrapping Harness — bootstraps governed, proxy-safe AI coding into workstations and repos","directories":{},"_nodeVersion":"24.17.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.22.4","tsup":"^8.5.1","vitest":"^4.1.9","happy-dom":"^20.10.6","typescript":"^6.0.3","@types/node":"^26.0.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/harness_0.4.0_1782955404024_0.6008854812259163","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"0.4.1":{"name":"@aihq/harness","version":"0.4.1","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@0.4.1","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"0b0112f94ca74b4df5d3139799a671c9281c35d1","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-0.4.1.tgz","fileCount":9,"integrity":"sha512-mVBQyZR1erE4N2AxPtZPUgjqKnybWgcs78pr/onM8c0bsOnL+xpbNG+Ol28vSPeh428n2bKfFdxlLsnzkNit0g==","signatures":[{"sig":"MEQCIB+2P8XVTGjVSs708wGMQrkszy9DBblZYs+YL4+eMjI3AiAc/oNjIgb8O0hujfqLKeGmyx2gEgJkzzAqeyz2n2g++w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1166743},"type":"module","_from":"file:aihq-harness-0.4.1.tgz","engines":{"node":">=20"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup","format":"biome format --write src tests","verify":"npm run typecheck && npm run lint:ci && npm run test:cov && npm run build","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-0.4.1.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-mVBQyZR1erE4N2AxPtZPUgjqKnybWgcs78pr/onM8c0bsOnL+xpbNG+Ol28vSPeh428n2bKfFdxlLsnzkNit0g==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Enterprise AI Bootstrapping Harness — bootstraps governed, proxy-safe AI coding into workstations and repos","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.22.4","tsup":"^8.5.1","vitest":"^4.1.9","happy-dom":"^20.10.6","typescript":"^6.0.3","@types/node":"^26.0.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/harness_0.4.1_1782959915195_0.9561193885598451","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"0.5.0":{"name":"@aihq/harness","version":"0.5.0","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@0.5.0","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"142706f8e84e780ef4ef0210695edb1bd44d0b83","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-0.5.0.tgz","fileCount":9,"integrity":"sha512-qbGytgkJ2DYTqknasI/VTZMSk3tENCnnt2ds2e6hLSgdgDLIm7uFQmH6P5I7x2XdBNjIOcXy0tJZJFy0oGVT9w==","signatures":[{"sig":"MEQCIElIq5ndXoE07ZZxe/TCSpVGNvum/pXpXgsCS2Dv9xhyAiBVlGIft66BKKrQU0+kxRq72MVF152aqB2iAOSJDdhMsQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1199074},"type":"module","_from":"file:aihq-harness-0.5.0.tgz","engines":{"node":">=20"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup","format":"biome format --write src tests","verify":"npm run typecheck && npm run lint:ci && npm run test:cov && npm run build","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-0.5.0.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-qbGytgkJ2DYTqknasI/VTZMSk3tENCnnt2ds2e6hLSgdgDLIm7uFQmH6P5I7x2XdBNjIOcXy0tJZJFy0oGVT9w==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.13.0","description":"Enterprise AI Bootstrapping Harness — bootstraps governed, proxy-safe AI coding into workstations and repos","directories":{},"_nodeVersion":"24.17.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.22.4","tsup":"^8.5.1","vitest":"^4.1.9","happy-dom":"^20.10.6","typescript":"^6.0.3","@types/node":"^26.0.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/harness_0.5.0_1782968571502_0.17918597244020829","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"0.6.0":{"name":"@aihq/harness","version":"0.6.0","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@0.6.0","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"b42f61512b4f709fc2c4103ebfbb37a4cde634b3","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-0.6.0.tgz","fileCount":9,"integrity":"sha512-oEZgCScszKqvAof1rLnjyR2q9jXKdhlS2qQdYMQCzek0448/OimuH7myU0vbW+PgLZmk7PemVDec8bmCM9UQVQ==","signatures":[{"sig":"MEYCIQCbmpxWkJNo/5MOs69ojWM2P8f0yqRBOMfRZgMHEYkykwIhANkgvcls8Y5RqzGxHmvKdtx+embDQmBG/IRhvbeHGc9q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1260171},"type":"module","_from":"file:aihq-harness-0.6.0.tgz","engines":{"node":">=20"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup","format":"biome format --write src tests","verify":"npm run typecheck && npm run lint:ci && npm run test:cov && npm run build","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-0.6.0.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-oEZgCScszKqvAof1rLnjyR2q9jXKdhlS2qQdYMQCzek0448/OimuH7myU0vbW+PgLZmk7PemVDec8bmCM9UQVQ==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.13.0","description":"Enterprise AI Bootstrapping Harness — bootstraps governed, proxy-safe AI coding into workstations and repos","directories":{},"_nodeVersion":"24.17.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.22.4","tsup":"^8.5.1","vitest":"^4.1.9","happy-dom":"^20.10.6","typescript":"^6.0.3","@types/node":"^26.0.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/harness_0.6.0_1783001996574_0.4773445586839935","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"1.0.0":{"name":"@aihq/harness","version":"1.0.0","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@1.0.0","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"debb8dbe0806d9104bd5ea9589d7d80ba8c337c0","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-1.0.0.tgz","fileCount":9,"integrity":"sha512-ZhzhPkHhtq/Imq7hPRW//F6GxfFf748GSLMgpPEMsJKsEaFVi9fLxRE6zu1bkerA/kzLxVaK/tdu3qlSSCpKUA==","signatures":[{"sig":"MEYCIQC6pWNO2Pc+f6oK28i6oB4EhYu+a6m5M85hnfNX2Y8X/wIhAIR8sg72mAuYUOrr9UmeniHhrJXuavBISukmTfzUezCH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1263453},"type":"module","_from":"file:aihq-harness-1.0.0.tgz","engines":{"node":">=20"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup","format":"biome format --write src tests","verify":"npm run typecheck && npm run lint:ci && npm run test:cov && npm run build","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-1.0.0.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-ZhzhPkHhtq/Imq7hPRW//F6GxfFf748GSLMgpPEMsJKsEaFVi9fLxRE6zu1bkerA/kzLxVaK/tdu3qlSSCpKUA==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Enterprise AI Bootstrapping Harness — bootstraps governed, proxy-safe AI coding into workstations and repos","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.22.4","tsup":"^8.5.1","vitest":"^4.1.9","happy-dom":"^20.10.6","typescript":"^6.0.3","@types/node":"^26.0.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/harness_1.0.0_1783014759151_0.9888402829753229","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"1.0.1":{"name":"@aihq/harness","version":"1.0.1","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@1.0.1","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"596fdd19348f70c9b1dc100de9619ffbc962527d","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-1.0.1.tgz","fileCount":9,"integrity":"sha512-WEXLsQJZPL7jOM6ZIEC6uEelG21jjtJMZ8GJ2y+8MBNnTA9gZZ9FBb5FpdfccyFTYUJUS6/f1QUSCTI6d2RtBw==","signatures":[{"sig":"MEUCIQCMLrmS+5wnvOOLllSEjG1a8/zHcHNvt+UdqJrhP7Wa6AIgQO7VleqhRNz7PwomAa42UJ8NooPG/gPbEhhzgrnD6xI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1251213},"type":"module","_from":"file:aihq-harness-1.0.1.tgz","engines":{"node":">=20"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup","format":"biome format --write src tests","verify":"npm run typecheck && npm run lint:ci && npm run test:cov && npm run build","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-1.0.1.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-WEXLsQJZPL7jOM6ZIEC6uEelG21jjtJMZ8GJ2y+8MBNnTA9gZZ9FBb5FpdfccyFTYUJUS6/f1QUSCTI6d2RtBw==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Enterprise AI Bootstrapping Harness — governed AI-assisted coding for enterprise workstations and repos: TLS trust, repo canon, skill supply chain, evidence","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.22.4","tsup":"^8.5.1","vitest":"^4.1.9","happy-dom":"^20.10.6","typescript":"^6.0.3","@types/node":"^26.0.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/harness_1.0.1_1783017792589_0.8803563642050369","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"1.2.0":{"name":"@aihq/harness","version":"1.2.0","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@1.2.0","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"516df6bb59dd04a021e68713c0b48751ff21b1d9","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-1.2.0.tgz","fileCount":9,"integrity":"sha512-hmLGpTYezeB8z/VsJ6PgpNL3ybEHc1qHXHgQfLTIARrvz/qphsv2EqR4OWtT2sFqZaiSEcGKQFq5pmxTWLNFTQ==","signatures":[{"sig":"MEYCIQCjh0FNDzLeIU9X237DMCnThZsdpWvLW00/JadKyesYyAIhAORzEfuvKf17TFCo9zWGsx0htLFAaGLo/6nPcdJP3sEO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1285266},"type":"module","_from":"file:aihq-harness-1.2.0.tgz","engines":{"node":">=20"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup","format":"biome format --write src tests","verify":"npm run check:artifacts && npm run typecheck && npm run lint:ci && npm run test:cov && npm run build","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","typecheck":"tsc --noEmit","test:watch":"vitest","check:artifacts":"tsx src/internals/check-tracked-artifacts.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-1.2.0.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-hmLGpTYezeB8z/VsJ6PgpNL3ybEHc1qHXHgQfLTIARrvz/qphsv2EqR4OWtT2sFqZaiSEcGKQFq5pmxTWLNFTQ==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Enterprise AI Bootstrapping Harness — governed AI-assisted coding for enterprise workstations and repos: TLS trust, repo canon, skill supply chain, evidence","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.22.4","tsup":"^8.5.1","vitest":"^4.1.9","happy-dom":"^20.10.6","typescript":"^6.0.3","@types/node":"^26.0.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/harness_1.2.0_1783071308593_0.619592902036435","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"1.3.0":{"name":"@aihq/harness","version":"1.3.0","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@1.3.0","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"202db26d58f217690fc0efdb0367dff19e1a24be","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-1.3.0.tgz","fileCount":9,"integrity":"sha512-+2wWxynXxoXJ7m6pKQXW7iff+4gPfvVug5eTah1r5fNN8asBxP3I0y+IRZ6qF+IDkwjWY8+lV+mQBbJZHTImIw==","signatures":[{"sig":"MEYCIQDl8JpIsp4Qcqn5ydyvjr2bjB+pxMI74t1PFT1gqIMe6gIhAKKW5cdACt0IdJYARiBmDDLnOVV667Zz+RDcpAk2PfTG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1298195},"type":"module","_from":"file:aihq-harness-1.3.0.tgz","engines":{"node":">=20"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup","format":"biome format --write src tests","verify":"npm run check:artifacts && npm run typecheck && npm run lint:ci && npm run test:cov && npm run build","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","typecheck":"tsc --noEmit","test:watch":"vitest","check:artifacts":"tsx src/internals/check-tracked-artifacts.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-1.3.0.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-+2wWxynXxoXJ7m6pKQXW7iff+4gPfvVug5eTah1r5fNN8asBxP3I0y+IRZ6qF+IDkwjWY8+lV+mQBbJZHTImIw==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Enterprise AI Bootstrapping Harness — governed AI-assisted coding for enterprise workstations and repos: TLS trust, repo canon, skill supply chain, evidence","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.22.4","tsup":"^8.5.1","vitest":"^4.1.9","happy-dom":"^20.10.6","typescript":"^6.0.3","@types/node":"^26.0.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/harness_1.3.0_1783137743693_0.9718941355809689","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"2.0.0":{"name":"@aihq/harness","version":"2.0.0","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@2.0.0","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"a7ff2cbe289cc53f1bea2bf0663552b1a91a8ddd","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-2.0.0.tgz","fileCount":9,"integrity":"sha512-CR8pVNpyMDYj9TdqCy+DGQ1UuJL7eBshRIzjh6rmbAtVL0zEQ9uqsb/9Gy1wuQUMP5Kx6CUPL52lCwrk0NKe/Q==","signatures":[{"sig":"MEQCIAM5EQDsbkzo14eKkDc19fP1gUsIzXKt5w1J+5qd79y8AiBpuE+de1xWAR1lh1AxKzzx+U4dTzZ7iwdFmbFEIpqRvQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1444908},"type":"module","_from":"file:aihq-harness-2.0.0.tgz","engines":{"node":">=20"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup","format":"biome format --write src tests","verify":"npm run check:artifacts && npm run typecheck && npm run lint:ci && npm run test:cov && npm run build","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","typecheck":"tsc --noEmit","test:watch":"vitest","check:artifacts":"tsx src/internals/check-tracked-artifacts.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-2.0.0.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-CR8pVNpyMDYj9TdqCy+DGQ1UuJL7eBshRIzjh6rmbAtVL0zEQ9uqsb/9Gy1wuQUMP5Kx6CUPL52lCwrk0NKe/Q==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Enterprise AI Bootstrapping Harness — governed AI-assisted coding for enterprise workstations and repos: TLS trust, repo canon, skill supply chain, evidence","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.22.4","tsup":"^8.5.1","vitest":"^4.1.9","happy-dom":"^20.10.6","typescript":"^6.0.3","@types/node":"^26.0.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/harness_2.0.0_1783285148187_0.645476330278967","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"2.1.0":{"name":"@aihq/harness","version":"2.1.0","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@2.1.0","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"cfae70c1d9f4e3d4435dbc7fa9f74c6dc391bdee","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-2.1.0.tgz","fileCount":9,"integrity":"sha512-R16te8SJ6MeZ5eF3GzUw3KBtjSlF4IMef9vv7OKtR9VSn5/oobQOfaDGSBtc8Qjug1MMWXuYh3sXblWZiyYRSw==","signatures":[{"sig":"MEUCIQC/ahgdfVNN6G+8Ko/ymj/JriV5QM2QxlZbbktToDz/9gIgJdTcPxmcp1eW/svI2YKqIcYIKjerq67MGqrTkOOQ0lY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1515011},"type":"module","_from":"file:aihq-harness-2.1.0.tgz","engines":{"node":">=20"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup","format":"biome format --write src tests","verify":"npm run check:artifacts && npm run check:ecc-installer && npm run typecheck && npm run lint:ci && npm run test:cov && npm run build","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","typecheck":"tsc --noEmit","test:watch":"vitest","check:artifacts":"tsx src/internals/check-tracked-artifacts.ts","check:ecc-installer":"tsx src/internals/check-ecc-installer.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-2.1.0.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-R16te8SJ6MeZ5eF3GzUw3KBtjSlF4IMef9vv7OKtR9VSn5/oobQOfaDGSBtc8Qjug1MMWXuYh3sXblWZiyYRSw==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Enterprise AI Bootstrapping Harness — governed AI-assisted coding for enterprise workstations and repos: TLS trust, repo canon, skill supply chain, evidence","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.22.4","tsup":"^8.5.1","vitest":"^4.1.9","happy-dom":"^20.10.6","typescript":"^6.0.3","@types/node":"^26.0.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/harness_2.1.0_1783393207983_0.13534097556257052","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"2.4.0":{"name":"@aihq/harness","version":"2.4.0","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@2.4.0","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"b25b6a443d61d70ec3f3fefa1729f03f7f9d2be9","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-2.4.0.tgz","fileCount":25,"integrity":"sha512-gkYag3nYJrkbTh0I63MGcmxJY1Kq8SDTQZGxFbP3tDCwPvh6QFAl4haY7XgufzCLLl0Lh3BVZYH9rvnpsbLlsw==","signatures":[{"sig":"MEQCIHtA+4DdhL6jnoFeyGPWxClb7vAAlcSMFzP3IAOOYmbNAiBJcXK26Wh2OH/aHMwAtAwbWA8WdwdOitq2SKC+fShGug==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@2.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1928749},"type":"module","_from":"file:aihq-harness-2.4.0.tgz","engines":{"node":">=20"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup","format":"biome format --write src tests","verify":"npm run check:artifacts && npm run check:ecc-installer && npm run docs:lint && npm run typecheck && npm run lint:ci && npm run test:cov && npm run build","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","docs:lint":"tsx src/cli.ts docs-lint","typecheck":"tsc --noEmit","test:watch":"vitest","check:artifacts":"tsx src/internals/check-tracked-artifacts.ts","check:ecc-installer":"tsx src/internals/check-ecc-installer.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-2.4.0.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-gkYag3nYJrkbTh0I63MGcmxJY1Kq8SDTQZGxFbP3tDCwPvh6QFAl4haY7XgufzCLLl0Lh3BVZYH9rvnpsbLlsw==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Enterprise AI Bootstrapping Harness — governed AI-assisted coding for enterprise workstations and repos: TLS trust, repo canon, skill supply chain, evidence","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.22.4","tsup":"^8.5.1","vitest":"^4.1.9","happy-dom":"^20.10.6","typescript":"^6.0.3","@types/node":"^26.0.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/harness_2.4.0_1783436264475_0.1849235395504112","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"2.4.1":{"name":"@aihq/harness","version":"2.4.1","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@2.4.1","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"e424c459afe0b3ba9d0b3c7b96f442a2f32ee91a","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-2.4.1.tgz","fileCount":42,"integrity":"sha512-H5+Eno5XIp0Ao8R13L14wCR3NuItXnw1JJKERlrKMM5iHrde2sdHRT7gYqCgd/TGXyJI4uRzHuu8iVTO2vJsDg==","signatures":[{"sig":"MEQCICJU52gTYy3bml0EiAEd4AapeD6sUCPeWeXeztLnuNdzAiBNnEmJg850cjzULSSsXPm+FqbtXHOmCJ+xlAUu22a12Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@2.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2139014},"main":"./dist/index.js","type":"module","_from":"file:aihq-harness-2.4.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup","format":"biome format --write src tests","verify":"npm run check:artifacts && npm run check:ecc-installer && npm run check:ai-runtime && npm run check:bugbounty-report && npm run docs:lint && npm run typecheck && npm run lint:ci && npm run test:cov && npm run build && npm run check:published-bin && npm run check:published-library","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","docs:lint":"tsx src/cli.ts docs-lint","typecheck":"tsc --noEmit","test:watch":"vitest","check:artifacts":"tsx src/internals/check-tracked-artifacts.ts","check:ai-runtime":"tsx src/internals/ai-runtime-inventory.ts --root .","check:ecc-installer":"tsx src/internals/check-ecc-installer.ts","check:published-bin":"node dist/cli.js --version && node dist/cli.js --help","check:bugbounty-report":"tsx src/internals/bugbounty-report.ts --source .internal/defects/BUGBOUNTY.md","check:published-library":"node -e \"import('@aihq/harness').then((m)=>{ if (typeof m.runSessionGuardrails !== 'function') throw new Error('missing library export'); })\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-2.4.1.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-H5+Eno5XIp0Ao8R13L14wCR3NuItXnw1JJKERlrKMM5iHrde2sdHRT7gYqCgd/TGXyJI4uRzHuu8iVTO2vJsDg==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Enterprise AI Bootstrapping Harness — governed AI-assisted coding for enterprise workstations and repos: TLS trust, repo canon, skill supply chain, evidence","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.22.4","tsup":"^8.5.1","vitest":"^4.1.9","happy-dom":"^20.10.6","typescript":"^6.0.3","@types/node":"^26.0.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/harness_2.4.1_1783542510241_0.8061649561154736","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"2.4.2":{"name":"@aihq/harness","version":"2.4.2","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@2.4.2","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"9a706c0023435344b831b287f7c1e303fb2e074b","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-2.4.2.tgz","fileCount":42,"integrity":"sha512-AFsxqI606xbShLecH2pVZCHy9kUT3gBCm48Loh8AZ2IV5bcLUfj/lCDSHc3OIGjrvXqMJdlk/c6R18OLhawEPw==","signatures":[{"sig":"MEYCIQDR0dwEvFCfVJHHHTDw9/4r1Bi1+e1MlBeBo1RjBRlD/AIhALBCq5ywE3t/FBUQY2kSRCHaryuZSjB9xYx0bDr5B6re","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@2.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2150477},"main":"./dist/index.js","type":"module","_from":"file:aihq-harness-2.4.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup","format":"biome format --write src tests","verify":"npm run check:artifacts && npm run check:ecc-installer && npm run check:ai-runtime && npm run check:bugbounty-report && npm run docs:lint && npm run typecheck && npm run lint:ci && npm run test:cov && npm run build && npm run check:published-bin && npm run check:published-library","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","docs:lint":"tsx src/cli.ts docs-lint","typecheck":"tsc --noEmit","test:watch":"vitest","check:artifacts":"tsx src/internals/check-tracked-artifacts.ts","check:ai-runtime":"tsx src/internals/ai-runtime-inventory.ts --root .","check:ecc-installer":"tsx src/internals/check-ecc-installer.ts","check:published-bin":"node dist/cli.js --version && node dist/cli.js --help","check:bugbounty-report":"tsx src/internals/bugbounty-report.ts --source .internal/defects/BUGBOUNTY.md","check:published-library":"node -e \"import('@aihq/harness').then((m)=>{ if (typeof m.runSessionGuardrails !== 'function') throw new Error('missing library export'); })\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-2.4.2.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-AFsxqI606xbShLecH2pVZCHy9kUT3gBCm48Loh8AZ2IV5bcLUfj/lCDSHc3OIGjrvXqMJdlk/c6R18OLhawEPw==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Enterprise AI Bootstrapping Harness — governed AI-assisted coding for enterprise workstations and repos: TLS trust, repo canon, skill supply chain, evidence","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.22.4","tsup":"^8.5.1","vitest":"^4.1.9","happy-dom":"^20.10.6","typescript":"^6.0.3","@types/node":"^26.0.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/harness_2.4.2_1783550170410_0.5205023459146219","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"2.4.3":{"name":"@aihq/harness","version":"2.4.3","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@2.4.3","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"adda453c0647f6549242c6f88ac4dccca1a8d2fe","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-2.4.3.tgz","fileCount":42,"integrity":"sha512-0TY/fQTjAAw6HK2uazQp7khfGWOgirVntOZjiL6Hc7H63GDQnAE9lc2+8RAYO2V6bzKPGVNlceYwuG/v8yAVhg==","signatures":[{"sig":"MEUCIQDmFqW5Vr2v4WeNCTMUKrjhqBk0si+hqQwVoNEe2TwtwAIgfTSPb2ks66SSAJ/0go2j6s4nVn0i/pIcgN67ZXh3DSo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@2.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2160193},"main":"./dist/index.js","type":"module","_from":"file:aihq-harness-2.4.3.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup","format":"biome format --write src tests","verify":"npm run check:artifacts && npm run check:ecc-installer && npm run check:ai-runtime && npm run check:bugbounty-report && npm run docs:lint && npm run typecheck && npm run lint:ci && npm run test:cov && npm run build && npm run check:published-bin && npm run check:published-library","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","docs:lint":"tsx src/cli.ts docs-lint","typecheck":"tsc --noEmit","test:watch":"vitest","check:artifacts":"tsx src/internals/check-tracked-artifacts.ts","check:ai-runtime":"tsx src/internals/ai-runtime-inventory.ts --root .","check:ecc-installer":"tsx src/internals/check-ecc-installer.ts","check:published-bin":"node dist/cli.js --version && node dist/cli.js --help","check:bugbounty-report":"tsx src/internals/bugbounty-report.ts --source .internal/defects/BUGBOUNTY.md","check:published-library":"node -e \"import('@aihq/harness').then((m)=>{ if (typeof m.runSessionGuardrails !== 'function') throw new Error('missing library export'); })\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-2.4.3.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-0TY/fQTjAAw6HK2uazQp7khfGWOgirVntOZjiL6Hc7H63GDQnAE9lc2+8RAYO2V6bzKPGVNlceYwuG/v8yAVhg==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Enterprise AI Bootstrapping Harness — governed AI-assisted coding for enterprise workstations and repos: TLS trust, repo canon, skill supply chain, evidence","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.22.4","tsup":"^8.5.1","vitest":"^4.1.9","happy-dom":"^20.10.6","typescript":"^6.0.3","@types/node":"^26.0.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/harness_2.4.3_1783575519913_0.7015858582280019","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"2.5.0":{"name":"@aihq/harness","version":"2.5.0","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@2.5.0","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"439b380f8d497efbc1422520d082aeafdf7c0aff","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-2.5.0.tgz","fileCount":42,"integrity":"sha512-hfFGHcDO8N+ZqzbSy+MemR1SvEYTWge61+7l83Iwx3X1fIlwTCBPMRjuOcNdDcTNKkkqqZjGSkmvGYyFlWh2NQ==","signatures":[{"sig":"MEUCIQC4i1SDEbc6DWEEceK4ixL1nqQ8jr6hA71TquBdDao/DAIgEfSpPtKe1NbvS3ukkVQkDYGSfv+gfQU/vbiFqLbz1oE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@2.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2170286},"main":"./dist/index.js","type":"module","_from":"file:aihq-harness-2.5.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup","format":"biome format --write src tests","verify":"npm run check:artifacts && npm run check:ecc-installer && npm run check:ai-runtime && npm run check:bugbounty-report && npm run docs:lint && npm run typecheck && npm run lint:ci && npm run test:cov && npm run build && npm run check:published-bin && npm run check:published-library","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","docs:lint":"tsx src/cli.ts docs-lint","typecheck":"tsc --noEmit","test:watch":"vitest","check:artifacts":"tsx src/internals/check-tracked-artifacts.ts","check:ai-runtime":"tsx src/internals/ai-runtime-inventory.ts --root .","check:ecc-installer":"tsx src/internals/check-ecc-installer.ts","check:published-bin":"node dist/cli.js --version && node dist/cli.js --help","check:bugbounty-report":"tsx src/internals/bugbounty-report.ts --source .internal/defects/BUGBOUNTY.md","check:published-library":"node -e \"import('@aihq/harness').then((m)=>{ if (typeof m.runSessionGuardrails !== 'function') throw new Error('missing library export'); })\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-2.5.0.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-hfFGHcDO8N+ZqzbSy+MemR1SvEYTWge61+7l83Iwx3X1fIlwTCBPMRjuOcNdDcTNKkkqqZjGSkmvGYyFlWh2NQ==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Enterprise AI Bootstrapping Harness — governed AI-assisted coding for enterprise workstations and repos: TLS trust, repo canon, skill supply chain, evidence","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.22.4","tsup":"^8.5.1","vitest":"^4.1.9","happy-dom":"^20.10.6","typescript":"^6.0.3","@types/node":"^26.0.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/harness_2.5.0_1783651062644_0.15399786195261278","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"2.5.1":{"name":"@aihq/harness","version":"2.5.1","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@2.5.1","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"4168d55ace8d2ae89b62bb31acb9b315165ee418","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-2.5.1.tgz","fileCount":42,"integrity":"sha512-9Gg9lIkAKJ4si+Qbp3SQAOP7+/vnd5nOyaQJJSRpl2KJwYeVYntXXZgLO1aFHqTdPAplRddkoyGOjrTb91KGzA==","signatures":[{"sig":"MEUCIQDA/Fx0EnzgRZyBTTnDgtgwQVu0dTiYTZR3z2FAaWA8PAIgS18edD4PhTyBuVjTxspZ6g0eQj3Jr0G4scFQ+pcYxHk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@2.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2170316},"main":"./dist/index.js","type":"module","_from":"file:aihq-harness-2.5.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup","format":"biome format --write src tests","verify":"npm run check:artifacts && npm run check:ecc-installer && npm run check:ai-runtime && npm run check:bugbounty-report && npm run docs:lint && npm run typecheck && npm run lint:ci && npm run test:cov && npm run build && npm run check:published-bin && npm run check:published-library","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","docs:lint":"tsx src/cli.ts docs-lint","typecheck":"tsc --noEmit","test:watch":"vitest","check:artifacts":"tsx src/internals/check-tracked-artifacts.ts","check:ai-runtime":"tsx src/internals/ai-runtime-inventory.ts --root .","check:ecc-installer":"tsx src/internals/check-ecc-installer.ts","check:published-bin":"node dist/cli.js --version && node dist/cli.js --help","check:bugbounty-report":"tsx src/internals/bugbounty-report.ts --source .internal/defects/BUGBOUNTY.md","check:published-library":"node -e \"import('@aihq/harness').then((m)=>{ if (typeof m.runSessionGuardrails !== 'function') throw new Error('missing library export'); })\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-2.5.1.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-9Gg9lIkAKJ4si+Qbp3SQAOP7+/vnd5nOyaQJJSRpl2KJwYeVYntXXZgLO1aFHqTdPAplRddkoyGOjrTb91KGzA==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Enterprise AI Bootstrapping Harness — governed AI-assisted coding for enterprise workstations and repos: TLS trust, repo canon, skill supply chain, evidence","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.23.0","tsup":"^8.5.1","vitest":"^4.1.10","happy-dom":"^20.10.6","fast-check":"^4.8.0","typescript":"^6.0.3","@types/node":"^26.1.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/harness_2.5.1_1783666686581_0.6446395451888205","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"2.6.0":{"name":"@aihq/harness","version":"2.6.0","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@2.6.0","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"17c732a3ba6b96e656de20b0d3fad0ba91ff760f","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-2.6.0.tgz","fileCount":318,"integrity":"sha512-x3VjsSUC/V+ADQqd8G8BHA9Zd85UWy9gAqfL5VD2uvvqUAQHMJcB/0HGeOiBsKXdZriZaMRMrETmEmMLmSahjg==","signatures":[{"sig":"MEUCIE/R3Afvx6+9o78FYEMpAc66joVKshxxo1ovjdrheK2vAiEAhK+JzDSqWBFH3TgFUHsajD36YG9G+CZtvmyiV/QiWTU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@2.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2840938},"main":"./dist/index.js","type":"module","_from":"file:aihq-harness-2.6.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup && tsc -p tsconfig.dts.json","format":"biome format --write src tests","verify":"npm run check:artifacts && npm run check:ecc-installer && npm run check:ai-runtime && npm run check:bugbounty-report && npm run docs:lint && npm run typecheck && npm run lint:ci && npm run test:cov && npm run build && npm run check:published-bin && npm run check:published-library","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","docs:lint":"tsx src/cli.ts docs-lint","typecheck":"tsc --noEmit","test:watch":"vitest","check:artifacts":"tsx src/internals/check-tracked-artifacts.ts","check:ai-runtime":"tsx src/internals/ai-runtime-inventory.ts --root .","release:preflight":"tsx src/internals/release-preflight.ts","check:ecc-installer":"tsx src/internals/check-ecc-installer.ts","check:published-bin":"node dist/cli.js --version && node dist/cli.js --help","check:bugbounty-report":"tsx src/internals/bugbounty-report.ts --source .internal/defects/BUGBOUNTY.md","check:published-library":"node -e \"import('@aihq/harness').then((m)=>{ if (typeof m.runSessionGuardrails !== 'function') throw new Error('missing library export'); })\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-2.6.0.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-x3VjsSUC/V+ADQqd8G8BHA9Zd85UWy9gAqfL5VD2uvvqUAQHMJcB/0HGeOiBsKXdZriZaMRMrETmEmMLmSahjg==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Enterprise AI Bootstrapping Harness — governed AI-assisted coding for enterprise workstations and repos: TLS trust, repo canon, skill supply chain, evidence","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.23.0","tsup":"^8.5.1","vitest":"^4.1.10","happy-dom":"^20.10.6","fast-check":"^4.8.0","typescript":"^7.0.2","@types/node":"^26.1.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/harness_2.6.0_1783669787455_0.7230046999296262","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"2.7.0":{"name":"@aihq/harness","version":"2.7.0","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@2.7.0","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"ed5e314a17d5f77ea979b752bf78575a186c5950","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-2.7.0.tgz","fileCount":318,"integrity":"sha512-+92859zEvZLdBHkaFly4Mhe9eQnx6/wMrJMWd5J6sv4znOq0uByWcS1d8mqygtbCCX6RrZR/4LJaQ9nQABS7pQ==","signatures":[{"sig":"MEUCIQDgf2ZrV7A5vKGH/kSI8PMoBzKRBwlGg1lRibW7zlVaaAIgF4vXErG3iXDZfQjp1ccdlprUd2f6qpBXmjpD+ymdp84=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@2.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2841364},"main":"./dist/index.js","type":"module","_from":"file:aihq-harness-2.7.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup && tsc -p tsconfig.dts.json","format":"biome format --write src tests","verify":"npm run check:artifacts && npm run check:ecc-installer && npm run check:ai-runtime && npm run check:bugbounty-report && npm run docs:lint && npm run typecheck && npm run lint:ci && npm run test:cov && npm run build && npm run check:published-bin && npm run check:published-library","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","docs:lint":"tsx src/cli.ts docs-lint","typecheck":"tsc --noEmit","test:watch":"vitest","check:artifacts":"tsx src/internals/check-tracked-artifacts.ts","check:ai-runtime":"tsx src/internals/ai-runtime-inventory.ts --root .","release:preflight":"tsx src/internals/release-preflight.ts","check:ecc-installer":"tsx src/internals/check-ecc-installer.ts","check:published-bin":"node dist/cli.js --version && node dist/cli.js --help","check:bugbounty-report":"tsx src/internals/bugbounty-report.ts --source .internal/defects/BUGBOUNTY.md","check:published-library":"node -e \"import('@aihq/harness').then((m)=>{ if (typeof m.runSessionGuardrails !== 'function') throw new Error('missing library export'); })\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-2.7.0.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-+92859zEvZLdBHkaFly4Mhe9eQnx6/wMrJMWd5J6sv4znOq0uByWcS1d8mqygtbCCX6RrZR/4LJaQ9nQABS7pQ==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Enterprise AI Bootstrapping Harness — governed AI-assisted coding for enterprise workstations and repos: TLS trust, repo canon, skill supply chain, evidence","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.23.0","tsup":"^8.5.1","vitest":"^4.1.10","happy-dom":"^20.10.6","fast-check":"^4.8.0","typescript":"^7.0.2","@types/node":"^26.1.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/harness_2.7.0_1783687683328_0.1849117107011653","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"2.8.0":{"name":"@aihq/harness","version":"2.8.0","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@2.8.0","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"4f5a0d208354b4c2a17c169dc06481cc473908b8","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-2.8.0.tgz","fileCount":343,"integrity":"sha512-25lpewyEjfx66BB+qK0bqMHmdW/OPUKM7f98K0xjXMxCgnky/c3o4x/Pm0PqGN39bjLE/EtODsPtaCHI79Kq0g==","signatures":[{"sig":"MEUCIA6kPJr6Sug0kCp5uc8nfCpSSbWbd/EJ0wY/ytHxF0fZAiEAmUDpt16jZtfPdDIK3SC460n07Ay/dZBccz7z07xtRxE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@2.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3107712},"main":"./dist/index.js","type":"module","_from":"file:aihq-harness-2.8.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup && tsc -p tsconfig.dts.json","format":"biome format --write src tests","verify":"npm run check:artifacts && npm run check:ecc-installer && npm run check:ai-runtime && npm run check:bugbounty-report && npm run docs:lint && npm run typecheck && npm run lint:ci && npm run test:cov && npm run build && npm run check:published-bin && npm run check:published-library","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","docs:lint":"tsx src/cli.ts docs-lint","typecheck":"tsc --noEmit","test:watch":"vitest","baseline:vet":"tsx src/baseline-evidence/generate.ts","baseline:check":"tsx src/baseline-evidence/generate.ts --check","check:artifacts":"tsx src/internals/check-tracked-artifacts.ts","check:ai-runtime":"tsx src/internals/ai-runtime-inventory.ts --root .","release:preflight":"tsx src/internals/release-preflight.ts","check:ecc-installer":"tsx src/internals/check-ecc-installer.ts","check:published-bin":"node dist/cli.js --version && node dist/cli.js --help","check:bugbounty-report":"tsx src/internals/bugbounty-report.ts --source .internal/defects/BUGBOUNTY.md","check:published-library":"node -e \"import('@aihq/harness').then((m)=>{ if (typeof m.runSessionGuardrails !== 'function') throw new Error('missing library export'); })\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-2.8.0.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-25lpewyEjfx66BB+qK0bqMHmdW/OPUKM7f98K0xjXMxCgnky/c3o4x/Pm0PqGN39bjLE/EtODsPtaCHI79Kq0g==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Enterprise AI Bootstrapping Harness — governed AI-assisted coding for enterprise workstations and repos: TLS trust, repo canon, skill supply chain, evidence","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.23.0","tsup":"^8.5.1","vitest":"^4.1.10","happy-dom":"^20.10.6","fast-check":"^4.8.0","typescript":"^7.0.2","@types/node":"^26.1.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/harness_2.8.0_1783741596480_0.6616578930492025","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"2.9.0":{"name":"@aihq/harness","version":"2.9.0","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@2.9.0","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"7f25dc05a6c32df94c072ae0f0bc3c6495afe4bb","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-2.9.0.tgz","fileCount":355,"integrity":"sha512-VJu7rd7WjsDcDvVKbvYXPiCpdTeu0ckXeGosE1chqVC2Ztzf/1NVdx0FbSN8ANJ7088JFXLx5XJaGYrgdSQjEA==","signatures":[{"sig":"MEQCIFp8mmBu1MXXPnLgMfNiBB5pipWoo9a/luaOixFh4hoXAiBJ6xvH3kfO/96XF4KBa4bLcSXR72fYB96Z6agwlnCc2w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@2.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4889112},"main":"./dist/index.js","type":"module","_from":"file:aihq-harness-2.9.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup && tsc -p tsconfig.dts.json","format":"biome format --write src tests","verify":"npm run check:artifacts && npm run check:ecc-installer && npm run check:baseline-analyzers && npm run check:baseline-installable && npm run check:ai-runtime && npm run check:bugbounty-report && npm run docs:lint && npm run typecheck && npm run lint:ci && npm run test:cov && npm run build && npm run check:published-bin && npm run check:published-library","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","docs:lint":"tsx src/cli.ts docs-lint","typecheck":"tsc --noEmit","test:watch":"vitest","baseline:vet":"tsx src/baseline-evidence/generate.ts","baseline:check":"tsx src/baseline-evidence/generate.ts --check","check:artifacts":"tsx src/internals/check-tracked-artifacts.ts","check:ai-runtime":"tsx src/internals/ai-runtime-inventory.ts --root .","release:preflight":"tsx src/internals/release-preflight.ts","check:ecc-installer":"tsx src/internals/check-ecc-installer.ts","check:published-bin":"node dist/cli.js --version && node dist/cli.js --help","check:bugbounty-report":"tsx src/internals/bugbounty-report.ts --source .internal/defects/BUGBOUNTY.md","check:published-library":"node -e \"import('@aihq/harness').then((m)=>{ if (typeof m.runSessionGuardrails !== 'function') throw new Error('missing library export'); })\"","check:baseline-analyzers":"tsx src/internals/check-baseline-analyzers.ts","check:baseline-installable":"tsx src/internals/check-baseline-installable.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-2.9.0.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-VJu7rd7WjsDcDvVKbvYXPiCpdTeu0ckXeGosE1chqVC2Ztzf/1NVdx0FbSN8ANJ7088JFXLx5XJaGYrgdSQjEA==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Enterprise AI Bootstrapping Harness — governed AI-assisted coding for enterprise workstations and repos: TLS trust, repo canon, skill supply chain, evidence","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.23.0","tsup":"^8.5.1","acorn":"^8.17.0","vitest":"^4.1.10","happy-dom":"^20.10.6","fast-check":"^4.8.0","typescript":"^7.0.2","@types/node":"^26.1.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/harness_2.9.0_1783847755826_0.9631677525501903","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"2.10.0":{"name":"@aihq/harness","version":"2.10.0","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@2.10.0","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"8c12863ea84ffdaafc959171f4f7880578b36ae8","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-2.10.0.tgz","fileCount":359,"integrity":"sha512-grCnB92fHUyq+Ddhkx5XjMqtLuWnPrNdHeo0zPeFzOgA5BzmyB2SVuFOG/7w7yGW/acOYtRDJNyMWXr72K4nUQ==","signatures":[{"sig":"MEYCIQCcwZsFU4OJPqyNAvPEqxKAcP2u1b44+HS0pVKMIag6HQIhAICh6NbFvvBYoYBl6AU1QQHYPIu8ZF7sOjmMWw/Fg9vq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@2.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4904319},"main":"./dist/index.js","type":"module","_from":"file:aihq-harness-2.10.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup && tsc -p tsconfig.dts.json","format":"biome format --write src tests","verify":"npm run check:artifacts && npm run check:ecc-installer && npm run check:baseline-analyzers && npm run check:native-identity && npm run check:baseline-installable && npm run check:ai-runtime && npm run check:bugbounty-report && npm run docs:lint && npm run typecheck && npm run lint:ci && npm run test:cov && npm run build && npm run check:published-bin && npm run check:published-library","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","docs:lint":"tsx src/cli.ts docs-lint","typecheck":"tsc --noEmit","test:watch":"vitest","baseline:vet":"tsx src/baseline-evidence/generate.ts","baseline:check":"tsx src/baseline-evidence/generate.ts --check","check:artifacts":"tsx src/internals/check-tracked-artifacts.ts","check:ai-runtime":"tsx src/internals/ai-runtime-inventory.ts --root .","release:preflight":"tsx src/internals/release-preflight.ts","check:ecc-installer":"tsx src/internals/check-ecc-installer.ts","check:published-bin":"node dist/cli.js --version && node dist/cli.js --help","check:lock-migration":"tsx src/internals/assert-identity-only-lock-migration.ts","check:native-identity":"tsx src/internals/check-native-identity.ts","check:bugbounty-report":"tsx src/internals/bugbounty-report.ts --source .internal/defects/BUGBOUNTY.md","check:published-library":"node -e \"import('@aihq/harness').then((m)=>{ if (typeof m.runSessionGuardrails !== 'function') throw new Error('missing library export'); })\"","baseline:native-identity":"tsx src/internals/check-native-identity.ts --write","check:baseline-analyzers":"tsx src/internals/check-baseline-analyzers.ts","check:baseline-installable":"tsx src/internals/check-baseline-installable.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-2.10.0.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-grCnB92fHUyq+Ddhkx5XjMqtLuWnPrNdHeo0zPeFzOgA5BzmyB2SVuFOG/7w7yGW/acOYtRDJNyMWXr72K4nUQ==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Enterprise AI Bootstrapping Harness — governed AI-assisted coding for enterprise workstations and repos: TLS trust, repo canon, skill supply chain, evidence","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.23.0","tsup":"^8.5.1","acorn":"^8.17.0","vitest":"^4.1.10","happy-dom":"^20.10.6","fast-check":"^4.8.0","typescript":"^7.0.2","@types/node":"^26.1.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/harness_2.10.0_1783887362878_0.21983820883380534","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"2.11.0":{"name":"@aihq/harness","version":"2.11.0","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@2.11.0","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"a1bdc384c73019b3d12c97e2402d4fe021d95e7c","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-2.11.0.tgz","fileCount":362,"integrity":"sha512-bdWIGb8hlaDL/grASKZ42ogys1wg9IXQfDBdX6dR2kR33YK+Lyejla/JZJHcO2/UQF3/xivHKF+PYKoWx0WTtw==","signatures":[{"sig":"MEUCIB/Qjv3iTH1mEAWJxJf0ZTS9jHsxgxxNt6tQJ6/60VkzAiEA8ids2NiptjVKJ0f0FKwjCgk32f4rdQG0JE2Ocssy5vA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@2.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5698057},"main":"./dist/index.js","type":"module","_from":"file:aihq-harness-2.11.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup && tsc -p tsconfig.dts.json","format":"biome format --write src tests","verify":"npm run check:artifacts && npm run check:ecc-installer && npm run check:baseline-analyzers && npm run check:native-identity && npm run check:baseline-installable && npm run check:ai-runtime && npm run check:bugbounty-report && npm run docs:lint && npm run typecheck && npm run lint:ci && npm run test:cov && npm run build && npm run check:published-bin && npm run check:published-library","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","docs:lint":"tsx src/cli.ts docs-lint","typecheck":"tsc --noEmit","test:watch":"vitest","baseline:vet":"tsx src/baseline-evidence/generate.ts","baseline:check":"tsx src/baseline-evidence/generate.ts --check","check:artifacts":"tsx src/internals/check-tracked-artifacts.ts","check:ai-runtime":"tsx src/internals/ai-runtime-inventory.ts --root .","release:preflight":"tsx src/internals/release-preflight.ts","check:ecc-installer":"tsx src/internals/check-ecc-installer.ts","check:published-bin":"node dist/cli.js --version && node dist/cli.js --help","check:lock-migration":"tsx src/internals/assert-identity-only-lock-migration.ts","check:native-identity":"tsx src/internals/check-native-identity.ts","check:bugbounty-report":"tsx src/internals/bugbounty-report.ts --source .internal/defects/BUGBOUNTY.md","check:published-library":"node -e \"import('@aihq/harness').then((m)=>{ if (typeof m.runSessionGuardrails !== 'function') throw new Error('missing library export'); })\"","baseline:native-identity":"tsx src/internals/check-native-identity.ts --write","check:baseline-analyzers":"tsx src/internals/check-baseline-analyzers.ts","check:baseline-installable":"tsx src/internals/check-baseline-installable.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-2.11.0.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-bdWIGb8hlaDL/grASKZ42ogys1wg9IXQfDBdX6dR2kR33YK+Lyejla/JZJHcO2/UQF3/xivHKF+PYKoWx0WTtw==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Enterprise AI Bootstrapping Harness — governed AI-assisted coding for enterprise workstations and repos: TLS trust, repo canon, skill supply chain, evidence","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.23.0","tsup":"^8.5.1","acorn":"^8.17.0","vitest":"^4.1.10","happy-dom":"^20.10.6","fast-check":"^4.8.0","typescript":"^7.0.2","@types/node":"^26.1.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/harness_2.11.0_1784123926794_0.14391720933528473","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"3.0.0":{"name":"@aihq/harness","version":"3.0.0","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@3.0.0","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"1a8bc1af47093b44d6565a70a0f86d1586293321","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-3.0.0.tgz","fileCount":395,"integrity":"sha512-RLsVY8HOLHrVwhbizVOXmqXN6DZio8A0+z2gDmLblgq8jwRGOQm+T0cKCXh3kyHhC7IjnHgCx5nN1e59XApIsQ==","signatures":[{"sig":"MEQCIFtfqK0oZv1LQQnTF9wt5gDXuiKNi5566j2m0AyXO2//AiAlsJPY7F1u/xykU5n3bPNI2TcFNqgmfAKQ5xyjfJ7jZw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6009584},"main":"./dist/index.js","type":"module","_from":"file:aihq-harness-3.0.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup && tsc -p tsconfig.dts.json","format":"biome format --write src tests","verify":"npm run check:artifacts && npm run check:ecc-installer && npm run check:baseline-analyzers && npm run check:native-identity && npm run check:baseline-installable && npm run check:ai-runtime && npm run check:bugbounty-report && npm run docs:lint && npm run typecheck && npm run lint:ci && npm run test:cov && npm run build && npm run check:published-bin && npm run check:published-library","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","docs:lint":"tsx src/cli.ts docs-lint","typecheck":"tsc --noEmit","test:watch":"vitest","baseline:vet":"tsx src/baseline-evidence/generate.ts","baseline:check":"tsx src/baseline-evidence/generate.ts --check","check:artifacts":"tsx src/internals/check-tracked-artifacts.ts","check:ai-runtime":"tsx src/internals/ai-runtime-inventory.ts --root .","release:preflight":"tsx src/internals/release-preflight.ts","check:ecc-installer":"tsx src/internals/check-ecc-installer.ts","check:published-bin":"node dist/cli.js --version && node dist/cli.js --help","check:lock-migration":"tsx src/internals/assert-identity-only-lock-migration.ts","check:native-identity":"tsx src/internals/check-native-identity.ts","check:bugbounty-report":"tsx src/internals/bugbounty-report.ts --source .internal/defects/BUGBOUNTY.md","check:published-library":"node -e \"import('@aihq/harness').then((m)=>{ if (typeof m.runSessionGuardrails !== 'function') throw new Error('missing library export'); })\"","baseline:native-identity":"tsx src/internals/check-native-identity.ts --write","check:baseline-analyzers":"tsx src/internals/check-baseline-analyzers.ts","check:baseline-installable":"tsx src/internals/check-baseline-installable.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-3.0.0.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-RLsVY8HOLHrVwhbizVOXmqXN6DZio8A0+z2gDmLblgq8jwRGOQm+T0cKCXh3kyHhC7IjnHgCx5nN1e59XApIsQ==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Enterprise AI Bootstrapping Harness — governed AI-assisted coding for enterprise workstations and repos: TLS trust, repo canon, skill supply chain, evidence","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.23.0","tsup":"^8.5.1","acorn":"^8.17.0","vitest":"^4.1.10","happy-dom":"^20.10.6","fast-check":"^4.8.0","typescript":"^7.0.2","@types/node":"^26.1.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/harness_3.0.0_1784854140192_0.8220550313464936","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"3.1.0":{"name":"@aihq/harness","version":"3.1.0","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@3.1.0","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"87d3e0c30a737a34e27537b45c25dd2048c45423","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-3.1.0.tgz","fileCount":402,"integrity":"sha512-riAoOoW3pYHTpcv48t3rK6l44Wkg37GM3usNyOJKC2jDuhtIy/ZU+uTYpzMdtAqmUVO4ueRnq12b4sg8Jkh9Zw==","signatures":[{"sig":"MEYCIQDFZymoNKjB7szLIkUrPSEASmhBpy5EpgrUHrTlkWU0RwIhAJ8YhdPIEysmnlLfeOiyvspe5enGwqA+kZRbx0tcm/Wp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@3.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6089077},"main":"./dist/index.js","type":"module","_from":"file:aihq-harness-3.1.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup && tsc -p tsconfig.dts.json","format":"biome format --write src tests","verify":"npm run check:artifacts && npm run check:ecc-installer && npm run check:baseline-analyzers && npm run check:native-identity && npm run check:baseline-installable && npm run check:ai-runtime && npm run check:bugbounty-report && npm run docs:lint && npm run typecheck && npm run lint:ci && npm run test:cov && npm run build && npm run check:published-bin && npm run check:published-library","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","docs:lint":"tsx src/cli.ts docs-lint","typecheck":"tsc --noEmit","test:watch":"vitest","baseline:vet":"tsx src/baseline-evidence/generate.ts","baseline:check":"tsx src/baseline-evidence/generate.ts --check","check:artifacts":"tsx src/internals/check-tracked-artifacts.ts","check:ai-runtime":"tsx src/internals/ai-runtime-inventory.ts --root .","release:preflight":"tsx src/internals/release-preflight.ts","check:ecc-installer":"tsx src/internals/check-ecc-installer.ts","check:published-bin":"node dist/cli.js --version && node dist/cli.js --help","check:lock-migration":"tsx src/internals/assert-identity-only-lock-migration.ts","check:native-identity":"tsx src/internals/check-native-identity.ts","check:bugbounty-report":"tsx src/internals/bugbounty-report.ts --source .internal/defects/BUGBOUNTY.md","check:published-library":"node -e \"import('@aihq/harness').then((m)=>{ if (typeof m.runSessionGuardrails !== 'function') throw new Error('missing library export'); })\"","baseline:native-identity":"tsx src/internals/check-native-identity.ts --write","check:baseline-analyzers":"tsx src/internals/check-baseline-analyzers.ts","check:baseline-installable":"tsx src/internals/check-baseline-installable.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-3.1.0.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-riAoOoW3pYHTpcv48t3rK6l44Wkg37GM3usNyOJKC2jDuhtIy/ZU+uTYpzMdtAqmUVO4ueRnq12b4sg8Jkh9Zw==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Enterprise AI Bootstrapping Harness — governed AI-assisted coding for enterprise workstations and repos: TLS trust, repo canon, skill supply chain, evidence","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.23.0","tsup":"^8.5.1","acorn":"^8.17.0","vitest":"^4.1.10","happy-dom":"^20.10.6","fast-check":"^4.8.0","typescript":"^7.0.2","@types/node":"^26.1.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/harness_3.1.0_1784972316961_0.13256231201569602","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"3.2.0":{"name":"@aihq/harness","version":"3.2.0","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@3.2.0","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"61fb3684afd9930b9e01d8862c929020138efa6c","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-3.2.0.tgz","fileCount":421,"integrity":"sha512-ZSHk2jz1/SftOcAoLIhcidAq+sEwJF13WLd+2DBQQjwS4xjzzyfrN/Rer9yiWLyqxN0AJ1/leRdy3SanItn8AQ==","signatures":[{"sig":"MEYCIQDBLf+EXX+innNGokw7OuvcZJ43uxP8fMhwUTYfLDwxXwIhAL8GSLaQZFbvIvidORtGZL5LrLqMTEf+Wsl7bWXit+oH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@3.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7828656},"main":"./dist/index.js","type":"module","_from":"file:aihq-harness-3.2.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup && tsc -p tsconfig.dts.json","format":"biome format --write src tests","verify":"npm run check:artifacts && npm run check:ecc-installer && npm run check:baseline-analyzers && npm run check:native-identity && npm run check:baseline-installable && npm run check:ai-runtime && npm run check:bugbounty-report && npm run docs:lint && npm run typecheck && npm run lint:ci && npm run test:cov && npm run build && npm run check:published-bin && npm run check:published-library","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","docs:lint":"tsx src/cli.ts docs-lint","typecheck":"tsc --noEmit","test:watch":"vitest","baseline:vet":"tsx src/baseline-evidence/generate.ts","baseline:check":"tsx src/baseline-evidence/generate.ts --check","check:artifacts":"tsx src/internals/check-tracked-artifacts.ts","check:ai-runtime":"tsx src/internals/ai-runtime-inventory.ts --root .","release:preflight":"tsx src/internals/release-preflight.ts","check:ecc-installer":"tsx src/internals/check-ecc-installer.ts","check:published-bin":"node dist/cli.js --version && node dist/cli.js --help","check:lock-migration":"tsx src/internals/assert-identity-only-lock-migration.ts","check:native-identity":"tsx src/internals/check-native-identity.ts","check:bugbounty-report":"tsx src/internals/bugbounty-report.ts --source .internal/defects/BUGBOUNTY.md","check:published-library":"node -e \"import('@aihq/harness').then((m)=>{ if (typeof m.runSessionGuardrails !== 'function') throw new Error('missing library export'); })\"","baseline:native-identity":"tsx src/internals/check-native-identity.ts --write","check:baseline-analyzers":"tsx src/internals/check-baseline-analyzers.ts","check:baseline-installable":"tsx src/internals/check-baseline-installable.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-3.2.0.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-ZSHk2jz1/SftOcAoLIhcidAq+sEwJF13WLd+2DBQQjwS4xjzzyfrN/Rer9yiWLyqxN0AJ1/leRdy3SanItn8AQ==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Enterprise AI Bootstrapping Harness — governed AI-assisted coding for enterprise workstations and repos: TLS trust, repo canon, skill supply chain, evidence","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.23.0","tsup":"^8.5.1","acorn":"^8.17.0","vitest":"^4.1.10","happy-dom":"^20.10.6","fast-check":"^4.8.0","typescript":"^7.0.2","@types/node":"^26.1.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/harness_3.2.0_1785572420210_0.8915219551780682","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"3.3.0":{"name":"@aihq/harness","version":"3.3.0","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@3.3.0","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"f5573b2e5b7769b570e84ca1eec6bc073932c596","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-3.3.0.tgz","fileCount":423,"integrity":"sha512-+n9eeFCfoalku5G6dhSPG4yWTUWEwh+dAApQMYYB4o5wEpHS/TMfx5/P/pnIz49ruv+krCE68lpTKLNY4wybhw==","signatures":[{"sig":"MEQCIHlt890rWB7YWmmej0PS0FE1fTwDtgAnp4vJcx1q/AScAiBdz0ROUcluvZ2vc3vxhWmRsot1VLBi1wKCYHvUMJmZRQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@3.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7960137},"main":"./dist/index.js","type":"module","_from":"file:aihq-harness-3.3.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup && tsc -p tsconfig.dts.json","format":"biome format --write src tests","verify":"npm run check:artifacts && npm run check:ecc-installer && npm run check:baseline-analyzers && npm run check:native-identity && npm run check:baseline-installable && npm run check:ai-runtime && npm run check:bugbounty-report && npm run docs:lint && npm run typecheck && npm run lint:ci && npm run test:cov && npm run build && npm run check:published-bin && npm run check:published-library","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","docs:lint":"tsx src/cli.ts docs-lint","typecheck":"tsc --noEmit","test:watch":"vitest","baseline:vet":"tsx src/baseline-evidence/generate.ts","baseline:check":"tsx src/baseline-evidence/generate.ts --check","check:artifacts":"tsx src/internals/check-tracked-artifacts.ts","check:ai-runtime":"tsx src/internals/ai-runtime-inventory.ts --root .","release:preflight":"tsx src/internals/release-preflight.ts","check:ecc-installer":"tsx src/internals/check-ecc-installer.ts","check:published-bin":"node dist/cli.js --version && node dist/cli.js --help","check:lock-migration":"tsx src/internals/assert-identity-only-lock-migration.ts","check:native-identity":"tsx src/internals/check-native-identity.ts","check:bugbounty-report":"tsx src/internals/bugbounty-report.ts --source .internal/defects/BUGBOUNTY.md","check:published-library":"node -e \"import('@aihq/harness').then((m)=>{ if (typeof m.runSessionGuardrails !== 'function') throw new Error('missing library export'); })\"","baseline:native-identity":"tsx src/internals/check-native-identity.ts --write","check:baseline-analyzers":"tsx src/internals/check-baseline-analyzers.ts","check:baseline-installable":"tsx src/internals/check-baseline-installable.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-3.3.0.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-+n9eeFCfoalku5G6dhSPG4yWTUWEwh+dAApQMYYB4o5wEpHS/TMfx5/P/pnIz49ruv+krCE68lpTKLNY4wybhw==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Enterprise AI Bootstrapping Harness — governed AI-assisted coding for enterprise workstations and repos: TLS trust, repo canon, skill supply chain, evidence","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.23.0","tsup":"^8.5.1","acorn":"^8.17.0","vitest":"^4.1.10","happy-dom":"^20.10.6","fast-check":"^4.8.0","typescript":"^7.0.2","@types/node":"^26.1.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/harness_3.3.0_1785632875414_0.9960073990225089","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"3.4.0":{"name":"@aihq/harness","version":"3.4.0","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@3.4.0","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"e2b57a21bac3b9bb217b14cc20e9676157b66563","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-3.4.0.tgz","fileCount":447,"integrity":"sha512-Xkb2lbpGtcEHNO2vWHA0pxX4ngjBVrI88SCQcS5w+e4zkcOXBAQk8i3q40HqUMORher8uSMfteg4kR0psGXWYw==","signatures":[{"sig":"MEUCICSBBBS8WUVfDbvzG8qsoLo9aYr8dG5a9eXR2jXnPFuwAiEAxqu0P+P42DkH8dZ0XXmRalfnRu0TXYXCOLvxjM8qbLI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@3.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8600622},"main":"./dist/index.js","type":"module","_from":"file:aihq-harness-3.4.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup && tsc -p tsconfig.dts.json","format":"biome format --write src tests","verify":"npm run check:artifacts && npm run check:self-hosting-canon && npm run check:ecc-installer && npm run check:baseline-analyzers && npm run check:native-identity && npm run check:baseline-installable && npm run check:ai-runtime && npm run check:bugbounty-report && npm run docs:lint && npm run typecheck && npm run lint:ci && npm run test:cov && npm run build && npm run check:published-bin && npm run check:published-library","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","docs:lint":"tsx src/internals/check-repo-docs.ts","typecheck":"tsc --noEmit","test:watch":"vitest","baseline:vet":"tsx src/baseline-evidence/generate.ts","baseline:check":"tsx src/baseline-evidence/generate.ts --check","check:artifacts":"tsx src/internals/check-tracked-artifacts.ts","check:ai-runtime":"tsx src/internals/ai-runtime-inventory.ts --root .","release:preflight":"tsx src/internals/release-preflight.ts","check:ecc-installer":"tsx src/internals/check-ecc-installer.ts","check:published-bin":"node dist/cli.js --version && node dist/cli.js --help","check:lock-migration":"tsx src/internals/assert-identity-only-lock-migration.ts","check:native-identity":"tsx src/internals/check-native-identity.ts","check:bugbounty-report":"tsx src/internals/bugbounty-report.ts --source .internal/defects/BUGBOUNTY.md","check:published-library":"node -e \"import('@aihq/harness').then((m)=>{ if (typeof m.runSessionGuardrails !== 'function') throw new Error('missing library export'); })\"","baseline:native-identity":"tsx src/internals/check-native-identity.ts --write","check:baseline-analyzers":"tsx src/internals/check-baseline-analyzers.ts","check:self-hosting-canon":"vitest run tests/self-hosting/self-hosting.test.ts","check:baseline-installable":"tsx src/internals/check-baseline-installable.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-3.4.0.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-Xkb2lbpGtcEHNO2vWHA0pxX4ngjBVrI88SCQcS5w+e4zkcOXBAQk8i3q40HqUMORher8uSMfteg4kR0psGXWYw==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Enterprise AI Bootstrapping Harness — governed AI-assisted coding for enterprise workstations and repos: TLS trust, repo canon, skill supply chain, evidence","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.23.0","tsup":"^8.5.1","acorn":"^8.17.0","vitest":"^4.1.10","happy-dom":"^20.10.6","fast-check":"^4.8.0","typescript":"^7.0.2","@types/node":"^26.1.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/harness_3.4.0_1785865674412_0.9510593043051689","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"4.0.0":{"name":"@aihq/harness","version":"4.0.0","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@4.0.0","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"0fcf0e4878ee0ec7bccc776c558720ae95c3cfeb","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-4.0.0.tgz","fileCount":473,"integrity":"sha512-ij9v0dsu1tniKLETrIhWq24/M6lsaA9iM9A3Bv1wn4DaGgjZn0bAtuRXfCpmTx7h4C/Bo9REuB8JQtkWTO4fRA==","signatures":[{"sig":"MEUCIA0EpP0E5KdlkaWkRcoQy1HaT2Mu+pUoAE6mqXrsPZR0AiEA1DQ+RdSs2eRrVFPwxdZs1bRxDpUn9tziQ+6Xv+EjnuE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@4.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9203866},"main":"./dist/index.js","type":"module","_from":"file:aihq-harness-4.0.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup && tsc -p tsconfig.dts.json","format":"biome format --write src tests","verify":"npm run check:artifacts && npm run check:self-hosting-canon && npm run check:ecc-installer && npm run check:baseline-analyzers && npm run check:native-identity && npm run check:baseline-pins && npm run check:baseline-installable && npm run check:ai-runtime && npm run check:bugbounty-report && npm run docs:lint && npm run typecheck && npm run lint:ci && npm run test:cov && npm run build && npm run check:published-bin && npm run check:published-library","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","docs:lint":"tsx src/internals/check-repo-docs.ts","typecheck":"tsc --noEmit","test:watch":"vitest","baseline:vet":"tsx src/baseline-evidence/generate.ts","baseline:check":"tsx src/baseline-evidence/generate.ts --check","check:artifacts":"tsx src/internals/check-tracked-artifacts.ts","check:ai-runtime":"tsx src/internals/ai-runtime-inventory.ts --root .","release:preflight":"tsx src/internals/release-preflight.ts","check:baseline-pins":"tsx src/internals/check-baseline-pin-currency.ts","check:ecc-installer":"tsx src/internals/check-ecc-installer.ts","check:published-bin":"node dist/cli.js --version && node dist/cli.js --help","check:lock-migration":"tsx src/internals/assert-identity-only-lock-migration.ts","check:native-identity":"tsx src/internals/check-native-identity.ts","check:bugbounty-report":"tsx src/internals/bugbounty-report.ts --source .internal/defects/BUGBOUNTY.md","check:published-library":"node -e \"import('@aihq/harness').then((m)=>{ if (typeof m.runSessionGuardrails !== 'function') throw new Error('missing library export'); })\"","baseline:native-identity":"tsx src/internals/check-native-identity.ts --write","check:baseline-analyzers":"tsx src/internals/check-baseline-analyzers.ts","check:self-hosting-canon":"vitest run tests/self-hosting/self-hosting.test.ts","check:baseline-installable":"tsx src/internals/check-baseline-installable.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-4.0.0.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-ij9v0dsu1tniKLETrIhWq24/M6lsaA9iM9A3Bv1wn4DaGgjZn0bAtuRXfCpmTx7h4C/Bo9REuB8JQtkWTO4fRA==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Enterprise AI Bootstrapping Harness — governed AI-assisted coding for enterprise workstations and repos: TLS trust, repo canon, skill supply chain, evidence","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.23.0","tsup":"^8.5.1","acorn":"^8.17.0","vitest":"^4.1.10","happy-dom":"^20.10.6","fast-check":"^4.8.0","typescript":"^7.0.2","@types/node":"^26.1.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/harness_4.0.0_1786145260108_0.5035977936459992","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"5.0.0":{"name":"@aihq/harness","version":"5.0.0","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@5.0.0","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"8c267854b94d7b37097694db8a4caf9c42f0bdc7","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-5.0.0.tgz","fileCount":473,"integrity":"sha512-k13NQrD1qCe9Z7TbMoZiflhLqZIAigfviCe2xftB2f9Z4XqB3HNSzzxalWCvq77A6lGMfqmEnOJg14OKSDTcQw==","signatures":[{"sig":"MEUCIQD4ZG7LSKcLt0bn7ph32u51g0cAkW0cUARe5eGwnzOPagIgCurMGrUJQsQSOhzye6VfdMoD5HoexeDfJ8PgOENA6MU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@5.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9242811},"main":"./dist/index.js","type":"module","_from":"file:aihq-harness-5.0.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup && tsc -p tsconfig.dts.json","format":"biome format --write src tests","verify":"npm run check:artifacts && npm run check:self-hosting-canon && npm run check:ecc-installer && npm run check:baseline-analyzers && npm run check:native-identity && npm run check:baseline-pins && npm run check:baseline-installable && npm run check:ai-runtime && npm run check:bugbounty-report && npm run docs:lint && npm run typecheck && npm run lint:ci && npm run test:cov && npm run build && npm run check:published-bin && npm run check:published-library","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","docs:lint":"tsx src/internals/check-repo-docs.ts","typecheck":"tsc --noEmit","test:watch":"vitest","baseline:vet":"tsx src/baseline-evidence/generate.ts","baseline:check":"tsx src/baseline-evidence/generate.ts --check","check:artifacts":"tsx src/internals/check-tracked-artifacts.ts","check:ai-runtime":"tsx src/internals/ai-runtime-inventory.ts --root .","release:preflight":"tsx src/internals/release-preflight.ts","check:baseline-pins":"tsx src/internals/check-baseline-pin-currency.ts","check:ecc-installer":"tsx src/internals/check-ecc-installer.ts","check:published-bin":"node dist/cli.js --version && node dist/cli.js --help","check:lock-migration":"tsx src/internals/assert-identity-only-lock-migration.ts","check:native-identity":"tsx src/internals/check-native-identity.ts","check:bugbounty-report":"tsx src/internals/bugbounty-report.ts --source .internal/defects/BUGBOUNTY.md","check:published-library":"node -e \"import('@aihq/harness').then((m)=>{ if (typeof m.runSessionGuardrails !== 'function') throw new Error('missing library export'); })\"","baseline:native-identity":"tsx src/internals/check-native-identity.ts --write","check:baseline-analyzers":"tsx src/internals/check-baseline-analyzers.ts","check:self-hosting-canon":"vitest run tests/self-hosting/self-hosting.test.ts","check:baseline-installable":"tsx src/internals/check-baseline-installable.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-5.0.0.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-k13NQrD1qCe9Z7TbMoZiflhLqZIAigfviCe2xftB2f9Z4XqB3HNSzzxalWCvq77A6lGMfqmEnOJg14OKSDTcQw==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Enterprise AI Bootstrapping Harness — governed AI-assisted coding for enterprise workstations and repos: TLS trust, repo canon, skill supply chain, evidence","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.23.0","tsup":"^8.5.1","acorn":"^8.17.0","vitest":"^4.1.10","happy-dom":"^20.10.6","fast-check":"^4.8.0","typescript":"^7.0.2","@types/node":"^26.1.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/harness_5.0.0_1786214405763_0.8036640429800812","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"5.1.0":{"name":"@aihq/harness","version":"5.1.0","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@5.1.0","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"2c4bf8e5ba78f2f9b4c49e9f408fc793a38e698b","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-5.1.0.tgz","fileCount":520,"integrity":"sha512-n/tLIUKdHzl6kuiYCgN8WojDu7Ntl/V9oTGyTffoQ7GVBecoNzj3+EmdRm3znblp/jP1QDGv+GU1yXsnBer6xw==","signatures":[{"sig":"MEYCIQCwbx7s9Oa5O+uJ6RaUhOO+wWtJNtDqDjpj8rwTDlrCtwIhAO36GhrfdetLtr45EuZQN4ipNnQ2bD1iYT1LZMnLP4il","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@5.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9856147},"main":"./dist/index.js","type":"module","_from":"file:aihq-harness-5.1.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json","./schemas/*.json":"./schemas/*.json"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup && tsc -p tsconfig.dts.json","format":"biome format --write src tests","verify":"npm run check:artifacts && npm run check:self-hosting-canon && npm run check:ecc-installer && npm run check:baseline-analyzers && npm run check:native-identity && npm run check:baseline-pins && npm run check:baseline-installable && npm run check:ai-runtime && npm run check:bugbounty-report && npm run docs:lint && npm run typecheck && npm run lint:ci && npm run test:cov && npm run build && npm run check:published-bin && npm run check:published-library","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","docs:lint":"tsx src/internals/check-repo-docs.ts","typecheck":"tsc --noEmit","test:watch":"vitest","baseline:vet":"tsx src/baseline-evidence/generate.ts","baseline:check":"tsx src/baseline-evidence/generate.ts --check","check:artifacts":"tsx src/internals/check-tracked-artifacts.ts","check:ai-runtime":"tsx src/internals/ai-runtime-inventory.ts --root .","release:preflight":"tsx src/internals/release-preflight.ts","check:baseline-pins":"tsx src/internals/check-baseline-pin-currency.ts","check:ecc-installer":"tsx src/internals/check-ecc-installer.ts","check:published-bin":"node dist/cli.js --version && node dist/cli.js --help","check:lock-migration":"tsx src/internals/assert-identity-only-lock-migration.ts","check:native-identity":"tsx src/internals/check-native-identity.ts","check:bugbounty-report":"tsx src/internals/bugbounty-report.ts --source .internal/defects/BUGBOUNTY.md","check:published-library":"node -e \"import('@aihq/harness').then((m)=>{ if (typeof m.runSessionGuardrails !== 'function') throw new Error('missing library export'); })\"","baseline:native-identity":"tsx src/internals/check-native-identity.ts --write","check:baseline-analyzers":"tsx src/internals/check-baseline-analyzers.ts","check:self-hosting-canon":"vitest run tests/self-hosting/self-hosting.test.ts","check:baseline-installable":"tsx src/internals/check-baseline-installable.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-5.1.0.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-n/tLIUKdHzl6kuiYCgN8WojDu7Ntl/V9oTGyTffoQ7GVBecoNzj3+EmdRm3znblp/jP1QDGv+GU1yXsnBer6xw==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Enterprise AI Bootstrapping Harness — governed AI-assisted coding for enterprise workstations and repos: TLS trust, repo canon, skill supply chain, evidence","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.23.0","tsup":"^8.5.1","acorn":"^8.17.0","vitest":"^4.1.10","happy-dom":"^20.10.6","fast-check":"^4.8.0","typescript":"^7.0.2","@types/node":"^26.1.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/harness_5.1.0_1786402039476_0.08622793677535245","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"5.2.0":{"name":"@aihq/harness","version":"5.2.0","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@5.2.0","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"96a87ca203ff3a0d021a10c8b966cd4f555e54ae","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-5.2.0.tgz","fileCount":524,"integrity":"sha512-3hm6SnGh2M16jFOmNdhHcbFo2aYMd4GnvmvuhoxzVKdQnZ2YfS+P7VotsAya7DMgAwLJmeY5mfptORyG5PSpaQ==","signatures":[{"sig":"MEYCIQCwDVNX1s46tJwswstE7K+58R8DqSzS4kOOG4Sx3LxWeAIhANWOgQP0cKUPRzltOY7/VHHk2yWhOOhXeS4m8HqvTImf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@5.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9896151},"main":"./dist/index.js","type":"module","_from":"file:aihq-harness-5.2.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json","./schemas/*.json":"./schemas/*.json"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup && tsc -p tsconfig.dts.json","format":"biome format --write src tests","verify":"npm run check:artifacts && npm run check:self-hosting-canon && npm run check:ecc-installer && npm run check:baseline-analyzers && npm run check:native-identity && npm run check:baseline-pins && npm run check:baseline-installable && npm run check:ai-runtime && npm run check:bugbounty-report && npm run docs:lint && npm run typecheck && npm run lint:ci && npm run test:cov && npm run build && npm run check:published-bin && npm run check:published-library","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","docs:lint":"tsx src/internals/check-repo-docs.ts","typecheck":"tsc --noEmit","test:watch":"vitest","baseline:vet":"tsx src/baseline-evidence/generate.ts","baseline:check":"tsx src/baseline-evidence/generate.ts --check","check:artifacts":"tsx src/internals/check-tracked-artifacts.ts","check:ai-runtime":"tsx src/internals/ai-runtime-inventory.ts --root .","release:preflight":"tsx src/internals/release-preflight.ts","check:baseline-pins":"tsx src/internals/check-baseline-pin-currency.ts","check:ecc-installer":"tsx src/internals/check-ecc-installer.ts","check:published-bin":"node dist/cli.js --version && node dist/cli.js --help","check:lock-migration":"tsx src/internals/assert-identity-only-lock-migration.ts","check:native-identity":"tsx src/internals/check-native-identity.ts","check:bugbounty-report":"tsx src/internals/bugbounty-report.ts --source .internal/defects/BUGBOUNTY.md","check:published-library":"node -e \"import('@aihq/harness').then((m)=>{ if (typeof m.runSessionGuardrails !== 'function') throw new Error('missing library export'); })\"","baseline:native-identity":"tsx src/internals/check-native-identity.ts --write","check:baseline-analyzers":"tsx src/internals/check-baseline-analyzers.ts","check:self-hosting-canon":"vitest run tests/self-hosting/self-hosting.test.ts","check:baseline-installable":"tsx src/internals/check-baseline-installable.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-5.2.0.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-3hm6SnGh2M16jFOmNdhHcbFo2aYMd4GnvmvuhoxzVKdQnZ2YfS+P7VotsAya7DMgAwLJmeY5mfptORyG5PSpaQ==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.17.0","description":"Enterprise AI Bootstrapping Harness — governed AI-assisted coding for enterprise workstations and repos: TLS trust, repo canon, skill supply chain, evidence","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.23.0","tsup":"^8.5.1","acorn":"^8.17.0","vitest":"^4.1.10","happy-dom":"^20.10.6","fast-check":"^4.8.0","typescript":"^7.0.2","@types/node":"^26.1.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/harness_5.2.0_1786649437983_0.8881042452912746","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"5.2.1":{"name":"@aihq/harness","version":"5.2.1","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@5.2.1","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"788fe4c594fbe7ff7aeb0c2c6867d74c9356930b","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-5.2.1.tgz","fileCount":524,"integrity":"sha512-fnxoE1GoT9bs04kpFHKIADble0pyKLo54AKtOcW5PLlwqVvE7i/sl2AzgddcULlQt7jG2iqJAFoTU1cyRbYmyA==","signatures":[{"sig":"MEQCIF1pIHQgXwWcEPS8nqo7wVIuCsfZJbHyL/47y1iSwI+CAiBEYzYnYjor9W0ofnHWPu/44PSD6/FfrsSGuGgg8tvL0w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@5.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9898524},"main":"./dist/index.js","type":"module","_from":"file:aihq-harness-5.2.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json","./schemas/*.json":"./schemas/*.json"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup && tsc -p tsconfig.dts.json","format":"biome format --write src tests","verify":"npm run check:artifacts && npm run check:self-hosting-canon && npm run check:ecc-installer && npm run check:baseline-analyzers && npm run check:native-identity && npm run check:baseline-pins && npm run check:baseline-installable && npm run check:ai-runtime && npm run check:bugbounty-report && npm run docs:lint && npm run typecheck && npm run lint:ci && npm run test:cov && npm run build && npm run check:published-bin && npm run check:published-library","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","docs:lint":"tsx src/internals/check-repo-docs.ts","typecheck":"tsc --noEmit","test:watch":"vitest","baseline:vet":"tsx src/baseline-evidence/generate.ts","baseline:check":"tsx src/baseline-evidence/generate.ts --check","check:artifacts":"tsx src/internals/check-tracked-artifacts.ts","check:ai-runtime":"tsx src/internals/ai-runtime-inventory.ts --root .","release:preflight":"tsx src/internals/release-preflight.ts","check:baseline-pins":"tsx src/internals/check-baseline-pin-currency.ts","check:ecc-installer":"tsx src/internals/check-ecc-installer.ts","check:published-bin":"node dist/cli.js --version && node dist/cli.js --help","check:lock-migration":"tsx src/internals/assert-identity-only-lock-migration.ts","check:native-identity":"tsx src/internals/check-native-identity.ts","check:bugbounty-report":"tsx src/internals/bugbounty-report.ts --source .internal/defects/BUGBOUNTY.md","check:published-library":"node -e \"import('@aihq/harness').then((m)=>{ if (typeof m.runSessionGuardrails !== 'function') throw new Error('missing library export'); })\"","baseline:native-identity":"tsx src/internals/check-native-identity.ts --write","check:baseline-analyzers":"tsx src/internals/check-baseline-analyzers.ts","check:self-hosting-canon":"vitest run tests/self-hosting/self-hosting.test.ts","check:baseline-installable":"tsx src/internals/check-baseline-installable.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-5.2.1.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-fnxoE1GoT9bs04kpFHKIADble0pyKLo54AKtOcW5PLlwqVvE7i/sl2AzgddcULlQt7jG2iqJAFoTU1cyRbYmyA==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.17.0","description":"Enterprise AI Bootstrapping Harness — governed AI-assisted coding for enterprise workstations and repos: TLS trust, repo canon, skill supply chain, evidence","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.23.0","tsup":"^8.5.1","acorn":"^8.17.0","vitest":"^4.1.10","happy-dom":"^20.10.6","fast-check":"^4.8.0","typescript":"^7.0.2","@types/node":"^26.1.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/harness_5.2.1_1786659724573_0.5569865521119588","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"5.3.0":{"name":"@aihq/harness","version":"5.3.0","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@5.3.0","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"0144a969106e433d8b6fb3b35b640a1e4a747857","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-5.3.0.tgz","fileCount":524,"integrity":"sha512-OdzJ//S/IAyH1Mhg5+8G2JUx1u0vPRS1SFWnHNw4H4NkSZcXMHl+sd7IHIj2/GLktbUXr0F367i3ixM7EGmM0g==","signatures":[{"sig":"MEUCIChJwtdToLSmCQG7NfEZW39dWOOfyVdGMhyYD/Y2ahYFAiEAhCQN4c5iecXr2R/sIJmB71YsIPOHx2Nil8THek8/YLg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@5.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9904834},"main":"./dist/index.js","type":"module","_from":"file:aihq-harness-5.3.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json","./schemas/*.json":"./schemas/*.json"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup && tsc -p tsconfig.dts.json","format":"biome format --write src tests","verify":"npm run check:artifacts && npm run check:self-hosting-canon && npm run check:ecc-installer && npm run check:baseline-analyzers && npm run check:native-identity && npm run check:baseline-pins && npm run check:baseline-installable && npm run check:ai-runtime && npm run check:bugbounty-report && npm run docs:lint && npm run typecheck && npm run lint:ci && npm run test:cov && npm run build && npm run check:published-bin && npm run check:published-library","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","docs:lint":"tsx src/internals/check-repo-docs.ts","typecheck":"tsc --noEmit","test:watch":"vitest","baseline:vet":"tsx src/baseline-evidence/generate.ts","baseline:check":"tsx src/baseline-evidence/generate.ts --check","check:artifacts":"tsx src/internals/check-tracked-artifacts.ts","check:ai-runtime":"tsx src/internals/ai-runtime-inventory.ts --root .","release:preflight":"tsx src/internals/release-preflight.ts","check:baseline-pins":"tsx src/internals/check-baseline-pin-currency.ts","check:ecc-installer":"tsx src/internals/check-ecc-installer.ts","check:published-bin":"node dist/cli.js --version && node dist/cli.js --help","check:lock-migration":"tsx src/internals/assert-identity-only-lock-migration.ts","check:native-identity":"tsx src/internals/check-native-identity.ts","check:bugbounty-report":"tsx src/internals/bugbounty-report.ts --source .internal/defects/BUGBOUNTY.md","check:published-library":"node -e \"import('@aihq/harness').then((m)=>{ if (typeof m.runSessionGuardrails !== 'function') throw new Error('missing library export'); })\"","baseline:native-identity":"tsx src/internals/check-native-identity.ts --write","check:baseline-analyzers":"tsx src/internals/check-baseline-analyzers.ts","check:self-hosting-canon":"vitest run tests/self-hosting/self-hosting.test.ts","check:baseline-installable":"tsx src/internals/check-baseline-installable.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-5.3.0.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-OdzJ//S/IAyH1Mhg5+8G2JUx1u0vPRS1SFWnHNw4H4NkSZcXMHl+sd7IHIj2/GLktbUXr0F367i3ixM7EGmM0g==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Enterprise AI Bootstrapping Harness — governed AI-assisted coding for enterprise workstations and repos: TLS trust, repo canon, skill supply chain, evidence","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.23.0","tsup":"^8.5.1","acorn":"^8.17.0","vitest":"^4.1.10","happy-dom":"^20.10.6","fast-check":"^4.8.0","typescript":"^7.0.2","@types/node":"^26.1.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/harness_5.3.0_1786672822169_0.9526403984163418","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"5.4.0":{"name":"@aihq/harness","version":"5.4.0","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@5.4.0","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"046d6300d0a7ed8a21c00697ccd0b66f86bc5a36","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-5.4.0.tgz","fileCount":525,"integrity":"sha512-NNbKe2D66Xjxle27+E+8RIV0gWFf5Wm3Dc5cXdbHGSUQYpIxoPR+7n+/sW2mdql14Vq3acYXG4b5rKL4wN+6iw==","signatures":[{"sig":"MEUCIEZWeu3g5XC+38mVm52wFqq2crsNgkT1hvUd7YaLrn9wAiEA9U++ryTJPbdH94Z7sOz1UxnwyO3ur9voc8zq34NBCf0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@5.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9920416},"main":"./dist/index.js","type":"module","_from":"file:aihq-harness-5.4.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json","./schemas/*.json":"./schemas/*.json"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup && tsc -p tsconfig.dts.json","format":"biome format --write src tests","verify":"npm run check:artifacts && npm run check:self-hosting-canon && npm run check:ecc-installer && npm run check:baseline-analyzers && npm run check:native-identity && npm run check:baseline-pins && npm run check:baseline-installable && npm run check:ai-runtime && npm run check:bugbounty-report && npm run docs:lint && npm run typecheck && npm run lint:ci && npm run test:cov && npm run build && npm run check:published-bin && npm run check:published-library","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","docs:lint":"tsx src/internals/check-repo-docs.ts","typecheck":"tsc --noEmit","test:watch":"vitest","baseline:vet":"tsx src/baseline-evidence/generate.ts","baseline:check":"tsx src/baseline-evidence/generate.ts --check","check:artifacts":"tsx src/internals/check-tracked-artifacts.ts","check:ai-runtime":"tsx src/internals/ai-runtime-inventory.ts --root .","release:preflight":"tsx src/internals/release-preflight.ts","check:baseline-pins":"tsx src/internals/check-baseline-pin-currency.ts","check:ecc-installer":"tsx src/internals/check-ecc-installer.ts","check:published-bin":"node dist/cli.js --version && node dist/cli.js --help","check:lock-migration":"tsx src/internals/assert-identity-only-lock-migration.ts","check:native-identity":"tsx src/internals/check-native-identity.ts","check:bugbounty-report":"tsx src/internals/bugbounty-report.ts --source .internal/defects/BUGBOUNTY.md","check:published-library":"node -e \"import('@aihq/harness').then((m)=>{ if (typeof m.runSessionGuardrails !== 'function') throw new Error('missing library export'); })\"","baseline:native-identity":"tsx src/internals/check-native-identity.ts --write","check:baseline-analyzers":"tsx src/internals/check-baseline-analyzers.ts","check:self-hosting-canon":"vitest run tests/self-hosting/self-hosting.test.ts","check:baseline-installable":"tsx src/internals/check-baseline-installable.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-5.4.0.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-NNbKe2D66Xjxle27+E+8RIV0gWFf5Wm3Dc5cXdbHGSUQYpIxoPR+7n+/sW2mdql14Vq3acYXG4b5rKL4wN+6iw==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.17.0","description":"Enterprise AI Bootstrapping Harness — governed AI-assisted coding for enterprise workstations and repos: TLS trust, repo canon, skill supply chain, evidence","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.23.0","tsup":"^8.5.1","acorn":"^8.17.0","vitest":"^4.1.10","happy-dom":"^20.10.6","fast-check":"^4.8.0","typescript":"^7.0.2","@types/node":"^26.1.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/harness_5.4.0_1786713925328_0.01730737610304467","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"6.0.1":{"name":"@aihq/harness","version":"6.0.1","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@6.0.1","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"d9b6b76b39bf5eac6be09cf2f51e07a4819e87ec","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-6.0.1.tgz","fileCount":525,"integrity":"sha512-UOKBfY2BZTGlr1KPhBgyXVgSCmzVrGueleXnzZYwQ6s6XshXm5ITgsUCgT+Oy5w4yEiR6TIQbSAfU/BF/DhQ4A==","signatures":[{"sig":"MEUCIBBwHHs3bwx5TJ1BywmMZCV7UCpVTqNL2JRjGnYO9//EAiEA1ueaTDy3U8sHTyDkRJ09GffC5fzWLiNkKFjxZnop6nI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@6.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9932651},"main":"./dist/index.js","type":"module","_from":"file:aihq-harness-6.0.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json","./schemas/*.json":"./schemas/*.json"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup && tsc -p tsconfig.dts.json","format":"biome format --write src tests","verify":"npm run check:artifacts && npm run check:self-hosting-canon && npm run check:ecc-installer && npm run check:baseline-analyzers && npm run check:native-identity && npm run check:baseline-pins && npm run check:baseline-installable && npm run check:ai-runtime && npm run check:bugbounty-report && npm run docs:lint && npm run typecheck && npm run lint:ci && npm run test:cov && npm run build && npm run check:published-bin && npm run check:published-library","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","docs:lint":"tsx src/internals/check-repo-docs.ts","typecheck":"tsc --noEmit","test:watch":"vitest","baseline:vet":"tsx src/baseline-evidence/generate.ts","baseline:check":"tsx src/baseline-evidence/generate.ts --check","check:artifacts":"tsx src/internals/check-tracked-artifacts.ts","check:ai-runtime":"tsx src/internals/ai-runtime-inventory.ts --root .","release:preflight":"tsx src/internals/release-preflight.ts","check:baseline-pins":"tsx src/internals/check-baseline-pin-currency.ts","check:ecc-installer":"tsx src/internals/check-ecc-installer.ts","check:published-bin":"node dist/cli.js --version && node dist/cli.js --help","check:lock-migration":"tsx src/internals/assert-identity-only-lock-migration.ts","check:native-identity":"tsx src/internals/check-native-identity.ts","check:bugbounty-report":"tsx src/internals/bugbounty-report.ts --source .internal/defects/BUGBOUNTY.md","check:published-library":"node -e \"import('@aihq/harness').then((m)=>{ if (typeof m.runSessionGuardrails !== 'function') throw new Error('missing library export'); })\"","baseline:native-identity":"tsx src/internals/check-native-identity.ts --write","check:baseline-analyzers":"tsx src/internals/check-baseline-analyzers.ts","check:self-hosting-canon":"vitest run tests/self-hosting/self-hosting.test.ts","check:baseline-installable":"tsx src/internals/check-baseline-installable.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-6.0.1.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-UOKBfY2BZTGlr1KPhBgyXVgSCmzVrGueleXnzZYwQ6s6XshXm5ITgsUCgT+Oy5w4yEiR6TIQbSAfU/BF/DhQ4A==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.17.0","description":"Enterprise AI Bootstrapping Harness — governed AI-assisted coding for enterprise workstations and repos: TLS trust, repo canon, skill supply chain, evidence","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.23.0","tsup":"^8.5.1","acorn":"^8.17.0","vitest":"^4.1.10","happy-dom":"^20.10.6","fast-check":"^4.8.0","typescript":"^7.0.2","@types/node":"^26.1.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/harness_6.0.1_1786758865218_0.15222893912974556","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."},"6.1.0":{"name":"@aihq/harness","version":"6.1.0","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"license":"Apache-2.0","_id":"@aihq/harness@6.1.0","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"homepage":"https://github.com/samartomar/ai-harness#readme","bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"bin":{"aih":"dist/cli.js"},"dist":{"shasum":"ab946ec40d2a7b32f135ed6c5324fdebb6837841","tarball":"https://registry.npmjs.org/@aihq/harness/-/harness-6.1.0.tgz","fileCount":525,"integrity":"sha512-pwbkq3ZnUOwSCm8iKxeCYi/C5fPwD6G2PoZtqtSn3RT6AMvsDw3453w9aCS9zUix9sb/AIo0ak/XE/lcxxh5gg==","signatures":[{"sig":"MEQCIH3cQEFuLZmff1WKssWVDoGJIwP80cJ+fvk98jqGhFr+AiBKlEYcejInGVU37KB3UO3MEmRvzfM8lFEG1zbCS4UsfQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aihq%2fharness@6.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9938635},"main":"./dist/index.js","type":"module","_from":"file:aihq-harness-6.1.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json","./schemas/*.json":"./schemas/*.json"},"scripts":{"dev":"tsx src/cli.ts","lint":"biome check src tests","test":"vitest run","build":"tsup && tsc -p tsconfig.dts.json","format":"biome format --write src tests","verify":"npm run check:artifacts && npm run check:self-hosting-canon && npm run check:ecc-installer && npm run check:baseline-analyzers && npm run check:native-identity && npm run check:baseline-pins && npm run check:baseline-installable && npm run check:ai-runtime && npm run check:bugbounty-report && npm run docs:lint && npm run typecheck && npm run lint:ci && npm run test:cov && npm run build && npm run check:published-bin && npm run check:published-library","lint:ci":"biome ci src tests","lint:fix":"biome check --write src tests","test:cov":"vitest run --coverage","docs:lint":"tsx src/internals/check-repo-docs.ts","typecheck":"tsc --noEmit","test:watch":"vitest","baseline:vet":"tsx src/baseline-evidence/generate.ts","baseline:check":"tsx src/baseline-evidence/generate.ts --check","check:artifacts":"tsx src/internals/check-tracked-artifacts.ts","check:ai-runtime":"tsx src/internals/ai-runtime-inventory.ts --root .","release:preflight":"tsx src/internals/release-preflight.ts","check:baseline-pins":"tsx src/internals/check-baseline-pin-currency.ts","check:ecc-installer":"tsx src/internals/check-ecc-installer.ts","check:published-bin":"node dist/cli.js --version && node dist/cli.js --help","check:lock-migration":"tsx src/internals/assert-identity-only-lock-migration.ts","check:native-identity":"tsx src/internals/check-native-identity.ts","check:bugbounty-report":"tsx src/internals/bugbounty-report.ts --source .internal/defects/BUGBOUNTY.md","check:published-library":"node -e \"import('@aihq/harness').then((m)=>{ if (typeof m.runSessionGuardrails !== 'function') throw new Error('missing library export'); })\"","baseline:native-identity":"tsx src/internals/check-native-identity.ts --write","check:baseline-analyzers":"tsx src/internals/check-baseline-analyzers.ts","check:self-hosting-canon":"vitest run tests/self-hosting/self-hosting.test.ts","check:baseline-installable":"tsx src/internals/check-baseline-installable.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:377e345b-7328-49bc-b2be-65ff302e1c82"}},"_resolved":"/home/runner/work/ai-harness/ai-harness/aihq-harness-6.1.0.tgz","overrides":{"esbuild":"^0.28.1"},"_integrity":"sha512-pwbkq3ZnUOwSCm8iKxeCYi/C5fPwD6G2PoZtqtSn3RT6AMvsDw3453w9aCS9zUix9sb/AIo0ak/XE/lcxxh5gg==","repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"_npmVersion":"11.17.0","description":"Enterprise AI Bootstrapping Harness — governed AI-assisted coding for enterprise workstations and repos: TLS trust, repo canon, skill supply chain, evidence","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","yaml":"2.9.0","commander":"^15.0.0","jsonc-parser":"^3.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","tsx":"^4.23.0","tsup":"^8.5.1","acorn":"^8.17.0","vitest":"^4.1.10","happy-dom":"^20.10.6","fast-check":"^4.8.0","typescript":"^7.0.2","@types/node":"^26.1.1","ajv-formats":"^3.0.1","@biomejs/biome":"^2.5.1","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/harness_6.1.0_1786770976089_0.1262610356416205","host":"s3://npm-registry-packages-npm-production"},"deprecated":"@aihq/harness is frozen and deprecated. Use @aihq/core instead."}},"time":{"created":"2026-07-01T11:13:55.301Z","modified":"2026-08-26T06:39:59.188Z","0.2.0-rc.0":"2026-07-01T11:13:55.599Z","0.2.0":"2026-07-01T13:05:20.524Z","0.3.0":"2026-07-01T21:21:39.496Z","0.3.1":"2026-07-01T22:47:22.840Z","0.4.0":"2026-07-02T01:23:24.223Z","0.4.1":"2026-07-02T02:38:35.319Z","0.5.0":"2026-07-02T05:02:51.645Z","0.6.0":"2026-07-02T14:19:56.762Z","1.0.0":"2026-07-02T17:52:39.337Z","1.0.1":"2026-07-02T18:43:12.737Z","1.2.0":"2026-07-03T09:35:08.743Z","1.3.0":"2026-07-04T04:02:23.840Z","2.0.0":"2026-07-05T20:59:08.361Z","2.1.0":"2026-07-07T03:00:08.169Z","2.4.0":"2026-07-07T14:57:44.651Z","2.4.1":"2026-07-08T20:28:30.473Z","2.4.2":"2026-07-08T22:36:10.643Z","2.4.3":"2026-07-09T05:38:40.095Z","2.5.0":"2026-07-10T02:37:42.856Z","2.5.1":"2026-07-10T06:58:06.767Z","2.6.0":"2026-07-10T07:49:47.637Z","2.7.0":"2026-07-10T12:48:03.498Z","2.8.0":"2026-07-11T03:46:36.714Z","2.9.0":"2026-07-12T09:15:55.989Z","2.10.0":"2026-07-12T20:16:03.078Z","2.11.0":"2026-07-15T13:58:47.005Z","3.0.0":"2026-07-24T00:49:00.400Z","3.1.0":"2026-07-25T09:38:37.173Z","3.2.0":"2026-08-01T08:20:20.464Z","3.3.0":"2026-08-02T01:07:55.657Z","3.4.0":"2026-08-04T17:47:54.617Z","4.0.0":"2026-08-07T23:27:40.332Z","5.0.0":"2026-08-08T18:40:05.995Z","5.1.0":"2026-08-10T22:47:19.695Z","5.2.0":"2026-08-13T19:30:38.236Z","5.2.1":"2026-08-13T22:22:04.799Z","5.3.0":"2026-08-14T02:00:22.415Z","5.4.0":"2026-08-14T13:25:25.591Z","6.0.1":"2026-08-15T01:54:25.474Z","6.1.0":"2026-08-15T05:16:16.316Z"},"bugs":{"url":"https://github.com/samartomar/ai-harness/issues"},"license":"Apache-2.0","homepage":"https://github.com/samartomar/ai-harness#readme","keywords":["ai","harness","bootstrap","devsecops","enterprise","claude-code","mcp"],"repository":{"url":"git+https://github.com/samartomar/ai-harness.git","type":"git"},"description":"Enterprise AI Bootstrapping Harness — governed AI-assisted coding for enterprise workstations and repos: TLS trust, repo canon, skill supply chain, evidence","maintainers":[{"name":"samartomar","email":"samar_tomar@hotmail.com"}],"readme":"# aih — Enterprise AI Bootstrapping Harness\n\n[![CI](https://github.com/samartomar/ai-harness/actions/workflows/ci.yml/badge.svg)](https://github.com/samartomar/ai-harness/actions/workflows/ci.yml)\n[![CodeQL](https://github.com/samartomar/ai-harness/actions/workflows/codeql.yml/badge.svg)](https://github.com/samartomar/ai-harness/actions/workflows/codeql.yml)\n[![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/samartomar/ai-harness/badge)](https://scorecard.dev/viewer/?uri=github.com/samartomar/ai-harness)\n[![codecov](https://codecov.io/gh/samartomar/ai-harness/graph/badge.svg)](https://app.codecov.io/gh/samartomar/ai-harness)\n[![License: Apache-2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE)\n[![Node ≥20](https://img.shields.io/badge/node-%E2%89%A520-339933.svg)](package.json)\n\n<p align=\"center\">\n<img src=\"docs/assets/aih-overview.svg\" alt=\"aih v6.1.0 governed-readiness overview showing Environment, Context, Policy, Execution, and Evidence pillars plus truth verify and the docs-lint claim gate\" width=\"100%\">\n</p>\n\nUse the coding agent that fits your workflow. `aih` is a cross-platform CLI that\nprepares developer workstations and repositories for **reviewable, governed\nAI-assisted coding**, with repository-owned context, supported guardrails,\ngoverned capability workflows, and verification surfaces.\n\nIt supports enterprise environments ranging from\nlocked-down, TLS-intercepted networks to open ones. It extracts corporate trust,\ntunes local inference, adds repo guardrails, wires up MCP / observability /\nsandboxing, and lays down a tool-agnostic context architecture — all from one\ncommand surface. On top of that setup it runs a governance loop for external\nagent skills — vet → approve → pack → marketplace → evidence — anchored in a\ncommitted approval lock (`aih-skills.lock.json`).\n\nSee [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) for the shipped architecture and\ncurrent trust boundaries, and [docs/CONTROL_MATRIX.md](docs/CONTROL_MATRIX.md) for\nthe claim -> implementation -> test proof map.\n\n> **Provided as open-source software under Apache-2.0 on an \"AS IS\" basis.** No warranty,\n> support obligation, SLA, indemnity, consulting, or professional advice is provided. `aih`\n> is dry-run by default — review the plan before running `--apply`. See [DISCLAIMER.md](DISCLAIMER.md).\n\n## The stable command contract\n\nFor the current v6 line, pin `@aihq/harness@^6` unless your organization pins an\nexact release for reproducible rollout. Every command, flag, and deprecated alias is\nsnapshot-tested in CI against a committed fixture, the `--json` envelope is\nschema-pinned, and exit-code semantics are pinned — a surface change fails the build\nuntil it ships as a reviewed contract decision. Renames ship as deprecated aliases\n(the old name keeps working, with a one-line warning) before a major removes them,\nand security fixes land on the latest minor — upgrading is the fix path. The full\npolicy: [STABILITY.md](STABILITY.md).\n\n## Design posture\n\n<p align=\"center\">\n  <img src=\"docs/assets/aih-design-posture.svg\" alt=\"aih design posture summary covering dry-run/apply behavior, explicit output and browser opt-ins, posture gates, local execution boundaries, provenance signing exceptions, backups, rollback, and cross-platform runner behavior\" width=\"100%\">\n</p>\n\n## Install\n\nInstall and verify a published release. Current releases publish npm provenance plus GitHub release\nchecksums and a keyless cosign bundle:\n\n```bash\nnpm install -g @aihq/harness@6.1.0      # then run: aih --help\naih verify-release 6.1.0   # checks npm signatures, GitHub release sums, and cosign evidence for 6.1.0\n```\n\nFull release verification requires local `npm`, `gh`, and `cosign`; proceed only when all three legs\npass. A skipped leg is incomplete evidence, not a successful rollout gate.\n\nPer-version release notes — what changed, and why — live in\n[CHANGELOG.md](https://github.com/samartomar/ai-harness/blob/main/CHANGELOG.md). It ships inside the\nnpm tarball too, so an evaluator can read the version history straight from the unpacked package.\n\n<!-- aih:claim CM-51 -->\nLibrary integrations can import the strict Package Graph v1 TypeScript schema from\n`@aihq/harness` and resolve its structural editor schema at\n`@aihq/harness/schemas/aih-package-graph.schema.json`. Cross-record checks such as\nidentity uniqueness, direct-member resolution, and evidence subject binding belong\nto the TypeScript parser; graph metadata is never approval or evidence by itself.\n\n<!-- aih:claim CM-52 -->\n`buildPackageGraphIndex` retains every authority claim, preserves identical claims,\nand reports divergent definitions without choosing a winner. Its canonical serializer\nvalidates source references, claim and projection digests, and conflict records before\nemitting byte-identical JSON. Source-store digests are caller assertions at this\nlayer; authority adapters are responsible for hashing exact store bytes. The pure\nbuilder performs no I/O and never turns graph metadata into approval or evidence.\n\n<!-- aih:claim CM-53 -->\nThe exported Package Graph authority adapters hash the exact bytes they parse. They\njoin the shipped baseline catalog to its evidence lock, enrich exact ECC\nmaterialization receipts, and project strict GitHub skill locks and pack catalogs\nwithout mutating any source store. Discovery classification keeps exact\nlock/receipt registrations, catalog-only membership, undeclared immutable residue,\ndivergence, and unsupported mutable observations separate. GitLab, Bitbucket,\nAzure DevOps, and GHES adapters are not implemented.\n\n<!-- aih:claim CM-54 -->\nThe exported Strix detector contract is separate from static trust scanning. It\npins the verified Strix v1.5.2 source and immutable sandbox image identities,\npreflights an operator-installed CLI plus an already-present runnable platform\nmanifest, and normalizes bounded headless output into strict PoC-redacted evidence.\nOrg policy can declare local-fixture-only intent with telemetry off and AIH hard\nceilings of $10, 20 turns, and five minutes. `aih evidence build` packages typed\nrecords found under `.aih/security/strix` only after bounded, fatal-UTF-8,\nwhole-document validation. This foundation performs no scan, image pull, install,\nor posture enforcement; publication does not claim AIH executed the detector.\n<details><summary>From source (contributors)</summary>\n\n```bash\nnpm install        # deps\nnpm run build      # → dist/cli.js  (bin: aih)\nnode dist/cli.js --help\n```\n</details>\n\n## Quickstart\n\n```bash\naih doctor              # read-only: is the workstation ready for AI coding?\naih init .              # preview the full repo bootstrap (dry-run — nothing is written)\naih init . --apply      # apply it\n```\n\n## Guides by workflow\n\nUse the command reference for exact CLI behavior; use the guides when you need the\nright workflow for a reader or rollout stage.\n\n![AI-Harness guide map showing reader paths for vibe developers, shared repositories, enterprise admins, enterprise developers, and shared command references](docs/assets/aih-guide-map.svg)\n\n| Reader need | Start here |\n| --- | --- |\n| Pick the right command for a task | [Command Use Cases](guides/command-use-cases.md) |\n| Add, switch, or prune AI CLI surfaces | [CLI Lifecycle](guides/cli-lifecycle-guide.md) |\n| Understand posture behavior and boundaries | [Postures](guides/postures.md) |\n| Individual developer or evaluator | [Vibe Developer](guides/vibe-developer-guide.md) |\n| Shared repository | [Shared Repository](guides/shared-repository-guide.md) |\n| Engineering team applying AI-Harness during application delivery | [Enterprise Application Adoption](guides/enterprise-application-adoption.md) |\n| Governed organization or enterprise rollout | [Enterprise Admin](guides/enterprise-admin-guide.md) |\n| Developer consuming an admin-approved config | [Enterprise Developer](guides/enterprise-developer-guide.md) |\n\n## Command surface\n\nOne honest line per command — the long-form behavior detail for every command lives in\n[docs/commands.md](docs/commands.md), and `aih <command> --help` is authoritative for flags.\nKeep this table as a navigation index: do not add flag-level behavior or workflow recipes here.\n\n### Workstation & runtime\n\n| Command | What it does |\n| --- | --- |\n| [`aih certs`](docs/commands.md#aih-certs) | Extract the corporate root CA from the OS trust store and propagate trust to npm/pip/cargo/conda. |\n| [`aih cleanup`](docs/commands.md#aih-cleanup) | Preview and remove framework-contaminated Claude user-scope surfaces with backup and rollback. |\n| [`aih heal`](docs/commands.md#aih-heal) | Diagnose and repair the broken runtime behind any TLS-intercepting proxy — corporate trust, npm, PATH, MCP pre-flight. |\n| [`aih tools`](docs/commands.md#aih-tools) | Install the agent shell tools the harness leans on (`rg`/`fd`/`jq`, `ast-grep`, `gh`, …) through the platform package manager. |\n| [`aih ready`](docs/commands.md#aih-ready) | Grade a blocker-aware readiness verdict: can a developer start work with an AI agent here, now? |\n| [`aih session-guard`](docs/commands.md#aih-session-guard) | Inspect session/action text offline for secret-like values and dangerous local actions. |\n| [`aih live`](docs/commands.md#aih-live) | Stream bounded progress from one explicitly selected local Codex, Claude, or opt-in non-read-only Kimi invocation. |\n| [`aih hardware`](docs/commands.md#aih-hardware) | Profile CPU/RAM/GPU and emit tuned Ollama/llama.cpp settings. |\n| [`aih vdi`](docs/commands.md#aih-vdi) | Detect VDI (Citrix/WorkSpaces/RES/RDP) and redirect caches + SQLite to local scratch. |\n| [`aih bootstrap`](docs/commands.md#aih-bootstrap) | Orchestrate the workstation 4-phase rollout (certs → hardware/vdi → telemetry). |\n\nFor `aih live`, Codex and Claude use explicit `read_only` modes. The acknowledged Kimi\n`non_read_only` path may use native tools and change the selected worktree; aih performs no\nworktree-safety or dirty-tree preflight for it. Kimi's required prompt argument is never printed by\naih but can be visible to Task Manager, WMIC, and other local process-inspection tools.\n`read_only` describes the pinned core Codex/Claude invocation, not clean-room isolation from every\nlocal extension: Claude skills are disabled, but Claude `--safe-mode` is not used, Codex user\nconfiguration is not wholly ignored, and native instructions/plugins/hooks/MCP configuration may\nstill initialize under the vendor CLI. Aih does not attest those customizations as read-only.\n\n### Repo canon & bootstrap\n\n| Command | What it does |\n| --- | --- |\n| [`aih init`](docs/commands.md#aih-init) | Initialize a repo in one pass: profile + superpowers + bootstrap-ai + scaffold + contract + secrets + guardrails + mcp + sandbox + usage. |\n| [`aih profile`](docs/commands.md#aih-profile) | Detect the repo's stack recursively and synthesize Cursor stack rules (`.cursor/rules/*.mdc`). |\n| [`aih change-profile`](docs/commands.md#aih-change-profile) | Deterministically classify one explicit bounded change-facts JSON file without Git/worktree discovery. |\n| [`aih scaffold`](docs/commands.md#aih-scaffold) | Scaffold repo hygiene — secret deny-list, pre-commit hook, `.gitignore` entries; `--canon legacy` adds the full context-doc family. |\n| [`aih bootstrap-ai`](docs/commands.md#aih-bootstrap-ai) | Emit and verify the repo's Layer-2 canon — `RULE_ROUTER.md`, per-CLI adapters, root bootloaders; `--verify` is the drift gate. |\n| [`aih contract`](docs/commands.md#aih-contract) | Synthesize the machine-readable repo contract (`project.json`) from the detected stack. |\n| [`aih capability`](docs/commands.md#aih-capability) | Resolve repo capability needs; inspect or preview policy-driven packages; explicitly reconcile already-promoted, approved GitHub skill packs. |\n| [`aih adopt`](docs/commands.md#aih-adopt) | Converge an existing AI canon onto aih's managed model without overwriting your work (brownfield migration). |\n| [`aih prune`](docs/commands.md#aih-prune) | Remove stale per-CLI artifacts and reconcile orphaned aih-managed ECC components from the machine registration ledger. <!-- aih:claim CM-22 --> |\n| [`aih uninstall`](docs/commands.md#aih-uninstall) | Remove the marker-backed core aih install footprint from a repo; `aih clean` is an alias. |\n| [`aih ecc`](docs/commands.md#aih-ecc) | Register the additive ECC union, manage the reviewed Claude/Codex projection with `--lifecycle`, or explicitly add/remove policy-approved ECC HTTPS MCP entries for one selected native client with `aih ecc mcp add/remove`. In a governed repository, `--lifecycle install` materializes the org policy's evidence-passed selection for the targets `--cli` selects, including the separately evidence-bound Kiro skill/steering projection; removal lives in `aih uninstall`. <!-- aih:claim CM-21 --> <!-- aih:claim CM-45 --> <!-- aih:claim CM-50 --> <!-- aih:claim CM-55 --> |\n| [`aih superpowers`](docs/commands.md#aih-superpowers) | Verify exact-pinned Superpowers components and emit evidence-bound target guidance. |\n| [`aih crispy`](docs/commands.md#aih-crispy) | Run the CRISPY context-engineering stage machine (deterministic, gate-ordered). |\n| [`aih workspace`](docs/commands.md#aih-workspace) | Scaffold and restore a multi-repo workspace at the parent folder: cross-repo map, declared-repo graph MCP, snapshots, hydrate. |\n\n### Skill governance & supply chain\n\n| Command | What it does |\n| --- | --- |\n| [`aih trust`](docs/commands.md#aih-trust) | Vet, pin, and gate external GitHub repos and skills before an agent acquires them. |\n| [`aih skill`](docs/commands.md#aih-skill) | Govern the skill lifecycle — vet → approve → inventory → quarantine → remove — anchored in `aih-skills.lock.json`. |\n| [`aih pack`](docs/commands.md#aih-pack) | Curate committed sets of approved skills (`aih-packs.json`); every ref is cross-checked against the lock, fail-closed. |\n| [`aih marketplace`](docs/commands.md#aih-marketplace) | Build, validate, and publish a reproducible, verifiable distribution artifact for hostable approved skills — never a registry. |\n| [`aih policy`](docs/commands.md#aih-policy) | Generate a portable Policy Workbench for authoring the org policy, evaluate requested governed candidates before projection, validate policy shape, or verify the policy against a pinned hash/bundle. |\n| [`aih evidence`](docs/commands.md#aih-evidence) | Vet exact-pinned baseline components and package local audit artifacts into deterministic signed evidence bundles. |\n| [`aih truth`](docs/commands.md#aih-truth) | Create and verify an external project-truth sidecar; commit, version, claim, decision, acceptance-preflight, and agent-evidence assertions fail closed before a pack helps govern evidence. <!-- aih:claim CM-13 --> |\n| [`aih bundle`](docs/commands.md#aih-bundle) | Build a deterministic fleet bundle with checksums; `aih verify-bundle --require-signature` turns missing/unverifiable signatures into failures. |\n| [`aih verify-bundle`](docs/commands.md#aih-verify-bundle) | Re-check a fleet or evidence bundle's checksums and signature/provenance evidence. |\n| [`aih verify-release`](docs/commands.md#aih-verify-release) | Verify a published aih release: npm signatures, GitHub release cosign bundle, and tarball hash. |\n| [`aih secrets`](docs/commands.md#aih-secrets) | Scan for plaintext secret paths and hardcoded MCP config credentials without emitting values; `--verify` is warning-only at `vibe` and non-zero at `enterprise`. <!-- aih:claim CM-16 --> |\n| [`aih guardrails`](docs/commands.md#aih-guardrails) | Generate local gitleaks/pre-commit policy files and a CI license/secret workflow; enforcement requires installing tools and wiring Git hooks or required CI checks. <!-- aih:claim CM-17 --> |\n\n### Enterprise packs, skill governance, and safety\n\n<p align=\"center\">\n  <img src=\"docs/assets/aih-enterprise-packs.svg\" alt=\"aih enterprise packs, skill governance, and safety summary covering committed pack curation, approval locks, fail-closed install gates, first-party docs-quality scaffolding, GREEN or reviewed YELLOW verdict scope, and re-validation triggers\" width=\"100%\">\n</p>\n\n### Trust configuration notes\n\n`trust.internalScopes` is intentionally inert until an org configures internal package scopes in\npolicy. Without that scope list, dependency-confusion checks still report general package risk but do\nnot guess which names are private to your organization.\n\n### Baseline component evidence\n\n`aih ecc` and `aih superpowers` acquire only exact Git commits into quarantine. Selected component\npaths must match the vendor lock shipped in the npm release or an attributable GitHub-attested org\nbundle. Covered user seats verify hashes and signatures; they do not rerun the release analyzers.\nMissing/mismatched coverage warns without an authorization receipt at `vibe` and denies at\n`enterprise`. A signed `blocked` verdict denies at every posture and cannot be waived by org\nevidence for the same bytes. See [Baseline Component Evidence](docs/security/baseline-evidence.md)\nfor the vet/sign/policy flow. <!-- aih:claim CM-20 -->\n\n### Analytics & operations\n\n| Command | What it does |\n| --- | --- |\n| [`aih report`](docs/commands.md#aih-report) | Render the read-only analytics digest — context footprint, adoption, trends; `--v9`/`--open` build the offline HTML dashboard. |\n| [`aih track`](docs/commands.md#aih-track) | Record one metrics sample (commits, LOC delta, adoption) to `.aih/history.jsonl` — the time-series behind `aih report` trends. |\n| [`aih usage`](docs/commands.md#aih-usage) | Install the multi-tool usage-capture layer → `.aih/usage.jsonl` — local activity counts only, no cost, no prompts. |\n| [`aih telemetry`](docs/commands.md#aih-telemetry) | Inject OpenTelemetry env, a redacting Bindplane collector, and an analytics fetcher. |\n| [`aih mcp`](docs/commands.md#aih-mcp) | Generate MCP config for targeted CLIs; a bare first run stays on Claude, while `--detect` explicitly selects runnable tools. Use `--mcp-compliant` to omit denied generated servers from targeted configs. <!-- aih:claim CM-18 --> |\n| [`aih sandbox`](docs/commands.md#aih-sandbox) | Generate a devcontainer + managed sandbox settings (egress allowlist, `failIfUnavailable`). |\n\n### Verification\n\n| Command | What it does |\n| --- | --- |\n| [`aih docs-lint`](docs/commands.md#aih-docs-lint) | Run the read-only BetterDoc prose check and claim-ledger gate over public Markdown; hard claim orphans fail closed, while prose guidance is advisory. <!-- aih:claim CM-12 --> |\n| [`aih doctor`](docs/commands.md#aih-doctor) | Verify the workstation/repo configuration fail-closed; workspace mode validates each child repo, and Enterprise posture attests declared capability surfaces. |\n| [`aih status`](docs/commands.md#aih-status) | Show a read-only inventory of what the harness has configured. |\n\nShared flags: `--apply`, `--force`, `--verify`, `--json`, `--posture <vibe|enterprise>`, `--support-out <dir>`, `--no-log`, `--context-dir <dir>`, `--root <dir>`, `--cli <list>`, `--all-tools`, `--detect`, `--yes` (read-only commands take the relevant subset).\nSettings also read from `AIH_*` env vars (`AIH_APPLY`, `AIH_CONTEXT_DIR`, `AIH_LOG`, …).\n\n### Plugins\n\nAt startup `aih` probes for exactly one optional peer package: **`@aihq/enterprise`** — the literal\nname, never env- or config-selectable, so nothing can point the probe at other code. The package name\nis a reserved extension point; the open-source harness does not require it to be published. When installed,\nit contributes additive enterprise command capabilities through its `aihCommands` export\n(`CommandSpec[]`) as defined in the\n[enterprise extension point spec](docs/product/enterprise-extension-point.md). Those commands register\nas native subcommands through the identical path as the built-ins: shared flags, posture resolution,\nthe dirty-worktree gate, and the run ledger all apply unchanged. Not installed → zero output, fully\nlocal. `AIH_NO_PLUGINS=1` disables the\nprobe. A plugin that fails to load, exports the wrong shape, or ships an invalid spec degrades to\nlocal-only with a one-line `aih: plugin:` warning on stderr — and a plugin command can never shadow\na built-in (built-ins always win). Installing the plugin package **is** the trust decision:\nimporting it runs its code, exactly like any other dependency you install.\n\nThe probe is hardened at its seams. The package must resolve from **the install tree `aih` itself\nruns from** (the `node_modules` chain above the aih binary), so a global or `npx`-run `aih` pointed\nat an untrusted repo never imports a `node_modules/@aihq/enterprise` planted inside that repo.\nHonesty note: when aih is installed *inside* the target repo, the repo already controls the binary\nitself — the boundary is exactly \"the tree aih runs from\", nothing stronger. The import also races\na 2-second startup budget (timeout → local-only with a warning), and `aih --version` skips the\nprobe entirely. Plugin specs cannot claim shared or reserved flags (`--apply`, `--json`, `--help`,\n…), cannot take the names `help`/`version`, and alias fields plus any `skipWorktreeGate` field are\nstripped — aliases are core-owned and the dirty-worktree preflight always applies to plugin commands.\n\n### Dashboard\n\n`aih report --open` builds a **self-contained, offline** HTML dashboard (dark by default with a\nlight toggle; fonts embedded) — context footprint + a KPI strip, an adoption ring, output-velocity\nand code-quality panels, and trend sparklines from recorded history (`aih track`). Add `--v9` for\nthe newer developer-console dashboard: every panel is explicitly LIVE, PREVIEW, or EMPTY, so demo\ndata never reads as real. When the report derives findings (see [Support tickets](#support-tickets)),\na **Suggested actions** section leads with copy-to-clipboard tickets. Add `--demo` for showcase data,\nor `--refresh <sec>` to keep it live.\n\n![aih report --v9 developer-console dashboard rendered with demo showcase data and local diagnostics, showing the harness-wiring score, ranked fix actions, and the remediation ledger](docs/assets/aih-report-v9.png)\n\n*The `--v9` developer console with `--demo` showcase data: harness-wiring score, ranked\nfix actions, and the remediation ledger. This image uses demo/local data, not customer\ntelemetry. `aih report --demo --v9` opens the same dashboard locally.*\n\n### Targeting CLIs\n\n`aih ecc`, `aih superpowers`, and `aih bootstrap-ai` only touch the agent CLIs you actually use.\nPass `--cli` with a comma-separated list, `--all-tools` for every supported CLI, or `--detect` to\nauto-target the CLIs found on this machine; the default is `claude`. Supported:\n`claude, codex, cursor, antigravity, gemini, copilot, windsurf, opencode, zed, kimi, kiro`.\nAt Enterprise posture, an org policy must declare a non-empty `governance.supportedClis` allow-list. Its absence fails closed and names the current registry ids so an administrator can deliberately paste the full list; wildcard sentinels are not supported. At Vibe posture, absence is unrestricted. A present list at either posture is an organization sanction gate: selected, detected, or marker-derived CLI targets outside it are refused by name before later capability checks, materialization, or projection.\n\n```bash\naih bootstrap-ai --cli claude       # writes CLAUDE.md (the default target, auto-loaded)\n# repeatable declarations add to detection and the prior machine union\naih ecc --cli claude,codex --with framework:react --with lang:typescript\naih superpowers --cli antigravity   # verify exact pin; guidance only (no mutable plugin exec)\naih bootstrap-ai --cli kiro --kiro-hook-runtime ide1-cli3  # Kiro IDE1/CLI3 hooks opt-in\naih bootstrap-ai --detect           # target only the CLIs installed here\naih init . --all-tools              # bootstrap a repo for every CLI at once\n```\n\nEach CLI gets its native entry: **Claude → `CLAUDE.md`** (the default target, auto-loaded),\nCodex/OpenCode/Zed/Kimi/Antigravity → `AGENTS.md`, Gemini → `GEMINI.md`, Cursor →\n`.cursor/rules/*.mdc`, Windsurf → `.windsurfrules`, Copilot → `.github/copilot-instructions.md`,\nKiro → `.kiro/steering/00-canon.md` (`inclusion: always`, with a `#[[file:…/RULE_ROUTER.md]]`\nlive-reference). For a tool aih doesn't target yet, `<context-dir>/adapters/other-tools.md`\ndocuments how to point it at `RULE_ROUTER.md`.\n\n**Per-tool depth (Kiro example).** Claude reuses your `~/.claude` baseline, so its entry is just\n`CLAUDE.md`. Tools that can't read `~/.claude` get fuller native content instead — Kiro is the\ndeepest case (schemas verified against [Kiro's docs](https://kiro.dev/docs/steering/) and ECC's\nreal `.kiro/` tree):\n\n- `aih bootstrap-ai --cli kiro` → `.kiro/steering/agent-tools.md` (stack-aware CLI usage).\n  Add `--kiro-hook-runtime ide1-cli3` to project standalone v1 `.kiro/hooks/*.json` hooks for\n  secret scan, tests-on-edit, and metrics-on-stop; the explicit capability is persisted for doctor.\n  Those hook files load in Kiro IDE 1.x and Kiro CLI 3.x. Kiro CLI 2.x keeps hooks inside each\n  custom-agent definition, so AIH does not mutate an arbitrary agent or claim hook coverage there.\n  A pre-existing reserved hook filename is never overwritten, and prune/uninstall leave current or\n  legacy hook names advisory because a filename alone cannot prove AIH ownership.\n- `aih bootstrap-ai --detect` recognizes the documented `kiro-cli` executable. The public target\n  remains `kiro`; bare `kiro` is not treated as proof of the CLI because it can be an IDE/CLI router.\n- `aih adopt --migrate-cli` inventories Kiro steering, hooks, custom-agent definitions, skills,\n  prompts, settings, and specs. Every `.kiro/agents/**` definition, including Markdown, remains\n  operator-owned runtime configuration; steering, skills, prompts, and specs can move into the canon.\n- `aih policy project` can distribute reviewed stdio MCP selections to\n  `.kiro/settings/mcp.json` under receipt ownership of exact server names. It preserves unrelated\n  workspace configuration and never calls that managed enforcement: custom agents may override or\n  opt out of workspace MCP inheritance.\n- `aih ecc --cli kiro` → emits scoped consult guidance; Kiro's native installer cannot yet\n  materialize the component union safely, so aih does not run it.\n- In a governed repository, `aih ecc --lifecycle install --cli kiro` is a separate AIH-owned\n  path: it projects only evidence-passed selected agents with an exact pinned Kiro mapping, skills,\n  and steering from the exact pinned source, under dual selected/runtime evidence and receipt\n  ownership. A mapped agent lands as its exact selected `.kiro/agents/<name>.md` IDE representation\n  and curated `.kiro/agents/<name>.json` CLI configuration; an unmapped agent is reported by name,\n  while a pre-existing same-name Markdown/JSON definition, including a\n  case-folded spelling on a case-sensitive filesystem, is refused rather than overwritten. It does\n  not run or adopt the native installer or project hooks/settings/scripts.\n- `aih superpowers --cli kiro` → `.kiro/steering/superpowers-methodology.md` (the\n  brainstorm → plan → TDD → review routing, since Kiro can't load `~/.claude/superpowers`).\n\n<!-- aih:claim CM-58 -->\n\n**Detection** (`--detect`) targets runnable CLI binaries on PATH — and it is the *only* thing that\ndoes. Nothing on your machine changes what a bare run targets: runnable binaries need `--detect`,\nand config dirs (`~/.claude`, `~/.codex`, `~/.gemini`, `~/.cursor`, `~/.kiro`, …) are reported as\nconfig-only traces that are advisory, may be stale, and never drive setup unless you type the CLI\nwith `--cli` or `--all-tools`. Precedence: `--all-tools` > `--cli` > `--detect` > committed marker >\ndefault `claude`. When `--detect` finds no runnable CLI it defaults to `claude` and says so; a bare\nrun that defaults to `claude` while the repo already has other bootloaders (`AGENTS.md`, …) says\nthat too, naming the files it will not regenerate or drift-check. **In an interactive terminal,\n`--detect` shows the runnable list and any config-only traces\nbefore asking you to confirm or edit it** (press Enter to accept, or type a comma-separated list to\nadd/remove tools) before anything installs — pass `--yes` (or run non-interactively / piped /\n`--json`) to skip the prompt and use the runnable list as-is. `aih doctor` reports runnable vs\nconfig-only CLIs, and `aih bootstrap-ai --verify` adds a per-CLI **\"installed\"** confirm step (pass =\nrunnable binary on PATH, skip = config-only/not here yet, bootloader still written) alongside the\ndrift gate.\n\n**Canon directory name.** Every generated file and reference adopts `--context-dir <name>` — use any\nname you like; the default is the visible `ai-coding/`:\n\n```bash\naih init                          # → ai-coding/   (default, visible)\naih init --context-dir my-canon   # → my-canon/    (any name; everything adapts)\naih init --context-dir .ai-context  # → hidden, the old default\n```\n\nECC install actions execute under `--apply` only after exact component evidence clears and the same\nquarantined tree re-hashes. By default, `aih ecc` materializes the additive union of its common\nbaseline, detected or repeatably declared project riders, posture-selected security, and validated\nMCPs; `--profile full` is the explicit full-surface opt-in. Evidence verdicts apply per component:\nauthorized components install, while held components are quarantined and reported with their exact\ncodes and reasons. No install process starts unless ECC's installer runtime is also authorized.\nThe project contribution keeps the requested intent, while each target record contains only the\nsurface actually installed. The primary project/target contribution ledger lives at\n`~/.aih/ecc/registration-ledger.json` and commits only after every install step succeeds. A bare\n`aih prune` also checks that ledger: missing project roots are retired, the live\ncomponent/MCP union is recomputed, and only state-recorded aih-managed operations no longer shared\nby a live project are removed. Dry-run reports the diff without mutation; `--apply` hash-binds all\ninputs, rolls back partial failure, and replaces target state before committing the ledger last.\nSuperpowers marketplace/TUI paths cannot bind installed bytes to that\ntree, so aih executes none of them; it emits pin-aware guidance and says those marketplace selections\nare not evidence-covered. ECC and Superpowers are complementary — ECC supplies stack-aware rules,\nagents, and memory; Superpowers supplies the disciplined agent loop that uses them.\nFor Codex, installed ECC skills are consumed on demand by name, such as `$configure-ecc`, from the\nliteral Codex skills path (`~/.codex/skills/<name>/SKILL.md`); they are not an ambient auto-loaded\n`.agents/skills/` surface. `aih ecc --cli codex` still installs the selected ECC Codex\nskills/agents from ECC's manifest, but uses add-only Codex TOML merge helpers and a fenced AGENTS\nmerge rather than the upstream `ecc-install --target codex` copy mode for shared `~/.codex` files.\nIts scoped MCP block contains pinned `sequential-thinking` plus GitHub at enterprise (and\nrepo-declared local graph/memory servers); Context7 and Exa are never defaults.\n\nFor ECC's separate external MCP catalog, `governance.eccMcpApprovals` is only a seat approval record.\nAn operator still performs an explicit Add when a project needs one approved HTTPS entry:\n`aih ecc mcp add memxus --cli claude --apply`. That path writes project-local JSON client configs for\nClaude, Cursor, Copilot, Kimi, and Kiro; guarded global JSON configs for Antigravity, Gemini, Windsurf,\nOpenCode, and Zed; and guarded Codex TOML. It records ownership under `.aih/`, removes only unchanged\nreceipt-owned entries with `aih ecc mcp remove <id> --cli <client> --apply`, and doctor reports local\nreceipt/config ownership state. It does not contact the endpoint, scan the remote tool list, or install all\napproved entries.\n\nThe portable Policy Workbench uses a flat Ledger paper-and-ink identity in light and dark themes. Its left rail remains the canonical selection surface, including on compact screens; the inspector is mutation-free, narrates the selected-to-materialized journey, and offers one routed next action. Curation and custom-source forms live in a separate authoring sidebar. The separate Add MCP sidebar records the exact `governance.eccMcpApprovals` decision; it does not choose a client or configure one. For an entry marked HTTPS-configurable, the seat operator still selects one client explicitly with the command above; manual entries remain approval-only until a supported lifecycle exists.\n\nThe Workbench also authors source-locked ECC hook controls: Minimal, Standard, or Strict profile selection and eligible per-hook disables. Policy projection records those choices only as receipt-owned `ECC_HOOK_PROFILE` and `ECC_DISABLED_HOOKS` keys in Claude `settings.json.env`; it never rewrites ECC launchers. ECC executes and enforces the selection after process spawn, so disabling a hook does not erase its spawn cost.\n\n### Layered AI canon (`bootstrap-ai`)\n\nThe harness models the same two-layer setup used in the reference repos (eicp / ai-os / syntegris):\n\n- **Layer 1 — user baseline:** `--baseline ecc` — the default and sole selectable baseline\n  (ECC + Superpowers installed per CLI by `aih ecc` / `aih superpowers`).\n- **Layer 2 — repo canon:** the committed `ai-coding/` (or `--context-dir`) tree — `RULE_ROUTER.md`\n  (stack-aware routing entry point), the contract files `project.json`, `project.md`, and `setup.md`,\n  `adapters/<cli>.md` (per-tool wiring notes), and the root **bootloaders** (`CLAUDE.md`, `AGENTS.md`,\n  `GEMINI.md`, Cursor/Windsurf/Copilot). `REGENERATION.md` is emitted only for `--canon legacy`.\n\n`aih bootstrap-ai` generates and verifies Layer 2. Each bootloader is hand-editable tool-specific\ncontent **plus one marker-delimited shared block** that `bootstrap-ai` regenerates idempotently —\nyour edits outside the markers survive (merged in, with an `.aih.bak` backup). `aih bootstrap-ai --verify`\nis the **drift gate**: it fails if the router is missing or a bootloader's block has been hand-edited\naway from the canonical source — wire it into CI to keep every tool's entry point in sync.\n\n```bash\naih bootstrap-ai --all-tools --apply   # lay down RULE_ROUTER + adapters + bootloaders for every CLI\naih bootstrap-ai --verify              # CI drift gate (no writes; exit 1 on drift)\n```\n\nPrecedence: **Layer 2 wins** on conflict — repo canon overrides the generic baseline. Run\n`aih contract` to refresh the contract files the compact router points at.\n\n### Multi-repo workspaces\n\nMost orgs split a product across **separate repos** (a UI repo and a backend repo in one git org). An\nagent editing the UI then has no view into the backend — no cross-repo blast radius. `aih workspace`\nis a federated bridge, not a monorepo replacement: the child repo owns truth, and the parent workspace\nowns routing, contract edges, snapshots, MCP wiring, and report rollups. It bridges that gap from the\n**parent folder** that holds the repos:\n\n```bash\naih workspace ./my-org --repos ui,backend --apply\n```\n\nIt writes, at the parent (it does **not** touch the child repos — run `aih init` in each):\n\n- `<context-dir>/cross-repo-architecture.md` — per-repo responsibilities + a **cross-repo feature map**\n  (UI column · backend column · the contract). **Write-once** — aih seeds it from your repo list, then\n  you own it; re-running never overwrites it.\n- `<context-dir>/repo-discipline.md` — load a repo's own canon before editing it.\n- Targeted CLI bootloaders — `CLAUDE.md` by default; `--cli`/`--all-tools` can add\n  `AGENTS.md`, `GEMINI.md`, `.kiro/steering/00-canon.md`, and other tool-native entries.\n- `<name>.code-workspace` — opens every repo in one VS Code window.\n- `.mcp.json` — one **code-review graph MCP** per present declared child repo, using absolute\n  root-anchored child paths so MCP clients work from any launch directory.\n- `.aih-workspace.json` — marker that puts `aih doctor` into **workspace mode** (validates each child\n  repo is scaffolded); object-form repos can retain optional `remote`/`ref` source metadata.\n- Child repos are an explicit allowlist: use `--repos` or an existing `.aih-workspace.json`. If child\n  Git repos are present without an allowlist, `aih workspace` reports candidates but does not add them\n  to `.aih-workspace.json` or workspace MCP scope.\n- `aih workspace snapshot --lock --apply` writes the recorded child remote into\n  `<context-dir>/workspace-lock.json` when present, so a lock captures both the commit and fetch\n  location. A manifest-declared `remote` takes precedence; otherwise snapshot collection reads only\n  child-local `origin` config and never fetches.\n- `aih workspace hydrate --apply` restores a declared workspace from `.aih-workspace.json` plus the\n  committed workspace lock: missing children are cloned from recorded remotes, present clean children\n  are checked out to the recorded ref, and children with no recorded remote are skipped with a note.\n  Until a declared child exists, `aih workspace --apply` skips that child's graph MCP scope and emits\n  a hydrate note instead of wiring an empty path.\n- `aih workspace graph` projects the **declared** contract edges into a queryable cross-repo graph:\n  `--repo`/`--from`/`--to`/`--kind` answer \"what depends on what\" from `.aih-workspace.json` alone,\n  and `--apply` writes the projection to `.aih/workspace-graph.json`. Declared topology is the source\n  of truth — the per-repo graph MCP servers are optional enrichment, never required.\n\n### Support tickets\n\nAny verifying command (`aih doctor`, `aih heal`, `aih secrets --verify`, …) turns a failed or skipped\ncheck that carries a `Check.code` into a ticket-ready support template — three registers keyed off who\nfixes the issue, and external tickets are tool-neutral by contract (they never name aih). Labels print\nby default; `--support-out <dir>` writes full tickets, `--json` carries them. Registers, redaction, and\nthe `SETUP.md` context markers: [docs/commands.md](docs/commands.md#support-tickets).\n\n### Run ledger\n\nEvery `aih` invocation appends one structured row to **`.aih/runs/YYYY-MM.jsonl`** (UTC, month-sharded,\nappend-only) — a \"what happened\" diagnostics trail: schema version, run id, capability, redacted argv,\nstatus (`success` / `failed` / `partial` / `error`), exit code, mode (apply/verify/json/sarif), platform,\nhost hash, repo remote hash, write tally, and verification + support counts. It's distinct from\n`.aih/history.jsonl` (the per-commit metrics behind `aih report` trends). Logging is **on only after the\nrepo is initialised** (a committed `.aih-config.json` marker exists) and never fails a command; opt out\nwith **`--no-log`** or **`AIH_LOG=0`**. Like all of `.aih/`, the ledger is gitignored local diagnostics\n— never committed. `aih evidence build` packages it into a checksummed bundle; use\n`aih evidence build --sign <signer> --require-signature` when the bundle crosses a\nsharing boundary that requires tamper evidence.\n\n### Examples\n\n```bash\naih doctor --json                 # what's configured? (read-only)\naih init . --apply                # bootstrap the current repo\naih certs --ca-pattern Zscaler --apply --verify\naih hardware                      # preview the tuned inference env block\nAIH_CONTEXT_DIR=ai-coding aih scaffold --apply\naih doctor --support-out .aih/tickets   # write IT/support tickets for failing checks (kept local)\naih report --v9 --apply --out .aih/reports/local-v9.html\naih usage --apply --cli claude,codex,gemini\naih usage --rollup ../repo-a,../repo-b\n```\n\n## Releases & roadmap\n\n- **Roadmap** — [ROADMAP.md](ROADMAP.md), tracked as\n  [GitHub Milestones](https://github.com/samartomar/ai-harness/milestones).\n- **Changelog** — [CHANGELOG.md](CHANGELOG.md); tagged builds on\n  [Releases](https://github.com/samartomar/ai-harness/releases).\n- **Versioning & support** — [VERSIONING.md](VERSIONING.md). SemVer; security fixes\n  land on the **latest minor** — upgrade to the latest release line to stay fixed.\n- **Supply chain** — the current release workflow publishes via npm **Trusted Publishing** with build\n  **provenance** and ships an **SPDX SBOM**, a **SHA256 checksum**, its keyless **cosign\n  signature bundle** (`SHA256SUMS.txt.sigstore.json`), and the Sigstore **build-provenance\n  bundle** on the GitHub Release. Releases from `v0.6.0` onward include the sigstore/provenance\n  assets; earlier historical tags have a narrower asset set. Tagged release artifacts claim\n  [SLSA Build L2](docs/security/release-slsa.md) under SLSA v1.2; no Build L3 claim is\n  made. Verify a published release with `aih verify-release [version]`; a skipped verification leg\n  is incomplete evidence. Consumers with provenance-aware policy can also use `gh attestation verify`.\n- **Support** — [SUPPORT.md](SUPPORT.md) · **Security** — [SECURITY.md](SECURITY.md)\n  (private reporting) · **Contributing** — [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## Development\n\n```bash\nnpm test          # vitest\nnpm run typecheck # tsc --noEmit\nnpm run lint      # biome\nnpm run build     # tsup → dist/\n```\n\nStack: TypeScript (ESM) · commander · zod · vitest · biome · tsup. Coverage floors\nare enforced in [vitest.config.ts](vitest.config.ts) — set just below the achieved\nlevels so coverage only ratchets up; CI and releases fail on regression. See\n[CONTRIBUTING.md](CONTRIBUTING.md) for the contributor workflow.\n\n### Stability\n\nThe tests behind [the stable command contract](#the-stable-command-contract) live in\n[tests/contract/](tests/contract/): every command and option is snapshotted against a\ncommitted fixture ([command-surface.json](tests/contract/command-surface.json)), the\n`--json` envelope is schema-pinned, and exit-code semantics are pinned. Additive changes\nregenerate the fixture in the same PR (label it `contract:additive`); removals or renames\nof anything pinned are breaking and ship in majors only, per [STABILITY.md](STABILITY.md).\n\n## License\n\n[Apache-2.0](LICENSE).\n","readmeFilename":"README.md"}