{"_id":"@fusengine/harness","_rev":"99-a24ac55fd4c086ae7ca3cd4b56836d1c","name":"@fusengine/harness","dist-tags":{"latest":"0.1.100"},"versions":{"0.1.0":{"name":"@fusengine/harness","version":"0.1.0","license":"MIT","_id":"@fusengine/harness@0.1.0","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"dist":{"shasum":"0bf466225ecbeea38a8a9eff1124e2cbe37816e7","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.0.tgz","fileCount":37,"integrity":"sha512-ON33vlNbiQragWbM0r9hSQ0eVYlmAL2OiBqvlC9G/Hw+SQ21jyn8kzFItvBSRE+fXTk3mgSKztMW+9IJD2WZSQ==","signatures":[{"sig":"MEUCIHQ7ijMoUeUE0fJy3hszoW1TU+KEuLxtke0tadpykRh8AiEAtTjEEX6EgX2O3uQkEJbnS+uAUOkjN8VGLF4v6jCf7fc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":74244},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"}},"gitHead":"8c5cb4b98e588f61bf53045992bf3ded929ef792","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/adapters/claude/index.ts --dts --format esm --clean --out-dir dist","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.0_1782157848764_0.6991056765216279","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@fusengine/harness","version":"0.1.1","license":"MIT","_id":"@fusengine/harness@0.1.1","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"bin":{"harness-check":"dist/cli/bin.mjs"},"dist":{"shasum":"ed03c8728d4eb389dab90ca222cfc7c85a5f9931","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.1.tgz","fileCount":48,"integrity":"sha512-aBVlQPYQlQiOziaf7Mr5hI8L2tHlyyTxZzgKo3vYrafQfp1bEj7nZ0cxwaqX5CVn6MBe0Lpxa6VeVrXntuX3EQ==","signatures":[{"sig":"MEUCIF565148B662XTN4HG4zknTkKS4tKFW2HSoxrPmkK3HhAiEA2/oRvXiX2ubgyimG7wJK0tKv7RAtmtq/NsOqy8UbgBg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83025},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"6561e021513fd03a757a48aaf886823cc8a1e172","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/adapters/claude/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.1_1782158489304_0.9284417625211647","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@fusengine/harness","version":"0.1.2","license":"MIT","_id":"@fusengine/harness@0.1.2","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"3315f165cae8d59de719d546d6abef98ca8d4ea8","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.2.tgz","fileCount":82,"integrity":"sha512-D1ThR8ArNW2Spb4jq53w7EQGjKTLaP+a8aBSFTgEJCOJ2kLb7icO/dH1o0Fjci4zP2ehmRqcZwNp5H9xokzoJQ==","signatures":[{"sig":"MEYCIQCNBdt7HkWTIK+EY6SJGP2HpAUrTgGR4GY7tjfB42g1vQIhAJt3hHyG8BLD9J+sa0H1A+BZ9yior8R7ueLMFW85yGog","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":99164},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"4b8800614f12505c1cc59486d7dd0c1009ec54e2","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.2_1782159186339_0.0764924224970529","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@fusengine/harness","version":"0.1.3","license":"MIT","_id":"@fusengine/harness@0.1.3","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"7a9383a557e71e2207b441edb9b5ab7937e14bda","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.3.tgz","fileCount":85,"integrity":"sha512-Y+b2RzEdbF8IXjhGPr5XlVnwh6NNhHs6ORR2Tad63LZsjCeL3MiVoaclb2aKG8XVHDGaWC+AMw3se3JuxmP0/w==","signatures":[{"sig":"MEYCIQCoQ8VVuc8QwIgBdcSVK+U6PIm0MViJ4CmHyCNwkgd4BgIhAKZcmE1emb14CYQ1rYIHuKPb3VuWDg9pNRIJNB6DztyA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":103212},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"283f441854b06f955f38877435ae0270ee2c612e","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.3_1782159450350_0.002026314206729607","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@fusengine/harness","version":"0.1.4","license":"MIT","_id":"@fusengine/harness@0.1.4","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"6fbedddae6d0a96c31abdd1331e58a8485aa2996","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.4.tgz","fileCount":87,"integrity":"sha512-J82HPvHrofDjnh0Ds3p2g+TGc4Nfa9Wv791o4oNLx/dUoE3bYCIs45Vri76sb7tuhyubv1dnOh97e+2lItj0Ag==","signatures":[{"sig":"MEUCIFlb8Hy6g52XYG7kR2Su8n9eegZRi7YcV6rkdTynW6iKAiEAqtx7yRympLEPsGldq9UiYWQorZwwTSEDPZ5/kbTPHh4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":107701},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"a4bd9cc46fb6e7fa8f1638c09a399b02462c0c45","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.4_1782160226313_0.6661255890326452","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@fusengine/harness","version":"0.1.5","license":"MIT","_id":"@fusengine/harness@0.1.5","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"2dfcb2748326353898587027e9085e369039372b","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.5.tgz","fileCount":91,"integrity":"sha512-QoT4SS+pXpPQ92YZjrrzNYGBUIzX7ppC/crP8h9HGw4knohbM8lQOmKOu9hkTndXWLrbLmiLowNlCmi3AnjmLQ==","signatures":[{"sig":"MEUCIQC2uAE9hGoHIN5Px317TOrgAXZA2d7E34pvUG9UrY6F1AIgIS+DMHClVSHNuh/zDcBVYg2Ace+QWO98ci2Dw/H3rPo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112298},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"b8cd1ffad2601162fffb80c8fc256212b8f1db2c","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.5_1782160728188_0.2583968150944864","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@fusengine/harness","version":"0.1.6","license":"MIT","_id":"@fusengine/harness@0.1.6","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"b1dc046d98856c57289736f35c46545104fe078a","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.6.tgz","fileCount":91,"integrity":"sha512-HifzCM+Dv1D62bN8x7imJNQUxcin1bDsI1fnKSgzfB1bmtDEpvBq9BVTTLUFq7ubdGRJCNAMKvpTqObH0zLsfQ==","signatures":[{"sig":"MEUCIEaOqLiYdE7zROhZ+jNUXAr61ijlx1M8d6WAyEpWnNBzAiEAmxAPoug+OjjnBTOWpRaOnwkPk5WKYlS7kprH4yc+m0k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":115330},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"4b93621fa85731c54e5c1b484717fe919fb1750d","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.6_1782161130758_0.7862571043144031","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@fusengine/harness","version":"0.1.7","license":"MIT","_id":"@fusengine/harness@0.1.7","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"4e5f8df1a450ac9bc7b90a013ee6a99ec38d0670","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.7.tgz","fileCount":89,"integrity":"sha512-7dNZaihc9kF/djfCqBgU0F2075qCcCnDTWZc+KYN6Tuj/uAl8hrBKgx8n8+SR1zyar5KxMVQG54r2HKpoT/lig==","signatures":[{"sig":"MEUCIQD9hjXVmxd2HgKpG9Ajn510RFLEuqBhmxWjkGCOLcPMVgIgVnHCNTYk0vK8ekOXJuphxOBUWbXwDDFh1BbiYDKZlCI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":119739},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"4949f83efc2937801e070bb47f022e639f29de5a","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.7_1782161735592_0.28288522026089","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@fusengine/harness","version":"0.1.8","license":"MIT","_id":"@fusengine/harness@0.1.8","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"fdf95f117cc5e97f6b7cb0e3e63ae92da6fe52ac","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.8.tgz","fileCount":89,"integrity":"sha512-fOID9j6NRpsrIBO/aUULXJBVfcJzvyQdvQzrxcYaFn9ANrDUEedh5Gc70B90Ob6K2M6KIP2fulwcPjTTSf8h4A==","signatures":[{"sig":"MEYCIQCBpLi9xvZ+dmXDvMZ6MTlG2oNIXCwZbMLrP3r6Iv0U2QIhAPSthnsOIXK2u24YS1qBTu6ClkQ7hBL1sWiuncF71De2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":120409},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"a9e3ca001f1206fe9652512cae4fe441e9b9e075","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.8_1782162174230_0.9357668599970461","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@fusengine/harness","version":"0.1.9","license":"MIT","_id":"@fusengine/harness@0.1.9","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"3c424fb9800703c0c6c40c27b4c4d7cb9bc23df3","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.9.tgz","fileCount":90,"integrity":"sha512-rhH+vVdOSWH+qhdpxX78i/zkfKMY3RJ9WsMa0eR4R0s+Y2KfNH3RgVJe/AB2auvP2kCA7OofXw5mUAaXhzBItQ==","signatures":[{"sig":"MEUCIQCTJcvYKwnawto8JRQVg/y+H/3J4p2IgXVbK73GSB6pPAIgIG/ajR3dF7J5DuMKQlkumKIz6QMn6gTVWdTlUIo/TX0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122959},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"d36754b0a16f08de35a3372ba044857a6890fb62","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.9_1782162723774_0.06320180255727492","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@fusengine/harness","version":"0.1.10","license":"MIT","_id":"@fusengine/harness@0.1.10","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"cb13751dea6dd08b3705dcf3bcafe68a921a2562","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.10.tgz","fileCount":90,"integrity":"sha512-SWYg4smAw7231dDfhBolxPamTzKIygdBLGprCpSXp/fYvYYCZgWCX/z5ruxJmnYR7fg16aJNsy5l/a/Q83Go1A==","signatures":[{"sig":"MEUCIQCQe3GM8dhmO+jZYSYfJZNvPdWPiE2aqdpVaZ9uoLhOfwIgSOvooZYIneb28xNKjHPaGHv2OGhNGHKcFcXmiAEI+34=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":136888},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"ca7ddd616107e19309b7b3e2d742791311edf3b0","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.10_1782163816962_0.6542316896667002","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@fusengine/harness","version":"0.1.11","license":"MIT","_id":"@fusengine/harness@0.1.11","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"3be2a84cf346b4c6f3e4c264e1af8c1a3016e5f5","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.11.tgz","fileCount":90,"integrity":"sha512-XDNfKDhkd1xOk1oDD1IAoS/V8+mSkry9QqQpwT+YUhau8Qvhpv6ajJJpcg1LufssIS6TUT1aN9zWPkz9vhDPDQ==","signatures":[{"sig":"MEQCIGgE4grUsQwYht2kES0TkZCl4IQO1j/Hb/XnrRGBtLT/AiBDGzUdG8DxRpUbzRoYS8aQ93I1qBdq2sOQ9yeBr54XdA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":141789},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"4635e31ba59d96f9be4fbddb053f56a434eb75ae","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.11_1782164424782_0.4627746592819304","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@fusengine/harness","version":"0.1.12","license":"MIT","_id":"@fusengine/harness@0.1.12","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"6340e3aa4c76004c3b3006d86953ca807e9c78a6","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.12.tgz","fileCount":91,"integrity":"sha512-eV59P/3N4Y185+e5s19A2zvTVF2vfkjDMLkIcgOmwsIe8yHYJbdBoCxp19mZNKxGBviLwxQK/NPLKyG/RkaecA==","signatures":[{"sig":"MEYCIQDwivLY+y68WpdqeXoNjicfwXg8cOb6Oq7L31DmVfD2aQIhAMe1TQ8BDXFn34H5EDWUGHOZQGjbphCQfgh2gIomWnu+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":149610},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"f47b35d2d72a40beba9d9b61ec6d60cd24e68532","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.12_1782165215681_0.1319078748218494","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"@fusengine/harness","version":"0.1.13","license":"MIT","_id":"@fusengine/harness@0.1.13","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"b2401b7b8bf3e6ea0da2e30710a85be06f98134a","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.13.tgz","fileCount":91,"integrity":"sha512-AkJbph1L/Nnn4dhG5oRu7r0PsmYGMxIwNEdjm8meu5AaSHJuLcI/TR6PZluycbCVqjXmWhPuOY1R803Ue32vwQ==","signatures":[{"sig":"MEUCIQDEGi4KkoavJw1AfOeRHD+4zM4lMkIP4BLL9in/enNRpgIgFetx8N9KCkNhkxpw0ZtB042iAQ7dQJUiQUhnsEcn/00=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":153058},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"8d50390bacab297cf9e4dead42ff461a485110a1","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.13_1782166922319_0.3859974608112562","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"@fusengine/harness","version":"0.1.14","license":"MIT","_id":"@fusengine/harness@0.1.14","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"6d99636878b2fea5c7f45328376be426523079ca","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.14.tgz","fileCount":92,"integrity":"sha512-tOHrVMwnjVhgTgWmqL9Ydj8Sy5lFSe0IGv92ET/kUH4xfOYovYUVefcO4WubLugMfTjv7/ksAjlQx06OXPyImA==","signatures":[{"sig":"MEYCIQCTm95N3zQUTy31yMU6MtPezRtjdXEg3YkAXYCOQIluAgIhAP1iV/28QllQ7G0H+2Ac/BzAs7TspBQT2JDMssjzxtds","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":156478},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"fbc7cebd7138cee8f475d156f5b25d94b5a9a6be","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.14_1782314404556_0.0027674569522186943","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"@fusengine/harness","version":"0.1.15","license":"MIT","_id":"@fusengine/harness@0.1.15","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"282c54a2fe9e0e6d2b54a19005ed4dbc761d3d3c","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.15.tgz","fileCount":93,"integrity":"sha512-R9kmsO9YlqV/+q3ZV5nIQVixq62nzk2so/glSMTWMeqb/VqEgeL84g23Wu+UOrznzEWWJJpGiD0wYOo11dGA0w==","signatures":[{"sig":"MEUCIQCXe3aiLYrptzaGoNrWj7gkW+Zrc3gBQm7Z6Dd15TM2OwIgMpqdiFsdwbRQk1R8n5/4HR0Rj1ftvAcpvJHxr9Xv7sw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":156084},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"a86f1909f321f65ca42d3ec0e4915051a53f18b3","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.15_1782315663306_0.6781980545959099","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"@fusengine/harness","version":"0.1.16","license":"MIT","_id":"@fusengine/harness@0.1.16","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"c4dfbf8cf239110d3d157fa7f7eac343034e03a4","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.16.tgz","fileCount":94,"integrity":"sha512-IooB3Pj7z08swJAvLj58C3X9yayfh+aFcXQG5BowmyJkqMjHQ5C/W2aa1OczJ6t2Wk/7ZRxoEAYrfFeANOA9Fg==","signatures":[{"sig":"MEUCIQDoWK75kz8UqVZLoaoBBNsCYgPc0jFM4mqvOrdozzJxbgIgUgOMckBpX75RUzZ4m9vlLFYTbU0R7zximDHoaGT4odU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":157497},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"f04868c5026deb7b62cc35332167338889e254c7","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.16_1782317012969_0.6920087828866028","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"@fusengine/harness","version":"0.1.17","license":"MIT","_id":"@fusengine/harness@0.1.17","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"6f1f53d0e39aa51d99ecc07b6d5fd6103fdcf339","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.17.tgz","fileCount":94,"integrity":"sha512-654jV5Bo17baF6hMwmErKFcfLBZi7qwlz5ZTFslAIINPBR42XEmbPWWx998kkr4oMJabDIAU5Io6JTQ4/riqmg==","signatures":[{"sig":"MEYCIQDqeEC1sQ4kl/o8/djYaSuV95It+G0tEVqdytFyxqD1vQIhAJRwKQPjOOQs/tNpZcSUU9R49KDQalQ+ASJe2gdA2iCO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":159796},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"3c5d14ce67b12945add20c45dd4170c8226dc51f","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.17_1782317742610_0.13671024683352284","host":"s3://npm-registry-packages-npm-production"}},"0.1.18":{"name":"@fusengine/harness","version":"0.1.18","license":"MIT","_id":"@fusengine/harness@0.1.18","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"a6b82c9c4b1faa3845a4029feeeff8f76faee8ef","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.18.tgz","fileCount":94,"integrity":"sha512-YANcWi4RNd4jTUc0ljgmj5kwV6VUvfxgh0+Fv3vqr+HWrhJW/QugQp7EGPgAj++OAy3mO5JZlkE7AXHBaeaPdw==","signatures":[{"sig":"MEYCIQDol734AVmNOfVwBkpJ2WZWvnI2Yr6a/h8T8Nbu9y2ZvQIhAJb1oC/RKnO0PzH3h/CYJx2K48gf1mzz34iGr8mOQWCN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":160868},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"d5e50b15d9578261ea83e0ec27666261bd3319b5","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.18_1782318264813_0.16448220342197972","host":"s3://npm-registry-packages-npm-production"}},"0.1.19":{"name":"@fusengine/harness","version":"0.1.19","license":"MIT","_id":"@fusengine/harness@0.1.19","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"23dacd6f690d7d9021fb1f39b15b5cd6158f0eab","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.19.tgz","fileCount":94,"integrity":"sha512-1/7MnLNOWhbV/8MOmnhyVFlm9coxe0IM20GN1S8N/2iojX4XgzulAdr3vRJZGzfyJqPYX5wbrYbkxvJ/5i2yfg==","signatures":[{"sig":"MEUCIQDJ7lVIAhIhWmDKP8H6DdklOoUgB8jtKiOnu29gIfzdigIgKXrKOgbd7XLkSmnvPq+ShtPF8LKHndCy5ydU6moCbiU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":161482},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"2966a6478bf6e862f0abbdcef3e793826d58cfa6","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.19_1782319022508_0.9994839666700623","host":"s3://npm-registry-packages-npm-production"}},"0.1.20":{"name":"@fusengine/harness","version":"0.1.20","license":"MIT","_id":"@fusengine/harness@0.1.20","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"b5621b56e9a7622e552b4cb6134cf9c568ddf03e","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.20.tgz","fileCount":94,"integrity":"sha512-OgrtXIsxHfsH3hFlrEyX+610QFZN7wZ4c+WxY6JAw3WjkdNFK8N2Eq74VapRjwzSGAvfGhR1dxsIyXL+ZCZ8Dg==","signatures":[{"sig":"MEQCIHPqkZG9WZLCcOVmZ3J25Vu+kx/0hX44E1P5E51399YAAiAHxoMYPXMrJ2q7dVJGS9fs3T9mSP3PBmjXZKCjZXJ0yg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":163369},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"629cb5cda165643e1c6b0da7790c4ac56797bce0","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.20_1782320916586_0.30522965529233126","host":"s3://npm-registry-packages-npm-production"}},"0.1.21":{"name":"@fusengine/harness","version":"0.1.21","license":"MIT","_id":"@fusengine/harness@0.1.21","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"2e8f29f83ee6aa8c37e4b1718b4d63d6aeb60fac","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.21.tgz","fileCount":94,"integrity":"sha512-LOQxfo2Mb8Qx7EiLYCz8RiWVF1egLra3+6eiWZUBETeegYE/E/b7IcFxLL+yzJ77rtq0jmeEicqqvUKLaqTq0Q==","signatures":[{"sig":"MEUCIBN2gR4Ts9CW/OAlSFuDF/1QRXZbxhFGe6ljFAuN5YVdAiEAwsVUzSEDZfDWwCttOozTQtgX7SP4T+cHkVNVmOS3M9o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":163825},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"bb03b84fa682795e8dfff8b8af6edb68fdf3b5f6","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.21_1782321356012_0.7716904766694961","host":"s3://npm-registry-packages-npm-production"}},"0.1.22":{"name":"@fusengine/harness","version":"0.1.22","license":"MIT","_id":"@fusengine/harness@0.1.22","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"8bed6eae044817d7b79b23acce3f409ec0e87ea4","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.22.tgz","fileCount":94,"integrity":"sha512-+cn8syzoQlsMafAClFeOD15BPoMxY0pFCkc5fV3D4tXGcmJ6oD/hxV/6+TKX2waEkMC+vCjcIWgL2omWyUwv9w==","signatures":[{"sig":"MEQCIEamPrOqzx/VrKdRwwjFCdzBHSa0dRjM9XkUSk26cA3YAiBvjs3897YO4u95Ol2PLLxNAyvEtteoNyG/tSpRK8oh7g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":165163},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"958a39a47db64e26f97192c716f175c4f61a5349","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.22_1782322123378_0.09766903646769154","host":"s3://npm-registry-packages-npm-production"}},"0.1.23":{"name":"@fusengine/harness","version":"0.1.23","license":"MIT","_id":"@fusengine/harness@0.1.23","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"3bad88ce63f5125fa3254a562d8d872a5276db39","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.23.tgz","fileCount":94,"integrity":"sha512-QxSiM8pJXABrOzN/E6YMr/4Mk+Lkd7lZKOi3zirBGUsmvblzHK5cp6Av2UI4BgDYwye0hxzkjhCC5kdNP7kBog==","signatures":[{"sig":"MEYCIQC6UMNq/WsoQzRkfXGk14W2tB6wW+LGjayy35BBDP79+AIhAKfP7pbsSTP5L/0GFNiL7DKXrFcg+1Mbp347gbGts+Cn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.23","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":165163},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"562504ef7b35f29b91ba959429fbd08cd5689f5f","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.23_1782322497709_0.816197737200961","host":"s3://npm-registry-packages-npm-production"}},"0.1.24":{"name":"@fusengine/harness","version":"0.1.24","license":"MIT","_id":"@fusengine/harness@0.1.24","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"3ed23ed3a354edaf93800afe8674e6f26ca80223","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.24.tgz","fileCount":94,"integrity":"sha512-i3xfLRC67mgPorPBdNiEQ0L85Q4Ei8O/X5b2PPnblQUnCmkDqCN5PIAngw+tBh8fCdgfVAWyr943VbNVOI2qqQ==","signatures":[{"sig":"MEUCIFS6enrM8oBz+vyJNgi2Nw9YrPdiv4azTqLP1po5zcvEAiEA2k5l/iBk6kADVBE0xeFiZiE6mHqPPLZSYnNmhik9KOE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.24","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":165163},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"b56d0f971113d0763c0d6fa22554ae5a1203319f","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.24_1782324489107_0.8650997620939729","host":"s3://npm-registry-packages-npm-production"}},"0.1.25":{"name":"@fusengine/harness","version":"0.1.25","license":"MIT","_id":"@fusengine/harness@0.1.25","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"462bc341a0a8c0993e31a59f224e208cd19b779d","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.25.tgz","fileCount":94,"integrity":"sha512-mNAfiEQmKVUB9eJlsZ2bB0wWxi9TIrnY9WPID1OGRdkeUhBmTDlQ5cw791h8LZnrGobMx4shQlohbhvnkyDYrw==","signatures":[{"sig":"MEUCIBiNQNoYXLNjUfg2YY8oa63cnWUsbq1pOuut7qFuwYLxAiEAjx+7WM4oxddWi0cc/1eDo9z+1QgerPmCSPtvtpi1aLg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.25","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":165708},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"8a598bdde899e06a6c82d3e6eaf0f8d8024a5fcb","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.25_1782331288121_0.9244617453686919","host":"s3://npm-registry-packages-npm-production"}},"0.1.26":{"name":"@fusengine/harness","version":"0.1.26","license":"MIT","_id":"@fusengine/harness@0.1.26","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"cca59ea40ff649f63efef85a0f125e975c56a78d","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.26.tgz","fileCount":94,"integrity":"sha512-Vh/yZu+MtJiRbBrfq1U3lV7TygXx8NjN902v7+8DGwgMZhdduqf678MiIzsSRrObYjWox2DfKYonuf5n02dsWQ==","signatures":[{"sig":"MEQCIBHZClpKzRTjwYU7kh+cEcwrxl1HByaxAlwwx5Ia8/K2AiANxDLzyYx0vDxD1hySCixJ3R57ZR5IvT+/W1NrgfNLzg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.26","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":165794},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"a3e591d6936a276a989dbeeaf8c0862ba49d7704","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.26_1782333654875_0.1956513865170486","host":"s3://npm-registry-packages-npm-production"}},"0.1.27":{"name":"@fusengine/harness","version":"0.1.27","license":"MIT","_id":"@fusengine/harness@0.1.27","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"f3f77a4357efbd2831718518268e94952f400354","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.27.tgz","fileCount":94,"integrity":"sha512-mYS2/Gy58gmQBd2fpTXeS99jqaayHipQPemU+swzkZlqdWnSwNSW5BFynIt1CrV0Z8MbgqU97wLMRuIdyu9WtA==","signatures":[{"sig":"MEUCICQiMHN+tTnGgYdIj6i/IR77IbDdnHHO2RcKBpXWAGA9AiEA5khEjY6BjkkysJ6L1/57fr/yy5tUabE27uRKmoA+FW0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.27","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":166627},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"4f37e94f263525ce3c2e8f2551de019ea4c77ee6","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.27_1782335552951_0.5421063666069033","host":"s3://npm-registry-packages-npm-production"}},"0.1.28":{"name":"@fusengine/harness","version":"0.1.28","license":"MIT","_id":"@fusengine/harness@0.1.28","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"714476ec73376f5099047eaab659919e590b4eb7","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.28.tgz","fileCount":94,"integrity":"sha512-5rVkWsTMpls6R6mjP+Wg8xZpeazkSbld7q2Do6KpbBjiZ5p9wkqhqUrln+nN0aNgc+0USe6R8L5bGvLqcYa3pw==","signatures":[{"sig":"MEUCIHtpTj79JG0I3+vl3N3/m815wOasd9PqqidQPAt2o1sPAiEAmi6KH+aH6Q3hjVOCP6N29bUzmVkarkf93g3ofTdyO3c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.28","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":167221},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"244d74ad2e6bbd82db3148da5224e96c42f5435f","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.28_1782335860446_0.10989979830993013","host":"s3://npm-registry-packages-npm-production"}},"0.1.29":{"name":"@fusengine/harness","version":"0.1.29","license":"MIT","_id":"@fusengine/harness@0.1.29","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"acfa64cd19be777d8c7df50e614cb99dafa7b85a","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.29.tgz","fileCount":94,"integrity":"sha512-2CyKGiFMoXDePat8j5PRASmRFKEuOSyeDosqGVX9DaHVvLCw8uI4pYcfjVD4i0nzXEk0EwLeWzQrcBezX4XVTg==","signatures":[{"sig":"MEYCIQCQ1zfQcY2g8Yn0AceLD2kTj2SNqSKDlVEZ+4rwblkHHwIhAJD8H1X1BBY/+4C6zXkEeArs972Qjn+K5smcf84lwiuz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.29","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":225431},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"9d26f56089f324c04a73a8ec614b0c758d86281e","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.29_1782372961773_0.7441536180476584","host":"s3://npm-registry-packages-npm-production"}},"0.1.30":{"name":"@fusengine/harness","version":"0.1.30","license":"MIT","_id":"@fusengine/harness@0.1.30","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"7db33ea648df872eeef1ad838f0faee5ce1dbf3a","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.30.tgz","fileCount":94,"integrity":"sha512-LxM9xgT+aD0DGj5VOzaY73wxV+2Qg49r4vmtfic+/N9HjTks6S3G5wBJhPOzu9b34C2sf52XhR+zwHyLbEzPMw==","signatures":[{"sig":"MEUCIQDXSnrkf4qUJcBD3OviGa9QEgphwdPkkSqbmSFKXtkwZQIgd8wDBLIqwlIoeUk5gILojndrW89GYP4boiPZsUI9/2c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.30","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":314896},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"b564351e5573cfb9b211ae15d55a91e48d586eed","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.30_1782381003179_0.051605278739377036","host":"s3://npm-registry-packages-npm-production"}},"0.1.31":{"name":"@fusengine/harness","version":"0.1.31","license":"MIT","_id":"@fusengine/harness@0.1.31","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"5f7781569fefd907ad17d2b994a817a9f2a584c7","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.31.tgz","fileCount":94,"integrity":"sha512-1p3oI1j5Aov+0g/ii8xg8W0TXSbidkfIMdrYaYOvB+WB/nJgH2WUXRb62nV0G3ABmTuIIOXnnkF+hFUsMdU6QA==","signatures":[{"sig":"MEUCICnRnESitqSlWpDibmEoVmiVZZAqS7ShRLvdO5yYXuFhAiEA2raJ3xEJ3gx6skMuwLS1E1SRr0px1HRcypoLyzknhu8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.31","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":356513},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"fce873c1d6f39e02907458fffbd1f5af02d882f9","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.31_1782391978662_0.6313574544281462","host":"s3://npm-registry-packages-npm-production"}},"0.1.32":{"name":"@fusengine/harness","version":"0.1.32","license":"MIT","_id":"@fusengine/harness@0.1.32","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"4c52d5b0e377aa2eb5b53a2f1a490a0ba48fcda6","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.32.tgz","fileCount":95,"integrity":"sha512-b7fNZnInNVKJ+Ybu/e1jCx1jOnuHAcnHNTpMCBcvFVpvA6gFtEZbDpn4KZ7oPI2cY4NGGe+GsMu5sg8kex9t4Q==","signatures":[{"sig":"MEYCIQD3Sbr0qvn3m6/5hV2ySeZCNVvjKuJBTJARI7UQZbAZVwIhANJpB7xtwTCYgrM6vxV7SB10bt8+p2gxAUsbjiDOLtuI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.32","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":382260},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"54230b5c6b7c7b7bf6d3cb8b8d8ebe710da46226","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.32_1782420271367_0.459862031266705","host":"s3://npm-registry-packages-npm-production"}},"0.1.33":{"name":"@fusengine/harness","version":"0.1.33","license":"MIT","_id":"@fusengine/harness@0.1.33","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"fe8f1e43d00e7c72b1547167c8c2db5f61629c1b","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.33.tgz","fileCount":95,"integrity":"sha512-2daO+KEjxdG6Y3CCo1TbzSDsHG2euqgSCYRAi5niuhMffWaQ2OvFCW/4Iv24rbChdifsW9ajMP958aNvBPsbZA==","signatures":[{"sig":"MEQCIHnj/cl9XvtRMPqJUH2T0+LFSRuK3U/Pv+H8wvU6lTfcAiAJBiuIcTFi+6thQu3FN1YonixFWRNWr/6xoSz9BgVHbQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.33","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":384946},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"c3570e70bdb13c99ab81ed6f83ab0da4132ac035","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.33_1782561396239_0.04035071313199445","host":"s3://npm-registry-packages-npm-production"}},"0.1.34":{"name":"@fusengine/harness","version":"0.1.34","license":"MIT","_id":"@fusengine/harness@0.1.34","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"6a4193c0472fc40b360307bc18ef01a48d0f724b","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.34.tgz","fileCount":95,"integrity":"sha512-nfrLqpZB7EXMLmoFOZw4OYQqRePUvdZC01BzCU6+iknalRi3BvbYeKXh4fxkI5KvQp6TSQxtLMVVxPe5GXhE7w==","signatures":[{"sig":"MEYCIQCTeYyb4MYkZ8qkKGIvL1ZTS8Q7Kks4SE8LZaVvTL+CWAIhAOBwjpn4wPqbi4LzAR0GFLxX0dcdsZfbVOsfCfk+py8V","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.34","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":396733},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"6fce04580b48fc1d2e64c79ec5fcc56b881d31c7","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.34_1782563967846_0.5069115727415441","host":"s3://npm-registry-packages-npm-production"}},"0.1.35":{"name":"@fusengine/harness","version":"0.1.35","license":"MIT","_id":"@fusengine/harness@0.1.35","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"ed5ed0880c16a740ebed2243f14488fb521435c9","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.35.tgz","fileCount":95,"integrity":"sha512-PZFAMQwWrBZHky0FEPvuJlrpi4/ZMtUYMQ0dLqDr7oF2zG0K5CvFKo5VqEQJQvE5oGj+ePnhFHcC+NdsWYq3EA==","signatures":[{"sig":"MEYCIQCLNdZUG6O87ckAih+KHp86KJ6Cf8GaR91jO+D+RLmpQAIhAI444HzeKvMH6xSjM30Rn5C5AJjC8I0X3C3HkEN2tAyg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.35","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":399834},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"30985eb26db0bf28d96d53dec850c7453a9ee4fc","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.35_1782577270645_0.22345527725564795","host":"s3://npm-registry-packages-npm-production"}},"0.1.36":{"name":"@fusengine/harness","version":"0.1.36","license":"MIT","_id":"@fusengine/harness@0.1.36","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"25522647e025a351992c5170f56815a8d138f0aa","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.36.tgz","fileCount":95,"integrity":"sha512-CERnZTlak7oR4/pdm4wrHTQHpLtEVziL4QU21Am1rLaSIFJpJ3Id+tjmMwO8cTX/WeEcPO2UPfSb2vMEDFE3oQ==","signatures":[{"sig":"MEUCIQDLRiRKvYx+OHVhgbKOk2ehw/2Ovfg2+jtEQq4XcUhndwIgUI5s8L7FAyQpJBMQpDIdjkdRzniL3GT8wm10RjALxnI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.36","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":411503},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"cb52555256016df9a4789e8ef451a9efd8d052e7","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.36_1782662213155_0.2712072520227693","host":"s3://npm-registry-packages-npm-production"}},"0.1.37":{"name":"@fusengine/harness","version":"0.1.37","license":"MIT","_id":"@fusengine/harness@0.1.37","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"7dbc50058cf38a19374336ae7cda72cedd3d3cf3","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.37.tgz","fileCount":95,"integrity":"sha512-k0C2Y58WLBh6ywMMwZ0VVcrc/q89AqpDhWZgV1cerBcly5pnRlcGwcxrvc4wXg6m2JEsAaE9fL9S0dmdX3C9mQ==","signatures":[{"sig":"MEYCIQDgawigF/7WkSNloVQkRk2TQs3h7+xMltFv5P47+JBVvAIhAM6DLOMQ78VH6QjHzEp/BY/QhpNMwytBZm2nVFRunLhS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.37","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":415094},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"a14ca44250e97a8495860ac17a91dbe74addc933","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.37_1782664609405_0.21046799792726678","host":"s3://npm-registry-packages-npm-production"}},"0.1.39":{"name":"@fusengine/harness","version":"0.1.39","license":"MIT","_id":"@fusengine/harness@0.1.39","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"ea7cc629a625a79b529dd7c1c9ab6c06e64df51b","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.39.tgz","fileCount":95,"integrity":"sha512-eRWCYvv9DJlsmC6pPOWUCBZCgB1Ri3UgzalJpAa81CTnk46xQJcM4P2h+yA+3LCWPjeNHpqwIoT6vsF3gU3y6Q==","signatures":[{"sig":"MEQCIBMfsb8iQn7pWx2IqlPz/YSK6xhHlLtZG3h/nkBAem3MAiB0o3JQD/9AYrP7DYJjmXu7eHNXHx3y/Omyobe1DYoJIA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.39","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":415075},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"99ce1efbf08d3f81fef3eddb11751b45ab34aa93","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.39_1782762181101_0.8195785530618838","host":"s3://npm-registry-packages-npm-production"}},"0.1.40":{"name":"@fusengine/harness","version":"0.1.40","license":"MIT","_id":"@fusengine/harness@0.1.40","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"2f7c892be027fc17886cb726cb12a47e5c7d6f2a","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.40.tgz","fileCount":96,"integrity":"sha512-3qzw4LG32XZ21kEKEfuwr+EIafknmH2ZUOWhedOlqxOA/PIXFZ0nRncLF9TVKE/bImbiWNFAo8vXYpgr2tuEsw==","signatures":[{"sig":"MEUCIQCoHQH5Fj0rHRHTGfL3Xj+UFeCDJNuBa77L+4oUmNojpAIgOwlrFurqjSfp7HD5Cg6ecKE+FaLrpXQ7mFtyjq4Bo4M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.40","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":447679},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"842c6d560a33b496ec7775e53d88cd596612b2a5","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.40_1782831623315_0.37920150188014157","host":"s3://npm-registry-packages-npm-production"}},"0.1.41":{"name":"@fusengine/harness","version":"0.1.41","license":"MIT","_id":"@fusengine/harness@0.1.41","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"391bce9b936927494fbc0ff83986f66d41a7b6f1","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.41.tgz","fileCount":96,"integrity":"sha512-UtImU5a27PS+VdFF6c+iCa3qz2DDbf+3tVb0fiy/T2S7tMO9R/jS+ZWHvvB3IXrqL+R0UD8QBFLAaoSGwQ659Q==","signatures":[{"sig":"MEUCIAQnj3ss5lQUH6PLR4alPJEVLtKeigymQFnSpg7Fj+qMAiEA17KMOLhdiQNJrucaqYHfmtqZJHRk9ibgFBHqcGIXx3w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.41","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":452255},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"085c686d6e5fcff603695dff463562ca26d7367d","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.41_1782842052018_0.8210246209349352","host":"s3://npm-registry-packages-npm-production"}},"0.1.42":{"name":"@fusengine/harness","version":"0.1.42","license":"MIT","_id":"@fusengine/harness@0.1.42","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"f098d670a5167a00c562c6fa67a578b9391d203e","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.42.tgz","fileCount":96,"integrity":"sha512-VlOsVyPCkOhPgt3EaILOwflgVDs1Ouhr1wPg/+IKhPnuooeoIkyqOCvIlGdpfXUZj4t2oAUOEfiPPMz3oiVF5Q==","signatures":[{"sig":"MEYCIQC/+aYhB9sTQzGeyYtWduCIMC12gj3wyAbtsQ2bY1ySCgIhAM3NED9qzRJhUEn4Y7IVkGEo49k4z2vg1He96pKg1J9w","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.42","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":459763},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"aff1949fc351b32aa4053c0fda2ec2cc159ba5bb","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.42_1782883499603_0.0035277120864707356","host":"s3://npm-registry-packages-npm-production"}},"0.1.43":{"name":"@fusengine/harness","version":"0.1.43","license":"MIT","_id":"@fusengine/harness@0.1.43","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"00569d5dcc2e9bae32eefb4e9522788107f01b49","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.43.tgz","fileCount":96,"integrity":"sha512-T9s684vylTT3HqUHYt81/mbase4ypKBy5Uvz9eZDCczwVDrma7iXV9gw7fWZ6ahxbKOPiee662Xtt+jY9SxBBg==","signatures":[{"sig":"MEUCIFaOtvnpRCymiY6BMJ9p6rWfIUT3IqvWsEIReCwX3k+iAiEAuaGzgQyz9ZDSi6JZ+VXxwR+Z/Yr5CFofhmrQhO3rvP8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.43","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":459905},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"1e07e5e39b8e3f59c7ab3a0af2623ee8e81146e5","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.43_1782885608047_0.022845887656128605","host":"s3://npm-registry-packages-npm-production"}},"0.1.44":{"name":"@fusengine/harness","version":"0.1.44","license":"MIT","_id":"@fusengine/harness@0.1.44","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"01e72e5929a3591c87b8de7ff382c35ac501cf91","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.44.tgz","fileCount":96,"integrity":"sha512-L0IT813BiM/jnHW/NinWQ+AJFJJ7Lsjoz10zfoYV9+30cJCw1ukPhcGt+m1LCiPp/k4XMpCwVOoVZUAFlULoYw==","signatures":[{"sig":"MEUCIQCrMeJft61cgBEascJTGRqcVApKPyLIGhvFBAXnas0UMgIgC2dOdmDoFT8DJPSdC8Ib1QIcdAZZkScsEXyAePX+Cqc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.44","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":526551},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"810e43e6c8b389a8f8d9886361972b7c11f80318","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.44_1782922946897_0.3752856350428495","host":"s3://npm-registry-packages-npm-production"}},"0.1.45":{"name":"@fusengine/harness","version":"0.1.45","license":"MIT","_id":"@fusengine/harness@0.1.45","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"d7d9c83deaa49b0b879017d5581da097fe04c2b3","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.45.tgz","fileCount":96,"integrity":"sha512-hgaPwS+N5FBtK/mcUUnp4qKdpk9/mvRWUoNLWQD9WEjzwPw4uF2d9zQeIh4gudG8dePmTEHEZvDvvfOYV3RTvw==","signatures":[{"sig":"MEUCIQD/ECJzacMHsgcJ+vcVktnC6wxmgFAozUUb9GPZhWowagIgPOk3r078VJd/ZDAy8MrDsdQxcQmfDoIDvKDACXxJVkc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.45","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":532508},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"d4a57e7fbe1444b4145ea687ffc3a89c7081f53b","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.45_1782924876532_0.5567055394303528","host":"s3://npm-registry-packages-npm-production"}},"0.1.46":{"name":"@fusengine/harness","version":"0.1.46","license":"MIT","_id":"@fusengine/harness@0.1.46","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"68a95c405bbb380691fe158f785641dcace4628a","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.46.tgz","fileCount":96,"integrity":"sha512-eySPONg4HzarKTfdyoHq5QZTQCdmHg+63TNTBgZXs0sWLJgxd3vyQCToBut90Y7bauWlMOKJSfT0jCOB0CNLWg==","signatures":[{"sig":"MEUCIGBDzPixwl4c5GF0kNcBvyznjin9spjTEVZVCvU8HnGmAiEAu531rI75cm6LOG3K4WFVj5GlXR0TuM/dB1UxHEUdeIA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.46","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":532564},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./state":{"bun":"./src/state/index.ts","types":"./dist/state/index.d.mts","import":"./dist/state/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"e4f1e60f5924317df110023d87eb9a4fcd0a6fcf","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/state/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.46_1782925977033_0.8587478331720424","host":"s3://npm-registry-packages-npm-production"}},"0.1.47":{"name":"@fusengine/harness","version":"0.1.47","license":"MIT","_id":"@fusengine/harness@0.1.47","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"f17e81d8ae12482b910e42e69d6d0aff4d9cc3e5","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.47.tgz","fileCount":92,"integrity":"sha512-cM1v3Aadt2b4sC7f0s2EBLUiOcSgEAbu+lAvKDIvq0cnuKa9qKpGFkpssRg9qScMExqTiAkkHdGwsxZgVPDjxA==","signatures":[{"sig":"MEUCIQCy9QfgVRDEH9GR7/M/ySRQQqKvvDN/FQoIamDbigAiGAIgCklTqquEbZuo14r3Ikru9dRopZ9S/WB8nY3EC0wA4qM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.47","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":535824},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"d50845ae096496a1ff3fc0f5dea190e3778f276e","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.47_1782936915620_0.766558474074009","host":"s3://npm-registry-packages-npm-production"}},"0.1.48":{"name":"@fusengine/harness","version":"0.1.48","license":"MIT","_id":"@fusengine/harness@0.1.48","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"3b59fbcb201cbac982a4754483a7b999e204c0f2","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.48.tgz","fileCount":92,"integrity":"sha512-JHEtjbNsT4c400c+SOCsWtYaK9wn2pS3pIvO+9PHJNurW2/EuuZKhCPsXMzHdlYSmWvXIXPySbMYBaNj6AHgjw==","signatures":[{"sig":"MEYCIQDqKLzERV0VMtdvaE9hDNU9r2v7ideCNzPVN9owI736CgIhAJuHmOClnd0O1O8jaX5VoIk6JT3qOcpHM38/x0BHF2uD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.48","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":539341},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"}},"gitHead":"980ae3f8783e94a818590844b382e80bb2397819","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.48_1782944419484_0.020425442843530206","host":"s3://npm-registry-packages-npm-production"}},"0.1.49":{"name":"@fusengine/harness","version":"0.1.49","license":"MIT","_id":"@fusengine/harness@0.1.49","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"7589767a4f2522e7c89635f95f78cf84b59c424a","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.49.tgz","fileCount":97,"integrity":"sha512-ZZONRcyIt+4QUuSqyv7+cpTHK+myWG/OB4lIKaj3/vQD71Eqx/PKYHvwRSoKJqfhGF0nhOh9WemMiC59uVrM4w==","signatures":[{"sig":"MEUCIQDW+fhcctBVjxKQBGYC86zH3njwuwXU9/Okg4wZL3Y3rwIgAh/HbASEpeVVB9EiXZ8ZMVJ1YqoTdVThaIfKA+wb03w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.49","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":573186},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"1b708409bc314a188e47b95e45d1f93918bc0b7f","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.49_1782981369015_0.6991262553248163","host":"s3://npm-registry-packages-npm-production"}},"0.1.50":{"name":"@fusengine/harness","version":"0.1.50","license":"MIT","_id":"@fusengine/harness@0.1.50","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"e2d4a4a7a044a2d8e03bf6d8f3a60ca8cbb192fa","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.50.tgz","fileCount":97,"integrity":"sha512-IBbsA4ADWXEl8Wc2vC+y7BwZ4ymg6cMZkSf1AFYp4gp9vH6Jm6VZg65I1PmY82IqocZ1JXw3Wzm6VvC52shZxA==","signatures":[{"sig":"MEYCIQDB6GMIAumEDK+FKNvn9YALSpRvIIBEjwgPsX9q9kmxPAIhAJDcCprQ+X7XLTZvc4M/BgtB33WtI4P+4rDaSP55pdRd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.50","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":591824},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"9aa93cd1068bbfc416740ee79272caec78c5367b","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.50_1783035092186_0.2796849336867535","host":"s3://npm-registry-packages-npm-production"}},"0.1.51":{"name":"@fusengine/harness","version":"0.1.51","license":"MIT","_id":"@fusengine/harness@0.1.51","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"8b6724cfb4e9d4c5588a9da94a9f6abbe4793bce","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.51.tgz","fileCount":97,"integrity":"sha512-VuRZ56otde6xMVkNxjOYVoSLVlvSwnezEaSyirQuz1FhPvo7v61KbsGXyDSmA7JhusjQrB0fqGgXlrc8eccfTg==","signatures":[{"sig":"MEUCIQCmjhCGWqwMH8D/tntHS2REEKsMGwCbJjZjXO/VKOslOgIgZKVPNNKy4qeLMt4lBmaCA9k1EPRy2ealYzM4bAhAopQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.51","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":610715},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"89e47a46bf0953237c0a5a563a055a9c6e1cf23f","scripts":{"test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.51_1783037549332_0.977707779354509","host":"s3://npm-registry-packages-npm-production"}},"0.1.52":{"name":"@fusengine/harness","version":"0.1.52","license":"MIT","_id":"@fusengine/harness@0.1.52","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"1efdde54b7b980ed7283e483a939debaa8353c24","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.52.tgz","fileCount":97,"integrity":"sha512-tnbKQevD/nSP8cmARdRY/c8WUcRa0a72iw0evGbFTA6BxQTXnzhHIySQsieqY5g1sdgzqEgT4lFX+tWDfC38pw==","signatures":[{"sig":"MEQCIA6DyyH4zLb1gpCABRImatyV4JNu9Dv+WKlwC8XX4RVcAiBPphP5s4VjO1wG5otcsdoXSiOWeZu8DDvEzOHIJ0pCkA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.52","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":610748},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"1f5f5130663a423b72947b40053feba1ac51d69b","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.52_1783248482053_0.9981309640978309","host":"s3://npm-registry-packages-npm-production"}},"0.1.53":{"name":"@fusengine/harness","version":"0.1.53","license":"MIT","_id":"@fusengine/harness@0.1.53","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"ec1cb6ff068360b463cbc8ad8521178a1136bb44","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.53.tgz","fileCount":97,"integrity":"sha512-fTLWjbVu7VXnf1HSzflbMDAovH7/OI59bI87nrAWgCzNoW5CvJMI2ZkmEr5py/jevAUb45OlOhal1TPlSHwyOA==","signatures":[{"sig":"MEYCIQDsy+lkTv/HkanZ77TAMDHVDyGB7gC3ALD5Tv0gdlYTywIhANmkjQB55NpQf+j6etMiheYeFmQkRjO8Zmp/1BOhypUj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.53","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":630044},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"b903c4ca92e4223f711e492294aef7654212c546","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.53_1783251566390_0.0850117199895859","host":"s3://npm-registry-packages-npm-production"}},"0.1.54":{"name":"@fusengine/harness","version":"0.1.54","license":"MIT","_id":"@fusengine/harness@0.1.54","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"31efc73bbb918715a37a4a66e88882c8b2608301","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.54.tgz","fileCount":97,"integrity":"sha512-/LOlqdsNLcN6hqO2MFJREMcCB40/tp/MZa24x9ECrGLxvwWBbiVGaEB1dC2INXrChXDvWL+aYbP9XYgW/7rDIQ==","signatures":[{"sig":"MEUCIQCnwGXsfyeAjCIHFIH90BHmyxY/PlXavhQau8HURtLRigIgA8Xq5Np2iviyGmeFnw5eTSpevAu4uHbYsjQPxJgH5J8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.54","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":636863},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"e2aa8b157328cedc8f9a3a64044c405fd1e2a799","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.54_1783254909933_0.021902164460465556","host":"s3://npm-registry-packages-npm-production"}},"0.1.55":{"name":"@fusengine/harness","version":"0.1.55","license":"MIT","_id":"@fusengine/harness@0.1.55","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"fc4f82c108e7747e5ece14a9c05a6b444e5f92ad","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.55.tgz","fileCount":97,"integrity":"sha512-Tr9uIj86ZAHX9WWcwYOIghNNgUWy9VIXkEV2aPg6YHbSMXX5sN5T51/xHpdoBSZVBJXjhXzZOUqEwcrS4+KRag==","signatures":[{"sig":"MEYCIQCqmIfpsykkZBJYeHL1pUe8WNdM3BktuPawVdlYElf56gIhAN41CuGKn8kJqfMRk4Qtfq90x9PFyu1a6TKjc1V8lqmN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.55","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":641514},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"0f6a20c99783088c2e71cd8fa87bd8c0e8e8b16d","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.55_1783260386747_0.8623873248690515","host":"s3://npm-registry-packages-npm-production"}},"0.1.56":{"name":"@fusengine/harness","version":"0.1.56","license":"MIT","_id":"@fusengine/harness@0.1.56","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"158d91cbfcf3909837fa20d593c3c77248e48528","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.56.tgz","fileCount":97,"integrity":"sha512-WETtXMjwCMOGSIpwCdd9ep1hEc+jKfZYj6BMhSN45P5PDeE3XQeCzHMETy6BhRrLbBcJE5+fD5fGnITtat2/XA==","signatures":[{"sig":"MEYCIQD19tdDfaYVAUYkY2gKT3PpzjFIEyWCuynu4An5Aia59wIhAIO9KHZoLvVtJF9ZuKVhxT4CW9a9u24o8PiyHXokQyH6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.56","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":644371},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"ae7e6d4ac3f57f6f2fe1da091f5eca2f2bc6fe29","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.56_1783336843157_0.2325432706461401","host":"s3://npm-registry-packages-npm-production"}},"0.1.57":{"name":"@fusengine/harness","version":"0.1.57","license":"MIT","_id":"@fusengine/harness@0.1.57","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"21c050cef35a4e7b2b5408a67cc7faf4713b1a10","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.57.tgz","fileCount":97,"integrity":"sha512-BoQ438ETNT/cD/vFEBbzJwUBBdr2DfJkbHm5Ll1aKfTzzIEI/mbnjcs6Zjmh2qUvUk785IHrgezYiPYiqIt+/A==","signatures":[{"sig":"MEUCIQDV/TDJTXyyUyztqENteYajj9VT4GfksemvG7MkHlDUUgIgay2TtjJshyvBXot8tQ6jmg/0wqgVx6urqi4/xk3C0xo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.57","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":670839},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"19a016c2f00d9de6f9bbdc3d68022d47ba3426aa","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.57_1783346008701_0.3666338563256044","host":"s3://npm-registry-packages-npm-production"}},"0.1.58":{"name":"@fusengine/harness","version":"0.1.58","license":"MIT","_id":"@fusengine/harness@0.1.58","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"baa67f0731e83d38ff55313048bba46c76fa8672","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.58.tgz","fileCount":98,"integrity":"sha512-EMAAoZYrgSWG3imUn0QUOw9qqod3Y+ox9uA2hrfwDQbozxbLaFr5kQlQgcErtWgGS1lKLI3elMBo3nivMwWcgg==","signatures":[{"sig":"MEUCIQC5UWOLxO9zQ0kPPBJWI8qUJX8eLB2PZAT1p3sBweMKGAIgOL4pNPt9G/dtsPzpu9QvJnsHqButZPXNK+EupBdSDck=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.58","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":693721},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"ac07be46b31653caeb730f10d434705d4a356559","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.58_1783350089818_0.09308476820894929","host":"s3://npm-registry-packages-npm-production"}},"0.1.59":{"name":"@fusengine/harness","version":"0.1.59","license":"MIT","_id":"@fusengine/harness@0.1.59","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"42172c655a7c06ff276c7f577ebeac8b8aac7f03","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.59.tgz","fileCount":98,"integrity":"sha512-ZLNUYaLz1Dld4p7DOkWQqPKxrjMnIcU7TkcxcvjezNzfX+X3bgATBQZMdOJBau4FChN49wwEmiA8keRcoNxcIw==","signatures":[{"sig":"MEUCIQCYUFG6P4VQOyL+RbocOOc7TtEZOYh5WABaNSRfhAR68wIgS3dubqSFfTdrSBWan2537oL5tzvDzlV1rNkJSNttTIs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.59","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":694543},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"81138f300227b48142e5adfc5bde20c7cfe8fe04","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.59_1783353995190_0.139892264426827","host":"s3://npm-registry-packages-npm-production"}},"0.1.60":{"name":"@fusengine/harness","version":"0.1.60","license":"MIT","_id":"@fusengine/harness@0.1.60","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"d4c88e128d0027b95226be5dae1534e4d12ac0b0","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.60.tgz","fileCount":98,"integrity":"sha512-eV39Fn/HcmYdZf6/QF/C48Tbb/WdpsCbsgtyPPlczGlr/t6PV36mkbEVMOI11C+w90hm+RZVmNb62hOYudE6WQ==","signatures":[{"sig":"MEYCIQCD+nc4DvQcWP8tqsM2nN8gPKINOE4jqjVnGeCDiYdo0AIhANIw4IGUPXBY0B/94+6mi+ZRUm16pSmbQmBWFZ0px6o6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.60","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":697952},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"de84de76e7cadc97db0ba02d3ec7697f827ca611","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.60_1783368850589_0.8872867855992685","host":"s3://npm-registry-packages-npm-production"}},"0.1.61":{"name":"@fusengine/harness","version":"0.1.61","license":"MIT","_id":"@fusengine/harness@0.1.61","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"5e95b5b5fd09538d3270b7f9b3b89c93c63041ce","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.61.tgz","fileCount":98,"integrity":"sha512-Tga/WnjlkSdPSGBT+3tTnLftWmPggj8YnPv3brbLT0A8rt399T3pUdRc0P3JsuyT72bx/oohhdrP/6+IjOv6Kw==","signatures":[{"sig":"MEUCIQC8TmByoFhV6Ba2fwJLD4xZT724kmYD0ZwYejRwoxg97AIgQCUymfIJG0WL6u7VhQFuR06mE+kCqgspQXF9g2jCnKM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.61","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":699899},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"c8e5d5e403b0a4af95626820fe4848d724c03da8","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.61_1783430043674_0.1211005012494406","host":"s3://npm-registry-packages-npm-production"}},"0.1.62":{"name":"@fusengine/harness","version":"0.1.62","license":"MIT","_id":"@fusengine/harness@0.1.62","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"a1b6eb31c6fba191021e798fb4a9e96ad0fe868a","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.62.tgz","fileCount":98,"integrity":"sha512-K3xDaxacC5GUdnXGW5HMFPzOmOjZcYp2eHd5r3m2hGgQPISMAwJvry756zKo13TNMzYZ9nwYrlur1R+mCboqlg==","signatures":[{"sig":"MEUCIGAko5IhvoVt6EKlcZ6s0o7hofZxlUOCriRX+nSUYMuSAiEAjgY6BeXoVeJclcUppkfpe/1EYp6w5n6vGuAeoX6IQNg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.62","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":703824},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"6b0828289f5ba1638ceeed388adb3542570afaa3","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.62_1783620704329_0.23491432625632203","host":"s3://npm-registry-packages-npm-production"}},"0.1.63":{"name":"@fusengine/harness","version":"0.1.63","license":"MIT","_id":"@fusengine/harness@0.1.63","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"af7689543d8156290b54ee91beee3bb5f1bd630b","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.63.tgz","fileCount":98,"integrity":"sha512-b1K6SMmTUlIJW6w8slst/CAwuSHIxfmyOVQAinJoVVgS+GqNqc0TA/21j0lVuP/2zPbeToFZimBe5nEWDVn87w==","signatures":[{"sig":"MEQCIEKqlV17kG0DPCHYmhTZvkcxvGT0osKrSgatz1sstPslAiAG+CyFHpIqT4xuqqtc2k67kyi3aTl5Y7eKeOmF7MJl8Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.63","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":704424},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"ee5af1a899e46f7acb020c831f395feeb298b6d0","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.63_1783636913941_0.9550967534534418","host":"s3://npm-registry-packages-npm-production"}},"0.1.64":{"name":"@fusengine/harness","version":"0.1.64","license":"MIT","_id":"@fusengine/harness@0.1.64","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"83684b7bf2371fad8603a1770dfa239b01f7bfcb","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.64.tgz","fileCount":98,"integrity":"sha512-Wa0i3BpxC6wxY3s5fBSmmkav02cXHAhFvrZwTJLogcpVUc5MBjhTGa/ov30mJ/GpTdKlKpa6uBubK19cjdZhHA==","signatures":[{"sig":"MEUCICYzsU1JzTdrVUZPr2NkZFvJVBESjzIluHaLrml0vhYVAiEAg2E9xzeu9Ja4cl0YHP7mgBY3gdzEHkJPIeL4zrW0CJQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.64","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":708294},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"773c1a66d8ee59163fed07eaaf27c848ebb4def1","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"figures":"^6.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.64_1783669185622_0.3100876884187542","host":"s3://npm-registry-packages-npm-production"}},"0.1.65":{"name":"@fusengine/harness","version":"0.1.65","license":"MIT","_id":"@fusengine/harness@0.1.65","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"bdf3fd0ee016291b5b13001c8a3b5ff51057479e","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.65.tgz","fileCount":98,"integrity":"sha512-GCHiYCgvTzeCAaC5cSbheuTOmVESMMKDx1jJ3qCDvW6ZRlf1gSO4iqiYLG1mc1G7HmP+Ge1Y9Jy5oqfpdaD4sw==","signatures":[{"sig":"MEYCIQDuAHBPP/TU+wzZsutiJbK6zAMmV9ILPaeBXJfBdHHJ6QIhALW6rFIJrGmFW0nhLluGB88bnELsODONXkZZ2PRc3pVl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.65","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":713485},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"79423578c58ab6a899cb31c9e3de166acd7e218d","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"figures":"^6.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.65_1783675779310_0.8204160583675892","host":"s3://npm-registry-packages-npm-production"}},"0.1.66":{"name":"@fusengine/harness","version":"0.1.66","license":"MIT","_id":"@fusengine/harness@0.1.66","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"1d3bdff9bd5d3d6afb163a5d7258e2a8a08da0d5","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.66.tgz","fileCount":98,"integrity":"sha512-fdnG69HU4ybpNNCtLy3H99VQn7UBEEizTgApoksdmEjEIBxaZHz1yJaOy56O+wDozNDUe2GOlxnhRPdcx+scRg==","signatures":[{"sig":"MEUCIQD6/n38aVxZ4OWcmQywwlgT62EOBi6gTh2QvimgN5GL1QIgCjKY0dvyIeKhD/jgghDKhs9MR7ezZmZLF87cNvANFME=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.66","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":715973},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"96ea669c12ffb79dc7241594debd549732a6d466","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"figures":"^6.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.66_1783706190941_0.9985945990397647","host":"s3://npm-registry-packages-npm-production"}},"0.1.67":{"name":"@fusengine/harness","version":"0.1.67","license":"MIT","_id":"@fusengine/harness@0.1.67","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"1841c196860d1fe4144f3ff249e766d47c90d899","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.67.tgz","fileCount":98,"integrity":"sha512-ROIpdp3O+DRD/gjpPYevdwxErCjrLbIur1tGu3PrgSLTDZ0P79eyDpg0bDnOSfL3xy1+X4JO6I37pt54qSQb9Q==","signatures":[{"sig":"MEQCIAjBy50vZKso8bpROsUB2rvfcz5mmzpvtogxICT0RZaWAiAwP+HHJDJwx7srnzISzWD5IbjskG8Us5YlZkLNDPE78A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.67","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":720507},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"96069260fece17ce71b6a9e9202fb902fa632f1c","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"figures":"^6.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.67_1783769461818_0.6592504491153781","host":"s3://npm-registry-packages-npm-production"}},"0.1.68":{"name":"@fusengine/harness","version":"0.1.68","license":"MIT","_id":"@fusengine/harness@0.1.68","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"1927f0c86e2cf4386a8e61b9d71bfd64351356c7","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.68.tgz","fileCount":98,"integrity":"sha512-q5MvTb4py2CFHUg9q+LrGiLcURnD2mb/hcYZMVj1K9MWWm+U+2LgXt5tE+4XW9wDuIwwoxhiZEnVDfealAuErQ==","signatures":[{"sig":"MEUCIEJ2O7yiAL70alXWn5JeWsF0B0fv4w0Yhm0HL4FUu6RVAiEAlXtSqj2MyaAtRFHMELIATNQ6XxEC/v35HisKrdkLPXo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.68","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":724454},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"d5e8d3b1db1ba4740f3ab8527eae72583015d7dc","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"figures":"^6.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.68_1783785022706_0.7459146628692341","host":"s3://npm-registry-packages-npm-production"}},"0.1.69":{"name":"@fusengine/harness","version":"0.1.69","license":"MIT","_id":"@fusengine/harness@0.1.69","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"f19e986aaafdd896c2bb74e907be8bd65074e207","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.69.tgz","fileCount":101,"integrity":"sha512-4vbJ4v9+/CwAnZipDbptsIQ8m4AZV6XQcex4nYREDlgqwtp68hmOqoWs6oT+yFuKqv8uJhG0Qp53j3b+VesIww==","signatures":[{"sig":"MEUCIHPYbcEhAA1HOJRHM0iYc3owDw6suplzsl4qUgSQMRTHAiEAwlpJNV83fq/xrFTe4CM/18rQVPyxU5LeqLba7utzOMo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.69","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":856145},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"d38d403de83a25af2debfacbeae3ef0c600792d7","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"figures":"^6.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.69_1783806776955_0.7771939412166695","host":"s3://npm-registry-packages-npm-production"}},"0.1.70":{"name":"@fusengine/harness","version":"0.1.70","license":"MIT","_id":"@fusengine/harness@0.1.70","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"643be75b807f263578081841e443d7e332fd60fb","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.70.tgz","fileCount":101,"integrity":"sha512-ymj2/jXv7xiEg0FpbzrNvXMHesSDB6ayNtQBl9c+Oe7IBPssQ86icrJyl0nbhshRVsl/YxQn0jAxJU3iMyfXqA==","signatures":[{"sig":"MEYCIQCWwmKhyhaDzyRwWvK9/DD1Wj4WOkd+wEtkBeZxAcMfnQIhALcsAdARMS4+68W4RN5+6247rM/lGsOBzgvJGsempt7w","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.70","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":858007},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"7830bd553034906b5ffc8107e9d91c8caa57f9b8","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"figures":"^6.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.70_1783809504712_0.7378627426494042","host":"s3://npm-registry-packages-npm-production"}},"0.1.71":{"name":"@fusengine/harness","version":"0.1.71","license":"MIT","_id":"@fusengine/harness@0.1.71","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"9bae822d3e19c520fca49b1c5f129e8b04a25a76","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.71.tgz","fileCount":101,"integrity":"sha512-qGgWBcIrHkNWUSMiNLTsYm3h3C9Oa/I5fDjWrOqx49NXcorHi6DWolRTY/DTCO9MKulHqeQNYH7d/H2REh4GDA==","signatures":[{"sig":"MEQCIE6wskV1KdwnN3OUZmnIGkRain0UE1uQzmc3+c53AjEdAiA6meljts+LGmVUG76SOMKuQGICWbNAF12J3LBfOOwJaA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.71","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":862571},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"4884a9347bdd418aab395d10369ea605cca56247","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"figures":"^6.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.71_1783850727159_0.6529680107740972","host":"s3://npm-registry-packages-npm-production"}},"0.1.72":{"name":"@fusengine/harness","version":"0.1.72","license":"MIT","_id":"@fusengine/harness@0.1.72","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"d2b6ce8272e65bd8de91718ecb086dfc834a1589","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.72.tgz","fileCount":101,"integrity":"sha512-E+OEfA/ayyYy7O06dtw83TjuHmGDlR1TqtdMhZ3o7ZJsudlzCaqw0NccV8hjW39T1ERFyWxdM/MtFbPaSW+ZKg==","signatures":[{"sig":"MEUCIQDdaVzx7PD2okguPr3RpkraQPKCGw1zF6ogsjq2SC8SdQIgLL/ni7bwVUShzpzHXeOCG+J9rk32ArATlB9o53vWdaQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.72","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":862923},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"839e8002c232ac29ddf09a87a465641fc8bf7960","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"figures":"^6.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.72_1783850988123_0.2901521426113396","host":"s3://npm-registry-packages-npm-production"}},"0.1.73":{"name":"@fusengine/harness","version":"0.1.73","license":"MIT","_id":"@fusengine/harness@0.1.73","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"7bf6c4146d1faf1801bd32f9907769c235260219","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.73.tgz","fileCount":101,"integrity":"sha512-FpUMQpEAZJUh7w1OT8FbFKSFs/Xr681YWPJcRBKrtdLSWLc9Fm8NMNYDKr0jDwOJJUBWkSOjpnXUqws9bxQYnA==","signatures":[{"sig":"MEYCIQCCVGPkzai3m7xwo65j0NXd60+D0HBi/xoZgktsTr6CPwIhAPt4vrN8pN8Jq/GtA1796DS3nfWlhfqfIJWSiAC5slIt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.73","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":862863},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"0dee29b5d61e5e66f394bf5cae2d1fb56243141e","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"figures":"^6.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.73_1783971551717_0.7475117648579725","host":"s3://npm-registry-packages-npm-production"}},"0.1.74":{"name":"@fusengine/harness","version":"0.1.74","license":"MIT","_id":"@fusengine/harness@0.1.74","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"f784e953939b94e1f194d9fb82a7b6a9662d62a9","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.74.tgz","fileCount":101,"integrity":"sha512-cPAiMW6JhYaWATcnnj5tvW7OwRDbwpc9Si5sWtY6Zzdqd0gYIzgzh1hskMd/OIDM+UPzfxhEW1xiSr4j2T8XoA==","signatures":[{"sig":"MEQCIGd3fuzKCZupnlchP6wAgwz7MoFxcPMDS/eZMctMormjAiAPmeg3v0hbNKEXrzPeLU2T2y3hTJqJrPXWs/vqB96yeg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.74","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":863172},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"baf6f289b5ec25a98e8163b41670d4ceb658cf64","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"figures":"^6.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.74_1784187121570_0.9221216667928889","host":"s3://npm-registry-packages-npm-production"}},"0.1.75":{"name":"@fusengine/harness","version":"0.1.75","license":"MIT","_id":"@fusengine/harness@0.1.75","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"035e2d54ac8fb9f0c13c63f5ede38cba1044b0d4","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.75.tgz","fileCount":101,"integrity":"sha512-TEN4OxDoYgB54V91arvik28bAtUHNWK/f3BlVcdgGE6eQvYhu2XSqQvCGvKyEgoeRNeC4QK0umyq4rtwfsWK6A==","signatures":[{"sig":"MEYCIQCYgidM4romRaWq7pilksN6AFhcerreqs5sOpDZOKOzLwIhAKFtiKc3zsBdPzraQgqEaiFzCidrbpNgsFk/TatxZ70o","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.75","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":871696},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"037100f26ff0be9e4f80e4a6d39d06bf3197f93c","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"figures":"^6.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.75_1784317823384_0.18969188003356297","host":"s3://npm-registry-packages-npm-production"}},"0.1.76":{"name":"@fusengine/harness","version":"0.1.76","license":"MIT","_id":"@fusengine/harness@0.1.76","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"6e30955df3dbca82c5d9e83ae31ad2cb209c9fd9","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.76.tgz","fileCount":101,"integrity":"sha512-dsJ48Rr3lhmFO5rFR8nwKiiHg5bDVO/ksYnWUFlTIQTv6/YOHHleZkLeHX1hPPhVAgiS7NhAF07C7Y8ewAA5Zg==","signatures":[{"sig":"MEYCIQCMfbL0JTEq8/AVLAEWerzy8qnev1GuUUanfzCKp55JlAIhAObqxEnhm9sKgIBp5PIvGTlaN/KyS6+5dX9GcPkVqezQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.76","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":871920},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"eabff0488fd81c09f52b82165b085ea793d8437a","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"figures":"^6.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.76_1784318777025_0.46780863982315934","host":"s3://npm-registry-packages-npm-production"}},"0.1.77":{"name":"@fusengine/harness","version":"0.1.77","license":"MIT","_id":"@fusengine/harness@0.1.77","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"728cd2beaeae76a2cbe16c667be1b198c49af2a1","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.77.tgz","fileCount":101,"integrity":"sha512-DDzHQx6/yLEjkn4+6DCPi5LoAXjDp0jp0xZBvKTq8YdwSBSQlsGwEUtRDVxwo2YDIYJFz883asW8VmHoxwMFNA==","signatures":[{"sig":"MEUCIBMtgRLQtVd0kL9ZFBmk+lZ9b0EQA+u6Uketb1QEFA7DAiEAkWxVlRBsxUKm0UaPqRwLfxgZbEPGrA2fW6IdkQBw3Zc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.77","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":873160},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"ed8b0bd2c6dbac0f6108f35affa241377b0afc04","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"figures":"^6.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.77_1784369695956_0.6802086033234822","host":"s3://npm-registry-packages-npm-production"}},"0.1.78":{"name":"@fusengine/harness","version":"0.1.78","license":"MIT","_id":"@fusengine/harness@0.1.78","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"4b5666f36c031cb43da71b34aa2a0a8b85ce33b7","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.78.tgz","fileCount":101,"integrity":"sha512-rEG7j2Z3TQF3kEijLPzRp9/y60At8RF/XZwGX/ayWyz7Ei/glroRf4feiETcleXK/1t21oyZVp3uFqfWkGGO5Q==","signatures":[{"sig":"MEUCIEkv5MpjCe6ZGrxMF8gw6hBCGgUyZtNo2PTdPmzGvlLSAiEAlyhvQH4lXW+VijpTQyUVB9LZxsd34wVaT4qDW/nZaE8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.78","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":879424},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"7f9e13d6bf65dfd996e3b4d897652d86a896c77f","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"figures":"^6.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.78_1784451810539_0.8500387026515024","host":"s3://npm-registry-packages-npm-production"}},"0.1.79":{"name":"@fusengine/harness","version":"0.1.79","license":"MIT","_id":"@fusengine/harness@0.1.79","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"12cd70eb42f2bb086b0ccacbbefdadc640be5f58","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.79.tgz","fileCount":101,"integrity":"sha512-EE6ZkYv2N/aGYkyKP3jLrrSSf2Gloc5/LA4uEzdjnWkMn6XCyq0gQxVKG8wKgGDR2eerlwBY78S7m+gcg7g3jA==","signatures":[{"sig":"MEYCIQDh8NcMkhVs5ycja7rpfkwJITByhcDTsOUR1an/N7ErZAIhAPE9qyPw4yeIpN80gtQhztbNGLYepthpph5iZ6uCEExb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.79","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":903390},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"d7c3360cf0bfc4db46dc1bb7228561089477a3be","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"figures":"^6.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.79_1784470955697_0.2153524496315804","host":"s3://npm-registry-packages-npm-production"}},"0.1.80":{"name":"@fusengine/harness","version":"0.1.80","license":"MIT","_id":"@fusengine/harness@0.1.80","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"c36a03bbd225fff70efa99d757fd5e2864e7d543","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.80.tgz","fileCount":104,"integrity":"sha512-l07njHn5C29n9aroHxgm/Ivt4sXJnPN6ZnJf6H83GFlLCrDTMMZPuc325xyRqLcDfCSas6SRBJjQPxXwK4TTPA==","signatures":[{"sig":"MEUCIQCJhFFbKQMYBPJtlNHQC5GN2yplH3Di/CFoqke0dhsRHQIgIaFNYOoKOnbKZ8epxD+p32NozEoG8Q8fiQcMHO+o2d8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.80","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":917827},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/kimi":{"bun":"./src/adapters/kimi/index.ts","types":"./dist/adapters/kimi/index.d.mts","import":"./dist/adapters/kimi/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"3f8e459b5dfc1adf21d7ccd5177f024b55b81e60","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts src/adapters/kimi/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"figures":"^6.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.3","typedoc":"^0.28.19","@types/bun":"latest","typescript":"^6.0.3"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.80_1784734234526_0.5938012389882834","host":"s3://npm-registry-packages-npm-production"}},"0.1.81":{"name":"@fusengine/harness","version":"0.1.81","license":"MIT","_id":"@fusengine/harness@0.1.81","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"23d45eaf141b789b6c4320e9d76caf3aed72a214","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.81.tgz","fileCount":103,"integrity":"sha512-hPl433kuzGmoEA2U7hW1MhXbT8x76pGNp38thj3Ms21gGlTR91lJldkmdKpLn9bXxWXQNGVUxqfGLPDrODRU5Q==","signatures":[{"sig":"MEQCIAh38lqyr6nhYjZcOQdklSJoV2bogMgvR3vAjKV+OP62AiA7SvkZ/hQg2oA5fMYhEMDsa0qcKhJfcyM1/MqFmxVagQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.81","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":990141},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/kimi":{"bun":"./src/adapters/kimi/index.ts","types":"./dist/adapters/kimi/index.d.mts","import":"./dist/adapters/kimi/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"3cf7c0fda33510cafe7f8fd1dc4a50a1ab33594c","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts src/adapters/kimi/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"figures":"^6.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.13","typedoc":"^0.28.20","@types/bun":"latest","typescript":"^7.0.2"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.81_1784845910142_0.32626372230240586","host":"s3://npm-registry-packages-npm-production"}},"0.1.83":{"name":"@fusengine/harness","version":"0.1.83","license":"MIT","_id":"@fusengine/harness@0.1.83","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"f5ba192d3b362a21571032adfb5ce0b3f603fd82","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.83.tgz","fileCount":103,"integrity":"sha512-ohZU+xSqxLATPBskOwYURDzNuzoaGPT7zAF2vqQdXkgkZwt3wzXQbM42+5Y/ZXIYqhMN1fBsALjz8rroiJQOKQ==","signatures":[{"sig":"MEUCIGrn5UPPECov5s+LLbQn7YdOSQ7cgl4cumEUfsE1Ork2AiEA8pUMTseRkTmcfw5Swnu2ur+wLI7ccrCTWqZ9UJLs5yo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.83","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1003391},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/kimi":{"bun":"./src/adapters/kimi/index.ts","types":"./dist/adapters/kimi/index.d.mts","import":"./dist/adapters/kimi/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"6933260d4a83bca12a31df3e7e1b27b2c9b13879","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts src/adapters/kimi/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"figures":"^6.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.13","typedoc":"^0.28.20","@types/bun":"latest","typescript":"^7.0.2"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.83_1784893565916_0.4486963382922802","host":"s3://npm-registry-packages-npm-production"}},"0.1.84":{"name":"@fusengine/harness","version":"0.1.84","license":"MIT","_id":"@fusengine/harness@0.1.84","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"007521848b4a209b4ba5524e9b4e6219766e1ff8","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.84.tgz","fileCount":103,"integrity":"sha512-JacFSmEugFh94MbhzNBeHa3VuyUm9xfWgUhedX4mRgD85pw7cXlgoCtc5m4+EyXzojmp1DVo8MiGQu4nUQ+rbQ==","signatures":[{"sig":"MEQCIERsWDOh18Hzvaa8jqbilj2i/HnmcjUR4XmO41BrWLWvAiA3qIg+rMzPAhy/lpvBMSMsu2rB9qyxlCIthfncLW17sg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.84","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1024241},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/kimi":{"bun":"./src/adapters/kimi/index.ts","types":"./dist/adapters/kimi/index.d.mts","import":"./dist/adapters/kimi/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"cda7ef8c2f909d755cd1b36ca5e96bcd4d7a46eb","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts src/adapters/kimi/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"figures":"^6.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.14","typedoc":"^0.28.20","@types/bun":"latest","typescript":"^7.0.2"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.84_1785313763550_0.682067036255565","host":"s3://npm-registry-packages-npm-production"}},"0.1.85":{"name":"@fusengine/harness","version":"0.1.85","license":"MIT","_id":"@fusengine/harness@0.1.85","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"609c16ed39f401462e8ba60e77b154b42c1c73e5","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.85.tgz","fileCount":103,"integrity":"sha512-q0A176Kf89QSdXGpZSxoWFNUxvq8qMo7beKn7ZasVvArlaqdP5v1n5j028aM4IwJuRbdWpJ7GhVeoJhDNe6Few==","signatures":[{"sig":"MEQCIGXDbFasiaMdayPdSn7quB6TnrgkRWv7t2h1DmQCW5LCAiAXL1V5m+ISinOLW9VprFslFrqeKArfLiajr4/ADQOumw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.85","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1024912},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/kimi":{"bun":"./src/adapters/kimi/index.ts","types":"./dist/adapters/kimi/index.d.mts","import":"./dist/adapters/kimi/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"0bb5507137582e8d3094dc1c6f9f9cc5da09ad91","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts src/adapters/kimi/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"figures":"^6.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.14","typedoc":"^0.28.20","@types/bun":"latest","typescript":"^7.0.2"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.85_1785317242970_0.7070250743685262","host":"s3://npm-registry-packages-npm-production"}},"0.1.86":{"name":"@fusengine/harness","version":"0.1.86","license":"MIT","_id":"@fusengine/harness@0.1.86","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"ef61555e846be81ab96a002a7c81b24cdc2ddd9c","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.86.tgz","fileCount":103,"integrity":"sha512-364WFbJa2SWPVQPqh5jhaLbzxwzxkGx7dzQTOZzxehH/lGjg4NYOVbyQYOxxIKToKFF/ldH9UUNWXQhN8lWPmw==","signatures":[{"sig":"MEUCIQCE4xHzew7EgRy/sfNmxjIlyuPvRSpwBvBMmQRhI6c+NwIgDPjMHULn2CzUWy3K3EqffVkA1SzeRord+i8qa/f/7/E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.86","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1031187},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/kimi":{"bun":"./src/adapters/kimi/index.ts","types":"./dist/adapters/kimi/index.d.mts","import":"./dist/adapters/kimi/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"c7fba548542e72b0b941d71359fc1bc9637be301","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts src/adapters/kimi/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"figures":"^6.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.14","typedoc":"^0.28.20","@types/bun":"latest","typescript":"^7.0.2"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.86_1785328207316_0.8760744537199903","host":"s3://npm-registry-packages-npm-production"}},"0.1.87":{"name":"@fusengine/harness","version":"0.1.87","license":"MIT","_id":"@fusengine/harness@0.1.87","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"733397373aaddd9651111ee9ea6b0908cd7eb78e","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.87.tgz","fileCount":103,"integrity":"sha512-3z4QpNirb/pJk8fmyMds24YWszHeKmEnKGYFBXRCOHM5L8Vh2oeo1AWIOqdxVzJGcYsHOrA+/VTiGYx3OiZrIw==","signatures":[{"sig":"MEUCIESTsZhSnAvciUr685llH5Q4W2NjD6wk5iaAlV0UBMq9AiEAmAEs6naig3kK+HrtiNtWeDZzbEc3NUP03HbLSGq3Aas=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.87","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1035906},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/kimi":{"bun":"./src/adapters/kimi/index.ts","types":"./dist/adapters/kimi/index.d.mts","import":"./dist/adapters/kimi/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"86db9931e5079cd363c5ef3eb1011507dc697a4e","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts src/adapters/kimi/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"figures":"^6.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.14","typedoc":"^0.28.20","@types/bun":"latest","typescript":"^7.0.2"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.87_1785441174310_0.1809261524074972","host":"s3://npm-registry-packages-npm-production"}},"0.1.88":{"name":"@fusengine/harness","version":"0.1.88","license":"MIT","_id":"@fusengine/harness@0.1.88","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"c55b106d4b7d009bd113a63def9bcb46eb7d078e","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.88.tgz","fileCount":103,"integrity":"sha512-wGESgbXiDjLFhRx7pD1Ahj8MrSlSEZq/d7gWB/D1Y0EQTrDQFJ9h9vmNfJ9Ab3ht/TNNdsdMtL9d3iD336JZrg==","signatures":[{"sig":"MEYCIQD2zEKV2a9NWaABrYb7JXdbLGP4XjvQDQvB4CnaNdBy8QIhAJkOOik06HqaRBWQq/faYxhjhV5HV5SuqcwgHRWq41Ae","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.88","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1070019},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/kimi":{"bun":"./src/adapters/kimi/index.ts","types":"./dist/adapters/kimi/index.d.mts","import":"./dist/adapters/kimi/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"7956b3d23ffb9f175bb0b072a48e6c27a213a143","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts src/adapters/kimi/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"figures":"^6.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.14","typedoc":"^0.28.20","@types/bun":"latest","typescript":"^7.0.2"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.88_1785756091386_0.2823575488732708","host":"s3://npm-registry-packages-npm-production"}},"0.1.89":{"name":"@fusengine/harness","version":"0.1.89","license":"MIT","_id":"@fusengine/harness@0.1.89","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"c177188adf392dc4a25ed6d831322179ea5ff233","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.89.tgz","fileCount":103,"integrity":"sha512-bcr2yLFu0DwNLzGvKZDohCRJDMo2BfHUMCs/AFRPKzuzqJ3jtmntjG7mQSaDxbCLHDPUQblICnCS24+7C7ilPw==","signatures":[{"sig":"MEYCIQDXTVmCYkZB5jVn5m4C8hZWL2Hr+S7hyBRqXPvevecX1wIhAP+PpBCj9cFMlqxCRLYV5u9FsStvD8CBBCgu+mKOsscz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.89","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1070495},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/kimi":{"bun":"./src/adapters/kimi/index.ts","types":"./dist/adapters/kimi/index.d.mts","import":"./dist/adapters/kimi/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"b2a831e765be68da992db486c832d1c7efda5672","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts src/adapters/kimi/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"figures":"^6.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.14","typedoc":"^0.28.20","@types/bun":"latest","typescript":"^7.0.2"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.89_1785757170494_0.7247969146711994","host":"s3://npm-registry-packages-npm-production"}},"0.1.90":{"name":"@fusengine/harness","version":"0.1.90","license":"MIT","_id":"@fusengine/harness@0.1.90","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"6b288b76e022a40ec3c0226f1c8d3cd8442998d0","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.90.tgz","fileCount":103,"integrity":"sha512-2JEVkwWoY5TcW/xHtmBK6yHs06DK2eRIM1PoLszcKf75zcgJ8aA8dvFBpiGcaRByr+J0Ljc1EugKyof7FRnlPw==","signatures":[{"sig":"MEYCIQCaeoyBTTWu+bl/ybMrqY2+nfczkWCcGPVBj13es0E4fAIhAKN4cx+FSmTmVXXs3H2PDAa16gyMGwRJw3Y8elOtGpCt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.90","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1077141},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/kimi":{"bun":"./src/adapters/kimi/index.ts","types":"./dist/adapters/kimi/index.d.mts","import":"./dist/adapters/kimi/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"741a711068c2d167fb6456dc04d924fa405c4334","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts src/adapters/kimi/index.ts --dts --format esm --clean --out-dir dist","docs:api":"typedoc","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"figures":"^6.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.14","typedoc":"^0.28.20","@types/bun":"latest","typescript":"^7.0.2"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.90_1786559510472_0.6977293036896601","host":"s3://npm-registry-packages-npm-production"}},"0.1.91":{"name":"@fusengine/harness","version":"0.1.91","license":"MIT","_id":"@fusengine/harness@0.1.91","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"810360e012ece824b011c5cd66feb8046631305a","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.91.tgz","fileCount":485,"integrity":"sha512-s+k06GVKPn7cluXgGgulVj4th0puJCwTMNoICr6W/D2QQZnGqLpDfczxT5i1tpWqLFyg1Zuig0aqhGp5fY/Uaw==","signatures":[{"sig":"MEQCIDIfNat78MxY1f3q92trJFXJDA+pFvexxnmysK33NvaxAiATHZ02t3MnRBA/QSaT1IenHRt1u95C6dbLGguMC0GTzA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.91","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2166113},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/kimi":{"bun":"./src/adapters/kimi/index.ts","types":"./dist/adapters/kimi/index.d.mts","import":"./dist/adapters/kimi/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"111aa0ae32a4be0e44b8a2d801e4bc008db8872f","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts src/adapters/kimi/index.ts --dts --format esm --clean --out-dir dist","docs:api":"bun install --cwd tools/api-docs --frozen-lockfile && bun run --cwd tools/api-docs generate","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"figures":"^6.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.14","typedoc":"^0.28.20","@types/bun":"latest","typescript":"^7.0.2"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.91_1788246888439_0.13954312208686415","host":"s3://npm-registry-packages-npm-production"}},"0.1.92":{"name":"@fusengine/harness","version":"0.1.92","license":"MIT","_id":"@fusengine/harness@0.1.92","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"192c2c61b47a9879396aa76c2a5d690a5fba4bdf","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.92.tgz","fileCount":490,"integrity":"sha512-MSERiJqAJGlrcSqMCGrVR83ps901p3+oo7Iy+91xMSyZepsH6OnLNpn5ptzgyV19dCgbr7E2kTmzDR01LGcBew==","signatures":[{"sig":"MEYCIQCAJNffJCJg06noOCEJFiApsFgY4XLPcyxocIYn6PvyYAIhANxFZTTcvfYTNu2g26QPCbyoYPa9MwhK6N1A5AyHuMSN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.92","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2224809},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/kimi":{"bun":"./src/adapters/kimi/index.ts","types":"./dist/adapters/kimi/index.d.mts","import":"./dist/adapters/kimi/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"c1d93f5cda4f3e7831b63f6d14a69fcf3e377352","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts src/adapters/kimi/index.ts --dts --format esm --clean --out-dir dist","docs:api":"bun install --cwd tools/api-docs --frozen-lockfile && bun run --cwd tools/api-docs generate","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"figures":"^6.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.14","typedoc":"^0.28.20","@types/bun":"latest","typescript":"^7.0.2"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.92_1788372767173_0.08183439650835456","host":"s3://npm-registry-packages-npm-production"}},"0.1.93":{"name":"@fusengine/harness","version":"0.1.93","license":"MIT","_id":"@fusengine/harness@0.1.93","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"5bdb7152a01f4262da64e138a76b99b807f055f9","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.93.tgz","fileCount":521,"integrity":"sha512-2dML9764F4MDUha/HP5yjA+1HDAbibQG0w3DV988ZGJnvqKguHkV3MGx7721u4MfbZ/DQXQPpUlRN7aEJzKcAw==","signatures":[{"sig":"MEQCIBT9qgdyIHUowTxiLWBPfr1F7OJuk8j9xCejPZQG/TjBAiAXc6d6sboEm3iiNdbwJ6C/d0UO3DNDueDwJDE+eIVGIQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.93","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2408874},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/kimi":{"bun":"./src/adapters/kimi/index.ts","types":"./dist/adapters/kimi/index.d.mts","import":"./dist/adapters/kimi/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"c73ad04983bc5e1501e7d092f01628bce1c21365","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts src/adapters/kimi/index.ts --dts --format esm --clean --out-dir dist","docs:api":"bun install --cwd tools/api-docs --frozen-lockfile && bun run --cwd tools/api-docs generate","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"figures":"^6.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.14","typedoc":"^0.28.20","@types/bun":"latest","typescript":"^7.0.2"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.93_1788433772114_0.5332976292148126","host":"s3://npm-registry-packages-npm-production"}},"0.1.94":{"name":"@fusengine/harness","version":"0.1.94","license":"MIT","_id":"@fusengine/harness@0.1.94","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"b6d7632234f49ec77bae8947ca55a3965a10d724","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.94.tgz","fileCount":521,"integrity":"sha512-N+K+gq7Btz8K5GRwzl1oueGkd8jSMnfBysOKayfa6n5i3uJZIqVSv5Hc41iQ5vrkc9NWMUCPtSR/YSZdyL5Pcw==","signatures":[{"sig":"MEUCIQDz8iuwFPsuAsEE4XItW/yyOglODfxoPqrrEid9CAoo8QIgOdEOofjPalMggGPOAEU8/FuKBZcKh6ECPuCG6WRXW/o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.94","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2416516},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/kimi":{"bun":"./src/adapters/kimi/index.ts","types":"./dist/adapters/kimi/index.d.mts","import":"./dist/adapters/kimi/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"c8ba997528afabea16711bbe1019c080b633a3c4","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts src/adapters/kimi/index.ts --dts --format esm --clean --out-dir dist","docs:api":"bun install --cwd tools/api-docs --frozen-lockfile && bun run --cwd tools/api-docs generate","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"figures":"^6.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.14","typedoc":"^0.28.20","@types/bun":"latest","typescript":"^7.0.2"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.94_1788437507273_0.6245636223465394","host":"s3://npm-registry-packages-npm-production"}},"0.1.95":{"name":"@fusengine/harness","version":"0.1.95","license":"MIT","_id":"@fusengine/harness@0.1.95","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"eb648a57d9cbf41441a4900c3683978c935e851d","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.95.tgz","fileCount":529,"integrity":"sha512-CHFO1XL/8R6mmRCHQuVodbyFMMoD20bRXW/CRkv/CWvyLyqoI1qL82Q1eunf8ZQL1dm1x70O4ul8poWGlzZB4g==","signatures":[{"sig":"MEQCIAt2GiNew514Bg4KIslPaZeVJh8DYoox/Y2fHL7WsPbkAiAG7bgtvonR3ex6qZs/u+vPJI4J39R29dCXzXb2fYpwnQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.95","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2521837},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/kimi":{"bun":"./src/adapters/kimi/index.ts","types":"./dist/adapters/kimi/index.d.mts","import":"./dist/adapters/kimi/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"abbc6b97c0bcfc6303bb7d1cf822f49035e2c0aa","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts src/adapters/kimi/index.ts --dts --format esm --clean --out-dir dist","docs:api":"bun install --cwd tools/api-docs --frozen-lockfile && bun run --cwd tools/api-docs generate","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"figures":"^6.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.14","typedoc":"^0.28.20","@types/bun":"latest","typescript":"^7.0.2"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.95_1788729165672_0.08820965456962204","host":"s3://npm-registry-packages-npm-production"}},"0.1.96":{"name":"@fusengine/harness","version":"0.1.96","license":"MIT","_id":"@fusengine/harness@0.1.96","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"ab3aeefb42c676dc7eef18a8aa5725ba295afb7c","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.96.tgz","fileCount":534,"integrity":"sha512-53xkZPDjwnKTAkGEVOoso1qhXhLd28Aev6IkFk2mLhEsVebC5aeUJGhqZz2GdY6OQOihb6f03jESE83FXrli0w==","signatures":[{"sig":"MEUCICnyQ+gSciP5jwbNfBie9qFFT1GjOIkw7bNV0E/+5R4FAiEAng2cjLDe5j8R4r0yQ7p4WKS5PMAhjHLA6VOqrw7L4DE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.96","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2595153},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/kimi":{"bun":"./src/adapters/kimi/index.ts","types":"./dist/adapters/kimi/index.d.mts","import":"./dist/adapters/kimi/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"f72326b88e00759e08b74cee12fbcfbc983ab067","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts src/adapters/kimi/index.ts --dts --format esm --clean --out-dir dist","docs:api":"bun install --cwd tools/api-docs --frozen-lockfile && bun run --cwd tools/api-docs generate","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"figures":"^6.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.14","typedoc":"^0.28.20","@types/bun":"latest","typescript":"^7.0.2"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.96_1788804213946_0.026099051134750306","host":"s3://npm-registry-packages-npm-production"}},"0.1.97":{"name":"@fusengine/harness","version":"0.1.97","license":"MIT","_id":"@fusengine/harness@0.1.97","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"686bea2d75cdfbe5eab28bb519e9fc9fa5c1fade","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.97.tgz","fileCount":536,"integrity":"sha512-lw+49EUPpSDpLP6eTL6RVHoEXV8O/LwF/RS4IsDtlIGRo3wi4/ZO4cHmoeSxA+68Dos7tSIMRuZR7216XDJQiQ==","signatures":[{"sig":"MEUCIEbYN0K5kkmNdHmCzQA7b0UfAOxfkRDOQP76H0uHD26ZAiEAg4r3eFgfXjtaFzHhEU9tPxI5q8cfC7VJqQ6d6OHvBW8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.97","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2612130},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/kimi":{"bun":"./src/adapters/kimi/index.ts","types":"./dist/adapters/kimi/index.d.mts","import":"./dist/adapters/kimi/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"db97e7fc594be8b4583806b2adb2bcc8f94bbbd7","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts src/adapters/kimi/index.ts --dts --format esm --clean --out-dir dist","docs:api":"bun install --cwd tools/api-docs --frozen-lockfile && bun run --cwd tools/api-docs generate","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"figures":"^6.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.14","typedoc":"^0.28.20","@types/bun":"latest","typescript":"^7.0.2"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.97_1788831027739_0.7170297025505596","host":"s3://npm-registry-packages-npm-production"}},"0.1.98":{"name":"@fusengine/harness","version":"0.1.98","license":"MIT","_id":"@fusengine/harness@0.1.98","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"1773fe33c568d145e8b2aecf4d7d87ace7eae812","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.98.tgz","fileCount":537,"integrity":"sha512-miv5VZszbZulwgmlRAFGPPdP79anWwxNqsqNWcoNQQRt/iO6y8zWOgKrGbioUHRLv3qj6QLTERsjMzwTyYX+tg==","signatures":[{"sig":"MEQCIDCm9VsXaZMDuhU/GMFTHTWLNGxAOV7RYidVLzDEbpqnAiB0VA3gIHgV2ST1+7NsDWFBSoiuKjgi8yXp11HFQx4vSw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDmHgk+WJN6sR2+iff/pNjW4rIPeh0tUEHdEWFy9Ui+YwIgTTBrrj3AE9UzmroLCCb82iSOnnjUppzlIRthde3k5VA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.98","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2618618},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/kimi":{"bun":"./src/adapters/kimi/index.ts","types":"./dist/adapters/kimi/index.d.mts","import":"./dist/adapters/kimi/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"4972a6f6b42ce817cc5a98e01f6874eeef9926c5","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts src/adapters/kimi/index.ts --dts --format esm --clean --out-dir dist","docs:api":"bun install --cwd tools/api-docs --frozen-lockfile && bun run --cwd tools/api-docs generate","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"figures":"^6.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.14","typedoc":"^0.28.20","@types/bun":"latest","typescript":"^7.0.2"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.98_1790562342362_0.9643871732229015","host":"s3://npm-registry-packages-npm-production"}},"0.1.99":{"name":"@fusengine/harness","version":"0.1.99","license":"MIT","_id":"@fusengine/harness@0.1.99","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"homepage":"https://github.com/fusengine/harness#readme","bugs":{"url":"https://github.com/fusengine/harness/issues"},"bin":{"harness":"dist/cli/bin.mjs"},"dist":{"shasum":"c4d8ba9cca679bff2ab0ee719606f2458061be8b","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.99.tgz","fileCount":538,"integrity":"sha512-kYM4erRR7XVBZx0EpzD8c7SMy/yiOD5KK5skztEMT7XsErG0ozg+XiJbyN8DXN88wQDs7mfi7oWv9soURQVdcQ==","signatures":[{"sig":"MEQCIFfIqAB4t4tbkeqB5sFBE50nWZ3dF+sr/hblq01cOJwUAiAZtBFVZosCSIJNFquV7BFGMMwdc2naWjdDc4ZRpGX36g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIE2PEG7UtAju2t2wzMwng3P8+VpfhDVQEvKDikjHXn2nAiAwtuIwnqBaVTnNkrfpdhaPFsj53Wyb7XXVmiEh7Bx3hw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.99","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2627483},"type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/kimi":{"bun":"./src/adapters/kimi/index.ts","types":"./dist/adapters/kimi/index.d.mts","import":"./dist/adapters/kimi/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"2afbcbde0da933f772292e1bce3d36834e922ce6","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts src/adapters/kimi/index.ts --dts --format esm --clean --out-dir dist","docs:api":"bun install --cwd tools/api-docs --frozen-lockfile && bun run --cwd tools/api-docs generate","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"figures":"^6.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.14","typedoc":"^0.28.20","@types/bun":"latest","typescript":"^7.0.2"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/harness_0.1.99_1790582999806_0.8318961735352273","host":"s3://npm-registry-packages-npm-production"}},"0.1.100":{"_id":"@fusengine/harness@0.1.100","bin":{"harness":"dist/cli/bin.mjs"},"bugs":{"url":"https://github.com/fusengine/harness/issues"},"dist":{"shasum":"5eaf320cd2e981b69b1a98b83bec17c1045e53e7","tarball":"https://registry.npmjs.org/@fusengine/harness/-/harness-0.1.100.tgz","fileCount":538,"integrity":"sha512-QVqZXYbi8UyhTo3moyxAfF68NkzjDbpPa4Ko3+BYCH3un66hkFk7KmQB7GNvqhJE84YatTu8wfucL+ggOQb+hg==","signatures":[{"sig":"MEUCIBjOohlHDGEHCExiv77PhI+y9EOVNg83XuH4lwVb0UBBAiEA4ifzDLPU3Bmbz8NE1R3hKUegjEEZpwoWtwwjOCr8mEg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCA/BVBOYjQukk7wr2pDQJ6qPOs2NB7jvahS2WVHEyZlQIgMbefsSxglZg/1MQIPRCSXzSqvDATqEdANpUTTUm9tBY="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fusengine%2fharness@0.1.100","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2628323},"name":"@fusengine/harness","type":"module","types":"dist/index.d.mts","module":"src/index.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.mts","import":"./dist/index.mjs"},"./cli":{"bun":"./src/cli/index.ts","types":"./dist/cli/index.d.mts","import":"./dist/cli/index.mjs"},"./init":{"bun":"./src/init/index.ts","types":"./dist/init/index.d.mts","import":"./dist/init/index.mjs"},"./refs":{"bun":"./src/refs/index.ts","types":"./dist/refs/index.d.mts","import":"./dist/refs/index.mjs"},"./util":{"bun":"./src/util/index.ts","types":"./dist/util/index.d.mts","import":"./dist/util/index.mjs"},"./cache":{"bun":"./src/cache/index.ts","types":"./dist/cache/index.d.mts","import":"./dist/cache/index.mjs"},"./config":{"bun":"./src/config/index.ts","types":"./dist/config/index.d.mts","import":"./dist/config/index.mjs"},"./detect":{"bun":"./src/detect/index.ts","types":"./dist/detect/index.d.mts","import":"./dist/detect/index.mjs"},"./memory":{"bun":"./src/memory/index.ts","types":"./dist/memory/index.d.mts","import":"./dist/memory/index.mjs"},"./policy":{"bun":"./src/policy/index.ts","types":"./dist/policy/index.d.mts","import":"./dist/policy/index.mjs"},"./prompt":{"bun":"./src/prompt/index.ts","types":"./dist/prompt/index.d.mts","import":"./dist/prompt/index.mjs"},"./runtime":{"bun":"./src/runtime/index.ts","types":"./dist/runtime/index.d.mts","import":"./dist/runtime/index.mjs"},"./tracking":{"bun":"./src/tracking/index.ts","types":"./dist/tracking/index.d.mts","import":"./dist/tracking/index.mjs"},"./freshness":{"bun":"./src/freshness/index.ts","types":"./dist/freshness/index.d.mts","import":"./dist/freshness/index.mjs"},"./statusline":{"bun":"./src/statusline/index.ts","types":"./dist/statusline/index.d.mts","import":"./dist/statusline/index.mjs"},"./adapters/kimi":{"bun":"./src/adapters/kimi/index.ts","types":"./dist/adapters/kimi/index.d.mts","import":"./dist/adapters/kimi/index.mjs"},"./adapters/cline":{"bun":"./src/adapters/cline/index.ts","types":"./dist/adapters/cline/index.d.mts","import":"./dist/adapters/cline/index.mjs"},"./adapters/codex":{"bun":"./src/adapters/codex/index.ts","types":"./dist/adapters/codex/index.d.mts","import":"./dist/adapters/codex/index.mjs"},"./adapters/claude":{"bun":"./src/adapters/claude/index.ts","types":"./dist/adapters/claude/index.d.mts","import":"./dist/adapters/claude/index.mjs"},"./adapters/cursor":{"bun":"./src/adapters/cursor/index.ts","types":"./dist/adapters/cursor/index.d.mts","import":"./dist/adapters/cursor/index.mjs"},"./adapters/gemini":{"bun":"./src/adapters/gemini/index.ts","types":"./dist/adapters/gemini/index.d.mts","import":"./dist/adapters/gemini/index.mjs"},"./adapters/hermes":{"bun":"./src/adapters/hermes/index.ts","types":"./dist/adapters/hermes/index.d.mts","import":"./dist/adapters/hermes/index.mjs"}},"gitHead":"7e5569221d47dcec911daffb2706d92d6e6e3e66","license":"MIT","scripts":{"sim":"bun test test/sim/","test":"bun test","build":"tsdown src/index.ts src/config/index.ts src/util/index.ts src/detect/index.ts src/policy/index.ts src/prompt/index.ts src/memory/index.ts src/cache/index.ts src/freshness/index.ts src/refs/index.ts src/statusline/index.ts src/cli/index.ts src/cli/bin.ts src/init/index.ts src/tracking/index.ts src/runtime/index.ts src/adapters/claude/index.ts src/adapters/codex/index.ts src/adapters/cursor/index.ts src/adapters/cline/index.ts src/adapters/gemini/index.ts src/adapters/hermes/index.ts src/adapters/kimi/index.ts --dts --format esm --clean --out-dir dist","docs:api":"bun install --cwd tools/api-docs --frozen-lockfile && bun run --cwd tools/api-docs generate","typecheck":"tsc --noEmit","prepublishOnly":"bun test && tsc --noEmit && bun run build"},"version":"0.1.100","_npmUser":{"name":"brunoazoulay","email":"info@fusengine.ch"},"homepage":"https://github.com/fusengine/harness#readme","repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","directories":{},"maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"figures":"^6.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.14","typedoc":"^0.28.20","@types/bun":"latest","typescript":"^7.0.2"},"peerDependencies":{"@vercel/detect-agent":"*"},"peerDependenciesMeta":{"@vercel/detect-agent":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/harness_0.1.100_1790591594527_0.21213439863040007"}}},"time":{"created":"2026-06-22T19:50:48.525Z","modified":"2026-09-28T10:33:15.141Z","0.1.0":"2026-06-22T19:50:48.908Z","0.1.1":"2026-06-22T20:01:29.452Z","0.1.2":"2026-06-22T20:13:06.484Z","0.1.3":"2026-06-22T20:17:30.495Z","0.1.4":"2026-06-22T20:30:26.487Z","0.1.5":"2026-06-22T20:38:48.345Z","0.1.6":"2026-06-22T20:45:30.900Z","0.1.7":"2026-06-22T20:55:35.735Z","0.1.8":"2026-06-22T21:02:54.383Z","0.1.9":"2026-06-22T21:12:03.944Z","0.1.10":"2026-06-22T21:30:17.099Z","0.1.11":"2026-06-22T21:40:24.923Z","0.1.12":"2026-06-22T21:53:35.820Z","0.1.13":"2026-06-22T22:22:02.464Z","0.1.14":"2026-06-24T15:20:04.697Z","0.1.15":"2026-06-24T15:41:03.456Z","0.1.16":"2026-06-24T16:03:33.161Z","0.1.17":"2026-06-24T16:15:42.762Z","0.1.18":"2026-06-24T16:24:25.011Z","0.1.19":"2026-06-24T16:37:02.642Z","0.1.20":"2026-06-24T17:08:36.814Z","0.1.21":"2026-06-24T17:15:56.180Z","0.1.22":"2026-06-24T17:28:43.531Z","0.1.23":"2026-06-24T17:34:57.861Z","0.1.24":"2026-06-24T18:08:09.249Z","0.1.25":"2026-06-24T20:01:28.256Z","0.1.26":"2026-06-24T20:40:55.016Z","0.1.27":"2026-06-24T21:12:33.083Z","0.1.28":"2026-06-24T21:17:40.580Z","0.1.29":"2026-06-25T07:36:01.918Z","0.1.30":"2026-06-25T09:50:03.322Z","0.1.31":"2026-06-25T12:52:58.802Z","0.1.32":"2026-06-25T20:44:31.521Z","0.1.33":"2026-06-27T11:56:36.372Z","0.1.34":"2026-06-27T12:39:27.974Z","0.1.35":"2026-06-27T16:21:10.787Z","0.1.36":"2026-06-28T15:56:53.334Z","0.1.37":"2026-06-28T16:36:49.537Z","0.1.39":"2026-06-29T19:43:01.241Z","0.1.40":"2026-06-30T15:00:23.542Z","0.1.41":"2026-06-30T17:54:12.177Z","0.1.42":"2026-07-01T05:24:59.763Z","0.1.43":"2026-07-01T06:00:08.267Z","0.1.44":"2026-07-01T16:22:27.044Z","0.1.45":"2026-07-01T16:54:36.778Z","0.1.46":"2026-07-01T17:12:57.209Z","0.1.47":"2026-07-01T20:15:15.783Z","0.1.48":"2026-07-01T22:20:19.751Z","0.1.49":"2026-07-02T08:36:09.175Z","0.1.50":"2026-07-02T23:31:32.372Z","0.1.51":"2026-07-03T00:12:29.504Z","0.1.52":"2026-07-05T10:48:02.208Z","0.1.53":"2026-07-05T11:39:26.569Z","0.1.54":"2026-07-05T12:35:10.092Z","0.1.55":"2026-07-05T14:06:26.877Z","0.1.56":"2026-07-06T11:20:43.335Z","0.1.57":"2026-07-06T13:53:28.868Z","0.1.58":"2026-07-06T15:01:29.957Z","0.1.59":"2026-07-06T16:06:35.354Z","0.1.60":"2026-07-06T20:14:10.746Z","0.1.61":"2026-07-07T13:14:03.816Z","0.1.62":"2026-07-09T18:11:44.555Z","0.1.63":"2026-07-09T22:41:54.138Z","0.1.64":"2026-07-10T07:39:45.809Z","0.1.65":"2026-07-10T09:29:39.471Z","0.1.66":"2026-07-10T17:56:31.137Z","0.1.67":"2026-07-11T11:31:02.010Z","0.1.68":"2026-07-11T15:50:23.077Z","0.1.69":"2026-07-11T21:52:57.113Z","0.1.70":"2026-07-11T22:38:24.884Z","0.1.71":"2026-07-12T10:05:27.329Z","0.1.72":"2026-07-12T10:09:48.323Z","0.1.73":"2026-07-13T19:39:11.862Z","0.1.74":"2026-07-16T07:32:01.823Z","0.1.75":"2026-07-17T19:50:23.598Z","0.1.76":"2026-07-17T20:06:17.232Z","0.1.77":"2026-07-18T10:14:56.137Z","0.1.78":"2026-07-19T09:03:30.682Z","0.1.79":"2026-07-19T14:22:35.863Z","0.1.80":"2026-07-22T15:30:34.703Z","0.1.81":"2026-07-23T22:31:50.318Z","0.1.83":"2026-07-24T11:46:06.079Z","0.1.84":"2026-07-29T08:29:23.791Z","0.1.85":"2026-07-29T09:27:23.208Z","0.1.86":"2026-07-29T12:30:07.469Z","0.1.87":"2026-07-30T19:52:54.491Z","0.1.88":"2026-08-03T11:21:31.534Z","0.1.89":"2026-08-03T11:39:30.721Z","0.1.90":"2026-08-12T18:31:50.678Z","0.1.91":"2026-09-01T07:14:48.598Z","0.1.92":"2026-09-02T18:12:47.377Z","0.1.93":"2026-09-03T11:09:32.283Z","0.1.94":"2026-09-03T12:11:47.451Z","0.1.95":"2026-09-06T21:12:45.884Z","0.1.96":"2026-09-07T18:03:34.149Z","0.1.97":"2026-09-08T01:30:27.920Z","0.1.98":"2026-09-28T02:25:42.476Z","0.1.99":"2026-09-28T08:09:59.940Z","0.1.100":"2026-09-28T10:33:14.700Z"},"bugs":{"url":"https://github.com/fusengine/harness/issues"},"license":"MIT","homepage":"https://github.com/fusengine/harness#readme","repository":{"url":"git+https://github.com/fusengine/harness.git","type":"git"},"description":"Harness-agnostic toolkit for AI coding agents: runtime harness detection (Claude Code, Codex, Cursor, Cline, Gemini, Aider...), pure policy core (env config, project/framework detection, SOLID/file-size limits, APEX freshness, guard patterns, portable pro","maintainers":[{"name":"brunoazoulay","email":"info@fusengine.ch"}],"readme":"# @fusengine/harness\n\nA **governance layer for AI coding agents**: gates backed by cited evidence\n(not vibes), a decision-time lesson memory, verification receipts, and a\none-shot gate metric — ported from a Claude Code plugin into one **Bun-native**\nnpm package. The policy core is harness-agnostic; how much of it actually\n*enforces* depends on the harness's own hook system — see the\n[compatibility matrix](#compatibility) below before assuming parity across harnesses.\n\n```\ndetect → init (writes that harness's hook wiring) → `harness hook` → guards + APEX gates → native deny/ask/context\n```\n\n## Install\n\n```sh\nnpm i -g @fusengine/harness     # for the CLI (harness init/hook/check)\n# or, as a library:\nbun add @fusengine/harness      # Bun reads the TS source directly — no build step\n```\n\n## Quickstart\n\n```sh\ncd your-project\nharness init                              # detects the harness, writes its pre+post hook wiring\nexport FUSE_HARNESS_MARKETPLACES=fusengine-plugins   # (optional) which marketplaces to auto-scan\nexport FUSE_HARNESS_REFS=.claude/skills              # (optional) explicit refs dir, overrides auto-discovery\n```\n\n`init` writes the wiring file for the detected harness (`.claude/settings.json`,\n`.codex/hooks.json`, `.cursor/hooks.json`, `.gemini/settings.json`, or\n`.clinerules/hooks/PreToolUse`+`PostToolUse`) — for Claude Code, Codex, Cursor,\nGemini CLI and Cline this covers **PreToolUse + PostToolUse only**\n(`src/init/templates.ts`); Hermes has no `init` runner because its config lives\noutside the project at `~/.hermes/config.yaml` (`src/adapters/hermes/index.ts:3-4`).\nThe richer lifecycle (SessionStart, SubagentStart/Stop, Stop, PreCompact/PostCompact,\nTaskCompleted, TeammateIdle, PostToolUseFailure, InstructionsLoaded — 14 distinct\nClaude Code hook events in total, `src/runtime/lifecycle/dispatch.ts` +\n`src/runtime/handle.ts:56-80`) is **implemented** in the runtime but only fires\nwhen something wires those extra hook events into `.claude/settings.json` — either\nby hand, or via the fusengine-plugins marketplace this repo is itself developed\nunder (its ~11 sibling plugins each add their own event, `src/runtime/burst-window.ts:5-11`).\n\n**Where state lives** (two separate roots — this changed across 0.1.34→0.1.51,\ndon't assume either the old or the \"everything in one place\" story):\n\n- Session track, deny-loop/one-shot sidecars: **out-of-tree**, under\n  `~/.fuse-harness/state/<8-char-md5-of-project-path>/` (`src/runtime/paths.ts:5-6,41-43`) —\n  deliberately outside the repo so the protected-path guard never has to bless\n  writes to its own enforcement state.\n- MCP/WebFetch response cache and the curated `MEMORY/LESSON.md`-equivalent lessons\n  file: still **in-tree**, under `<project>/.harness/{cache,memory}`\n  (`src/config/layout.ts:15-26`) — `.harness/` is gitignored except\n  `memory/LESSON.md`, which is meant to be committed (`STATE_GITIGNORE`,\n  `src/config/layout.ts:10`).\n\n### CLI\n\n| Command | What it does |\n|---------|--------------|\n| `harness init [id]` | Write the pre+post hook wiring for the detected (or named) harness. |\n| `harness hook <id>` | Runtime: read a hook payload on stdin, gate (pre) or record (post), print the native response. (Hooks call this — you don't.) |\n| `harness check` | cli-mode: check staged files in a pre-commit step, exit non-zero on a violation. For harnesses without hooks. |\n| `harness doctor` | Print the version + resolved path of the harness *actually executing*, and compare it to npm's latest — the fast way to catch a stale global (see Pinning). |\n| `harness --version` | Print the running version (bare, on stdout) and exit. |\n| `harness prd status [--json]` | Read-only, works without `FUSE_PRD=1`. Print each task's router status and sub-task progress. |\n| `harness prd validate <task> [agent]` | Requires `FUSE_PRD=1`. Cross-check a task PRD against agent reports and promote matching sub-tasks/router entries to `validated`. |\n| `harness prd compact <task>` | Requires `FUSE_PRD=1`. Collapse a fully-validated task PRD to its compacted shape. |\n\nEvery invocation writes a `@fusengine/harness vX.Y.Z` banner to **stderr** (never\nstdout — the hook JSON contract stays clean) so you can see which version ran.\n\ncli-mode (Aider / Windsurf / OpenHands), as a pre-commit step:\n\n```sh\n# .husky/pre-commit\nnpx harness check\n```\n\n### Pinning (required for hook consumers)\n\nAny consumer `hooks.json` / `settings.json` that runs the harness via `bunx`\n**MUST pin an exact version** — `@fusengine/harness@X.Y.Z` — never a range\n(`^` / `~`) and never the bare or `@latest` spec:\n\n```jsonc\n// .claude/settings.json — correct: exact pin\n\"command\": \"bunx @fusengine/harness@0.1.56 hook claude\"\n// WRONG — may silently keep running a stale global install:\n\"command\": \"bunx @fusengine/harness hook claude\"\n```\n\n**Why.** A still-open bun bug ([oven-sh/bun#5791]) makes an unpinned `bunx <pkg>`\nprefer an already-installed **global** copy over npm-latest, and publishing a new\nversion updates neither that global nor the bunx cache (`bun pm cache rm` does\n**not** remove the global). A hook wired without an exact pin can therefore keep\nexecuting an old harness indefinitely after you publish a fix. Pinning `@X.Y.Z`\nforces the exact version to resolve.\n\nRun `harness doctor` to see which version is actually executing and whether npm\nhas a newer one:\n\n```sh\nharness doctor\n# @fusengine/harness doctor\n#   running:    0.1.56\n#   package:    /Users/you/.bun/install/global/node_modules/@fusengine/harness\n#   runtime:    /Users/you/.bun/bin/bun\n#   npm latest: 0.1.57\n#   ! stale — npm serves 0.1.57. Pin \"@fusengine/harness@0.1.57\" in hooks.json.\n```\n\nIf `doctor` reports a stale global, clear it and re-pin:\n\n```sh\nbun remove -g @fusengine/harness && bun pm cache rm\n```\n\n[oven-sh/bun#5791]: https://github.com/oven-sh/bun/issues/5791\n\n## Compatibility\n\n**There is no \"runs the same on any harness.\"** Each row is a real ceiling, not\na formatting nuance — read it before assuming a gate that works on Claude Code\nalso works elsewhere.\n\n| Harness | PreToolUse coverage | Lifecycle (Session/Subagent/Stop/Compact/…) | Known limit |\n|---|---|---|---|\n| **claude-code** | Full: `evaluate` + APEX gates via `handleHook` (`src/adapters/claude/index.ts`) | 14 event types implemented (`dispatch.ts`) — fires once wired into `.claude/settings.json` beyond the `init` default | None found; richer lifecycle needs manual/marketplace wiring (see Quickstart) |\n| **codex** | Bash gated reliably; **`apply_patch` edits are now gated too** — the patch text is parsed per file (`adapters/codex/apply-patch.ts`), each hunk runs the file gates and ONE violating hunk denies the whole patch (`runtime/apply-patch-gate.ts`, sim scenario 22 incl. the multi-file smuggling case). `ask` prompts are **downgraded to explicit deny** (`respond.ts`, sim scenario 23) because Codex fails open on unsupported shapes — the deny now carries a `CONFIRM <code>` recourse (see \"CONFIRM code\" under [Beyond gating](#beyond-gating-memory-receipts-one-shot-metric) below). On the PostToolUse side, an allowed patch is fanned into one synthetic per-file event so the SOLID/tracking/post-edit handlers see every touched file (`runtime/post-fanout.ts`), and a non-blocking security advisory fires on the first qualifying file (`securityAdvisoryForPatch`). | Not wired by `harness init codex` (PreToolUse `Bash\\|apply_patch` + PostToolUse only, `src/init/templates.ts:29-38`) — `Stop` (session cleanup + the SOLID/receipt completion check, since Codex never emits `SessionEnd`/`TaskCompleted`, `runtime/lifecycle/stop-core.ts`) and `SessionStart` (plugin agents/commands cache resync, `runtime/lifecycle/codex-resync/`) ARE implemented but, same caveat as claude-code's extra lifecycle above, only fire once the codex-plugins marketplace's own `hooks.json` wires them. | Upstream caveat: Codex itself does not always enforce a correct `apply_patch` deny (openai/codex#27833) — we emit the right verdict; enforcement is theirs. No interactive `ask`. Codex has no native `PostToolUseFailure`; a failure is inferred from the ordinary `PostToolUse` result shape (non-zero exit or an explicit error field only — never a guess) and journaled into the one-shot failure tally (`src/tracking/codex-post-failure.ts`). |\n| **cursor** | `beforeShellExecution` can deny/ask (shell only, `cursor/index.ts:16-21`) | none | File edits are **advisory only**: `afterFileEdit` always returns `allow` + a `user_message` correction on violation — a `deny` there has no proven effect (hook was \"informational only\" at launch, and Cursor's deny-enforcement for file ops is confirmed broken upstream, forum.cursor.com/t/154377). Human sees the message; the model is never re-informed. Platform ceiling, documented in `cursor/index.ts`. |\n| **gemini-cli** | `BeforeTool` denies via `{decision:\"deny\",reason}` (`gemini/index.ts:22-36`) | none | Thin stateless adapter — no session track, no APEX gates wired through it. |\n| **cline** | `PreToolUse` only; block → `{cancel:true}`, non-block → `contextModification` (`cline/index.ts:24-36`) | none | Same as gemini-cli: stateless guard only. |\n| **hermes** | `pre_tool_call` proven: reuses the Claude stdin reader, blocks via `{decision:\"block\",reason}` (`hermes/index.ts:12-36`) | untested — no lifecycle dispatch wired for Hermes in this repo | `ask`/`inform` degrade to non-blocking `{context}` — Hermes \"has no interactive ask state\" (`hermes/index.ts:27-28`). |\n| **kimi** | `PreToolUse` denies via the camelCase JSON channel `{\"hookSpecificOutput\":{\"permissionDecision\":\"deny\",\"permissionDecisionReason\":\"…\"}}` on stdout at **exit 0** (verified live against kimi-code v0.27.0 — exit 2 with stderr = reason also blocks, but is not required) — only `deny` is documented. `ask` is **downgraded to deny** prefixed `[downgraded from ask — Kimi Code has no interactive approval]`, with a `CONFIRM <code>` recourse appended (see \"CONFIRM code\" under [Beyond gating](#beyond-gating-memory-receipts-one-shot-metric) below); `inform` rides plain stdout text at exit 0, never wrapped in JSON. Blocking events: `UserPromptSubmit`, `PreToolUse`, `Stop` (`kimi/index.ts`). | Observation only: `PostToolUse`, `PostToolUseFailure`, `PermissionRequest`, `PermissionResult`, `SessionStart`, `SessionEnd`, `SubagentStart`, `SubagentStop`, `StopFailure`, `Interrupt`, `PreCompact`, `PostCompact`, `Notification` — Kimi delivers them but **ignores any response**, so no verdict can be returned from them. | A **hook** cannot request approval — Kimi's `ask` lives in a parallel, hook-unreachable system (`[[permission.rules]] decision = \"ask\"` in `config.toml`), hence the ask→deny downgrade. Hooks are configured **only** in the global `~/.kimi-code/config.toml` (no project-local hooks file), so `harness init` writes no kimi wiring — copy the TOML snippet from [docs/adapters.md](docs/adapters.md#kimi-code--manual-wiring), and emit **no field** beyond `event`/`matcher`/`command`/`timeout` or the whole config fails to load. **Fail-open by design**: any exit code other than 0/2, a timeout, or a crash lets the call through. Stdin payload is snake_case and carries only `hook_event_name`, `session_id`, `cwd`, `tool_name`, `tool_input.command` and an undocumented `tool_call_id` (unused here) — no `transcript_path`, no `permission_mode`, no `tool_response`. Verified live against kimi-code v0.27.0 for `PreToolUse`/`Bash`; validate hand-written config with `kimi doctor`. Instructions file is `AGENTS.md`, not `CLAUDE.md`. |\n\n## What it enforces\n\nGuard/gate chain evaluated before a tool runs (`src/policy/guards/index.ts`,\n`src/policy/apex-gates.ts`, `src/policy/evaluate.ts`):\n\n| Guard / gate | Fires on |\n|---|---|\n| security | `rm -rf /`, fork bombs, `curl \\| sh`; `sudo` (asks) |\n| protected-path | edits to `.claude/plugins\\|logs\\|cache`, `.git/`, the harness's own state dirs |\n| bash-write | `sed -i` / redirects to code files; `python3 -c` judged on content (mutating script → block, read-only → pass, same as `node -e`) |\n| interface-separation | top-level interface/type/protocol in a component/controller |\n| install | `npm/pip/brew/...` installs (asks) |\n| git | destructive git (`push --force`, `reset --hard`, …) — block; routine git — ask |\n| file-size (SOLID) | a code file over `FUSE_SOLID_MAX_LINES` (default 100) |\n| APEX brainstorm | creating a new file without brainstorming (when flagged) |\n| APEX freshness | `explore-codebase` + `research-expert` not run within the window |\n| APEX doc-consulted | Context7 **and** Exa not consulted this session (a web-only fallback also passes) |\n| APEX solid-read | required SOLID refs (auto-discovered, or `FUSE_HARNESS_REFS`) not read within the TTL |\n| framework sub-skill | framework / shadcn / Tailwind code whose required skill wasn't read this session |\n| Gemini MCP (opt-in) | hand-written Tailwind UI without a `mcp__gemini-design__*` call — only when `FUSE_ENFORCE_GEMINI_MCP` is set |\n| MCP verbosity / cache | caps exa `numResults`; serves a fresh cached MCP/WebFetch result |\n\nA trivial-edit fast path lets a few tiny (< 5-line, non-`replace_all`) `Edit`s\nthrough per window without the full APEX gates (`Write` is never trivial).\n\n## Beyond gating: memory, receipts, one-shot metric\n\nFeatures shipped since 0.1.44, each with its own test:\n\n- **`CONFIRM <code>` — recourse for a degraded `ask`** — Codex and Kimi both\n  ignore `permissionDecision: \"ask\"` (Kimi's own binary shortcuts on\n  `hookSpecificOutput?.permissionDecision !== \"deny\"`; Codex fails a hook open\n  on the unsupported shape), so the harness downgrades every `ask` there to a\n  hard `deny`. That deny now appends a short 4-hex-char code; retyping\n  `CONFIRM <code>` in the very next prompt authorizes that **exact** action\n  once (Claude Code is untouched — its native `ask` still shows an interactive\n  confirmation, no code ever appears there,\n  `src/runtime/confirm/confirm-gate.ts`). Guardrails, each independently\n  testable (`test/confirm.test.ts`, `test/confirm-g0.test.ts`): **G0** no token\n  can be placed while a sub-agent is active for this session (a monotone\n  max-write timestamp, window tunable via `FUSE_CONFIRM_SUBAGENT_WINDOW_SEC`,\n  default 300s); **G1** a token is consumed on first use; **G2** a token\n  expires after 5 minutes; **G3** the token is scoped to the action's full\n  SHA-256 hash, never the 4-char display code (which collides by design — it\n  exists only for a human to retype); **G4** irreversible commands\n  (`push --force`, `reset --hard`, `rm -rf`, `git clean -fd`, `branch -D`, …)\n  are never confirmable, regardless of a valid token; **G5** an explicit\n  refusal in the next prompt drops any pending token. **This is a guard\n  against accidental/hasty denial with no recourse, not a security control\n  against an adversarial agent** — an agent with arbitrary shell access can\n  write the token straight into the session-state file it authorizes from and\n  self-approve, same as it could bypass any other stateful gate this harness\n  keeps outside a sandbox.\n- **Deny-loop breaker** — an identical retried call that was already denied gets\n  a rewritten `[REPEAT] … STOP` message forcing a different approach, instead of\n  looping silently (`src/policy/deny-loop.ts`, `test/deny-loop.test.ts`).\n- **Burst-window dedup** — every deployed plugin registers its own hook, so one\n  real tool call can fan out to ~11 sibling processes; a same-op record within\n  2s is folded into the first instead of re-counted (`src/runtime/burst-window.ts`,\n  `test/burst-dedup.test.ts`).\n- **One-shot gate metric** — every gate outcome (deny or its later fix) lands in\n  a 7-day sidecar keyed by a content-free op hash, so a deny→allow transition is\n  visible (`src/tracking/one-shot.ts`, `test/one-shot.test.ts`).\n- **Verification receipts** — a static-check or test run is captured from\n  PostToolUse Bash output, spanning TS/JS (`tsc`, `bun test`/`vitest`/`jest`/\n  `npm|pnpm|yarn test`), Python (`mypy`, `pyright`, `pytest`), Go (`go vet`/\n  `build`/`test`), Rust (`cargo check`/`clippy`/`test`), PHP (`phpstan`,\n  `phpunit`/`pest`/`php artisan test`), Swift (`swift build`/`test`), and Dart/\n  Flutter (`dart`/`flutter test`); `TaskCompleted` **refuses** a \"done\" over\n  modified code files without a fresh passing receipt — the refusal names the\n  commands of the detected ecosystem (project markers and the extensions of\n  the files changed in the session), falling back to the full cross-language\n  list only when nothing is detected (`src/runtime/lifecycle/receipt-hint.ts`).\n  Commands are matched\n  after quote/heredoc stripping (a tool name mentioned in a commit message or\n  heredoc body is never a receipt) — and the recognised runner must be the\n  LAST command of the line: the unquoted text is split into shell list\n  segments on `;`/`&&`/`||`/a lone `&`/newline (never a bare pipe, which still\n  carries the runner's real output forward), and only the LAST segment is\n  searched, so `bun test && git commit -m x` and `bun test || true` both null\n  while `cd x && bun test` and `bun test 2>&1 | tail -5` both still resolve. A\n  zero-test invocation (`--watch`, `--collect-only`, `0 passed; 0 failed`) is\n  never treated as proof, and static checkers (`tsc`, `go vet`/`build`, `cargo\n  check`/`clippy`, `swift build`) parse their OWN diagnostics so a masked exit\n  code doesn't hide a real failure. A residual trade-off: a truncating pipe\n  (`cargo test --no-fail-fast 2>&1 | tail -5`) can still cut away a failing\n  target's own `test result: FAILED` line — `cargo test`'s parser also counts\n  cargo's own trailing `error: N targets failed` line as a fail floor, but a\n  pipe that removes ALL evidence remains an accepted risk, in exchange for\n  correctly resolving genuine `| tail`/`| grep` pipelines instead of nulling\n  every piped command. A receipt needs POSITIVE evidence (a\n  parsed summary or the tool's success line): output suppression\n  (`2>/dev/null`, ANY output redirection after the runner in its own\n  segment — not just `/dev/null` — for a static checker, a stdout redirect for\n  a test runner, or a pipe after a static checker), `--version`/`--help`/other\n  no-run flags, and silent/ambiguous output never count. **Threat model**: a\n  receipt guards against forgetting to verify and against honest shortcuts (a\n  discarded exit code, an informational invocation, a filtered run) — it is\n  NOT a security control against an agent that deliberately fabricates tool\n  output, same caveat as the `CONFIRM` code above.\n  (`src/tracking/receipt-runners.ts`, `src/tracking/receipt-command.ts`,\n  `src/tracking/receipts.ts`, `test/receipt-runners.test.ts`,\n  `test/receipts.test.ts`, `test/receipt-runners-forgery.test.ts`,\n  `test/receipt-runners-hardening.test.ts`,\n  `test/receipt-runners-evidence.test.ts`,\n  `test/receipt-runners-structural.test.ts`).\n- **Decision-time lessons** — a `MEMORY/LESSON.md` bullet tagged with\n  `[TRIGGERS tool:… path:… error:… keyword:…]` is injected as `additionalContext`\n  the moment a matching call is about to repeat a known mistake, cooldown-guarded\n  (`src/policy/lessons/lesson-gate.ts`).\n- **Failure lessons** *(Claude-Code-only — no `PostToolUseFailure` hook on Codex/Hermes,\n  `src/runtime/lifecycle/failure-lesson.ts:8-9`)* — a tool failure's error message is\n  matched against `error:`-triggered lessons and injected on the spot\n  (`test/failure-lesson.test.ts`, `test/sim/scenarios/17-failure-lesson.json`).\n- **TeammateIdle anti-false-done** *(Claude-Code-only, `teammate-idle-check.ts:9-10`)* —\n  files a teammate announced as changed are checked against disk; a missing file\n  warns the lead before it's treated as done (`test/teammate-idle-check.test.ts`).\n- **PostCompact re-injection** — after context compaction, the reconciliation\n  snapshot is re-sent with a \"reread files before editing\" reminder, deduped per\n  session (`src/runtime/lifecycle/post-compact.ts`, `test/post-compact.test.ts`).\n- **Reconciliation snapshot at SessionStart** — git state, running harness\n  version + drift vs. npm, `.claude/BOARD.md`, and the one-shot summary, each\n  collector isolated so one failure can't blank the rest\n  (`src/runtime/lifecycle/snapshot/index.ts`, `test/snapshot.test.ts`).\n- **Target-aware root-doc injection** — `SessionStart` and `UserPromptSubmit`\n  inject the target's own root instructions doc, not a hardcoded `CLAUDE.md`:\n  `apexDocName(id)` + `harnessHomeSegment(id)` (`src/policy/apex-target.ts`)\n  resolve `AGENTS.md` under `.codex`/`.kimi-code` for Codex/Kimi, `CLAUDE.md`\n  under `.claude` for every other target (byte-identical to the pre-target-aware\n  default). The `systemMessage` label follows suit (`\"AGENTS.md injected\"`\n  under Codex/Kimi) (`src/runtime/lifecycle/session-start.ts`,\n  `src/runtime/inject-context.ts`).\n- **Injection budget cap** — harness-produced context fragments (lessons,\n  snapshot, APEX task context) are capped at ~8000 chars each; owner-authored\n  content (CLAUDE.md/rules) is never capped\n  (`src/runtime/inject-budget.ts`, `test/inject-budget.test.ts`).\n- **Hook simulator** — 18 end-to-end scenarios (payload in, expected verdict out)\n  replayed against the real CLI in both `src` and built `dist` modes in CI\n  (`test/sim/README.md`, `test/sim/scenarios/`).\n- **Codex `multi_agent_v2` custom-agent evidence** — a `spawn_agent` call\n  carrying `tool_input.agent_type` is recorded as `subagent-<agent_type>` in the\n  same SessionTrack as Claude Task evidence, so a Codex explore-codebase/sniper\n  satisfies the APEX freshness gates exactly like a Claude subagent\n  (`src/tracking/session-state.ts`, sim scenario 32b). Recognized\n  agent-launcher tools across targets: `Task` (Claude), `Agent`/`AgentSwarm`\n  (Kimi Code) — each credits its `subagent_type`/`agent_type` toward the same\n  freshness evidence (`src/runtime/activity.ts`,\n  `src/freshness/agent-evidence-record.ts`).\n- **File-size gate judges the real Edit outcome, not the on-disk count** — an\n  Edit on a file already over `FUSE_SOLID_MAX_LINES` used to be denied\n  unconditionally (the on-disk count always won); the gate now computes the\n  actual post-edit line count and allows a shrinking Edit while still denying a\n  computable growth past the limit (`src/policy/file-size.ts`, sim scenario 33).\n- **Codex `apply_patch` fan-out to post-handlers** — each file in a patch\n  envelope becomes a synthetic per-file PostToolUse event (`add`→`Write`,\n  `update`→`Edit`, `delete` no-ops on the Write/Edit-only handlers) instead of\n  the whole-patch shape whose own `filePath`/`content` are always undefined\n  (`src/runtime/post-fanout.ts`, `test/apply-patch-post.test.ts`).\n- **Non-blocking multi-file security advisory** — the same PreToolUse \"read the\n  security skill\" nudge a single Write/Edit gets is now evaluated per file\n  across a Codex `apply_patch` envelope, firing on the first qualifying\n  add/update code file (delete ignored outright) — `additionalContext` only,\n  never a deny (`src/runtime/lifecycle/security/check-skill.ts::securityAdvisoryForPatch`,\n  `test/security-advisory-patch.test.ts`).\n- **Codex SessionStart agent/command resync** — the plugin agents/commands\n  cache under `~/.codex/{agents,prompts}` is re-materialized only when its\n  sha256 fingerprint changed (or a command symlink dangles) since the last\n  apply, otherwise a cheap no-op; agents are copied (Codex won't load\n  symlinked TOMLs), commands are symlinked; a best-effort inter-process lock\n  avoids a torn cache under concurrent session starts (`src/runtime/lifecycle/codex-resync/`,\n  `test/resync-agents.test.ts`).\n- **Codex failure tracking inferred from PostToolUse** — Codex reports every\n  outcome, success or failure, on the same `PostToolUse` event; a failure is\n  classified from an explicit signal only (non-zero exit, an error field —\n  never \"can't tell\") and journaled into the existing one-shot failure tally\n  (`src/tracking/codex-post-failure.ts`, `test/codex-post-failure.test.ts`).\n- **Shell-credited ref reads** — a `.md` SOLID/skill reference read through a\n  read-only shell command (`cat`/`head`/`tail`/`sed`/`rg`/`less`/`more`/`bat`,\n  including inside a `sh -c` wrapper) now credits the same ref-read evidence a\n  native `Read` would, so a Codex teammate's shell-first consultation still\n  satisfies `solidReadGate`; `sed -i`/`--in-place` and any non-whitelisted\n  command are never credited (`src/policy/shell-read-refs.ts`,\n  `test/shell-read-refs.test.ts`).\n\n### Notification sounds\n\nA native OS sound plays on two lifecycle events: the core-scope `Stop` under\nCodex (`stopCore`, since Claude Code already voices its own turn-end via a\nnative `afplay` hook — this harness deliberately does not double it) and\n`TeammateIdle` under Claude Code when there's an actionable notice (a missing\ndeliverable or a sniper reminder). **On by default**; opt out entirely with\n`FUSE_HARNESS_SOUND=0`.\n\nResolution per event kind (`stop`/`permission`/`human`) cascades: (1) a\nper-kind env override path (`FUSE_HARNESS_SOUND_STOP` / `_PERMISSION` /\n`_HUMAN`) if it exists on disk; (2) the package's own bundled\n`assets/song/{finish,permission-need,need-human}.mp3` (located by walking up\nto the running `package.json`, so it survives the flat/hashed `dist/` build);\n(3) `$CLAUDE_PLUGIN_ROOT/song/<file>.mp3` as a last-resort fallback. No file\nresolves → silent no-op. The `permission` kind and its `.mp3`/env var exist in\nthe module for symmetry but have no current call site — permission prompts\nstay native-only on every harness today.\n\nPlayback is native per platform (`afplay` on darwin, `paplay` on linux,\nPowerShell's `SoundPlayer` on win32) and **absolutely fail-open**: an\nunsupported platform, a missing player binary, an undecodable file, or a\nnon-zero exit is swallowed — a broken or absent player can never break a hook\n(`src/runtime/notifications.ts`, `src/runtime/notification-sound.ts`,\n`test/notifications.test.ts`).\n\n### Environment\n\n| Var | Effect |\n|---|---|\n| `FUSE_SOLID_MAX_LINES` | SOLID file-size limit (default `100`). |\n| `FUSE_HARNESS_REFS` | Explicit `path.delimiter`-list of `.md` SOLID-reference dirs → activates `solidReadGate`. Overrides auto-discovery. |\n| `FUSE_HARNESS_MARKETPLACES` | Comma-list of marketplace names whose `solid-*` skill refs are auto-discovered when `FUSE_HARNESS_REFS` is unset (default `fusengine-plugins`). |\n| `FUSE_ENFORCE_TTL_SEC` | APEX freshness window in seconds (default `120`). |\n| `FUSE_LESSONS_THROTTLE_MIN` | Lessons-injection throttle, minutes (default `5`). |\n| `FUSE_ENFORCE_GEMINI_MCP` | **Opt-in (default off).** Blocks hand-written Tailwind UI (`.tsx/.jsx/.vue/.svelte`) until a `mcp__gemini-design__*` call is made this session. Read fresh per call (`src/policy/gemini-mcp-gate.ts`). |\n| `FUSE_DESIGN_GEMINI` | **Opt-in (default off), a *different* gate from the one above.** Enables the design-pipeline's own Gemini gates (`create_frontend` validation + \"generate before hand-writing HTML/CSS\") — inert unless a design agent is active (`src/policy/design/gates.ts:58-60`, see [docs/design.md](docs/design.md)). |\n| `FUSE_PRD` | **Opt-in (default off).** Set to exactly `1` to activate task/agent PRD ownership coordination — still inert without a `prd.json` router under `<homeSeg>/apex/`. See [PRD coordination](#prd-coordination-opt-in) below and [docs/prd.md](docs/prd.md). |\n| `FUSE_MCP_TTL_SEC` | MCP (Context7/Exa) cache freshness, seconds (default 48h, `src/runtime/mcp-key.ts`). |\n| `FUSE_WEBFETCH_TTL_SEC` | WebFetch cache freshness, seconds (default 24h — pages stale faster than docs). |\n| `FUSE_CONFIRM_SUBAGENT_WINDOW_SEC` | G0 cool-down (seconds, default `300`) for the `CONFIRM <code>` mechanism above — no token can be placed within this window of the last SubagentStart/Stop seen for the session. |\n| `RALPH_MODE` | **Opt-in (default off).** Exempts safe git commands (`add`/`commit`/`checkout -b`/`status`/`diff`/`log`) from the confirmation ask and auto-approves project installs. Destructive git (force-push, `reset --hard`) and system installs still gate. |\n| `CLAUDE_PROJECT_DIR` | Overrides the project root used to hash the out-of-tree state dir (`src/runtime/paths.ts:20`). |\n| `FUSE_HARNESS_SOUND` | **On by default.** Set to `0` to disable every lifecycle notification sound. |\n| `FUSE_HARNESS_SOUND_STOP` / `_PERMISSION` / `_HUMAN` | Per-kind override: an absolute path to a sound file to play instead of the bundled `assets/song/*.mp3` for that kind (see [Notification sounds](#notification-sounds)). |\n\n## Library usage\n\n```ts\nimport { detectHarness } from \"@fusengine/harness/detect\";\nimport { evaluate } from \"@fusengine/harness/policy\";\nimport { gate } from \"@fusengine/harness/runtime\";\n\nconst { id, mode } = detectHarness();            // { id: \"cursor\", mode: \"hook\" }\n\n// stateless guards (file-size, git, security, …)\nconst verdict = evaluate({ tool: \"Write\", filePath: \"src/big.ts\", content });\nif (verdict.decision !== \"allow\") console.error(verdict.prompt?.reason);\n\n// full gate (stateless + stateful APEX, fed from the session track)\nconst prompt = await gate({ sessionId, framework: \"react\", tool: \"Write\",\n  filePath: \"src/Button.tsx\", content, now: Date.now(), trackFile });\n```\n\nThe `Prompt` it returns (`{ kind: \"block\" | \"ask\" | \"inform\", title, reason, actions? }`)\nis portable; each adapter maps it to the harness's native shape — but, per the\ncompatibility matrix above, not every harness can act on every `kind`.\n\n### Extend it\n\nAdd your own project rules without forking — they run **after** the privileged\ncore chain (two-tier), and the chain is **fail-closed** (a guard that throws blocks,\nnever silently passes):\n\n```ts\nimport { registerGuard } from \"@fusengine/harness/policy\";\n\nregisterGuard(({ tool, command }) =>\n  tool === \"Bash\" && command?.includes(\"kubectl delete\")\n    ? { kind: \"ask\", title: \"Confirm cluster change\", reason: command }\n    : null);\n```\n\n## PRD coordination (opt-in)\n\nSet `FUSE_PRD=1` and write a router file so a lead can split one task\nacross several sub-agents, each restricted to writing only its own\nreport. Full walkthrough, guard behavior, and the CLI: [docs/prd.md](docs/prd.md).\n\nMinimal example — `.claude/apex/prd.json`:\n\n```json\n{ \"auth-refactor\": { \"prd\": \"prd/auth-refactor-prd.json\", \"status\": \"assigned\" } }\n```\n\n## Subpath exports\n\n| Subpath | What |\n|---------|------|\n| `./detect` | `detectHarness()` / `detectMode()` — 13 harnesses, `hook` vs `cli`. |\n| `./policy` | `evaluate(ctx)`, the guard chain, `evaluateApex`, framework detection. |\n| `./runtime` | `handleHook`, `gate`, `recordActivity`, `activityFor`, per-harness storage + MCP intercept. |\n| `./tracking` | Session track: `recordAgent/Doc/RefRead`, `agentsFresh`, receipts, one-shot metric. |\n| `./refs` | Frontmatter parse, `loadRefs(dir)`, SOLID ref scoring/routing. |\n| `./prompt` | The portable `Prompt` type + `formatPrompt`. |\n| `./cache` | MCP/WebFetch cache: key, lookup/store, compaction, response extraction. |\n| `./memory` | Per-project \"never reproduce\" lessons. |\n| `./config` `./util` `./state` `./statusline` `./freshness` `./init` `./cli` | env config, project-root, locks, statusline, doc-freshness, wiring templates, staged checks. |\n| `./adapters/{claude,codex,cursor,cline,gemini,hermes}` | Thin per-harness adapters — see [Compatibility](#compatibility) for what each can actually enforce. |\n\n## Documentation\n\n| Guide | What |\n|-------|------|\n| [docs/index.md](https://github.com/fusengine/harness/blob/main/docs/index.md) | architecture overview + map |\n| [docs/detect.md](https://github.com/fusengine/harness/blob/main/docs/detect.md) | harness detection (`hook` vs `cli`) |\n| [docs/policy.md](https://github.com/fusengine/harness/blob/main/docs/policy.md) | `evaluate`, the guard chain, framework, APEX gates |\n| [docs/guards.md](https://github.com/fusengine/harness/blob/main/docs/guards.md) | the guard chain, `registerGuard`, fail-closed |\n| [docs/runtime.md](https://github.com/fusengine/harness/blob/main/docs/runtime.md) | `handleHook`, `gate`, tracking, MCP intercept, state paths |\n| [docs/config.md](https://github.com/fusengine/harness/blob/main/docs/config.md) | env config (TTL, max-lines, refs dir, Gemini opt-ins) |\n| [docs/modules.md](https://github.com/fusengine/harness/blob/main/docs/modules.md) | cache · refs · state · memory · statusline · util |\n| [docs/adapters.md](https://github.com/fusengine/harness/blob/main/docs/adapters.md) | adapters, compatibility, `harness init`/`hook` wiring |\n| [docs/design.md](https://github.com/fusengine/harness/blob/main/docs/design.md) | design-agent pipeline — state machine, gates, opt-in Gemini |\n| [docs/prd.md](https://github.com/fusengine/harness/blob/main/docs/prd.md) | PRD task/agent ownership coordination — opt-in, `FUSE_PRD=1` |\n| [CHANGELOG.md](https://github.com/fusengine/harness/blob/main/CHANGELOG.md) | release history |\n\nRun `bun run docs:api` for the generated typedoc API reference.\n\n## Known limitations\n\n- **Codex `apply_patch` enforcement depends on Codex itself.** The harness\n  parses the patch and emits the right verdict per file, but Codex does not\n  always enforce a correct deny on its end (openai/codex#27833, see\n  [Compatibility](#compatibility)) — enforcement beyond the verdict is theirs.\n- **Cursor file edits are advisory-only.** `afterFileEdit` fires after the edit\n  already happened — a platform limit, not something this harness can work around.\n- **Hook fan-out is mitigated, not eliminated.** The ~11-sibling-plugin burst is\n  deduped within a 2s window (`BURST_DEDUP_MS`), but that window is a heuristic,\n  not a protocol guarantee — an unusually slow fan-out could in theory land\n  outside it.\n- **Sidechain hook reliability is a platform issue, worked around, not fixed.**\n  Sub-agent `PostToolUse` hooks don't always fire on Claude Code (documented\n  platform issues #43612/#27655/#34692); `SubagentStop` transcript harvesting\n  (`src/freshness/evidence-harvest-io.ts`) compensates, but only at that\n  checkpoint, not continuously.\n- **Hermes coverage beyond `pre_tool_call` is unverified** — no lifecycle events\n  have been proven against a live Hermes install in this repo.\n- **`CONFIRM <code>` is not a security boundary.** It guards against an `ask`\n  being silently dropped by Codex/Kimi's degrade-to-deny, i.e. against\n  precipitation and lost recourse — not against an adversarial agent. Any\n  agent with shell access can write its own confirm token into session state\n  and self-approve; this is true of every stateful gate this harness keeps\n  outside a sandbox, not specific to this mechanism.\n\n## Develop\n\n```sh\nbun test            # 662 tests (120 files)\nbunx tsc --noEmit   # typecheck (isolatedDeclarations)\nbun run build       # dist + .d.mts via tsdown (for Node/bundler consumers)\nbun run docs:api    # generate the typedoc API reference\n```\n\nCI runs test + typecheck on every PR. MIT licensed.\n","readmeFilename":"README.md"}