{"_id":"@elinpf/dsh-ops-access-gate","_rev":"13-487893bd8c77761d346658ed208e5ea0","name":"@elinpf/dsh-ops-access-gate","dist-tags":{"latest":"0.4.1"},"versions":{"0.1.0":{"name":"@elinpf/dsh-ops-access-gate","version":"0.1.0","license":"MIT","_id":"@elinpf/dsh-ops-access-gate@0.1.0","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"208ca575c4f905b230074f8c1df0f502473b1825","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-access-gate/-/dsh-ops-access-gate-0.1.0.tgz","fileCount":11,"integrity":"sha512-Pmb6WVoTh37P+qlSJ/CibspDr7JEeH6S9anrZCUKyv1WQdP0Y0IyyM5lZVutMH3+Naj0jRRqIx04u7OtRk09AQ==","signatures":[{"sig":"MEQCICUCx/RLqyrinpzCzipaBr0SyiBmPXoYOnqplb+aVjeKAiBE4uv1OiEn5wjUVyYoxRHDUjfYTXfGnGw6cK4AE0dSRA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66196},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-access-gate-0.1.0.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./types":{"types":"./lib/types.d.ts","default":"./lib/types.js"},"./invariant":{"types":"./lib/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/281cee503360cb7e7d48e0f7768bd0e2/elinpf-dsh-ops-access-gate-0.1.0.tgz","_integrity":"sha512-Pmb6WVoTh37P+qlSJ/CibspDr7JEeH6S9anrZCUKyv1WQdP0Y0IyyM5lZVutMH3+Naj0jRRqIx04u7OtRk09AQ==","_npmVersion":"10.9.8","description":"Ops access gate — per-session credential brokering. Owns an in-process grant ledger keyed by agent.id and registers a pure-decision broker (ro/rw) into the ops-access seam. Never touches credential fields.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@deepseek-ai/dsh-llm":"^0.1.0-rc.8","@elinpf/dsh-ops-panel":"^0.1.0","@deepseek-ai/dsh-tools":"^0.0.1-rc.1","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.4.3","vitest":"^4.1.11","typescript":"^5.4.0","@types/node":"^22.0.0","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-llm":"0.1.0-rc.8","@elinpf/dsh-ops-panel":"0.1.0","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.1.0"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@elinpf/dsh-ops-access":"^0.1.0","@deepseek-ai/dsh-invariants":"^0.0.1-rc.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-access-gate_0.1.0_1788320321682_0.5194138564814261","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@elinpf/dsh-ops-access-gate","version":"0.1.1","license":"MIT","_id":"@elinpf/dsh-ops-access-gate@0.1.1","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"a00a79cd2bfba828600566cb9135195df51ad470","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-access-gate/-/dsh-ops-access-gate-0.1.1.tgz","fileCount":11,"integrity":"sha512-J+MbRLqnaYoM6wwO1wAsJpBh5FiZhVhqFYm9onpIq7Ex3uQUTInKlZc8QXheJpbrmnI3h9Pd1WcvPKowJGppig==","signatures":[{"sig":"MEQCIH18XVRIYLnEC8Aqhsh4hnHgCEZbKVieDt1JMgOpgvPGAiAKsQ2KVrdJLJAUqX9iXsfli/MvslJrLvJSP48we4cnIw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHf9fMBfBgqvM9BLnrfDogUpzgdPQcQVmpuE6gOUmldJAiASuaKoHwq519ADqI8XNjs8gCfqQesjlvZjNGZ9w04Tnw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66196},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-access-gate-0.1.1.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./types":{"types":"./lib/types.d.ts","default":"./lib/types.js"},"./invariant":{"types":"./lib/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/49aece3d00446423f86a65607cfc617d/elinpf-dsh-ops-access-gate-0.1.1.tgz","_integrity":"sha512-J+MbRLqnaYoM6wwO1wAsJpBh5FiZhVhqFYm9onpIq7Ex3uQUTInKlZc8QXheJpbrmnI3h9Pd1WcvPKowJGppig==","_npmVersion":"10.9.8","description":"Ops access gate — per-session credential brokering. Owns an in-process grant ledger keyed by agent.id and registers a pure-decision broker (ro/rw) into the ops-access seam. Never touches credential fields.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@deepseek-ai/dsh-llm":"^0.1.0-rc.8","@elinpf/dsh-ops-panel":"^0.1.1","@deepseek-ai/dsh-tools":"^0.0.1-rc.1","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.4.3","vitest":"^4.1.11","typescript":"^5.4.0","@types/node":"^22.0.0","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-llm":"0.1.0-rc.8","@elinpf/dsh-ops-panel":"0.1.1","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.1.1"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@elinpf/dsh-ops-access":"^0.1.1","@deepseek-ai/dsh-invariants":"^0.0.1-rc.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-access-gate_0.1.1_1788321606060_0.780248528171499","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@elinpf/dsh-ops-access-gate","version":"0.1.2","license":"MIT","_id":"@elinpf/dsh-ops-access-gate@0.1.2","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"f0e45406a01ca680b2bdd864aaff7468f1eb61ca","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-access-gate/-/dsh-ops-access-gate-0.1.2.tgz","fileCount":11,"integrity":"sha512-nN6VyruugvxYpy6GBeGNRFNVbgz7u6XoISpOoOzNGJe96tJg8AgJgcuWaze62waIxDePN9Cc/TQWrkSDEJ3LrA==","signatures":[{"sig":"MEQCIAHqe4rmvLr7IbuCAu+/Lz15Pa1SqklekNVvhko7ZFaGAiAyrcFlFYlwhfKH2TDAUqp/+088XLq25giDgdzCtW94eQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIE+vlK2jlTMkvB1edzfFmZu9BK4SFAhiodp/t2XSRlDXAiEAlF9JlsopVxKB19Ig6k8zQ+XeVIabxy/uQ3UyREXkGl4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66196},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-access-gate-0.1.2.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./types":{"types":"./lib/types.d.ts","default":"./lib/types.js"},"./invariant":{"types":"./lib/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/cabc4e31b52717b0da4044e4565d3fd6/elinpf-dsh-ops-access-gate-0.1.2.tgz","_integrity":"sha512-nN6VyruugvxYpy6GBeGNRFNVbgz7u6XoISpOoOzNGJe96tJg8AgJgcuWaze62waIxDePN9Cc/TQWrkSDEJ3LrA==","_npmVersion":"10.9.8","description":"Ops access gate — per-session credential brokering. Owns an in-process grant ledger keyed by agent.id and registers a pure-decision broker (ro/rw) into the ops-access seam. Never touches credential fields.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@deepseek-ai/dsh-llm":"^0.1.0-rc.8","@elinpf/dsh-ops-panel":"^0.1.2","@deepseek-ai/dsh-tools":"^0.0.1-rc.1","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.4.3","vitest":"^4.1.11","typescript":"^5.4.0","@types/node":"^22.0.0","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-llm":"0.1.0-rc.8","@elinpf/dsh-ops-panel":"0.1.2","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.1.2"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@elinpf/dsh-ops-access":"^0.1.2","@deepseek-ai/dsh-invariants":"^0.0.1-rc.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-access-gate_0.1.2_1788328509726_0.6180198611630048","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@elinpf/dsh-ops-access-gate","version":"0.1.3","license":"MIT","_id":"@elinpf/dsh-ops-access-gate@0.1.3","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"48758b724964b6cb042c0ffaec9499b29511444d","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-access-gate/-/dsh-ops-access-gate-0.1.3.tgz","fileCount":11,"integrity":"sha512-RQ946Uj85EJLg3kXu9jFj4N+38ZKzHvuEyaDREA/sVy+EnjapyYGXvP2NEe9h03EPrS1f8dW2JLMRmdYgkXOQA==","signatures":[{"sig":"MEYCIQDRxyyOAcVzCm/jJp/t3xsiNEe4ivBQFABcFoWDappN/AIhAIDIakqrokSnidZ3MCv1fHJBu1SisIzE5GPsBtBflKZr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCvHDMYNkYsh9gabqD1etWuPwl1czGiv8lCJDGX4ueOTgIhAN+IOgMT3qAP7uSLW5LPdcs8tbhqixhpf8SkSg4Wu9I0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66196},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-access-gate-0.1.3.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./types":{"types":"./lib/types.d.ts","default":"./lib/types.js"},"./invariant":{"types":"./lib/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/dc0215e07f68d4990bf4925e2133c09e/elinpf-dsh-ops-access-gate-0.1.3.tgz","_integrity":"sha512-RQ946Uj85EJLg3kXu9jFj4N+38ZKzHvuEyaDREA/sVy+EnjapyYGXvP2NEe9h03EPrS1f8dW2JLMRmdYgkXOQA==","_npmVersion":"10.9.8","description":"Ops access gate — per-session credential brokering. Owns an in-process grant ledger keyed by agent.id and registers a pure-decision broker (ro/rw) into the ops-access seam. Never touches credential fields.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@elinpf/dsh-ops-panel":"^0.1.3","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.4.3","vitest":"^4.1.11","typescript":"^5.4.0","@types/node":"^22.0.0","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-llm":"0.1.0-rc.8","@elinpf/dsh-ops-panel":"0.1.3","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.1.3"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.8","@deepseek-ai/dsh-tools":"^0.1.0-rc.8","@elinpf/dsh-ops-access":"^0.1.3","@deepseek-ai/dsh-invariants":"^0.1.0-rc.8"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-access-gate_0.1.3_1788334261288_0.08456553910458275","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@elinpf/dsh-ops-access-gate","version":"0.1.4","license":"MIT","_id":"@elinpf/dsh-ops-access-gate@0.1.4","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"605324786c2cb1256edf54a38d48347e59dfcfae","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-access-gate/-/dsh-ops-access-gate-0.1.4.tgz","fileCount":11,"integrity":"sha512-5D5hT76b2ySe2RPhxZID5CXfy8MhwE3kmg0GcAe88e67OHNIBmnc7MejxU2/4C6rZNOs+/9XLbh5PBME3b4Kug==","signatures":[{"sig":"MEUCIH/fBrWZl0fmo1QEN59samsjWBeeQ5MigilOFH6G7hn2AiEA908qCZIAcuBh78Z0b4BcAjy42utkVtJkS3DBdillbp0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC0MwO8P9uFcT6tW5CfXrhJWlaSHD8UQx5WXul17rDjjwIgSeKg3h2OndvpmcBLg5OdSQ8Kd/XuMmPRkzSFIBFejyA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66196},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-access-gate-0.1.4.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./types":{"types":"./lib/types.d.ts","default":"./lib/types.js"},"./invariant":{"types":"./lib/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/c22ef5d7b522c97008ecaefbe601f969/elinpf-dsh-ops-access-gate-0.1.4.tgz","_integrity":"sha512-5D5hT76b2ySe2RPhxZID5CXfy8MhwE3kmg0GcAe88e67OHNIBmnc7MejxU2/4C6rZNOs+/9XLbh5PBME3b4Kug==","_npmVersion":"10.9.8","description":"Ops access gate — per-session credential brokering. Owns an in-process grant ledger keyed by agent.id and registers a pure-decision broker (ro/rw) into the ops-access seam. Never touches credential fields.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@elinpf/dsh-ops-panel":"^0.1.4","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.4.3","vitest":"^4.1.11","typescript":"^5.4.0","@types/node":"^22.0.0","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-llm":"0.1.0-rc.8","@elinpf/dsh-ops-panel":"0.1.4","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.1.4"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.8","@deepseek-ai/dsh-tools":"^0.1.0-rc.8","@elinpf/dsh-ops-access":"^0.1.4","@deepseek-ai/dsh-invariants":"^0.1.0-rc.8"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-access-gate_0.1.4_1788335661323_0.6916433492027854","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@elinpf/dsh-ops-access-gate","version":"0.1.5","license":"MIT","_id":"@elinpf/dsh-ops-access-gate@0.1.5","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"86b5b861f2f2082cbceb6adb957a640ffd8baf93","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-access-gate/-/dsh-ops-access-gate-0.1.5.tgz","fileCount":11,"integrity":"sha512-QWAn0f9fi6vi3+16gFYxPCA62tX6QQs3/H2hp0weodX/9UEAcYMBk35VzJ8dPuj971JjKuQeIIoyaoSc5My9Xw==","signatures":[{"sig":"MEUCIECZdXrS+mEx1aXy9HJ4mDSX4YFFTfDHVdonZLBvCYmaAiEAibbbs8Jt/xCHeJLGo3WoH+2N4rSMLURbaq9/EngQbZI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGTMeFBuePdSWH/2iXSAm4YenYQZpBOMjzGvHppD/5iGAiEA3GFx+eC7hCaoSSi31cztomQ9i31W9QWvhDOVSCmz8mo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66196},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-access-gate-0.1.5.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./types":{"types":"./lib/types.d.ts","default":"./lib/types.js"},"./invariant":{"types":"./lib/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/4c6e3053615b39ab441c124e063c2131/elinpf-dsh-ops-access-gate-0.1.5.tgz","_integrity":"sha512-QWAn0f9fi6vi3+16gFYxPCA62tX6QQs3/H2hp0weodX/9UEAcYMBk35VzJ8dPuj971JjKuQeIIoyaoSc5My9Xw==","_npmVersion":"10.9.8","description":"Ops access gate — per-session credential brokering. Owns an in-process grant ledger keyed by agent.id and registers a pure-decision broker (ro/rw) into the ops-access seam. Never touches credential fields.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@elinpf/dsh-ops-panel":"^0.1.5","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.4.3","vitest":"^4.1.11","typescript":"^5.4.0","@types/node":"^22.0.0","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-llm":"0.1.0-rc.8","@elinpf/dsh-ops-panel":"0.1.5","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.1.5"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.8","@deepseek-ai/dsh-tools":"^0.1.0-rc.8","@elinpf/dsh-ops-access":"^0.1.5","@deepseek-ai/dsh-invariants":"^0.1.0-rc.8"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-access-gate_0.1.5_1788336044467_0.2614886158130407","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@elinpf/dsh-ops-access-gate","version":"0.1.6","license":"MIT","_id":"@elinpf/dsh-ops-access-gate@0.1.6","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"f0955ef465db8ac76d14ca1725f41cc554591b96","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-access-gate/-/dsh-ops-access-gate-0.1.6.tgz","fileCount":11,"integrity":"sha512-4qIK2AG7Fo5hTCcR+B3WZTcAx7jKxc8VR3wmKcnBVt65zvzGLcmwUWWulKlbYhpSCmnNLRgqe9mR5zRvmf321A==","signatures":[{"sig":"MEYCIQCBV7xuiBpYKGXc1dXhZysibtJ/80JKjKDrAqh14KKkxAIhAN6tiluBkSmL/FKipaWPrmEuv172WB1neyXvD4Q29dt5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD2ZfI959nRnfh2oBd0eScxmBuvgF6/uyVKzid+AzGVSgIgcalxyuPosewZGABqUWZDZYJaPCTSnkEOm9NhfGiQV5I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66196},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-access-gate-0.1.6.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./types":{"types":"./lib/types.d.ts","default":"./lib/types.js"},"./invariant":{"types":"./lib/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/6ed8634b61e942459070c92c965a9499/elinpf-dsh-ops-access-gate-0.1.6.tgz","_integrity":"sha512-4qIK2AG7Fo5hTCcR+B3WZTcAx7jKxc8VR3wmKcnBVt65zvzGLcmwUWWulKlbYhpSCmnNLRgqe9mR5zRvmf321A==","_npmVersion":"10.9.8","description":"Ops access gate — per-session credential brokering. Owns an in-process grant ledger keyed by agent.id and registers a pure-decision broker (ro/rw) into the ops-access seam. Never touches credential fields.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@elinpf/dsh-ops-panel":"^0.1.6","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.4.3","vitest":"^4.1.11","typescript":"^5.4.0","@types/node":"^22.0.0","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-llm":"0.1.0-rc.8","@elinpf/dsh-ops-panel":"0.1.6","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.1.6"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.8","@deepseek-ai/dsh-tools":"^0.1.0-rc.8","@elinpf/dsh-ops-access":"^0.1.6","@deepseek-ai/dsh-invariants":"^0.1.0-rc.8"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-access-gate_0.1.6_1788491741837_0.44444210945224394","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@elinpf/dsh-ops-access-gate","version":"0.1.7","license":"MIT","_id":"@elinpf/dsh-ops-access-gate@0.1.7","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"ad6fde0f2bc378358107ada92054bf2fe8232e3f","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-access-gate/-/dsh-ops-access-gate-0.1.7.tgz","fileCount":11,"integrity":"sha512-ZH+d3KYduTiM3QCytJ5BiP2GHerc7G5PCozaJjWwWLKjjA8cxMkKsnVOKnOQwNWXG9o/s+xqtsLdn56BfjL/cw==","signatures":[{"sig":"MEUCIQDBFLs458wFllADUnBsNKsYhfiOZ9Xj8TshB9hC/n7YIwIgSLoMw4MG8o+1q/hCAaktZrSp0HFhEnnakuSTgQcZ8XQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDVTnN9EZ8bB8BB3uyOA15Cx6ooBqWAN247+5am4XbkTQIgdLh9P9QJCq9G2sIatK13PyJ+zATyz5WB8ia8lcjcSv8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66196},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-access-gate-0.1.7.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./types":{"types":"./lib/types.d.ts","default":"./lib/types.js"},"./invariant":{"types":"./lib/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/8d436a8d5d3e3e6c41384dec86b14ed8/elinpf-dsh-ops-access-gate-0.1.7.tgz","_integrity":"sha512-ZH+d3KYduTiM3QCytJ5BiP2GHerc7G5PCozaJjWwWLKjjA8cxMkKsnVOKnOQwNWXG9o/s+xqtsLdn56BfjL/cw==","_npmVersion":"10.9.8","description":"Ops access gate — per-session credential brokering. Owns an in-process grant ledger keyed by agent.id and registers a pure-decision broker (ro/rw) into the ops-access seam. Never touches credential fields.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@elinpf/dsh-ops-panel":"^0.1.7","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.4.3","vitest":"^4.1.11","typescript":"^5.4.0","@types/node":"^22.0.0","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-llm":"0.1.0-rc.8","@elinpf/dsh-ops-panel":"0.1.7","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.1.7"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.8","@deepseek-ai/dsh-tools":"^0.1.0-rc.8","@elinpf/dsh-ops-access":"^0.1.7","@deepseek-ai/dsh-invariants":"^0.1.0-rc.8"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-access-gate_0.1.7_1788768252799_0.620061790048527","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@elinpf/dsh-ops-access-gate","version":"0.2.0","license":"MIT","_id":"@elinpf/dsh-ops-access-gate@0.2.0","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"693807b696c2ad1372bfa0e1b59254d7bab4927b","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-access-gate/-/dsh-ops-access-gate-0.2.0.tgz","fileCount":11,"integrity":"sha512-k3cG/ib0rZxMyWgooXn0A0+pwcoqRlfTm/ut49A2w5Gu9IZ5dneXgHt4HLb81rFfoTewpLGQMkQxsvxLfAS1QQ==","signatures":[{"sig":"MEUCIQDE4RBDsG0Sd6J6Alb84dgz1iDyC/INihOZLTY62vyAEwIgSEiqlsVjQnIjBXph/T4YkF7GPxtBvJ05+pjacc+wqYc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDK60PVBggMT0c0T9DrUc59REK5wudTNnIBlLoWrzUPdAIhAI8Fxp6mSZEu8mkxdk8pZBLvISw5zcIfm7FR25ZCVOqg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67253},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-access-gate-0.2.0.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./types":{"types":"./lib/types.d.ts","default":"./lib/types.js"},"./invariant":{"types":"./lib/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/9afda2f492c42972b249b01d1dfb0f9a/elinpf-dsh-ops-access-gate-0.2.0.tgz","_integrity":"sha512-k3cG/ib0rZxMyWgooXn0A0+pwcoqRlfTm/ut49A2w5Gu9IZ5dneXgHt4HLb81rFfoTewpLGQMkQxsvxLfAS1QQ==","_npmVersion":"10.9.8","description":"Ops access gate — per-session credential brokering. Owns an in-process grant ledger keyed by agent.id and registers a pure-decision broker (ro/rw) into the ops-access seam. Never touches credential fields.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@elinpf/dsh-ops-panel":"^0.2.0","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.4.3","vitest":"^4.1.11","typescript":"^5.4.0","@types/node":"^22.0.0","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-llm":"0.1.0-rc.8","@elinpf/dsh-ops-panel":"0.2.0","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.2.0"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.8","@deepseek-ai/dsh-tools":"^0.1.0-rc.8","@elinpf/dsh-ops-access":"^0.2.0","@deepseek-ai/dsh-invariants":"^0.1.0-rc.8"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-access-gate_0.2.0_1789349597641_0.09320634051116983","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@elinpf/dsh-ops-access-gate","version":"0.2.1","license":"MIT","_id":"@elinpf/dsh-ops-access-gate@0.2.1","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"78f6db5794a2b74415c48ce349288d1c579d57ef","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-access-gate/-/dsh-ops-access-gate-0.2.1.tgz","fileCount":11,"integrity":"sha512-3MkUa4EHHktmnwQBqV71ZQseHJh1jAQy+/7ExkqPvG3hcFholMkThMdJDK6Optf7EllIqI+WdIiBELPqR/BTxg==","signatures":[{"sig":"MEQCIF/Vqn36D8a0kXQTYyJ+iJ8y1B0qkFMD3gU1pESvgwV7AiA26yv1Wq8BbMfRn5ODRIcAp5MTv8s872DapKcSsvN84g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAtO0lobm8dFyVRmSXnwCbKjOrmoizI3kXwyqyzwZniKAiEAvpe4xFZaA5PfoD71t+RPF2osSDtnYNJXJ1IqugX6Suw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67253},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-access-gate-0.2.1.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./types":{"types":"./lib/types.d.ts","default":"./lib/types.js"},"./invariant":{"types":"./lib/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/3f00d1d6bbfeea5dd79244646011b24e/elinpf-dsh-ops-access-gate-0.2.1.tgz","_integrity":"sha512-3MkUa4EHHktmnwQBqV71ZQseHJh1jAQy+/7ExkqPvG3hcFholMkThMdJDK6Optf7EllIqI+WdIiBELPqR/BTxg==","_npmVersion":"10.9.8","description":"Ops access gate — per-session credential brokering. Owns an in-process grant ledger keyed by agent.id and registers a pure-decision broker (ro/rw) into the ops-access seam. Never touches credential fields.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@elinpf/dsh-ops-panel":"^0.2.1","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.4.3","vitest":"^4.1.11","typescript":"^5.4.0","@types/node":"^22.0.0","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-llm":"0.1.0-rc.8","@elinpf/dsh-ops-panel":"0.2.1","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.2.1"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.8","@deepseek-ai/dsh-tools":"^0.1.0-rc.8","@elinpf/dsh-ops-access":"^0.2.1","@deepseek-ai/dsh-invariants":"^0.1.0-rc.8"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-access-gate_0.2.1_1789351598807_0.9346386535057134","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@elinpf/dsh-ops-access-gate","version":"0.3.0","license":"MIT","_id":"@elinpf/dsh-ops-access-gate@0.3.0","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"464b2395f7817fb645d7d23fe7c6c252f626bc7f","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-access-gate/-/dsh-ops-access-gate-0.3.0.tgz","fileCount":11,"integrity":"sha512-j/Wm5dCUxptRFfW/ZM8Y29x2MqVD6dsacbY8oiItOFViqTjpiTe1tScjKVzFK2dlQIPGEPGL4MA2fvWurkEJeg==","signatures":[{"sig":"MEUCIQCJs5TOsNp3ZpX53hG1ys/Z6fA8N/S+7OVvYRda3RlS/QIgOzqsLdxKDBZzH4C1DY2u/P8NileqXzPRAjI3UsuS5YU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIASWKDaDtnC5PcYJXXN+aZfUHInz/DVBwBkI8MC9ohLIAiEA3Hx09BFMkPWPdzIg79TjlAxtUXu3COCLBWayeNlfejk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67253},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-access-gate-0.3.0.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./types":{"types":"./lib/types.d.ts","default":"./lib/types.js"},"./invariant":{"types":"./lib/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/e4a760ce9408b652d43769d0e5eff0c5/elinpf-dsh-ops-access-gate-0.3.0.tgz","_integrity":"sha512-j/Wm5dCUxptRFfW/ZM8Y29x2MqVD6dsacbY8oiItOFViqTjpiTe1tScjKVzFK2dlQIPGEPGL4MA2fvWurkEJeg==","_npmVersion":"10.9.8","description":"Ops access gate — per-session credential brokering. Owns an in-process grant ledger keyed by agent.id and registers a pure-decision broker (ro/rw) into the ops-access seam. Never touches credential fields.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@elinpf/dsh-ops-panel":"^0.3.0","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.4.3","vitest":"^4.1.11","typescript":"^5.4.0","@types/node":"^22.0.0","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-llm":"0.1.0-rc.8","@elinpf/dsh-ops-panel":"0.3.0","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.3.0"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.8","@deepseek-ai/dsh-tools":"^0.1.0-rc.8","@elinpf/dsh-ops-access":"^0.3.0","@deepseek-ai/dsh-invariants":"^0.1.0-rc.8"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-access-gate_0.3.0_1789355925274_0.8710249584382812","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@elinpf/dsh-ops-access-gate","version":"0.4.0","license":"MIT","_id":"@elinpf/dsh-ops-access-gate@0.4.0","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"041e7f37eac95a70f5aa1c2b5da5180222d9db54","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-access-gate/-/dsh-ops-access-gate-0.4.0.tgz","fileCount":11,"integrity":"sha512-sN4+03PnEJDPFrplJKjlSVQt4ml1BklI+UJnS7DprdhOBv7lmUguDk8tQuyXU0A/4pMRj1QdzL9BLmD25yeFOQ==","signatures":[{"sig":"MEQCIC3MWn8JjRsvqjYE34ZeDxL7M3UusLTdefzW4NbahiAxAiBnHqGlLVaPwDWCyDi6p1ot6gJP0uvFmlyKpQ/7DlTUzg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDkHnE6f6PZDK5sW3LYnIrsQYs29N+pmixPzXCzBa4xiAIgSYtiVz8dgsioKMkKZtcyz965JX+j9GcitBsOCEseVuA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":68739},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-access-gate-0.4.0.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./types":{"types":"./lib/types.d.ts","default":"./lib/types.js"},"./invariant":{"types":"./lib/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/61b8e796f13ea0fa2ea354f17fe33720/elinpf-dsh-ops-access-gate-0.4.0.tgz","_integrity":"sha512-sN4+03PnEJDPFrplJKjlSVQt4ml1BklI+UJnS7DprdhOBv7lmUguDk8tQuyXU0A/4pMRj1QdzL9BLmD25yeFOQ==","_npmVersion":"10.9.8","description":"Ops access gate — per-session credential brokering. Owns an in-process grant ledger keyed by agent.id and registers a pure-decision broker (ro/rw) into the ops-access seam. Never touches credential fields.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@elinpf/dsh-ops-panel":"^0.4.0","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.4.3","vitest":"^4.1.11","typescript":"^5.4.0","@types/node":"^22.0.0","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-llm":"0.1.0-rc.8","@elinpf/dsh-ops-panel":"0.4.0","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.4.0"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.8","@deepseek-ai/dsh-tools":"^0.1.0-rc.8","@elinpf/dsh-ops-access":"^0.4.0","@deepseek-ai/dsh-invariants":"^0.1.0-rc.8"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-access-gate_0.4.0_1789542878309_0.4798231077753028","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"_id":"@elinpf/dsh-ops-access-gate@0.4.1","dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"5002a5664e2a62765151422edf12c46a6c09e308","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-access-gate/-/dsh-ops-access-gate-0.4.1.tgz","fileCount":11,"integrity":"sha512-MqvwyvOU3/IbMmQxnmvvxxC/SDD+w6fUoH0K7paht8X6phNO/q4VPLahJuYYLXmY48ulZYMZD4uDiQFHT41mLQ==","signatures":[{"sig":"MEUCIEHUrl2E7erfJQJkfkgVtA1bNctfjiykwrxl1YPVjhumAiEAqv2QxaoLWyb/ONVfFGeK0Zx7SJ/PtF1Kh84kX2BXk+U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIC55blPH58lLJmzSAsirAV6Lg3qjBQjxh0eQ8DzI0xRzAiAw3BGF+TTBb3eSRZLS375MvUCjjCHUhKeHUQfXs7i7Ag=="}],"unpackedSize":68739},"main":"lib/index.js","name":"@elinpf/dsh-ops-access-gate","type":"module","_from":"file:elinpf-dsh-ops-access-gate-0.4.1.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./types":{"types":"./lib/types.d.ts","default":"./lib/types.js"},"./invariant":{"types":"./lib/invariant.d.ts","default":"./lib/invariant.js"},"./package.json":"./package.json"},"license":"MIT","scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"version":"0.4.1","_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/1844b2648781e8e56211759bcfdfca89/elinpf-dsh-ops-access-gate-0.4.1.tgz","_integrity":"sha512-MqvwyvOU3/IbMmQxnmvvxxC/SDD+w6fUoH0K7paht8X6phNO/q4VPLahJuYYLXmY48ulZYMZD4uDiQFHT41mLQ==","_npmVersion":"10.9.8","description":"Ops access gate — per-session credential brokering. Owns an in-process grant ledger keyed by agent.id and registers a pure-decision broker (ro/rw) into the ops-access seam. Never touches credential fields.","directories":{},"maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"_nodeVersion":"22.23.2","dependencies":{"@elinpf/dsh-ops-panel":"^0.4.1","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.4.3","vitest":"^4.1.11","typescript":"^5.4.0","@types/node":"^22.0.0","@deepseek-ai/cordis":"4.0.1","@deepseek-ai/dsh-llm":"0.1.0-rc.8","@elinpf/dsh-ops-panel":"0.4.1","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.4.1"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.8","@deepseek-ai/dsh-tools":"^0.1.0-rc.8","@elinpf/dsh-ops-access":"^0.4.1","@deepseek-ai/dsh-invariants":"^0.1.0-rc.8"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-ops-access-gate_0.4.1_1789699648134_0.2979262957131543"}}},"time":{"created":"2026-09-02T03:38:41.461Z","modified":"2026-09-18T02:47:28.435Z","0.1.0":"2026-09-02T03:38:41.818Z","0.1.1":"2026-09-02T04:00:06.159Z","0.1.2":"2026-09-02T05:55:09.827Z","0.1.3":"2026-09-02T07:31:01.372Z","0.1.4":"2026-09-02T07:54:21.414Z","0.1.5":"2026-09-02T08:00:44.557Z","0.1.6":"2026-09-04T03:15:41.958Z","0.1.7":"2026-09-07T08:04:12.880Z","0.2.0":"2026-09-14T01:33:17.718Z","0.2.1":"2026-09-14T02:06:38.885Z","0.3.0":"2026-09-14T03:18:45.375Z","0.4.0":"2026-09-16T07:14:38.389Z","0.4.1":"2026-09-18T02:47:28.214Z"},"license":"MIT","description":"Ops access gate — per-session credential brokering. Owns an in-process grant ledger keyed by agent.id and registers a pure-decision broker (ro/rw) into the ops-access seam. Never touches credential fields.","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"readme":"# @elinpf/dsh-ops-access-gate\n\nDeepSeek Harness 运维模式的按会话凭据代理（credential brokering）与人工审批 — 拥有授权台账，在每次凭据解析时裁决 ro/rw/deny。\n\n## 功能\n\n闸门位于 ops-access 注册表（`@elinpf/dsh-ops-access`）与每一次凭据解析之间：它向该 seam 注册一个**纯决策 broker**——调用会话持有该档案的未过期授权时答 `rw`，否则答 `ro`；无授权访问审批必需类型（ssh）或档案被运维封禁时答 `deny`。\n\n- **`request_access` 工具** — 模型申请限时授权；调用驻留在待决请求队列中，直到人在授权面板里裁决；结果报告实际授予的 TTL（人可下调）。\n- **授权面板后端** — 9 条 HTTP 路由（`/ops-access/grants*`、`/ops-access/access-requests*`、`/ops-access/deny|undeny`）加 `/access`、`/access-all` 两个斜杠命令。面板授权与请求授权同形同寿命。\n- **审计日志** — 每个请求、裁决、授权、过期、收回、封禁和台账重置都落追加式 JSONL 文件。\n- **封禁（lockdown）** — 运维 deny 持久化到 `deniedFile`，重启不丢（重启后悄悄解除的事件冻结不算冻结）。\n\n## 设计要点\n\n- **闸门永远看不到凭据字段。** 类型、档案名、会话 id 就是它的全部世界——密钥材料不可能经授权路径泄漏。\n- **按会话键控的台账，惰性过期。** preset 平面实例共享，授权按 `agent.id` 键控；过期授权在首次被查询时驱逐（web 会话没有可靠的结束事件——TTL 是唯一可靠边界）。\n- **授权面板就是审批通道**（ADR-0004），不用 dsh 原生审批：原生结果词汇表带不了人调整过的 TTL。无头部署（无 web server）下 `request_access` 快速失败并给出带外指引。\n- **types.ts 是纯类型**（零运行时）；`src/invariant.ts` 是 invariant 伴随插件——只预留包归属、不安装任何检查，因为闸门不拥有任何 session 事件形态（其状态是进程内台账加 JSONL 审计文件）。\n- **每个注册都是 effect**，因此 fiber 销毁 / HMR 卸载会移除工具、两个命令、全部路由、通知监听器、broker 和 `opsAccessGate` 服务，并把驻留请求按 cancelled 了结。\n\n## 配置项\n\n| 键 | 默认值 | 含义 |\n|---|---|---|\n| `approvalRequiredKinds` | `['ssh']` | 无 ro 层的类型——任何使用都需授权 |\n| `defaultTtlMinutes` | `30` | `request_access` 省略 `ttlMinutes` 时的授权时长 |\n| `maxTtlMinutes` | `480` | 申请授权时长的上限 |\n| `auditFile` | `~/.dsh-ops/audit.log` | JSONL 审计日志路径（`~` 展开） |\n| `grantTtlOptions` | `[10, 30, 60, 120]` | 授权面板提供的 TTL 选项 |\n| `pendingRequestTimeoutMinutes` | `5` | 驻留请求等待人工裁决的超时（超时自动拒绝） |\n| `deniedFile` | `~/.dsh-ops/denied.json` | 持久化封禁状态（重启保留） |\n\n## 测试\n\n```sh\nnpm run build\nnpx vitest run\n```\n\n测试把闸门与真实的 ops-access core 一起挂载到 mock cordis 上下文（真实临时注册表与审计文件），驱动外部可观察的 seam：resolve 按台账给 ro/rw、`request_access` 驻留直到 decide 路由了结、面板路由直接授权/收回、TTL 过期与通知行为、每次转移都有审计。HMR 卸载套件销毁闸门 fiber 并断言每个注册面（工具、命令、路由、监听器、broker、服务）都被移除，同时 core 保持挂载。\n","readmeFilename":"README.zh.md"}