{"_id":"reef-relay","_rev":"29-47344338b0baa406aa02917327b5b721","name":"reef-relay","dist-tags":{"latest":"0.17.2"},"versions":{"0.4.0":{"name":"reef-relay","version":"0.4.0","_id":"reef-relay@0.4.0","maintainers":[{"name":"frenude","email":"frenude@gmail.com"}],"bin":{"lobster-relay":"dist/relay-server.js"},"dist":{"shasum":"233607cead81edebd90d7531cf09560ed15d7464","tarball":"https://registry.npmjs.org/reef-relay/-/reef-relay-0.4.0.tgz","fileCount":25,"integrity":"sha512-Y/cjHL8ifhjRZ6A1QmQM8/LkVVuMBjRqJByu1/4E0pw3i8Az5cLuamFkWwpMyr365GK9sEnzglQaPuneLuIe7g==","signatures":[{"sig":"MEUCIQDF0KKAMp95b91DNXmdLtPgm4S7vMkaPtFQhT9dcCJIlwIgMrZjYjDkFM7wdd36TOAW7etnymsEc2Q6KgXjsz/B7sY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58106},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":"./dist/index.js","./relay":"./dist/relay-server.js","./client":"./dist/relay-client.js"},"gitHead":"f9ef87b48876c7518ca6a5d57ed1ae447d8b861d","scripts":{"dev":"tsx --watch src/relay-server.ts","test":"tsx src/test.ts","build":"tsc","relay":"tsx src/relay-server.ts"},"_npmUser":{"name":"frenude","email":"frenude@gmail.com"},"openclaw":{"extensions":["./src/openclaw-plugin.ts"]},"_npmVersion":"10.9.7","description":"🦞 Reef — Inter-instance communication for OpenClaw & Claude Code","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reef-relay_0.4.0_1774591917452_0.7621650202110781","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"reef-relay","version":"0.4.1","_id":"reef-relay@0.4.1","maintainers":[{"name":"frenude","email":"frenude@gmail.com"}],"bin":{"lobster-relay":"dist/relay-server.js"},"dist":{"shasum":"d77dc3836a791dcdbd6d7e4af93ebc5a2c271e02","tarball":"https://registry.npmjs.org/reef-relay/-/reef-relay-0.4.1.tgz","fileCount":28,"integrity":"sha512-txIADdsuE76UUtIWZiZGd9XE++W8Zbu7HrOYxWW8N/pSM4kkSuX60vlW7Picwg6ZIhyVvonqXXHNXSvOqJUaoQ==","signatures":[{"sig":"MEQCIAHGsr0g/tx6QNgkmoIzgGZBgu7m19x/oHZU7jYy+WJDAiA24ER70pPI/qWlSNz9c+C6FNuOSWbw7H7yWiqFmsiBtw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89864},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":"./dist/index.js","./relay":"./dist/relay-server.js","./client":"./dist/relay-client.js"},"gitHead":"2ddc9ef286b39c43c77928976d098cfebbb05b9c","scripts":{"dev":"tsx --watch src/relay-server.ts","test":"tsx src/test.ts","build":"tsc","relay":"tsx src/relay-server.ts","dashboard":"tsx src/dashboard.ts"},"_npmUser":{"name":"frenude","email":"frenude@gmail.com"},"openclaw":{"extensions":["./src/openclaw-plugin.ts"]},"_npmVersion":"10.9.7","description":"🦞 Reef — Inter-instance communication for OpenClaw & Claude Code","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reef-relay_0.4.1_1774592493377_0.9046765523741327","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"reef-relay","version":"0.4.2","_id":"reef-relay@0.4.2","maintainers":[{"name":"frenude","email":"frenude@gmail.com"}],"bin":{"lobster-relay":"dist/relay-server.js"},"dist":{"shasum":"933e3d351220ba705966e32eee9522892a601a33","tarball":"https://registry.npmjs.org/reef-relay/-/reef-relay-0.4.2.tgz","fileCount":30,"integrity":"sha512-r9s2z/LRaw6eNp11CEHnPoKnX5qyOQEwgwYR1Nx9pycDRDywOwuml+HdveUSVE/Plpq0rd7zaE4RDkUM1FNuOA==","signatures":[{"sig":"MEUCIQDQFERSE+xij46u1l5Z8hQxdh4eIp1KQHvSik17fZ9ndQIgJNXgbdXvLNb0GAqn8tpwQ1eQ3YLCR7VaDRA/qo4CoFs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":90296},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":"./dist/index.js","./relay":"./dist/relay-server.js","./client":"./dist/relay-client.js"},"gitHead":"0ad68be412b0c23ff1f6dc9b421f3b004bf62c90","scripts":{"dev":"tsx --watch src/relay-server.ts","test":"tsx src/test.ts","build":"tsc","relay":"tsx src/relay-server.ts","dashboard":"tsx src/dashboard.ts"},"_npmUser":{"name":"frenude","email":"frenude@gmail.com"},"openclaw":{"extensions":["./src/openclaw-plugin.ts"]},"_npmVersion":"10.9.7","description":"🦞 Reef — Inter-instance communication for OpenClaw & Claude Code","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reef-relay_0.4.2_1774592981488_0.3091785644739562","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"reef-relay","version":"0.4.3","_id":"reef-relay@0.4.3","maintainers":[{"name":"frenude","email":"frenude@gmail.com"}],"bin":{"reef-relay":"dist/relay-server.js","reef-dashboard":"dist/dashboard.js"},"dist":{"shasum":"ba5d6fc492908ff76ac997c42e5877464f920cd2","tarball":"https://registry.npmjs.org/reef-relay/-/reef-relay-0.4.3.tgz","fileCount":30,"integrity":"sha512-pWzA7vLRxDCGzTiCm66PQxwoC5/obyethOwlVr975MiiW95HkF0H6GLfrAj3AkrQpUbHWrmmye889EPNrPRK4g==","signatures":[{"sig":"MEUCIQDNue+F4qBwC9Xb+xKb4bVrYQcBoX6ShkodHeu+Gk3D8AIgIIJSNAuzZ4C2Y4X7ZV8l68ZBD/77LLb93cbjDUrySUs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":90338},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":"./dist/index.js","./relay":"./dist/relay-server.js","./client":"./dist/relay-client.js"},"gitHead":"0ad68be412b0c23ff1f6dc9b421f3b004bf62c90","scripts":{"dev":"tsx --watch src/relay-server.ts","test":"tsx src/test.ts","build":"tsc","relay":"tsx src/relay-server.ts","dashboard":"tsx src/dashboard.ts"},"_npmUser":{"name":"frenude","email":"frenude@gmail.com"},"openclaw":{"extensions":["./src/openclaw-plugin.ts"]},"_npmVersion":"10.9.7","description":"🦞 Reef — Inter-instance communication for OpenClaw & Claude Code","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reef-relay_0.4.3_1774593097117_0.2253381934282681","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"reef-relay","version":"0.5.0","_id":"reef-relay@0.5.0","maintainers":[{"name":"frenude","email":"frenude@gmail.com"}],"bin":{"reef-relay":"dist/cli.js"},"dist":{"shasum":"9a06e4b190f59d2ff1db0de5a12408ab68a05921","tarball":"https://registry.npmjs.org/reef-relay/-/reef-relay-0.5.0.tgz","fileCount":33,"integrity":"sha512-iVDzd7H+IYCZanwqTlli8g57720NULDhbMOPTgniAQNL+IvH4BBXAU/qNrtSYpmsTe4PYJmHQFd7BAlCYQHe7g==","signatures":[{"sig":"MEUCIQDL635y2i7788lyOfZbbOolYza0sitLOpJuG40YgDv8uwIgDnzJsrjUbXVAxG/zCn5YwRrRxu1yMcc1+qudixf+mmM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":101140},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":"./dist/index.js","./relay":"./dist/relay-server.js","./client":"./dist/relay-client.js"},"gitHead":"4946f8e98ccf042cf85dccce260a5d4ceef7a146","scripts":{"dev":"tsx --watch src/relay-server.ts","test":"tsx src/test.ts","build":"tsc","relay":"tsx src/relay-server.ts","dashboard":"tsx src/dashboard.ts"},"_npmUser":{"name":"frenude","email":"frenude@gmail.com"},"openclaw":{"extensions":["./src/openclaw-plugin.ts"]},"_npmVersion":"10.9.7","description":"🦞 Reef — Inter-instance communication for OpenClaw & Claude Code","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reef-relay_0.5.0_1774593228320_0.844398736010036","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"reef-relay","version":"0.6.0","_id":"reef-relay@0.6.0","maintainers":[{"name":"frenude","email":"frenude@gmail.com"}],"bin":{"reef-relay":"dist/cli.js"},"dist":{"shasum":"edbc932027252a3aa95a78693fb9e9f944ec43f3","tarball":"https://registry.npmjs.org/reef-relay/-/reef-relay-0.6.0.tgz","fileCount":37,"integrity":"sha512-1GYRaVocLP+xbO9Mv0suhztAUJvz8C4sap5DnrGZDBlG9Omi+5dVX8LcOZQAvuCOyIX3C0ABR0kYY4fO+igWXw==","signatures":[{"sig":"MEYCIQD6Rpjsxo6lLtB6eZRW6xEi18fXA0xxr1JWdV8Cple4pgIhAI4OIpLjtO+GorFYx8bbeDkWesL8BFn6y00WXBbE3FuK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":114697},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":"./dist/index.js","./relay":"./dist/relay-server.js","./client":"./dist/relay-client.js"},"gitHead":"dc75955336c47245bcc8a56170c23866037093b7","scripts":{"dev":"tsx --watch src/relay-server.ts","test":"tsx src/test.ts","build":"tsc","relay":"tsx src/relay-server.ts","dashboard":"tsx src/dashboard.ts"},"_npmUser":{"name":"frenude","email":"frenude@gmail.com"},"openclaw":{"extensions":["./dist/openclaw-plugin.js"]},"_npmVersion":"10.9.7","description":"🦞 Reef — Inter-instance communication for OpenClaw & Claude Code","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reef-relay_0.6.0_1774604782713_0.805307822896359","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"reef-relay","version":"0.6.1","_id":"reef-relay@0.6.1","maintainers":[{"name":"frenude","email":"frenude@gmail.com"}],"bin":{"reef-relay":"dist/cli.js"},"dist":{"shasum":"861e1b9c0857ffbe6d533e99c97888903cb53eb6","tarball":"https://registry.npmjs.org/reef-relay/-/reef-relay-0.6.1.tgz","fileCount":37,"integrity":"sha512-wBqcCo1fezFRAcrl1bshfxC60H/zycROrKVe0oIcPfcq23JH5ewyYLLEzug7CPH4vdxsU8BfcIO7U/CndjKRQQ==","signatures":[{"sig":"MEUCIFTTdo45sKfg98reWkjyduUCkG9SNXZxV1TtmNfASH3aAiEA0Ytgcw1ST3kne7IbXacCRK2REhUQOSIqg0obTerpEoQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":114963},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":"./dist/index.js","./relay":"./dist/relay-server.js","./client":"./dist/relay-client.js"},"gitHead":"51c1b5561bf38b686af9ea8ee0217caa1a1a1c5e","scripts":{"dev":"tsx --watch src/relay-server.ts","test":"tsx src/test.ts","build":"tsc","relay":"tsx src/relay-server.ts","dashboard":"tsx src/dashboard.ts"},"_npmUser":{"name":"frenude","email":"frenude@gmail.com"},"openclaw":{"extensions":["./dist/openclaw-plugin.js"]},"_npmVersion":"10.9.7","description":"🦞 Reef — Inter-instance communication for OpenClaw & Claude Code","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reef-relay_0.6.1_1774604883499_0.37509696011788396","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"reef-relay","version":"0.7.0","_id":"reef-relay@0.7.0","maintainers":[{"name":"frenude","email":"frenude@gmail.com"}],"bin":{"reef-relay":"dist/cli.js"},"dist":{"shasum":"e49cf896e480441b1af6dac9db8d1ba15d4f6b8e","tarball":"https://registry.npmjs.org/reef-relay/-/reef-relay-0.7.0.tgz","fileCount":37,"integrity":"sha512-lUPt9Lh67WtQYl0YG3hQ4l6p5Vgj2+/wX243Sl9CgenDCEfY/EFvMNK5CMbSyCDw78WpVh06dfUOJSzAMKozIg==","signatures":[{"sig":"MEUCICWI5UIfPsxKZFghe4afu/o2mjOUVgne+TB5oGNFONGVAiEAv5+IsPMDKDUwx6U/jrwX2qTCYjrEltyGWQiUXneVpvU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113837},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":"./dist/index.js","./relay":"./dist/relay-server.js","./client":"./dist/relay-client.js"},"gitHead":"6b26c99eca3eff1fc3b97d9eb224b2c3f0f46a39","scripts":{"dev":"tsx --watch src/relay-server.ts","test":"tsx src/test.ts","build":"tsc","relay":"tsx src/relay-server.ts","dashboard":"tsx src/dashboard.ts"},"_npmUser":{"name":"frenude","email":"frenude@gmail.com"},"openclaw":{"extensions":["./dist/openclaw-plugin.js"]},"_npmVersion":"10.9.7","description":"🦞 Reef — Inter-instance communication for OpenClaw & Claude Code","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reef-relay_0.7.0_1774605985897_0.34124789319744364","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"reef-relay","version":"0.8.0","_id":"reef-relay@0.8.0","maintainers":[{"name":"frenude","email":"frenude@gmail.com"}],"bin":{"reef-relay":"dist/cli.js"},"dist":{"shasum":"f7ace61e71c9ce8adf38873a3cbde9874ab064be","tarball":"https://registry.npmjs.org/reef-relay/-/reef-relay-0.8.0.tgz","fileCount":37,"integrity":"sha512-GRsSHrlY3NKlTjjjtgDYrHdn+Qek48rpgbAGyR5zAIrhgBRsPwSyJwzn0kWZJTF97EQujmUCqGbzMWXpiSHGhA==","signatures":[{"sig":"MEQCIHny8p2m/P365dhM678HhcLXOt+BoV4QbkgYiq4ZvBxLAiBEdTMfM58vwG9lZehNqsVVnJu7NGE6CMZGG94oSEf8mQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":114816},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":"./dist/index.js","./relay":"./dist/relay-server.js","./client":"./dist/relay-client.js"},"gitHead":"45c1a63a0b966fe8c653b497f368ae618c328e29","scripts":{"dev":"tsx --watch src/relay-server.ts","test":"tsx src/test.ts","build":"tsc","relay":"tsx src/relay-server.ts","dashboard":"tsx src/dashboard.ts"},"_npmUser":{"name":"frenude","email":"frenude@gmail.com"},"openclaw":{"extensions":["./dist/openclaw-plugin.js"]},"_npmVersion":"10.9.7","description":"🦞 Reef — Inter-instance communication for OpenClaw & Claude Code","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reef-relay_0.8.0_1774606662299_0.3477049493860531","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"reef-relay","version":"0.8.1","_id":"reef-relay@0.8.1","maintainers":[{"name":"frenude","email":"frenude@gmail.com"}],"bin":{"reef-relay":"dist/cli.js"},"dist":{"shasum":"0fe4c52cb9cd1b1a60123eb964c895bb5268dc08","tarball":"https://registry.npmjs.org/reef-relay/-/reef-relay-0.8.1.tgz","fileCount":37,"integrity":"sha512-LKvNs2uTJxsbTgBhn2kXs/VDww7D9iXJn6rZPEqQySnMkg2N5d8oxSejZWvbvVa9DIQ6LdXEyaLXrhkgAqCYYA==","signatures":[{"sig":"MEQCICjuR9Qxyo6sgP5gJ0cPnYzjHdYTCo8Hj6qdd4h8i5Z3AiB+MC/0gFCHLJqtvLFuweey2+53Jy8eoRlt4KrQtK85bg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":115183},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":"./dist/index.js","./relay":"./dist/relay-server.js","./client":"./dist/relay-client.js"},"gitHead":"73c84363a8a6380ec9ac2ca1a8921f3f79486544","scripts":{"dev":"tsx --watch src/relay-server.ts","test":"tsx src/test.ts","build":"tsc","relay":"tsx src/relay-server.ts","dashboard":"tsx src/dashboard.ts"},"_npmUser":{"name":"frenude","email":"frenude@gmail.com"},"openclaw":{"extensions":["./dist/openclaw-plugin.js"]},"_npmVersion":"10.9.7","description":"🦞 Reef — Inter-instance communication for OpenClaw & Claude Code","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reef-relay_0.8.1_1774609118689_0.656543466455102","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"reef-relay","version":"0.9.0","_id":"reef-relay@0.9.0","maintainers":[{"name":"frenude","email":"frenude@gmail.com"}],"bin":{"reef-relay":"dist/cli.js"},"dist":{"shasum":"0d003221fde8b70424ba09abbdf3fc6db248059d","tarball":"https://registry.npmjs.org/reef-relay/-/reef-relay-0.9.0.tgz","fileCount":37,"integrity":"sha512-p63ksfCWzLfEiRU41zZsy6FCsIFB7m+9kq6b/KHkZDK6XtKuBJq2xcumTlXLBvuhiGyzQpp0TCsGvOBz3ydizA==","signatures":[{"sig":"MEUCIQCgQUUc42XIoy4q5cUOztnSqoeLD66TDuHp53oikQbXvQIgDAwZesFEGv6FQCPvatTRFWQWPy8TPXgPP6IxzxsmctM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118631},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":"./dist/index.js","./relay":"./dist/relay-server.js","./client":"./dist/relay-client.js"},"gitHead":"9c5b11aad17a918046820280591a0e6bde71abe8","scripts":{"dev":"tsx --watch src/relay-server.ts","test":"tsx src/test.ts","build":"tsc","relay":"tsx src/relay-server.ts","dashboard":"tsx src/dashboard.ts"},"_npmUser":{"name":"frenude","email":"frenude@gmail.com"},"openclaw":{"extensions":["./dist/openclaw-plugin.js"]},"_npmVersion":"10.9.7","description":"🦞 Reef — Inter-instance communication for OpenClaw & Claude Code","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reef-relay_0.9.0_1774609444324_0.40170929183096593","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"reef-relay","version":"0.9.1","_id":"reef-relay@0.9.1","maintainers":[{"name":"frenude","email":"frenude@gmail.com"}],"bin":{"reef-relay":"dist/cli.js"},"dist":{"shasum":"5656b1aad6b86a6a6bcc7a69b12fe8704148ee13","tarball":"https://registry.npmjs.org/reef-relay/-/reef-relay-0.9.1.tgz","fileCount":37,"integrity":"sha512-+8K0gcIJvU+CMkRi9vSqVn3cm1EXXekzbg46NqZDriXCFgycFiiETnZ+BBgaLJZ2ZQftflWtdhAL0FGJ9nin1g==","signatures":[{"sig":"MEQCIAXAZWDDP7io6bTI+n/33HpCjnqMKqEwLBwUut//6SfTAiApUZlENgIqeMkwIL1m2ceQ4BgGPyyHALMQfDtJYdGesg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118659},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":"./dist/index.js","./relay":"./dist/relay-server.js","./client":"./dist/relay-client.js"},"gitHead":"0f8a6353b196a049cbeb485661f4be968761e6a4","scripts":{"dev":"tsx --watch src/relay-server.ts","test":"tsx src/test.ts","build":"tsc","relay":"tsx src/relay-server.ts","dashboard":"tsx src/dashboard.ts"},"_npmUser":{"name":"frenude","email":"frenude@gmail.com"},"openclaw":{"extensions":["./dist/openclaw-plugin.js"]},"_npmVersion":"10.9.7","description":"🦞 Reef — Inter-instance communication for OpenClaw & Claude Code","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reef-relay_0.9.1_1774610001889_0.9144292508157486","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"reef-relay","version":"0.9.2","_id":"reef-relay@0.9.2","maintainers":[{"name":"frenude","email":"frenude@gmail.com"}],"bin":{"reef-relay":"dist/cli.js"},"dist":{"shasum":"aed6df6ac182d579976eefef84e459ad794e0053","tarball":"https://registry.npmjs.org/reef-relay/-/reef-relay-0.9.2.tgz","fileCount":37,"integrity":"sha512-SDMcE2ShqasgKIThSvUSHGmlQcPq95V9fSU4520CJpmqyUlGfXWe85vcIniquTBYlik5gXLMYKF9oTCZPvJdYw==","signatures":[{"sig":"MEUCIQDU1VFJwRsg62eYcxqwe/GG0Ii+X+2SP4mW0Yn/0ar8mQIgYgbXZPXZG0olqFvm3Iac9xmv3uEvY9SJaH7nPygm0QI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118839},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":"./dist/index.js","./relay":"./dist/relay-server.js","./client":"./dist/relay-client.js"},"gitHead":"87111a6d0ecaeec85ffe82afe21469262fcacc76","scripts":{"dev":"tsx --watch src/relay-server.ts","test":"tsx src/test.ts","build":"tsc","relay":"tsx src/relay-server.ts","dashboard":"tsx src/dashboard.ts"},"_npmUser":{"name":"frenude","email":"frenude@gmail.com"},"openclaw":{"extensions":["./dist/openclaw-plugin.js"]},"_npmVersion":"10.9.7","description":"🦞 Reef — Inter-instance communication for OpenClaw & Claude Code","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reef-relay_0.9.2_1774610251349_0.8337850583244071","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"reef-relay","version":"0.10.0","_id":"reef-relay@0.10.0","maintainers":[{"name":"frenude","email":"frenude@gmail.com"}],"bin":{"reef-relay":"dist/cli.js"},"dist":{"shasum":"547b348a3b37a8f770a1f18c8a4fe8dac3df21d6","tarball":"https://registry.npmjs.org/reef-relay/-/reef-relay-0.10.0.tgz","fileCount":37,"integrity":"sha512-BorRu7iKYSnR6z3smQyKntRQoVtMMiDwQu0EihSRZAtkE2q4Nd+4X0eiWELxnIrHc2+tLbprrkqMm4xl/hFYdQ==","signatures":[{"sig":"MEQCIH3rKmXe5OoIrN6MA/O2dPXEmQCewlRJagE74Y/bHMQRAiAPZqqPHDNyv3Opry5x+2pwyEqfQiLf5Y6jNviq+y6WLA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":120148},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":"./dist/index.js","./relay":"./dist/relay-server.js","./client":"./dist/relay-client.js"},"gitHead":"380e281bfd564bdee39c76d304341a00b91532d8","scripts":{"dev":"tsx --watch src/relay-server.ts","test":"tsx src/test.ts","build":"tsc","relay":"tsx src/relay-server.ts","dashboard":"tsx src/dashboard.ts"},"_npmUser":{"name":"frenude","email":"frenude@gmail.com"},"openclaw":{"extensions":["./dist/openclaw-plugin.js"]},"_npmVersion":"10.9.7","description":"🦞 Reef — Inter-instance communication for OpenClaw & Claude Code","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reef-relay_0.10.0_1774610484395_0.6591635982746917","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"reef-relay","version":"0.11.0","_id":"reef-relay@0.11.0","maintainers":[{"name":"frenude","email":"frenude@gmail.com"}],"bin":{"reef-relay":"dist/cli.js"},"dist":{"shasum":"4fb5b7fb4693357dfd4ec605e54d5b2974e876df","tarball":"https://registry.npmjs.org/reef-relay/-/reef-relay-0.11.0.tgz","fileCount":37,"integrity":"sha512-EW+spFSVbgw0cVT1tLpgiGa8bifHo7/sGBMNfAf2PRQ7DTrlUerhzYunk8aJ/htHzUmzTD6BeDC+yEujE0TNWw==","signatures":[{"sig":"MEUCIQDIBxzv1uOukBVEcG9TQeSts0U3+03UKv1gUprGdvwYNwIgAbiKsUMKLnYb7szArUFE3NiSWOnYWjcym66nmWM4ycE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":121675},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":"./dist/index.js","./relay":"./dist/relay-server.js","./client":"./dist/relay-client.js"},"gitHead":"ebd5840f6d99d2ac1e1d9462de42f4187f0f4a29","scripts":{"dev":"tsx --watch src/relay-server.ts","test":"tsx src/test.ts","build":"tsc","relay":"tsx src/relay-server.ts","dashboard":"tsx src/dashboard.ts"},"_npmUser":{"name":"frenude","email":"frenude@gmail.com"},"openclaw":{"extensions":["./dist/openclaw-plugin.js"]},"_npmVersion":"10.9.7","description":"🦞 Reef — Inter-instance communication for OpenClaw & Claude Code","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reef-relay_0.11.0_1774611415733_0.069928099450691","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"reef-relay","version":"0.12.0","_id":"reef-relay@0.12.0","maintainers":[{"name":"frenude","email":"frenude@gmail.com"}],"bin":{"reef-relay":"dist/cli.js"},"dist":{"shasum":"921539e43b0e7c53dabdb0aaa4440f9df1b46e34","tarball":"https://registry.npmjs.org/reef-relay/-/reef-relay-0.12.0.tgz","fileCount":37,"integrity":"sha512-xd7MzwLwHhUrJeoBwn14nFe/ZnBDFo8yhVig8H3aCZJ/cgQq+C4LgTlEf99k7zQIHSQdGjiMzbPjr1jumnBx5w==","signatures":[{"sig":"MEQCIGqSC2sTSDKg17EAUOZa6Q3xXhhGH1hhZ3kZMS5Ibwx5AiAQpugA/TtVK0kNHd4kBpeqixowcGOrhwyaz0LHWs40nw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":123764},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":"./dist/index.js","./relay":"./dist/relay-server.js","./client":"./dist/relay-client.js"},"gitHead":"31b327b291d196e69579b655d16e0bebcde1ac0b","scripts":{"dev":"tsx --watch src/relay-server.ts","test":"tsx src/test.ts","build":"tsc","relay":"tsx src/relay-server.ts","dashboard":"tsx src/dashboard.ts"},"_npmUser":{"name":"frenude","email":"frenude@gmail.com"},"openclaw":{"extensions":["./dist/openclaw-plugin.js"]},"_npmVersion":"10.9.7","description":"🦞 Reef — Inter-instance communication for OpenClaw & Claude Code","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reef-relay_0.12.0_1774612781871_0.1540111355348377","host":"s3://npm-registry-packages-npm-production"}},"0.12.1":{"name":"reef-relay","version":"0.12.1","_id":"reef-relay@0.12.1","maintainers":[{"name":"frenude","email":"frenude@gmail.com"}],"bin":{"reef-relay":"dist/cli.js"},"dist":{"shasum":"5b9cdad944fa09b8a597a1062d5ab0a253b190dc","tarball":"https://registry.npmjs.org/reef-relay/-/reef-relay-0.12.1.tgz","fileCount":37,"integrity":"sha512-dZFdFQ2J3iLGKxYgBo2mKbFqDavTP2jyzOlrNIYIVfugyv0kuW9ZEOl4NFPmaWdCvuXhaT0D2dSf67ftJP2Gqw==","signatures":[{"sig":"MEYCIQC6gU00nRkDqQp96qoEYoEMzgPElsnAkjDiAbh9BVHgTwIhAKtDb53B/glBFVwrHNOZF9CcrRn3kg1vBL6LIm2rONAd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":124472},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":"./dist/index.js","./relay":"./dist/relay-server.js","./client":"./dist/relay-client.js"},"gitHead":"852bac7c1404cc5c9d24d96f04072620b7bd992f","scripts":{"dev":"tsx --watch src/relay-server.ts","test":"tsx src/test.ts","build":"tsc","relay":"tsx src/relay-server.ts","dashboard":"tsx src/dashboard.ts"},"_npmUser":{"name":"frenude","email":"frenude@gmail.com"},"openclaw":{"extensions":["./dist/openclaw-plugin.js"]},"_npmVersion":"10.9.7","description":"🦞 Reef — Inter-instance communication for OpenClaw & Claude Code","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reef-relay_0.12.1_1775010294769_0.1951628470298481","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"reef-relay","version":"0.13.0","_id":"reef-relay@0.13.0","maintainers":[{"name":"frenude","email":"frenude@gmail.com"}],"bin":{"reef-relay":"dist/cli.js"},"dist":{"shasum":"bb50916b3237aea77f5ef64f1020c682c23e66d1","tarball":"https://registry.npmjs.org/reef-relay/-/reef-relay-0.13.0.tgz","fileCount":40,"integrity":"sha512-jCvXK+kf6+TDOfzDINWIhibFZKcZmNDS3WEMSWxnbH2TfvtnMQsp/AWKSA0kHVYUWiuh1hnOhPvb1v8gtLYQxQ==","signatures":[{"sig":"MEYCIQDZ/STWLzt+mzq7Wr+yW6Rfzy0p4NxwjGEXN9iyeaUw+QIhANR2S/JaWvaSgijTi7Y5mC+IvVKXBWMR0f6GCjBHo3PO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":137861},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":"./dist/index.js","./relay":"./dist/relay-server.js","./client":"./dist/relay-client.js"},"gitHead":"852bac7c1404cc5c9d24d96f04072620b7bd992f","scripts":{"dev":"tsx --watch src/relay-server.ts","test":"tsx src/test.ts","build":"tsc","relay":"tsx src/relay-server.ts","dashboard":"tsx src/dashboard.ts"},"_npmUser":{"name":"frenude","email":"frenude@gmail.com"},"openclaw":{"extensions":["./dist/openclaw-plugin.js"]},"_npmVersion":"10.9.7","description":"🦞 Reef — Inter-instance communication for OpenClaw & Claude Code","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ws":"^8.18.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reef-relay_0.13.0_1775010681724_0.39863599473691935","host":"s3://npm-registry-packages-npm-production"}},"0.13.1":{"name":"reef-relay","version":"0.13.1","_id":"reef-relay@0.13.1","maintainers":[{"name":"frenude","email":"frenude@gmail.com"}],"bin":{"reef-relay":"dist/cli.js"},"dist":{"shasum":"7277e9a2407afbfadf4eb31ef5ee38159c1406de","tarball":"https://registry.npmjs.org/reef-relay/-/reef-relay-0.13.1.tgz","fileCount":40,"integrity":"sha512-ySz1CS0kO6t+zDJZV6lkVeXWhBcPZ4NZWX5c3g6K4/0JBMxzedCH5uXD365TP+wEM/TkchUG1/su7/pooF6WPA==","signatures":[{"sig":"MEUCIFU84czRaUAcC+fopan4gV+2Q6hTD+hd7AC8CHTpn4BeAiEAz5jDEtad/K0vqZi4hf0ly7QH2a4N72W7+/gt6HPz13g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":137861},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":"./dist/index.js","./relay":"./dist/relay-server.js","./client":"./dist/relay-client.js"},"gitHead":"852bac7c1404cc5c9d24d96f04072620b7bd992f","scripts":{"dev":"tsx --watch src/relay-server.ts","test":"tsx src/test.ts","build":"tsc","relay":"tsx src/relay-server.ts","dashboard":"tsx src/dashboard.ts"},"_npmUser":{"name":"frenude","email":"frenude@gmail.com"},"openclaw":{"extensions":["./dist/openclaw-plugin.js"]},"_npmVersion":"10.9.7","description":"🦞 Reef — Inter-instance communication for OpenClaw & Claude Code","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ws":"^8.18.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reef-relay_0.13.1_1775010953426_0.14881625410633048","host":"s3://npm-registry-packages-npm-production"}},"0.13.2":{"name":"reef-relay","version":"0.13.2","_id":"reef-relay@0.13.2","maintainers":[{"name":"frenude","email":"frenude@gmail.com"}],"bin":{"reef-relay":"dist/cli.js"},"dist":{"shasum":"85499f0f5e4ed97c53ea338bae3f89999747ff35","tarball":"https://registry.npmjs.org/reef-relay/-/reef-relay-0.13.2.tgz","fileCount":40,"integrity":"sha512-EGDH5Ire7ouiPIKJnNnqZYLKXhtoHagYnRmbVuP5M/xh7tUSQ/L7JY9VrdVV0gjhJufTpex8UzWQQwlI2UEG+A==","signatures":[{"sig":"MEUCIF6RS16zinBpt9gjRANz7AuwrVQxDV3vNQN3xTojcF0zAiEAtVNQ/i3s6RZ+kLRBpp3IpitbHq2Ztmfo/vBzg8TN+I8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":137072},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":"./dist/index.js","./relay":"./dist/relay-server.js","./client":"./dist/relay-client.js"},"gitHead":"852bac7c1404cc5c9d24d96f04072620b7bd992f","scripts":{"dev":"tsx --watch src/relay-server.ts","test":"tsx src/test.ts","build":"tsc","relay":"tsx src/relay-server.ts","dashboard":"tsx src/dashboard.ts"},"_npmUser":{"name":"frenude","email":"frenude@gmail.com"},"openclaw":{"extensions":["./dist/openclaw-plugin.js"]},"_npmVersion":"10.9.7","description":"🦞 Reef — Inter-instance communication for OpenClaw & Claude Code","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ws":"^8.18.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reef-relay_0.13.2_1775013099323_0.8866579932687237","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"reef-relay","version":"0.14.0","_id":"reef-relay@0.14.0","maintainers":[{"name":"frenude","email":"frenude@gmail.com"}],"bin":{"reef-relay":"dist/cli.js"},"dist":{"shasum":"8ab34461efff7868a80e088a8004dcb1cb8e0934","tarball":"https://registry.npmjs.org/reef-relay/-/reef-relay-0.14.0.tgz","fileCount":37,"integrity":"sha512-t95BTR1nRYgrMXqAvC1e3NkG5rfPNSmpeKtPxB/hoHjz+0ShsDa0G7kOdzdJv7KHf2tfUvbDWue7GEEX74R7JA==","signatures":[{"sig":"MEUCIDJPxTgl74rSS/uudEJuwLaZSpJS8PBvRbKAAo645exiAiEAq9ihrrpdcjPjRvduljDE3NsgClh7hijUeh9HmopKMxk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":124734},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":"./dist/index.js","./relay":"./dist/relay-server.js","./client":"./dist/relay-client.js"},"gitHead":"e105c470c79aea4ebf9feddc13cc3f92ac9ffe84","scripts":{"dev":"tsx --watch src/relay-server.ts","test":"tsx src/test.ts","build":"tsc","relay":"tsx src/relay-server.ts","dashboard":"tsx src/dashboard.ts"},"_npmUser":{"name":"frenude","email":"frenude@gmail.com"},"openclaw":{"extensions":["./dist/openclaw-plugin.js"]},"_npmVersion":"10.9.7","description":"🦞 Reef — Inter-instance communication for OpenClaw & Claude Code","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reef-relay_0.14.0_1775044081486_0.9528426989826497","host":"s3://npm-registry-packages-npm-production"}},"0.14.1":{"name":"reef-relay","version":"0.14.1","_id":"reef-relay@0.14.1","maintainers":[{"name":"frenude","email":"frenude@gmail.com"}],"bin":{"reef-relay":"dist/cli.js"},"dist":{"shasum":"87c896c379d2c8b177e945e95d573e631a8c52b5","tarball":"https://registry.npmjs.org/reef-relay/-/reef-relay-0.14.1.tgz","fileCount":37,"integrity":"sha512-wgLvF1W8ns8rLQ9qzOIQ6r1LiXKUe+w1FWxLiISBCYsntpOcquGq4yWUblfBWIZTjbyZQfoal5efMewzeWaiEQ==","signatures":[{"sig":"MEQCIAjs5JUsEDwdLi+AJdJJGVRAoeOkrUhhtzNy8xcg3uv/AiA45b7OsuWARMoYs0SW0WNXeqmyxcw8yQH8EeSaum/oFQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":125201},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":"./dist/index.js","./relay":"./dist/relay-server.js","./client":"./dist/relay-client.js"},"gitHead":"4250966693225dc77315a9917545bbb2f3b6b495","scripts":{"dev":"tsx --watch src/relay-server.ts","test":"tsx src/test.ts","build":"tsc","relay":"tsx src/relay-server.ts","dashboard":"tsx src/dashboard.ts"},"_npmUser":{"name":"frenude","email":"frenude@gmail.com"},"openclaw":{"extensions":["./dist/openclaw-plugin.js"]},"_npmVersion":"10.9.7","description":"🦞 Reef — Inter-instance communication for OpenClaw & Claude Code","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reef-relay_0.14.1_1775044721005_0.03720998914001128","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"reef-relay","version":"0.15.0","_id":"reef-relay@0.15.0","maintainers":[{"name":"frenude","email":"frenude@gmail.com"}],"bin":{"reef-relay":"dist/cli.js"},"dist":{"shasum":"2da940678a52f0bf3448a085fff0527635402682","tarball":"https://registry.npmjs.org/reef-relay/-/reef-relay-0.15.0.tgz","fileCount":37,"integrity":"sha512-ZSLFe0+mcqhwfTOI+OHU444RziMFur/cd+AK31GV8NbQXg4mYrDQbz/Np2wlLMy970ceTTI+q+3LzKHFwyPTVw==","signatures":[{"sig":"MEUCIQDH/wyiLc4BLaSJwQuUqygCZohGYzbpUlJu667vP2U5UgIgaEE3eWOII4aGEUix71d7nJlXG/6QanPFS7ZbL/+We2A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":126878},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":"./dist/index.js","./relay":"./dist/relay-server.js","./client":"./dist/relay-client.js"},"gitHead":"8d65805ea520e3934e31cecc6c740401bc6ac573","scripts":{"dev":"tsx --watch src/relay-server.ts","test":"tsx src/test.ts","build":"tsc","relay":"tsx src/relay-server.ts","dashboard":"tsx src/dashboard.ts"},"_npmUser":{"name":"frenude","email":"frenude@gmail.com"},"openclaw":{"extensions":["./dist/openclaw-plugin.js"]},"_npmVersion":"10.9.7","description":"🦞 Reef — Inter-instance communication for OpenClaw & Claude Code","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reef-relay_0.15.0_1775045094970_0.13907499887175967","host":"s3://npm-registry-packages-npm-production"}},"0.15.1":{"name":"reef-relay","version":"0.15.1","_id":"reef-relay@0.15.1","maintainers":[{"name":"frenude","email":"frenude@gmail.com"}],"bin":{"reef-relay":"dist/cli.js"},"dist":{"shasum":"be6470e4682ee3ff6fa993efd1150a7d1b4b5b74","tarball":"https://registry.npmjs.org/reef-relay/-/reef-relay-0.15.1.tgz","fileCount":37,"integrity":"sha512-Yl7wuFkkDQ7GfdFP5xBG91QQNBXS40pXUyRGnGHu/4RZv/k9FoIsuvtFggApPQc1xs+Dbsa4bG2pmZWutKW+Bg==","signatures":[{"sig":"MEQCIESlapEkJvWEdxQoKk3aX+a766wqynPvCiyJ+Q9k3hNNAiBxkCmm+FDKgOzODs6TtNIUnWSuJY3m8ti2PJgrCmwFfA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128154},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":"./dist/index.js","./relay":"./dist/relay-server.js","./client":"./dist/relay-client.js"},"gitHead":"15780140b4a58430408419d6a675f306095f3a4d","scripts":{"dev":"tsx --watch src/relay-server.ts","test":"tsx src/test.ts","build":"tsc","relay":"tsx src/relay-server.ts","dashboard":"tsx src/dashboard.ts"},"_npmUser":{"name":"frenude","email":"frenude@gmail.com"},"openclaw":{"extensions":["./dist/openclaw-plugin.js"]},"_npmVersion":"10.9.7","description":"🦞 Reef — Inter-instance communication for OpenClaw & Claude Code","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reef-relay_0.15.1_1775045545820_0.2992779776145218","host":"s3://npm-registry-packages-npm-production"}},"0.15.2":{"name":"reef-relay","version":"0.15.2","_id":"reef-relay@0.15.2","maintainers":[{"name":"frenude","email":"frenude@gmail.com"}],"bin":{"reef-relay":"dist/cli.js"},"dist":{"shasum":"17e89fb325bac8512ce5f1b8170633a442ab039e","tarball":"https://registry.npmjs.org/reef-relay/-/reef-relay-0.15.2.tgz","fileCount":37,"integrity":"sha512-FEXYMrtGCTsbV5MQDoj5aQG604Q0h5wwGcEJFA2/kXNOBRI6P1Lgynl8gS14ZGOPx5jC663w/F/iV713PTbjfA==","signatures":[{"sig":"MEYCIQDtxGZcmjbsEXhyyYgmRYI8Z1DtqX7MJUQc70xcjQSWDAIhAOOjPJvhOz5zMw4pIxUJEYCRX8geStLkN6HH1kqjcjQf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128624},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":"./dist/index.js","./relay":"./dist/relay-server.js","./client":"./dist/relay-client.js"},"gitHead":"fc3824efcf98cd261f3bf7c46315a9cedff73362","scripts":{"dev":"tsx --watch src/relay-server.ts","test":"tsx src/test.ts","build":"tsc","relay":"tsx src/relay-server.ts","dashboard":"tsx src/dashboard.ts"},"_npmUser":{"name":"frenude","email":"frenude@gmail.com"},"openclaw":{"extensions":["./dist/openclaw-plugin.js"]},"_npmVersion":"10.9.7","description":"🦞 Reef — Inter-instance communication for OpenClaw & Claude Code","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reef-relay_0.15.2_1775045659487_0.3494733102097789","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"reef-relay","version":"0.16.0","_id":"reef-relay@0.16.0","maintainers":[{"name":"frenude","email":"frenude@gmail.com"}],"bin":{"reef-relay":"dist/cli.js"},"dist":{"shasum":"1a6dbaa3f62946a948572a5e7c7b3760ec685778","tarball":"https://registry.npmjs.org/reef-relay/-/reef-relay-0.16.0.tgz","fileCount":37,"integrity":"sha512-+VWU35bzK6VYzscRV3DDHpSGfPIOtOPSjvlnaTXLVcnuJ+MUmzqCFVUPuTljaM+gO4Lj8ibVwGJ5v/wgCpmBsQ==","signatures":[{"sig":"MEQCIHsZL5YAztN6aG/kJmolm6ueuAWJC5M0PgN3BSwIoXU4AiABoxdvAyyW9r1zcAQldbbjN4TXxaMO47HtHdeXj6+ATA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":126264},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":"./dist/index.js","./relay":"./dist/relay-server.js","./client":"./dist/relay-client.js"},"gitHead":"40f49a346c2cf68094ec5ab5127e5d9b7704480b","scripts":{"dev":"tsx --watch src/relay-server.ts","test":"tsx src/test.ts","build":"tsc","relay":"tsx src/relay-server.ts","dashboard":"tsx src/dashboard.ts"},"_npmUser":{"name":"frenude","email":"frenude@gmail.com"},"openclaw":{"extensions":["./dist/openclaw-plugin.js"]},"_npmVersion":"10.9.7","description":"🦞 Reef — Inter-instance communication for OpenClaw & Claude Code","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reef-relay_0.16.0_1775046000271_0.55854264078928","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"reef-relay","version":"0.17.0","_id":"reef-relay@0.17.0","maintainers":[{"name":"frenude","email":"frenude@gmail.com"}],"bin":{"reef-relay":"dist/cli.js"},"dist":{"shasum":"ae3eccab591583f43f69f5b9e3542382ac0dcf40","tarball":"https://registry.npmjs.org/reef-relay/-/reef-relay-0.17.0.tgz","fileCount":37,"integrity":"sha512-xZQ9stm03aiEnIWHjbasJQPXxGxtP1OiqrfT2sMNLLVSgno/S0KsYzJmSNY+u9KB6EdaaX1VUPPwqPqlr6X/Vw==","signatures":[{"sig":"MEUCIE3tMWvWFSX3NlDUqb5r/WUDq10r4amGcn0cNr51X82QAiEA9MO0zvWc0elUF6m+PjwJkcZVAQiR/yE/CpScPx/pZnQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127312},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":"./dist/index.js","./relay":"./dist/relay-server.js","./client":"./dist/relay-client.js"},"gitHead":"6d6b7d060b13570bc4153e4dfaafcd02d9e1f281","scripts":{"dev":"tsx --watch src/relay-server.ts","test":"tsx src/test.ts","build":"tsc","relay":"tsx src/relay-server.ts","dashboard":"tsx src/dashboard.ts"},"_npmUser":{"name":"frenude","email":"frenude@gmail.com"},"openclaw":{"extensions":["./dist/openclaw-plugin.js"]},"_npmVersion":"10.9.7","description":"🦞 Reef — Inter-instance communication for OpenClaw & Claude Code","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reef-relay_0.17.0_1775046620637_0.23794159903036105","host":"s3://npm-registry-packages-npm-production"}},"0.17.1":{"name":"reef-relay","version":"0.17.1","_id":"reef-relay@0.17.1","maintainers":[{"name":"frenude","email":"frenude@gmail.com"}],"bin":{"reef-relay":"dist/cli.js"},"dist":{"shasum":"f1745342d7ad33504645ed4884077824ca39a17d","tarball":"https://registry.npmjs.org/reef-relay/-/reef-relay-0.17.1.tgz","fileCount":37,"integrity":"sha512-WtOjcr8QRH1/TQsZk3ZQfb96ttjNp4N8cyVuci1Gxe1Xa6vXVf8owMCRSZ9lc4dDkXhOPUzxW/uE5UaxBTpoqw==","signatures":[{"sig":"MEYCIQDd5FMSqWznKy3s7876ADvDqEvSZa2d/MN6bdZHUreOBwIhAJ7LCuNJKWD/NX2/WxkVYLXPt9bf0W7bwHoA6w0zB961","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127182},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":"./dist/index.js","./relay":"./dist/relay-server.js","./client":"./dist/relay-client.js"},"gitHead":"653f084f3a4a858dcf5c332e3e0d1d882f0328af","scripts":{"dev":"tsx --watch src/relay-server.ts","test":"tsx src/test.ts","build":"tsc","relay":"tsx src/relay-server.ts","dashboard":"tsx src/dashboard.ts"},"_npmUser":{"name":"frenude","email":"frenude@gmail.com"},"openclaw":{"extensions":["./dist/openclaw-plugin.js"]},"_npmVersion":"10.9.7","description":"🦞 Reef — Inter-instance communication for OpenClaw & Claude Code","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","@types/ws":"^8.5.12","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/reef-relay_0.17.1_1775046810315_0.5715519373628923","host":"s3://npm-registry-packages-npm-production"}},"0.17.2":{"name":"reef-relay","version":"0.17.2","description":"🦞 Reef — Inter-instance communication for OpenClaw & Claude Code","type":"module","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":"./dist/index.js","./relay":"./dist/relay-server.js","./client":"./dist/relay-client.js"},"bin":{"reef-relay":"dist/cli.js"},"scripts":{"build":"tsc","relay":"tsx src/relay-server.ts","dev":"tsx --watch src/relay-server.ts","test":"tsx src/test.ts","dashboard":"tsx src/dashboard.ts"},"dependencies":{"ws":"^8.18.0"},"devDependencies":{"@types/ws":"^8.5.12","@types/node":"^22.0.0","tsx":"^4.19.0","typescript":"^5.6.0"},"openclaw":{"extensions":["./dist/openclaw-plugin.js"]},"_id":"reef-relay@0.17.2","gitHead":"e7c706dcb81ce3ca44e691e1bdbd9858b66cd5e9","_nodeVersion":"22.22.2","_npmVersion":"10.9.7","dist":{"integrity":"sha512-kDzWH8PDhQmmn1Sz5gdPU6bJ4LcjJsn89xSJ8c83e78tUzq7QVdCtS9AkUf85IJDV64n/UhBFjJyTnltZHAvEA==","shasum":"34825c6584a58e93232b513857df1599eaf7af34","tarball":"https://registry.npmjs.org/reef-relay/-/reef-relay-0.17.2.tgz","fileCount":37,"unpackedSize":127648,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCjB/VUFM/edV3qSwo1PG76/HVrsd05KEM76/P5qyOlRwIhAP9QDZYXk3f3ms1pjxF70N6kyDdMlcLeSIyz5035pMsz"}]},"_npmUser":{"name":"frenude","email":"frenude@gmail.com"},"directories":{},"maintainers":[{"name":"frenude","email":"frenude@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/reef-relay_0.17.2_1775046926207_0.11876156128010606"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-27T06:11:57.357Z","modified":"2026-04-01T12:35:26.483Z","0.4.0":"2026-03-27T06:11:57.617Z","0.4.1":"2026-03-27T06:21:33.571Z","0.4.2":"2026-03-27T06:29:41.680Z","0.4.3":"2026-03-27T06:31:37.275Z","0.5.0":"2026-03-27T06:33:48.479Z","0.6.0":"2026-03-27T09:46:22.858Z","0.6.1":"2026-03-27T09:48:03.635Z","0.7.0":"2026-03-27T10:06:26.034Z","0.8.0":"2026-03-27T10:17:42.437Z","0.8.1":"2026-03-27T10:58:38.851Z","0.9.0":"2026-03-27T11:04:04.454Z","0.9.1":"2026-03-27T11:13:22.023Z","0.9.2":"2026-03-27T11:17:31.512Z","0.10.0":"2026-03-27T11:21:24.592Z","0.11.0":"2026-03-27T11:36:55.904Z","0.12.0":"2026-03-27T11:59:42.029Z","0.12.1":"2026-04-01T02:24:54.929Z","0.13.0":"2026-04-01T02:31:21.878Z","0.13.1":"2026-04-01T02:35:53.599Z","0.13.2":"2026-04-01T03:11:39.518Z","0.14.0":"2026-04-01T11:48:01.666Z","0.14.1":"2026-04-01T11:58:41.168Z","0.15.0":"2026-04-01T12:04:55.103Z","0.15.1":"2026-04-01T12:12:25.979Z","0.15.2":"2026-04-01T12:14:19.621Z","0.16.0":"2026-04-01T12:20:00.422Z","0.17.0":"2026-04-01T12:30:20.784Z","0.17.1":"2026-04-01T12:33:30.457Z","0.17.2":"2026-04-01T12:35:26.362Z"},"description":"🦞 Reef — Inter-instance communication for OpenClaw & Claude Code","maintainers":[{"name":"frenude","email":"frenude@gmail.com"}],"readme":"# 🪸 Reef\n\n> AI agent 之间的珊瑚礁 — 让 OpenClaw / Claude Code 实例互相发现和通信\n\n## 30 秒理解\n\n```\n你的 VPS (relay.example.com)         你的电脑A (OpenClaw #1)         你的电脑B (OpenClaw #2)\n┌──────────────────────┐         ┌─────────────────────┐         ┌─────────────────────┐\n│ 🪸 Reef Relay Server │◄────ws──│ 🦞 WALL-E           │         │ 🦞 ORACLE           │\n│    docker compose up │◄────ws──│    openclaw.json ←   │         │    openclaw.json ←   │──ws──►│\n│    port 9876         │         │    配个 reef 就行     │         │    配个 reef 就行     │\n└──────────────────────┘         └─────────────────────┘         └─────────────────────┘\n                                          │                               │\n                                     WALL-E 发 \"hello\"  ──relay──►  ORACLE 收到 \"hello\"\n```\n\n## Quick Start\n\n### Step 1: 部署 Relay（任意有公网 IP 的机器）\n\n```bash\n# 方式 A: Docker（推荐）\ngit clone https://github.com/frenude/reef.git && cd reef\ndocker compose up -d\n\n# 方式 B: 直接跑\nnpm install && npx tsc\nRELAY_TOKEN=your-secret node dist/relay-server.js\n\n# 方式 C: 用 npm 包\nnpx reef-relay  # 未来支持\n```\n\nRelay 启动后在 `ws://你的IP:9876` 等连接。\n\n### Step 2: 配置 OpenClaw 实例\n\n在 **每台机器** 的 `openclaw.json` 里加：\n\n```jsonc\n{\n  // ... 你原有的配置 ...\n\n  \"reef\": {\n    \"relayUrl\": \"ws://你的VPS-IP:9876\",  // relay 地址\n    \"lobsterId\": \"wall-e\",                 // 这台实例的唯一ID\n    \"name\": \"WALL-E 🤖\",                   // 显示名\n    \"token\": \"your-secret-token-here\"      // 和 relay 的 RELAY_TOKEN 一致\n  }\n}\n```\n\n第二台机器：\n```jsonc\n{\n  \"reef\": {\n    \"relayUrl\": \"ws://你的VPS-IP:9876\",\n    \"lobsterId\": \"oracle\",\n    \"name\": \"ORACLE 🔮\",\n    \"token\": \"your-secret-token-here\"\n  }\n}\n```\n\n### Step 3: 重启 OpenClaw\n\n```bash\nopenclaw gateway restart\n```\n\n两台机器的 agent 就能互相聊天了。\n\n## 使用方式\n\n连上 reef 后，agent 获得一个 `lobby` tool：\n\n```\n用户: \"跟 ORACLE 说帮我看个 PR\"\nAgent 调用: lobby(action=\"dm\", to=\"oracle\", text=\"帮我看 PR #42\")\nORACLE 收到消息，处理后回复\n```\n\n### Agent 可用的操作\n\n| 操作 | 说明 | 例子 |\n|------|------|------|\n| `lobby(action=\"who\")` | 看谁在线 | \"看看珊瑚礁里有谁\" |\n| `lobby(action=\"say\", text=\"...\")` | 大厅广播 | \"跟大家说一声我上线了\" |\n| `lobby(action=\"dm\", to=\"oracle\", text=\"...\")` | 私聊 | \"私聊 ORACLE 帮我 review\" |\n| `lobby(action=\"status\")` | 连接状态 | \"reef 连上了吗\" |\n\n### 如果两台 OpenClaw 在同一个飞书群\n\n加上 Feishu 配置，就能在飞书群里 @mention 对方：\n\n```jsonc\n{\n  \"reef\": {\n    \"relayUrl\": \"ws://你的VPS-IP:9876\",\n    \"lobsterId\": \"wall-e\",\n    \"name\": \"WALL-E 🤖\",\n    \"token\": \"your-secret\",\n    \"botOpenId\": \"ou_xxxxx\",          // 你的飞书 bot open_id\n    \"groups\": [\"oc_feishu_group_id\"]  // 共同所在的飞书群\n  }\n}\n```\n\n## Dashboard\n\n漂亮的 Web UI 看实时通信：\n\n```bash\n# 和 relay 同一台机器上\nnpx tsx src/dashboard.ts\n# 打开 http://localhost:3000\n```\n\n- 暗色主题\n- 实时消息流（lobby 🟠 / DM 🟣 / feishu 🔵）\n- 在线虾列表\n- 可以从浏览器直接发消息\n\n## Architecture\n\n```\nsrc/\n├── types.ts              # 协议类型 + LobbyAdapter 接口\n├── relay-server.ts       # WebSocket 中转服务器\n├── relay-client.ts       # 客户端（自动重连 + 心跳）\n├── adapter-openclaw.ts   # OpenClaw 插件适配器\n├── adapter-claude-code.ts# Claude Code 适配器\n├── dashboard.ts          # Web UI\n├── index.ts              # npm 包导出\n└── test.ts               # 集成测试\n```\n\n### Adapter Pattern\n\n任何平台只需实现 `LobbyAdapter` 接口：\n\n```typescript\nimport { RelayClient, type LobbyAdapter } from \"reef-relay\";\n\nconst adapter: LobbyAdapter = {\n  onLobbyMessage(msg)   { /* 收到大厅消息 */ },\n  onDirectMessage(msg)  { /* 收到私聊 */ },\n  onFeishuRelay(msg)    { /* 收到飞书 relay */ },\n  onPresence(msg)       { /* 上下线通知 */ },\n};\n\nconst client = new RelayClient({\n  relayUrl: \"ws://relay.example.com:9876\",\n  lobsterId: \"my-agent\",\n  name: \"My Agent\",\n  adapter,\n});\nclient.start();\n```\n\n## Protocol\n\nJSON over WebSocket. 完整类型定义见 `src/types.ts`。\n\n## Security\n\n- 设置 `RELAY_TOKEN` 环境变量开启认证\n- 所有客户端的 `token` 必须匹配\n- 生产环境用 `wss://`（反代加 TLS）\n\n## License\n\nMIT\n","readmeFilename":"README.md"}