{"_id":"@elinpf/dsh-ops-access","_rev":"13-b93d8b8b4220dd9eaad240a12c9df4e6","name":"@elinpf/dsh-ops-access","dist-tags":{"latest":"0.4.1"},"versions":{"0.1.0":{"name":"@elinpf/dsh-ops-access","version":"0.1.0","license":"MIT","_id":"@elinpf/dsh-ops-access@0.1.0","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"a7e08674a7064c974cfa473ec965d320516a5833","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-access/-/dsh-ops-access-0.1.0.tgz","fileCount":13,"integrity":"sha512-K/QVS+pA+AJL0bKzlP75oXYRrlSkwBQx/f2JDMDQMRIdxLg4Lae6TyifzfcJLu4bmLYxOrimySp/EZZcmp2/IQ==","signatures":[{"sig":"MEUCIF94hjiBnyztGruQw92/eGWva7PlBV937HVR5nG8yKXQAiEAkwOA+oAO2UQI/LJf1KDmMYP4SI0LLkMiezvmhf0qy0I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85436},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-access-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"},"./mention":{"types":"./lib/mention.d.ts","default":"./lib/mention.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/c8d60434d8b83effb0bd4e260b878be3/elinpf-dsh-ops-access-0.1.0.tgz","_integrity":"sha512-K/QVS+pA+AJL0bKzlP75oXYRrlSkwBQx/f2JDMDQMRIdxLg4Lae6TyifzfcJLu4bmLYxOrimySp/EZZcmp2/IQ==","_npmVersion":"10.9.8","description":"Ops access capability seam — owns the YAML credential registry and exposes ctx.opsAccess (resolve/list/register) to provider plugins.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","yaml":"^2.7.0","@deepseek-ai/dsh-tools":"^0.0.1-rc.1","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"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","@deepseek-ai/dsh-brand":"0.0.1-rc.5","@deepseek-ai/dsh-scope":"0.0.1-rc.5","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@deepseek-ai/dsh-timeout":"0.0.1-rc.5","@deepseek-ai/dsh-attachment":"0.0.1-rc.5","@deepseek-ai/dsh-invariants":"0.0.1-rc.5"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.8","@deepseek-ai/dsh-invariants":"^0.0.1-rc.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-access_0.1.0_1788320310154_0.8560564496129988","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@elinpf/dsh-ops-access","version":"0.1.1","license":"MIT","_id":"@elinpf/dsh-ops-access@0.1.1","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"5668bef1ba61bc1d9ce6016867bc3ccad0d165cf","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-access/-/dsh-ops-access-0.1.1.tgz","fileCount":13,"integrity":"sha512-IMkREGOKrLgaCZJVkjvl8nuvlAB3N680C25AjzpQbCNYel1nib3acd0toxJDGLd1AvDvyXtmPwhGyyHO6xvquw==","signatures":[{"sig":"MEQCIAozaArPYSW15gp4Z0biSJtBK0ryCy2P0LiMO5xC7hr4AiAPlK7ovtAmoDE9WA618M4f+n4aCki+cOnsuo4c/WX0yg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85436},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-access-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"},"./mention":{"types":"./lib/mention.d.ts","default":"./lib/mention.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/6fc2896896a589cb3ea928a84fb733e1/elinpf-dsh-ops-access-0.1.1.tgz","_integrity":"sha512-IMkREGOKrLgaCZJVkjvl8nuvlAB3N680C25AjzpQbCNYel1nib3acd0toxJDGLd1AvDvyXtmPwhGyyHO6xvquw==","_npmVersion":"10.9.8","description":"Ops access capability seam — owns the YAML credential registry and exposes ctx.opsAccess (resolve/list/register) to provider plugins.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","yaml":"^2.7.0","@deepseek-ai/dsh-tools":"^0.0.1-rc.1","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"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","@deepseek-ai/dsh-brand":"0.0.1-rc.5","@deepseek-ai/dsh-scope":"0.0.1-rc.5","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@deepseek-ai/dsh-timeout":"0.0.1-rc.5","@deepseek-ai/dsh-attachment":"0.0.1-rc.5","@deepseek-ai/dsh-invariants":"0.0.1-rc.5"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.8","@deepseek-ai/dsh-invariants":"^0.0.1-rc.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-access_0.1.1_1788321438308_0.2665965410746165","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@elinpf/dsh-ops-access","version":"0.1.2","license":"MIT","_id":"@elinpf/dsh-ops-access@0.1.2","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"113dd83eb29cec7de415c3317bf008489ec3bc15","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-access/-/dsh-ops-access-0.1.2.tgz","fileCount":13,"integrity":"sha512-0O5QAFse9qArvMY0zG3mSdvUVF7YhcgVOQeoZxLEXGhukxsV8Qa2ZV9+JZ78SbfQdr75RqKdaNORHaDRfAnHag==","signatures":[{"sig":"MEYCIQCxQp8VPYPU/AQwEWGvO2nvhYReavECJ/zg8Z2h3aLh4wIhAPMadBo6qX+MDDyHltv+XgP+NNdVDE6Z5448Oxtsfu76","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85436},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-access-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"},"./mention":{"types":"./lib/mention.d.ts","default":"./lib/mention.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/9ee0f2dc6c16ea4f29a8b692b94a59cd/elinpf-dsh-ops-access-0.1.2.tgz","_integrity":"sha512-0O5QAFse9qArvMY0zG3mSdvUVF7YhcgVOQeoZxLEXGhukxsV8Qa2ZV9+JZ78SbfQdr75RqKdaNORHaDRfAnHag==","_npmVersion":"10.9.8","description":"Ops access capability seam — owns the YAML credential registry and exposes ctx.opsAccess (resolve/list/register) to provider plugins.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","yaml":"^2.7.0","@deepseek-ai/dsh-tools":"^0.0.1-rc.1","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"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","@deepseek-ai/dsh-brand":"0.0.1-rc.5","@deepseek-ai/dsh-scope":"0.0.1-rc.5","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@deepseek-ai/dsh-timeout":"0.0.1-rc.5","@deepseek-ai/dsh-attachment":"0.0.1-rc.5","@deepseek-ai/dsh-invariants":"0.0.1-rc.5"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.0-rc.8","@deepseek-ai/dsh-invariants":"^0.0.1-rc.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-access_0.1.2_1788328443993_0.7528858422523197","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@elinpf/dsh-ops-access","version":"0.1.3","license":"MIT","_id":"@elinpf/dsh-ops-access@0.1.3","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"3eb48cc72c2c715f2f4799c349d24715f2ffcbdc","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-access/-/dsh-ops-access-0.1.3.tgz","fileCount":13,"integrity":"sha512-SjwNPLieeqt5lcLwdreQ0ohzw5+haleGZGyKc50qD1s2+B6j98azOOoKJPyVtlDkexxPXG6ddrwjyrfvLEEgHg==","signatures":[{"sig":"MEUCICExtBIgcN7KdrDVxWlVsX3nRDnO8ANa6pHexl96OEdzAiEA+OP9jIPgbiOsc+HZpPYTzCJHdfAyOSKBGt36/jVU3iU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85436},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-access-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"},"./mention":{"types":"./lib/mention.d.ts","default":"./lib/mention.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/782ebae8f5dc914c50172d158454237e/elinpf-dsh-ops-access-0.1.3.tgz","_integrity":"sha512-SjwNPLieeqt5lcLwdreQ0ohzw5+haleGZGyKc50qD1s2+B6j98azOOoKJPyVtlDkexxPXG6ddrwjyrfvLEEgHg==","_npmVersion":"10.9.8","description":"Ops access capability seam — owns the YAML credential registry and exposes ctx.opsAccess (resolve/list/register) to provider plugins.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","yaml":"^2.7.0","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"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","@deepseek-ai/dsh-brand":"0.0.1-rc.5","@deepseek-ai/dsh-scope":"0.0.1-rc.5","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@deepseek-ai/dsh-timeout":"0.0.1-rc.5","@deepseek-ai/dsh-attachment":"0.0.1-rc.5","@deepseek-ai/dsh-invariants":"0.0.1-rc.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","@deepseek-ai/dsh-invariants":"^0.1.0-rc.8"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-access_0.1.3_1788334196480_0.8851992420685204","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@elinpf/dsh-ops-access","version":"0.1.4","license":"MIT","_id":"@elinpf/dsh-ops-access@0.1.4","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"37310c89480944938842013f29fa8abe907da64a","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-access/-/dsh-ops-access-0.1.4.tgz","fileCount":13,"integrity":"sha512-82YuEnGDeL3dQjrQq1xPUzgakRycPbTysIGsM/CsT5kp5/nAcUT2SJYuPovxMgR2hbSBBKU7LJRy5Y9+SqMnHw==","signatures":[{"sig":"MEYCIQCIxzOnQSrd088d9rj7yrNJK4nfRBVHiv7GqQm1pTCZIgIhAKZPOif+aenNrr9MxOv9R2AYF9itxrMRlDBM+vRUfh65","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85436},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-access-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"},"./mention":{"types":"./lib/mention.d.ts","default":"./lib/mention.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/b0dcd8670395d2598cb687ce506e840d/elinpf-dsh-ops-access-0.1.4.tgz","_integrity":"sha512-82YuEnGDeL3dQjrQq1xPUzgakRycPbTysIGsM/CsT5kp5/nAcUT2SJYuPovxMgR2hbSBBKU7LJRy5Y9+SqMnHw==","_npmVersion":"10.9.8","description":"Ops access capability seam — owns the YAML credential registry and exposes ctx.opsAccess (resolve/list/register) to provider plugins.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","yaml":"^2.7.0","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"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","@deepseek-ai/dsh-brand":"0.0.1-rc.5","@deepseek-ai/dsh-scope":"0.0.1-rc.5","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@deepseek-ai/dsh-timeout":"0.0.1-rc.5","@deepseek-ai/dsh-attachment":"0.0.1-rc.5","@deepseek-ai/dsh-invariants":"0.0.1-rc.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","@deepseek-ai/dsh-invariants":"^0.1.0-rc.8"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-access_0.1.4_1788335574936_0.8647526788081421","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@elinpf/dsh-ops-access","version":"0.1.5","license":"MIT","_id":"@elinpf/dsh-ops-access@0.1.5","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"2c936c95e00e332080cb419648f48cfdb0f49847","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-access/-/dsh-ops-access-0.1.5.tgz","fileCount":13,"integrity":"sha512-RFLCS8MXhMiNv2OlbKjWfEvuJbjp2kwf3/cf0/3kqEOIf+r6aDAy0c4RpVJ2NsjESeSZE8MGEybweEh3qg/xdQ==","signatures":[{"sig":"MEQCIB7QQJqudWL4CLHaCCoKWfjUtMHhMAAycFhiYhDaJBEFAiBnoJMXP/1hUE0NMsQw6HRjJLzaGy8be1o2sSgNk0uAvQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85436},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-access-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"},"./mention":{"types":"./lib/mention.d.ts","default":"./lib/mention.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/b4b484e44eba0224c0f81a26972681b6/elinpf-dsh-ops-access-0.1.5.tgz","_integrity":"sha512-RFLCS8MXhMiNv2OlbKjWfEvuJbjp2kwf3/cf0/3kqEOIf+r6aDAy0c4RpVJ2NsjESeSZE8MGEybweEh3qg/xdQ==","_npmVersion":"10.9.8","description":"Ops access capability seam — owns the YAML credential registry and exposes ctx.opsAccess (resolve/list/register) to provider plugins.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","yaml":"^2.7.0","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"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","@deepseek-ai/dsh-brand":"0.0.1-rc.5","@deepseek-ai/dsh-scope":"0.0.1-rc.5","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@deepseek-ai/dsh-timeout":"0.0.1-rc.5","@deepseek-ai/dsh-attachment":"0.0.1-rc.5","@deepseek-ai/dsh-invariants":"0.0.1-rc.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","@deepseek-ai/dsh-invariants":"^0.1.0-rc.8"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-access_0.1.5_1788335905732_0.7964560453251694","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@elinpf/dsh-ops-access","version":"0.1.6","license":"MIT","_id":"@elinpf/dsh-ops-access@0.1.6","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"aac808b215ee4b628617584e621f37cb420340d1","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-access/-/dsh-ops-access-0.1.6.tgz","fileCount":13,"integrity":"sha512-fpGNzbiic1akguQnj9MxnmwQqLWsv1VlRDlkaAGlJ1WnOLTvA2DEwEU6REXwL2fItW7cjJcofZ7iM2y9fMu+YQ==","signatures":[{"sig":"MEYCIQDQkXbya8b2v/+0HWv94RaOXxJud8sVu6cj6UpZOrXMOgIhANv5/RUU82ODdxnuhKJ8QSpZ/GHPirKVh4Fvp5geI1Td","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87723},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-access-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"},"./mention":{"types":"./lib/mention.d.ts","default":"./lib/mention.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/b73f1518b1c2409ad94d2032d8e46d4c/elinpf-dsh-ops-access-0.1.6.tgz","_integrity":"sha512-fpGNzbiic1akguQnj9MxnmwQqLWsv1VlRDlkaAGlJ1WnOLTvA2DEwEU6REXwL2fItW7cjJcofZ7iM2y9fMu+YQ==","_npmVersion":"10.9.8","description":"Ops access capability seam — owns the YAML credential registry and exposes ctx.opsAccess (resolve/list/register) to provider plugins.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","yaml":"^2.7.0","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"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","@deepseek-ai/dsh-brand":"0.0.1-rc.5","@deepseek-ai/dsh-scope":"0.0.1-rc.5","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@deepseek-ai/dsh-timeout":"0.0.1-rc.5","@deepseek-ai/dsh-attachment":"0.0.1-rc.5","@deepseek-ai/dsh-invariants":"0.0.1-rc.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","@deepseek-ai/dsh-invariants":"^0.1.0-rc.8"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-access_0.1.6_1788491362474_0.41604135785659957","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@elinpf/dsh-ops-access","version":"0.1.7","license":"MIT","_id":"@elinpf/dsh-ops-access@0.1.7","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"9995d51ba9767f960a4b2e5ab9e75555eedfe672","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-access/-/dsh-ops-access-0.1.7.tgz","fileCount":13,"integrity":"sha512-95NetJQO6Y7ZESs/A7X9wjt/iq05s3AMRwybqLKnyH2d9osIgbA7g+57GQ0Emjy8Ltqs7LJL7/VB9iQzpcZTFQ==","signatures":[{"sig":"MEUCIQCio5hAzW9VrcOH6l/1JDDCK9oo1vMCDP+MW/m+NszmYwIgF80ex5B7uWbZP4PMkkX+1QGPXUkXDM1qsy1hGuAC16c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87723},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-access-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"},"./mention":{"types":"./lib/mention.d.ts","default":"./lib/mention.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/cbe1b513ea09d4ee2e60f1d6d01203bd/elinpf-dsh-ops-access-0.1.7.tgz","_integrity":"sha512-95NetJQO6Y7ZESs/A7X9wjt/iq05s3AMRwybqLKnyH2d9osIgbA7g+57GQ0Emjy8Ltqs7LJL7/VB9iQzpcZTFQ==","_npmVersion":"10.9.8","description":"Ops access capability seam — owns the YAML credential registry and exposes ctx.opsAccess (resolve/list/register) to provider plugins.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","yaml":"^2.7.0","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"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","@deepseek-ai/dsh-brand":"0.0.1-rc.5","@deepseek-ai/dsh-scope":"0.0.1-rc.5","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@deepseek-ai/dsh-timeout":"0.0.1-rc.5","@deepseek-ai/dsh-attachment":"0.0.1-rc.5","@deepseek-ai/dsh-invariants":"0.0.1-rc.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","@deepseek-ai/dsh-invariants":"^0.1.0-rc.8"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-access_0.1.7_1788768166951_0.48831791012925807","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@elinpf/dsh-ops-access","version":"0.2.0","license":"MIT","_id":"@elinpf/dsh-ops-access@0.2.0","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"d635aa0cd6092185d3214b745016064f367d8268","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-access/-/dsh-ops-access-0.2.0.tgz","fileCount":15,"integrity":"sha512-+UTzSsJ/5JLw47VQoxzQ3znrCzOoWxDK1t2oJfMJoBRBwNTUy5yv7G08YL9mnupYnn8fJzgDZL5QI9HS1+6OPg==","signatures":[{"sig":"MEYCIQChY14YDqciqs1WEI2PL41w8AYKuk6c7IjClG0bB/O20QIhAKlnbuYD1Ykq+5yVo7bb+yC1cCnrPsu2v4AhmoqDfQaN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":116458},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-access-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"},"./mention":{"types":"./lib/mention.d.ts","default":"./lib/mention.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/9618683d618b4c0427c2f824acb0991b/elinpf-dsh-ops-access-0.2.0.tgz","_integrity":"sha512-+UTzSsJ/5JLw47VQoxzQ3znrCzOoWxDK1t2oJfMJoBRBwNTUy5yv7G08YL9mnupYnn8fJzgDZL5QI9HS1+6OPg==","_npmVersion":"10.9.8","description":"Ops access capability seam — owns the YAML credential registry and exposes ctx.opsAccess (resolve/list/register) to provider plugins.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","yaml":"^2.7.0","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"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","@deepseek-ai/dsh-brand":"0.0.1-rc.5","@deepseek-ai/dsh-scope":"0.0.1-rc.5","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@deepseek-ai/dsh-timeout":"0.0.1-rc.5","@deepseek-ai/dsh-attachment":"0.0.1-rc.5","@deepseek-ai/dsh-invariants":"0.0.1-rc.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","@deepseek-ai/dsh-invariants":"^0.1.0-rc.8"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-access_0.2.0_1789349532724_0.7301295661921494","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@elinpf/dsh-ops-access","version":"0.2.1","license":"MIT","_id":"@elinpf/dsh-ops-access@0.2.1","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"37780c30fd03540a306e9b54066d0d727e8262d1","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-access/-/dsh-ops-access-0.2.1.tgz","fileCount":17,"integrity":"sha512-CL/CDx7eWWq7Ey/bi/OuvZWjQ9EhWouId6gp8eje5xlFbym5r/7qL5JiJ5RQ5USlJO80efvTTe8980U9uypbrA==","signatures":[{"sig":"MEUCIFz7+lFyLpEmUNRtU3PLH4uxBQAJVi8hHZpWWAAaq9dOAiEAsad1DQ0xe0rc5eoYbeRj+kgG+6adkZo3subtioI+uGU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":137652},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-access-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"},"./mention":{"types":"./lib/mention.d.ts","default":"./lib/mention.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/1d424bbd43966b63c7eee7efd50e1170/elinpf-dsh-ops-access-0.2.1.tgz","_integrity":"sha512-CL/CDx7eWWq7Ey/bi/OuvZWjQ9EhWouId6gp8eje5xlFbym5r/7qL5JiJ5RQ5USlJO80efvTTe8980U9uypbrA==","_npmVersion":"10.9.8","description":"Ops access capability seam — owns the YAML credential registry and exposes ctx.opsAccess (resolve/list/register) to provider plugins.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","yaml":"^2.7.0","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"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","@deepseek-ai/dsh-brand":"0.0.1-rc.5","@deepseek-ai/dsh-scope":"0.0.1-rc.5","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@deepseek-ai/dsh-timeout":"0.0.1-rc.5","@deepseek-ai/dsh-attachment":"0.0.1-rc.5","@deepseek-ai/dsh-invariants":"0.0.1-rc.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","@deepseek-ai/dsh-invariants":"^0.1.0-rc.8"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-access_0.2.1_1789351341874_0.8221975685854765","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@elinpf/dsh-ops-access","version":"0.3.0","license":"MIT","_id":"@elinpf/dsh-ops-access@0.3.0","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"34ca8ed25cab1cd99754fa9518da1df0b4b35ed5","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-access/-/dsh-ops-access-0.3.0.tgz","fileCount":17,"integrity":"sha512-1Ok0l5zxF3GLtSW1hWkicMCYzgmiScEZJs5bp4Cv/4x91+AYmPDZFabfuZUz+xYPQtyjds/Rwy2zgj0Akk8JFw==","signatures":[{"sig":"MEYCIQCwO8qvAO5q8UsmPIquiFIcqprw45VUedhuoWkN3wHSogIhAJO5W/Cez4j92egOo2bdnzKyczwWqnKhi2fTjLDaQ77l","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":138421},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-access-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"},"./mention":{"types":"./lib/mention.d.ts","default":"./lib/mention.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/c09f17b498e52605534e21df0b6a5dde/elinpf-dsh-ops-access-0.3.0.tgz","_integrity":"sha512-1Ok0l5zxF3GLtSW1hWkicMCYzgmiScEZJs5bp4Cv/4x91+AYmPDZFabfuZUz+xYPQtyjds/Rwy2zgj0Akk8JFw==","_npmVersion":"10.9.8","description":"Ops access capability seam — owns the YAML credential registry and exposes ctx.opsAccess (resolve/list/register) to provider plugins.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","yaml":"^2.7.0","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"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","@deepseek-ai/dsh-brand":"0.0.1-rc.5","@deepseek-ai/dsh-scope":"0.0.1-rc.5","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@deepseek-ai/dsh-timeout":"0.0.1-rc.5","@deepseek-ai/dsh-attachment":"0.0.1-rc.5","@deepseek-ai/dsh-invariants":"0.0.1-rc.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","@deepseek-ai/dsh-invariants":"^0.1.0-rc.8"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-access_0.3.0_1789355861048_0.0972001341333093","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@elinpf/dsh-ops-access","version":"0.4.0","license":"MIT","_id":"@elinpf/dsh-ops-access@0.4.0","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"51746f51819a6116f2cdd10f14e496c792de8903","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-access/-/dsh-ops-access-0.4.0.tgz","fileCount":17,"integrity":"sha512-MgULBk0xfx7WG7lOfHCJOdekpd7319vpIF2MCCU7uWYxN4TTM4C3ai0gJS5vKAATaUh7fnBLuL3rvPHPC1Claw==","signatures":[{"sig":"MEUCIQCxtUbsg+XikCFqYunALG2WWXKPcUSN3NGVLAXbkrmboAIgIpLeoOMANFmihlqe2ijDlv777cN6RB2/0U2DwSgbKI0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":140857},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-access-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"},"./mention":{"types":"./lib/mention.d.ts","default":"./lib/mention.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/f72fd1351cc2f2e927c23dc81b4b776c/elinpf-dsh-ops-access-0.4.0.tgz","_integrity":"sha512-MgULBk0xfx7WG7lOfHCJOdekpd7319vpIF2MCCU7uWYxN4TTM4C3ai0gJS5vKAATaUh7fnBLuL3rvPHPC1Claw==","_npmVersion":"10.9.8","description":"Ops access capability seam — owns the YAML credential registry and exposes ctx.opsAccess (resolve/list/register) to provider plugins.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","yaml":"^2.7.0","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"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","@deepseek-ai/dsh-brand":"0.0.1-rc.5","@deepseek-ai/dsh-scope":"0.0.1-rc.5","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@deepseek-ai/dsh-timeout":"0.0.1-rc.5","@deepseek-ai/dsh-attachment":"0.0.1-rc.5","@deepseek-ai/dsh-invariants":"0.0.1-rc.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","@deepseek-ai/dsh-invariants":"^0.1.0-rc.8"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-access_0.4.0_1789542809888_0.12094590107360137","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"_id":"@elinpf/dsh-ops-access@0.4.1","dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"f7bf68c6a76ff6ade750f83e75781d8343860754","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-access/-/dsh-ops-access-0.4.1.tgz","fileCount":17,"integrity":"sha512-DfPUO+YCDS1TM93mXwlc2IBK48h5oLc0sqLquKSCT4JWtbdo97h1FCcKiBVfTB/8SnMUFhm6ITQFaG+JBR02zw==","signatures":[{"sig":"MEUCICxmRzxhU2qO9eT3/lpVZuXqGRx+0IgR1N3Uh5Pf1wE1AiEAik1mbh2rWmvQLpE9tO/snaaG6BTZLiBb2dXkppQ2APk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHdRxgFBu/yfGFenhpPtc45EkmfoBVC6ttlHNnAmSx6eAiB7GGIGRxfsV+2VSRBYIT9hyoAAHhll2+PiaZzwMGLJaA=="}],"unpackedSize":140857},"main":"lib/index.js","name":"@elinpf/dsh-ops-access","type":"module","_from":"file:elinpf-dsh-ops-access-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"},"./mention":{"types":"./lib/mention.d.ts","default":"./lib/mention.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/8551069115ce112c0ddd72164cd5bd2a/elinpf-dsh-ops-access-0.4.1.tgz","_integrity":"sha512-DfPUO+YCDS1TM93mXwlc2IBK48h5oLc0sqLquKSCT4JWtbdo97h1FCcKiBVfTB/8SnMUFhm6ITQFaG+JBR02zw==","_npmVersion":"10.9.8","description":"Ops access capability seam — owns the YAML credential registry and exposes ctx.opsAccess (resolve/list/register) to provider plugins.","directories":{},"maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","yaml":"^2.7.0","@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"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","@deepseek-ai/dsh-brand":"0.0.1-rc.5","@deepseek-ai/dsh-scope":"0.0.1-rc.5","@deepseek-ai/dsh-tools":"0.0.1-rc.1","@deepseek-ai/dsh-timeout":"0.0.1-rc.5","@deepseek-ai/dsh-attachment":"0.0.1-rc.5","@deepseek-ai/dsh-invariants":"0.0.1-rc.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","@deepseek-ai/dsh-invariants":"^0.1.0-rc.8"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-ops-access_0.4.1_1789699727017_0.3984949862912699"}}},"time":{"created":"2026-09-02T03:38:30.021Z","modified":"2026-09-18T02:48:47.334Z","0.1.0":"2026-09-02T03:38:30.282Z","0.1.1":"2026-09-02T03:57:18.419Z","0.1.2":"2026-09-02T05:54:04.128Z","0.1.3":"2026-09-02T07:29:56.624Z","0.1.4":"2026-09-02T07:52:55.055Z","0.1.5":"2026-09-02T07:58:25.889Z","0.1.6":"2026-09-04T03:09:22.614Z","0.1.7":"2026-09-07T08:02:47.081Z","0.2.0":"2026-09-14T01:32:12.877Z","0.2.1":"2026-09-14T02:02:22.022Z","0.3.0":"2026-09-14T03:17:41.169Z","0.4.0":"2026-09-16T07:13:30.010Z","0.4.1":"2026-09-18T02:48:47.096Z"},"license":"MIT","description":"Ops access capability seam — owns the YAML credential registry and exposes ctx.opsAccess (resolve/list/register) to provider plugins.","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"readme":"# @elinpf/dsh-ops-access\n\n运维访问能力缝（capability seam）— 持有 YAML 凭据注册表（默认 `~/.dsh-ops/access.yaml`），向 provider 插件和消费工具暴露 `ctx.opsAccess`（resolve / list / register）。\n\n## 功能\n\n- **单注册表文件、零缓存**：每次 `resolve`/`list`/`writeEntry` 都重新读取、解析、校验 YAML — 改文件立即生效，无需重启。\n- **分层条目**：每个 profile 携带 `ro` 层（agent 默认可读）和 `rw` 层（只有注册了 broker 授权后才发放）。\n- **Provider 缝**：每种凭据类型一个 provider（`k8s`/`ceph`/`ssh` 包），只提供 zod schema 加字段处理（`~` 展开、内容校验、能力探测）。provider 通过 `registerAccessProvider(ctx, provider)` 注册 — 绝不要手写 `ctx.inject` 依赖兄弟服务，会死锁 loader。\n- **引用字段**（`references`）：provider 可声明某字段指向另一个种类的条目（ssh 的 `cred` → `ssh-cred`），让多个条目共享一份凭证而不是各自复制。resolve 时 core 把被引用条目的字段合并到引用方**之下**（同注册表、同 tier、只展开一层）；broker 只被咨询一次，针对引用方条目。`validateResolved` 是合并后的校验钩子，承载只在合并形状上成立的要求（ssh 的登录用户可来自任一侧）。悬挂引用会让引用方的 resolve 及其 `canResolve` 预检一起失败。\n- **`register_access` 工具**：agent 自助写入 ro 层的路径；传 `tier: \"rw\"` 则**提交 rw 注册申请**（仅 hub 模式，ADR-0008）——申请排队在 hub 上，管理员在凭证管理设置区审查字段内容并批准后才真正写入。\n- **Mention 支持**：`@[kind/name](dsh-access:<payload>)` mention 在 `agent/pre-step` 上被解析、重写为可读引用并注入 envelope 上下文；`GET /ops-access/list` 给浏览器的 `@` 选择器供数。编码在 `./mention` 子路径。\n- **Admin 路由**：`GET /ops-access/admin/list`、`GET /ops-access/admin/kinds`、`GET|POST|DELETE /ops-access/admin/entry` — 只出 envelope + 校验状态，绝不出字段值。\n- **可插拔凭证来源**（`source`）：`yaml`（默认）读本地注册表文件；`hub` 每次调用都从独立部署的 [ops-access-hub](../../ops-access-hub/) 服务拉取。hub 模式下，文件类字段的内容物化到**独立的缓存目录**（`hubCacheDir`，默认 `~/.dsh-ops/hub-cache`），是受 TTL 约束的缓存（`materializeTtlMinutes`，默认 15 分钟），**绝不是永久副本**：启动时全量清扫（grant 账本随进程消亡，缓存的 rw 材料不得比它活得久），定时清扫按年龄过期，resolve 现取现物化、到期透明重建。yaml 模式的 `credentialsDir`（文档化的回退路径）永不被清扫。\n\n## 设计要点\n\n- **秘密不过境**：profile 只携带文件路径和连接参数 — 日志、报错、模型上下文都不可能含秘密材料。文件字段保存后只写不读（`getEntry` 连存储路径都不返回）。\n- **为什么这样拆**：core 持有注册表文件和服务；provider 持有各类型的字段知识；消费工具（`ops-tool-kubectl` 等）持有命令拼装。三方各自独立演进。\n- **broker 而非内置守门**：策略（谁能读 rw）住在注册的 `AccessBroker` 里 — 一个纯决策函数，每次 resolve 都咨询。没有 broker 时 resolve 与之前逐字节一致地发 ro。\n- **一切皆 effect**：工具、路由、provider 和 broker 注册都绑在 cordis effect 生命周期上，fiber 销毁 / HMR 卸载会干净移除。\n\n## 配置\n\n```yaml\n- id: ops-access\n  name: '@elinpf/dsh-ops-access'\n  registryFile: ~/.dsh-ops/access.yaml   # 默认值\n  credentialsDir: ~/.dsh-ops/credentials # 默认值；托管凭据内容文件（0600）\n  # source: hub                          # 可选；默认 yaml\n  # hubUrl: http://127.0.0.1:3090        # hub 来源：hub 服务地址\n  # hubToken: ...                        # hub 来源：读 token（或用环境变量 ACCESS_HUB_READ_TOKEN）\n  # hubAdminToken: ...                   # hub 来源：写 token（或用环境变量 ACCESS_HUB_ADMIN_TOKEN）\n  # hubCacheDir: ~/.dsh-ops/hub-cache    # hub 来源：TTL 物化缓存目录（绝不用 credentialsDir）\n  # materializeTtlMinutes: 15            # hub 来源：缓存 TTL；启动时全量清扫\n```\n\n## 测试\n\n```sh\nnpm run build      # tsc → lib/\nnpx vitest run     # spec 用 mock context 驱动真实插件，\n                   # 注册表是真实的 tmp 目录文件\n```\n\n## 已知限制和待办事项\n\n- 无缓存意味着每次调用一次 stat+解析 — 运维规模的注册表下没问题。\n- `ssh` provider 无法做能力探测（没有只读 shell 可测）— 其分层保持未探测状态。\n- 注册表文件按设计可人工编辑；没有并发写锁。\n","readmeFilename":"README.zh.md"}