{"_id":"@elinpf/dsh-ops-tool-environment","_rev":"13-56a286f82717a64a670cd28c8d561569","name":"@elinpf/dsh-ops-tool-environment","dist-tags":{"latest":"0.4.1"},"versions":{"0.1.0":{"name":"@elinpf/dsh-ops-tool-environment","version":"0.1.0","license":"MIT","_id":"@elinpf/dsh-ops-tool-environment@0.1.0","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"f1fc9e8ecaa18e423f0bbac79ee2fe1fc4ea7af2","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-tool-environment/-/dsh-ops-tool-environment-0.1.0.tgz","fileCount":27,"integrity":"sha512-cu5Rom35EQhuJcWfF5UlhPy0Pb2zGxkDooOU9JP00oBV/AjTRnhLP4GRzl8aN4h1pppzVfw4m7CyOWLMgbbnsA==","signatures":[{"sig":"MEUCIGY0vwKaL3DzBb62FlLJq2EylxX7C5+7RDIk+ouFDApyAiEAwexMGCqzTDjtRItIawsoxcvq2q215ZpwUXg97ZkIObE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":136085},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-tool-environment-0.1.0.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./prompt":{"types":"./lib/prompt.d.ts","default":"./lib/prompt.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/12ca7a16fb68b3998fdd16fe14192699/elinpf-dsh-ops-tool-environment-0.1.0.tgz","_integrity":"sha512-cu5Rom35EQhuJcWfF5UlhPy0Pb2zGxkDooOU9JP00oBV/AjTRnhLP4GRzl8aN4h1pppzVfw4m7CyOWLMgbbnsA==","_npmVersion":"10.9.8","description":"Environment inventory for ops mode — read-only scanner that maps registered k8s clusters (workloads, services, middleware instances, best-effort relation edges) into ~/.dsh-ops/environment.yaml, plus the model-facing environment tool (overview/show/refres","directories":{},"_nodeVersion":"22.23.2","dependencies":{"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-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.1.0","@elinpf/dsh-ops-prompts":"0.1.0"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-tools":"^0.0.1-rc.1","@elinpf/dsh-ops-access":"^0.1.0","@elinpf/dsh-ops-prompts":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-tool-environment_0.1.0_1788320334737_0.21661919465530421","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@elinpf/dsh-ops-tool-environment","version":"0.1.1","license":"MIT","_id":"@elinpf/dsh-ops-tool-environment@0.1.1","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"9db14c4bc6a98f2a439c4d28abf48f470a7321db","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-tool-environment/-/dsh-ops-tool-environment-0.1.1.tgz","fileCount":27,"integrity":"sha512-ZVY/soUW4taw4IfYPnve8vExm5wkWZuiqkQO1t49JdGzZNM1WACFaSxkO/Qd6wk6zzea5SwNRnndBMVWSg33Pw==","signatures":[{"sig":"MEUCICTEV7omY/tVQg3Ntfdft5lG9Ehq3NL2t8PU6qvuvtMqAiEA7lF4T3tUb1rTjoNz8RU8G5y55mrdNt5QaUAP+1VFJDg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":136085},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-tool-environment-0.1.1.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./prompt":{"types":"./lib/prompt.d.ts","default":"./lib/prompt.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/4a5a6ffe4d2fe28619194686b00a3425/elinpf-dsh-ops-tool-environment-0.1.1.tgz","_integrity":"sha512-ZVY/soUW4taw4IfYPnve8vExm5wkWZuiqkQO1t49JdGzZNM1WACFaSxkO/Qd6wk6zzea5SwNRnndBMVWSg33Pw==","_npmVersion":"10.9.8","description":"Environment inventory for ops mode — read-only scanner that maps registered k8s clusters (workloads, services, middleware instances, best-effort relation edges) into ~/.dsh-ops/environment.yaml, plus the model-facing environment tool (overview/show/refres","directories":{},"_nodeVersion":"22.23.2","dependencies":{"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-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.1.1","@elinpf/dsh-ops-prompts":"0.1.1"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-tools":"^0.0.1-rc.1","@elinpf/dsh-ops-access":"^0.1.1","@elinpf/dsh-ops-prompts":"^0.1.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-tool-environment_0.1.1_1788321458937_0.28385421928063503","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@elinpf/dsh-ops-tool-environment","version":"0.1.2","license":"MIT","_id":"@elinpf/dsh-ops-tool-environment@0.1.2","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"791573ae2ca174d84877ab9c268ca6dd1c62f017","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-tool-environment/-/dsh-ops-tool-environment-0.1.2.tgz","fileCount":27,"integrity":"sha512-7FTQir2mEJToAh+2/k0RRJpgAkaP+pduZV5bRAulB64PIYpUMqJOeFj3/XcnDiQb6tCFvQDKdESp2dgdLrgG0Q==","signatures":[{"sig":"MEQCIGrTjrQ9ApuS2YIZVI4DT83j1snUF0v6Eh9CRa1x3vE3AiACU2+73LVV6094vnszdOTaJAWnguQNLG2lKD4pAVvs2g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":136085},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-tool-environment-0.1.2.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./prompt":{"types":"./lib/prompt.d.ts","default":"./lib/prompt.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/e5379161b4e1ec0e0622a356c7772048/elinpf-dsh-ops-tool-environment-0.1.2.tgz","_integrity":"sha512-7FTQir2mEJToAh+2/k0RRJpgAkaP+pduZV5bRAulB64PIYpUMqJOeFj3/XcnDiQb6tCFvQDKdESp2dgdLrgG0Q==","_npmVersion":"10.9.8","description":"Environment inventory for ops mode — read-only scanner that maps registered k8s clusters (workloads, services, middleware instances, best-effort relation edges) into ~/.dsh-ops/environment.yaml, plus the model-facing environment tool (overview/show/refres","directories":{},"_nodeVersion":"22.23.2","dependencies":{"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-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.1.2","@elinpf/dsh-ops-prompts":"0.1.2"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-tools":"^0.0.1-rc.1","@elinpf/dsh-ops-access":"^0.1.2","@elinpf/dsh-ops-prompts":"^0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-tool-environment_0.1.2_1788328466199_0.2734489676752383","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@elinpf/dsh-ops-tool-environment","version":"0.1.3","license":"MIT","_id":"@elinpf/dsh-ops-tool-environment@0.1.3","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"4e0f43fa8ee4ef2fa4483f8ea90b733b1d671b56","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-tool-environment/-/dsh-ops-tool-environment-0.1.3.tgz","fileCount":27,"integrity":"sha512-VlaJQeuFWt0rjSiU5Eex5yxJnUEv3PSqJKWEWxuT9VSB+BhQCpcXv+ylPIFJ9w0l90iwZhmaBxJBkZEwe9NZxw==","signatures":[{"sig":"MEYCIQDJR33LUhnU9OsTFqpFCKCig4W9/BZvdzCV1C34iNmB1wIhAOgCl98PVrh8PhxEk21jgw7NI+E3lwxXJjXcVfTRegGV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":136085},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-tool-environment-0.1.3.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./prompt":{"types":"./lib/prompt.d.ts","default":"./lib/prompt.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/d862f91bb1c36ca4e4149d457b533211/elinpf-dsh-ops-tool-environment-0.1.3.tgz","_integrity":"sha512-VlaJQeuFWt0rjSiU5Eex5yxJnUEv3PSqJKWEWxuT9VSB+BhQCpcXv+ylPIFJ9w0l90iwZhmaBxJBkZEwe9NZxw==","_npmVersion":"10.9.8","description":"Environment inventory for ops mode — read-only scanner that maps registered k8s clusters (workloads, services, middleware instances, best-effort relation edges) into ~/.dsh-ops/environment.yaml, plus the model-facing environment tool (overview/show/refres","directories":{},"_nodeVersion":"22.23.2","dependencies":{"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-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.1.3","@elinpf/dsh-ops-prompts":"0.1.3"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-tools":"^0.1.0-rc.8","@elinpf/dsh-ops-access":"^0.1.3","@elinpf/dsh-ops-prompts":"^0.1.3"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-tool-environment_0.1.3_1788334217489_0.5786345612758774","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@elinpf/dsh-ops-tool-environment","version":"0.1.4","license":"MIT","_id":"@elinpf/dsh-ops-tool-environment@0.1.4","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"2ec585d50b0f38e7f15423e8e67cb6659873987c","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-tool-environment/-/dsh-ops-tool-environment-0.1.4.tgz","fileCount":27,"integrity":"sha512-u/FhDSTiu7I72wBgXHcWS1D8HQuTRk2p53ZwM71mXuNtamSu3LxJtQuWx3jfV+BbgQed27BTGgyPSH6VB7IREg==","signatures":[{"sig":"MEYCIQCY7EPRqLfMH3THNY+wEJkkxe9SCKNtREzpI8JV+ocqJQIhAJZMKK+a3ztLTltZTuS1oxkOyRplQvUGs6h0kibyMjTG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":136085},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-tool-environment-0.1.4.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./prompt":{"types":"./lib/prompt.d.ts","default":"./lib/prompt.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/15903a3cf601831da6c6128ff84aa002/elinpf-dsh-ops-tool-environment-0.1.4.tgz","_integrity":"sha512-u/FhDSTiu7I72wBgXHcWS1D8HQuTRk2p53ZwM71mXuNtamSu3LxJtQuWx3jfV+BbgQed27BTGgyPSH6VB7IREg==","_npmVersion":"10.9.8","description":"Environment inventory for ops mode — read-only scanner that maps registered k8s clusters (workloads, services, middleware instances, best-effort relation edges) into ~/.dsh-ops/environment.yaml, plus the model-facing environment tool (overview/show/refres","directories":{},"_nodeVersion":"22.23.2","dependencies":{"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-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.1.4","@elinpf/dsh-ops-prompts":"0.1.4"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-tools":"^0.1.0-rc.8","@elinpf/dsh-ops-access":"^0.1.4","@elinpf/dsh-ops-prompts":"^0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-tool-environment_0.1.4_1788335597936_0.4282759983272091","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@elinpf/dsh-ops-tool-environment","version":"0.1.5","license":"MIT","_id":"@elinpf/dsh-ops-tool-environment@0.1.5","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"ff2e4011f426924648512fc46a7497e8844b3662","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-tool-environment/-/dsh-ops-tool-environment-0.1.5.tgz","fileCount":27,"integrity":"sha512-Dsd4rL+Kd38TN3D1QUUODj8jhSOGbFKSesML0UOpYVFa1DRJRjiSfCWn4m9zxkREGeUh31gUiGgCgQIoupnZXg==","signatures":[{"sig":"MEUCIQC0VgxKdLYY0lZnHFa4C1rkrnunT1J54YeW6O178+pNfAIgY2n+3VOJaBZyDs4CoBKoSkowffivf1cmpDwDuLxAO6Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":136085},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-tool-environment-0.1.5.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./prompt":{"types":"./lib/prompt.d.ts","default":"./lib/prompt.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/08939da9e9ce5288e22547196e145c8b/elinpf-dsh-ops-tool-environment-0.1.5.tgz","_integrity":"sha512-Dsd4rL+Kd38TN3D1QUUODj8jhSOGbFKSesML0UOpYVFa1DRJRjiSfCWn4m9zxkREGeUh31gUiGgCgQIoupnZXg==","_npmVersion":"10.9.8","description":"Environment inventory for ops mode — read-only scanner that maps registered k8s clusters (workloads, services, middleware instances, best-effort relation edges) into ~/.dsh-ops/environment.yaml, plus the model-facing environment tool (overview/show/refres","directories":{},"_nodeVersion":"22.23.2","dependencies":{"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-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.1.5","@elinpf/dsh-ops-prompts":"0.1.5"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-tools":"^0.1.0-rc.8","@elinpf/dsh-ops-access":"^0.1.5","@elinpf/dsh-ops-prompts":"^0.1.5"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-tool-environment_0.1.5_1788335928867_0.18685113031409717","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@elinpf/dsh-ops-tool-environment","version":"0.1.6","license":"MIT","_id":"@elinpf/dsh-ops-tool-environment@0.1.6","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"577ba99f900712962362ce13c5835f1f3059c577","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-tool-environment/-/dsh-ops-tool-environment-0.1.6.tgz","fileCount":27,"integrity":"sha512-pf4sj/BUn4/CVJbPD4AGUSZusay1jxG8miPy2FqJ1fZWayOBc97Gv/EukW3dphSIM4i9ph4Xcfm7E+K0bAXfkA==","signatures":[{"sig":"MEQCH3ccfsxoLTKf9nx4+1VLy+8YdnClNcPYLuZCXcwm4WMCIQC8i0FTGpIaTHlc7Fk/Wp5ZwTi5pv3XWRrPhUlns3Nxlg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEbJc5SQWdbb1keY1h7SPWCJEofuzsjd7838tMR6rZ0ZAiEA6oi4mcqdEX+mLQEusJ2iPhUha5RvTjrxYUPSOED815s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":136085},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-tool-environment-0.1.6.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./prompt":{"types":"./lib/prompt.d.ts","default":"./lib/prompt.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/149065acbe40a672711a058ca19ea6f5/elinpf-dsh-ops-tool-environment-0.1.6.tgz","_integrity":"sha512-pf4sj/BUn4/CVJbPD4AGUSZusay1jxG8miPy2FqJ1fZWayOBc97Gv/EukW3dphSIM4i9ph4Xcfm7E+K0bAXfkA==","_npmVersion":"10.9.8","description":"Environment inventory for ops mode — read-only scanner that maps registered k8s clusters (workloads, services, middleware instances, best-effort relation edges) into ~/.dsh-ops/environment.yaml, plus the model-facing environment tool (overview/show/refres","directories":{},"_nodeVersion":"22.23.2","dependencies":{"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-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.1.6","@elinpf/dsh-ops-prompts":"0.1.6"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-tools":"^0.1.0-rc.8","@elinpf/dsh-ops-access":"^0.1.6","@elinpf/dsh-ops-prompts":"^0.1.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-tool-environment_0.1.6_1788491461638_0.2274060314368067","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@elinpf/dsh-ops-tool-environment","version":"0.1.7","license":"MIT","_id":"@elinpf/dsh-ops-tool-environment@0.1.7","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"80433b15748715acf563887643348b1477c3a3d7","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-tool-environment/-/dsh-ops-tool-environment-0.1.7.tgz","fileCount":27,"integrity":"sha512-fafuBV+2j+Q4pGUgkFchXKK7VsE/7zQd9HfZALoNUgtt6s0lrPE1xDfQnbE/xWkcx53fjEps8hQdQa8mB4Xwrg==","signatures":[{"sig":"MEUCIQDSBEs08zXXobrX8d8qolCHIlAGrNnrFiNuK8u/iPCa+wIgSMDodH2v9EaN0Rm8qlWzdMIP2uylby8I4EmVzZOtRG0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDVh+18Rq7YkfvKXqE6Q7I66lqnNHSmj9GStKez1GHDlgIgAz/P8YUZHIq3QAivq/YWXFRIGH44awVbkhCU714CmFg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":136085},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-tool-environment-0.1.7.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./prompt":{"types":"./lib/prompt.d.ts","default":"./lib/prompt.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/471c4b903abb8ad512ee72ea61825eef/elinpf-dsh-ops-tool-environment-0.1.7.tgz","_integrity":"sha512-fafuBV+2j+Q4pGUgkFchXKK7VsE/7zQd9HfZALoNUgtt6s0lrPE1xDfQnbE/xWkcx53fjEps8hQdQa8mB4Xwrg==","_npmVersion":"10.9.8","description":"Environment inventory for ops mode — read-only scanner that maps registered k8s clusters (workloads, services, middleware instances, best-effort relation edges) into ~/.dsh-ops/environment.yaml, plus the model-facing environment tool (overview/show/refres","directories":{},"_nodeVersion":"22.23.2","dependencies":{"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-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.1.7","@elinpf/dsh-ops-prompts":"0.1.7"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-tools":"^0.1.0-rc.8","@elinpf/dsh-ops-access":"^0.1.7","@elinpf/dsh-ops-prompts":"^0.1.7"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-tool-environment_0.1.7_1788768437786_0.6032839039573776","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@elinpf/dsh-ops-tool-environment","version":"0.2.0","license":"MIT","_id":"@elinpf/dsh-ops-tool-environment@0.2.0","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"a084a12eeb8049a13af7905a7de6cc14abd906be","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-tool-environment/-/dsh-ops-tool-environment-0.2.0.tgz","fileCount":27,"integrity":"sha512-5mVk6i4n5ZNzKGtcj3ygx+StZPBs2KTjmqwvJ/gYaeBeuaCef8I9Ra9IIGOmTgLkXkzD3h5XYqLKBTkrI0Cymg==","signatures":[{"sig":"MEUCIH8xdbUWEKqvWUkEQhmM24QUqpGzWbirYqgGl3RVhk5ZAiEAxTRMpXg6u7+U0mqj3ktVJTi90EJLRCNBurqeHAxFBL0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICH0gHUl6Ng1IjrfrXB79bSPZ0hzj5u3LndOtYQJi6VjAiEA0lF9S69gYfloANIolN/SAaWxqXGkMW1N295vqfg3r+M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":136085},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-tool-environment-0.2.0.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./prompt":{"types":"./lib/prompt.d.ts","default":"./lib/prompt.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/bfad1103c5e6244411508293384da696/elinpf-dsh-ops-tool-environment-0.2.0.tgz","_integrity":"sha512-5mVk6i4n5ZNzKGtcj3ygx+StZPBs2KTjmqwvJ/gYaeBeuaCef8I9Ra9IIGOmTgLkXkzD3h5XYqLKBTkrI0Cymg==","_npmVersion":"10.9.8","description":"Environment inventory for ops mode — read-only scanner that maps registered k8s clusters (workloads, services, middleware instances, best-effort relation edges) into ~/.dsh-ops/environment.yaml, plus the model-facing environment tool (overview/show/refres","directories":{},"_nodeVersion":"22.23.2","dependencies":{"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-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.2.0","@elinpf/dsh-ops-prompts":"0.2.0"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-tools":"^0.1.0-rc.8","@elinpf/dsh-ops-access":"^0.2.0","@elinpf/dsh-ops-prompts":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-tool-environment_0.2.0_1789349612402_0.3193971046143469","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@elinpf/dsh-ops-tool-environment","version":"0.2.1","license":"MIT","_id":"@elinpf/dsh-ops-tool-environment@0.2.1","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"74434ea5f0b20c1b655f6c45fcdff16bc35184ec","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-tool-environment/-/dsh-ops-tool-environment-0.2.1.tgz","fileCount":27,"integrity":"sha512-jpujxcKJ1GhrI/JKZwUtJRXsWZCBypYrnAFWPnskCMK2BkI/zQ9wd8Kegd7c5NiU28b7XHZ6HtTCN6VdIq2dIw==","signatures":[{"sig":"MEUCIGvdyqMt0qYFVvrbrVSsYiSYuXi4nTS5bOAjEWWgNLNAAiEAyB7UuV1+j/Ie1rCz87Os/va+lFQf1ccZtG7peLIyx4o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDyZQDNQ1s6QdGHbxW0fWgAB9uvalpYUf00FkTn4f17jgIhAJaJBMto0wvdMYyKGZW2cdygYUcjAPDKaCGmPUt+YDg6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":136085},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-tool-environment-0.2.1.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./prompt":{"types":"./lib/prompt.d.ts","default":"./lib/prompt.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/e6470befb07b2b12b27437536184675d/elinpf-dsh-ops-tool-environment-0.2.1.tgz","_integrity":"sha512-jpujxcKJ1GhrI/JKZwUtJRXsWZCBypYrnAFWPnskCMK2BkI/zQ9wd8Kegd7c5NiU28b7XHZ6HtTCN6VdIq2dIw==","_npmVersion":"10.9.8","description":"Environment inventory for ops mode — read-only scanner that maps registered k8s clusters (workloads, services, middleware instances, best-effort relation edges) into ~/.dsh-ops/environment.yaml, plus the model-facing environment tool (overview/show/refres","directories":{},"_nodeVersion":"22.23.2","dependencies":{"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-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.2.1","@elinpf/dsh-ops-prompts":"0.2.1"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-tools":"^0.1.0-rc.8","@elinpf/dsh-ops-access":"^0.2.1","@elinpf/dsh-ops-prompts":"^0.2.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-tool-environment_0.2.1_1789351438743_0.2602881275564015","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@elinpf/dsh-ops-tool-environment","version":"0.3.0","license":"MIT","_id":"@elinpf/dsh-ops-tool-environment@0.3.0","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"e6db1d2bc9dd6a95e38566351ec25b19dbfa2506","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-tool-environment/-/dsh-ops-tool-environment-0.3.0.tgz","fileCount":27,"integrity":"sha512-NQPoeEz8VPYuqPoXRLJj42wFy4XS4Oc1GSLNR7ktK1Upg+kgTAW0FMhFVYwjBznnUcTdjE+SW3cMhNtLFiz1ig==","signatures":[{"sig":"MEUCIEM+c/Qu28YUlAkcLtmJ6L3AvyGO3pFSWcjlWRluq/gRAiEA3OOEIStNn2F3LG2S0ahMmtdiLKZUCWwlz9Bd6p5oFgw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDMgYpKU/GWBGAfOv6iYK1YAOeb9uGkONznbt3W9nBO1AIhAKxD7RInh57OewqKlWRjSPbEL5FY833aAUhlENVDe1kd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":136085},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-tool-environment-0.3.0.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./prompt":{"types":"./lib/prompt.d.ts","default":"./lib/prompt.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/9d958c98a5655ddfbf9f50bda8337dcf/elinpf-dsh-ops-tool-environment-0.3.0.tgz","_integrity":"sha512-NQPoeEz8VPYuqPoXRLJj42wFy4XS4Oc1GSLNR7ktK1Upg+kgTAW0FMhFVYwjBznnUcTdjE+SW3cMhNtLFiz1ig==","_npmVersion":"10.9.8","description":"Environment inventory for ops mode — read-only scanner that maps registered k8s clusters (workloads, services, middleware instances, best-effort relation edges) into ~/.dsh-ops/environment.yaml, plus the model-facing environment tool (overview/show/refres","directories":{},"_nodeVersion":"22.23.2","dependencies":{"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-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.3.0","@elinpf/dsh-ops-prompts":"0.3.0"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-tools":"^0.1.0-rc.8","@elinpf/dsh-ops-access":"^0.3.0","@elinpf/dsh-ops-prompts":"^0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-tool-environment_0.3.0_1789355938979_0.43846418731339254","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@elinpf/dsh-ops-tool-environment","version":"0.4.0","license":"MIT","_id":"@elinpf/dsh-ops-tool-environment@0.4.0","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"ee050e0a88130f1b2831204bb2f2517fbf2306a3","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-tool-environment/-/dsh-ops-tool-environment-0.4.0.tgz","fileCount":27,"integrity":"sha512-BYZ+CCBMqs4fCey5v09DRvWWLxi1BvMrfIFJwX7jfBkgoNBRVHPZ34fun5jIBR/BspJ2CgtU5nIHVuGAWWoI4w==","signatures":[{"sig":"MEUCICvswL5TS8qbSbcB8KQNUnxnj2X9VXrbLgpFvOn+4jdUAiEAm4GUr0beL1qE/G94JZjPNSSGCpGZhsmwlCQPwkfN2co=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICH9I+izRLUUXQu/dDH/CXyYyxhsYnemMuUYoeaRQ1FrAiAqP2iFJl7hMldbV8QyQR+L3JyoNpjReEU5Gr3+qPdwvg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":136130},"main":"lib/index.js","type":"module","_from":"file:elinpf-dsh-ops-tool-environment-0.4.0.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./prompt":{"types":"./lib/prompt.d.ts","default":"./lib/prompt.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"elinpf","email":"365433079@qq.com"},"_resolved":"/tmp/56ac3bcdfa476bc54a01ecad38041b6f/elinpf-dsh-ops-tool-environment-0.4.0.tgz","_integrity":"sha512-BYZ+CCBMqs4fCey5v09DRvWWLxi1BvMrfIFJwX7jfBkgoNBRVHPZ34fun5jIBR/BspJ2CgtU5nIHVuGAWWoI4w==","_npmVersion":"10.9.8","description":"Environment inventory for ops mode — read-only scanner that maps registered k8s clusters (workloads, services, middleware instances, best-effort relation edges) into ~/.dsh-ops/environment.yaml, plus the model-facing environment tool (overview/show/refres","directories":{},"_nodeVersion":"22.23.2","dependencies":{"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-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.4.0","@elinpf/dsh-ops-prompts":"0.4.0","@elinpf/dsh-ops-test-support":"0.0.0"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-tools":"^0.1.0-rc.8","@elinpf/dsh-ops-access":"^0.4.0","@elinpf/dsh-ops-prompts":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/dsh-ops-tool-environment_0.4.0_1789542913899_0.7499452960179813","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"_id":"@elinpf/dsh-ops-tool-environment@0.4.1","dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"a1ee355e0b8af29f62e640b08d465129e4eb71b0","tarball":"https://registry.npmjs.org/@elinpf/dsh-ops-tool-environment/-/dsh-ops-tool-environment-0.4.1.tgz","fileCount":27,"integrity":"sha512-r1gsr3BfOxYsz+Wmm6eAwnvaxdcP3LI0SjP9QRYi7s587QYxO1HRzMoDbGugzKWBCqjzn9WYGSeLiibTaD8ntA==","signatures":[{"sig":"MEUCIQDQmVuB79R5K2L1wyG40Vj27xAoihGZzxA7dRfjw8ueFgIgFdKU9H1r3GlxH3YxIz1MvctY7DdiEMJEAPUFqn5GDT4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBk07IfCKJhWSx8GEC5aGEGNJ9s7ww/mVKz38g7CP3nmAiEA89RpkQN8R6O5t1FbG+bFmYEA/NWJGMAbzhKhzmsBiEQ="}],"unpackedSize":136130},"main":"lib/index.js","name":"@elinpf/dsh-ops-tool-environment","type":"module","_from":"file:elinpf-dsh-ops-tool-environment-0.4.1.tgz","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"},"./prompt":{"types":"./lib/prompt.d.ts","default":"./lib/prompt.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/df559b58da2954914baf1486b71a5fde/elinpf-dsh-ops-tool-environment-0.4.1.tgz","_integrity":"sha512-r1gsr3BfOxYsz+Wmm6eAwnvaxdcP3LI0SjP9QRYi7s587QYxO1HRzMoDbGugzKWBCqjzn9WYGSeLiibTaD8ntA==","_npmVersion":"10.9.8","description":"Environment inventory for ops mode — read-only scanner that maps registered k8s clusters (workloads, services, middleware instances, best-effort relation edges) into ~/.dsh-ops/environment.yaml, plus the model-facing environment tool (overview/show/refres","directories":{},"maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"_nodeVersion":"22.23.2","dependencies":{"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-tools":"0.0.1-rc.1","@elinpf/dsh-ops-access":"0.4.1","@elinpf/dsh-ops-prompts":"0.4.1","@elinpf/dsh-ops-test-support":"0.0.0"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-tools":"^0.1.0-rc.8","@elinpf/dsh-ops-access":"^0.4.1","@elinpf/dsh-ops-prompts":"^0.4.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-ops-tool-environment_0.4.1_1789699620497_0.4871680079947791"}}},"time":{"created":"2026-09-02T03:38:54.346Z","modified":"2026-09-18T02:47:00.747Z","0.1.0":"2026-09-02T03:38:54.895Z","0.1.1":"2026-09-02T03:57:39.067Z","0.1.2":"2026-09-02T05:54:26.335Z","0.1.3":"2026-09-02T07:30:17.641Z","0.1.4":"2026-09-02T07:53:18.065Z","0.1.5":"2026-09-02T07:58:49.013Z","0.1.6":"2026-09-04T03:11:01.740Z","0.1.7":"2026-09-07T08:07:17.864Z","0.2.0":"2026-09-14T01:33:32.485Z","0.2.1":"2026-09-14T02:03:58.829Z","0.3.0":"2026-09-14T03:18:59.078Z","0.4.0":"2026-09-16T07:15:13.979Z","0.4.1":"2026-09-18T02:47:00.606Z"},"license":"MIT","description":"Environment inventory for ops mode — read-only scanner that maps registered k8s clusters (workloads, services, middleware instances, best-effort relation edges) into ~/.dsh-ops/environment.yaml, plus the model-facing environment tool (overview/show/refres","maintainers":[{"name":"elinpf","email":"365433079@qq.com"}],"readme":"# @elinpf/dsh-ops-tool-environment\n\nDeepSeek Harness 运维模式的环境清单 —— 只读、纯确定性的盘点器：遍历 `ops-access` 注册的 k8s 集群，盘出环境地图落盘为 `~/.dsh-ops/environment.yaml`；agent 经模型工具 `environment` 消费（spec 见 `docs/specs/0004-environment-inventory.md`）。\n\n## environment 工具\n\n四个动作：`overview`（各集群摘要：中间件分类计数、unknown 数、stale 标记、盘点时间）、`show`（单集群详情：中间件实例、unknown 桶、关联边）、`refresh`（立即重扫全部注册的 k8s 集群）、`help`（完整用法——渐进披露，系统提示词只放一句引导）。\n\n- **新鲜度** —— 清单缺失或最老段超 TTL（`ttlMinutes`，默认 60 分钟）时读操作先自动重扫；会话启动绝不扫描\n- **只读凭证** —— refresh 解析 k8s 档案不带 agent 身份，审计门 broker 无 agent 时回落 ro 档\n- **两行挂载** —— realm 拓扑拆分：工具入口（`.`）在 `ops-access-registry` 组（要 `opsAccess`），`./prompt` 子路径插件经 `ops-prompts` 注册那句提示词、挂在 `ops-orchestration` 组。entry-local isolate realm 跨组不可见，一行拿不到两个服务\n\n## 做什么\n\n对每个注册的 k8s 集群，经 `kubectl` 拉取工作负载（deploy/sts/ds）、Service、Ingress、ConfigMap 和 Secret **元数据**，按分类表识别中间件实例，尽力而为连关联边，按集群分段落盘并带盘点时间戳。\n\n- **确定性** —— 同一集群扫两次字节一致，零 LLM\n- **新鲜度** —— 每段带 `scannedAt`；刷新失败保留旧段并标 `stale: true`\n- **unknown 桶** —— 识别不出的工作负载照常列出名称与镜像\n- **Prometheus 印证** —— 集群里有可发现的 Prometheus service（名字含 `prometheus`、带 9090 端口、`monitoring` 命名空间优先）时，经短生命周期 `kubectl port-forward` 读 `/api/v1/targets`，给工作负载附 `monitoring: { up, down }`。此增强任何失败都静默降级——清单段照常写入，不标 stale\n- **异常标注** —— 每段跑两条通用语义检测器：`cross-namespace-ref`（工作负载引用别的命名空间的 Service）和 `service-no-backend`（Service 有 selector 但 Endpoints 零就绪地址——endpoints 是 k8s 自己的权威答案）。overview 单列一节，show 就地标注\n- **用户规则** —— `~/.dsh-ops/environment-rules.yaml` 可追加/覆盖分类规则\n\n## 安全纪律\n\n- Secret 只取 metadata（jsonpath 只选 namespace/name），`data` 不进进程\n- kubeconfig 路径在进入清单/日志/模型上下文前一律擦除为 `<kubeconfig>`\n- 容器 env 只读明文字面值；`valueFrom` 只记引用名\n\n## 模块划分\n\n| 模块 | 职责 |\n|---|---|\n| `src/scanner.ts` | kubectl 读取 → `ClusterScan`（纯数据，exec 可注入，30s 超时） |\n| `src/classify.ts` | 镜像/chart/label → 中间件类型；内置表 + 用户规则文件 |\n| `src/relations.ts` | 关联边：`uses-service`、`fronts`、`uses-middleware`、`references-secret` |\n| `src/anomalies.ts` | 异常检测器：`cross-namespace-ref`、`service-no-backend`（基于 endpoints） |\n| `src/prometheus.ts` | Prometheus 印证：service 发现、`kubectl port-forward` 生命周期（必然回收）、targets 解析、工作负载匹配 |\n| `src/inventory.ts` | `environment.yaml` 落盘、读接口、refresh + stale 逻辑 |\n| `src/tool.ts` | `environment` 工具工厂（动作、TTL 门、render）；`createEnvironmentTool` 依赖可注入便于测试 |\n| `src/doctrine.ts` | 工具描述、一句提示词、help 全文的唯一事实源 |\n| `src/prompt.ts` | `./prompt` 子路径插件：经 `ops-prompts` 注册提示词 |\n| `src/index.ts` | 工具插件入口（name/inject/Config/apply）+ 盘点器核心 re-export |\n\n## 开发\n\n```sh\nnpm run build    # tsc → lib/\nnpm test         # vitest\n```\n","readmeFilename":"README.zh.md"}