{"_id":"@ahkohd/pi-mesh","_rev":"10-06680ed22ae5b7547d6e4074f1ed3a50","name":"@ahkohd/pi-mesh","dist-tags":{"latest":"0.1.10"},"versions":{"0.1.1":{"name":"@ahkohd/pi-mesh","version":"0.1.1","license":"MIT","_id":"@ahkohd/pi-mesh@0.1.1","maintainers":[{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"}],"homepage":"https://github.com/ahkohd/pi-mesh#readme","bugs":{"url":"https://github.com/ahkohd/pi-mesh/issues"},"pi":{"extensions":["./dist/index.js"]},"bin":{"pi-mesh":"bin/pi-mesh.js","pi-mesh-tailscale":"bin/pi-mesh-tailscale.js"},"dist":{"shasum":"867c1c2ef4ea4306da88a7ff407378d1b72a497d","tarball":"https://registry.npmjs.org/@ahkohd/pi-mesh/-/pi-mesh-0.1.1.tgz","fileCount":9,"integrity":"sha512-+4soyxhJ947X6DLsI2ZGkJYORW9/X4M6t+likNWzhD9WhTP4d35LyV6nBUoYbl+12gH3kQ+1qSezUJhvn4aRGQ==","signatures":[{"sig":"MEYCIQDop/+Q6HOeJG9kjEljlCpNZMUVBndIU+83N09rSGGPhgIhAPkqmTaJv6znj/jExRVFF4Mu0Z06Ty+ueNAb0aX6pYLI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ahkohd%2fpi-mesh@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21674},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"scripts":{"test":"cargo test && npm run typecheck","build":"tsc","pack:dry":"npm pack --dry-run","typecheck":"tsc --noEmit","version:sync":"node scripts/sync-npm-version.cjs"},"_npmUser":{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"},"repository":{"url":"git+https://github.com/ahkohd/pi-mesh.git","type":"git"},"_npmVersion":"11.13.0","description":"P2P Pi agent mesh with pluggable discovery connectors.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"typebox":"^1.1.38","@earendil-works/pi-coding-agent":"^0.78.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^25.8.0"},"optionalDependencies":{"@ahkohd/pi-mesh-darwin-x64":"0.1.1","@ahkohd/pi-mesh-darwin-arm64":"0.1.1","@ahkohd/pi-mesh-linux-x64-gnu":"0.1.1","@ahkohd/pi-mesh-linux-arm64-gnu":"0.1.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-mesh_0.1.1_1781996013303_0.7713866338665474","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@ahkohd/pi-mesh","version":"0.1.2","license":"MIT","_id":"@ahkohd/pi-mesh@0.1.2","maintainers":[{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"}],"homepage":"https://github.com/ahkohd/pi-mesh#readme","bugs":{"url":"https://github.com/ahkohd/pi-mesh/issues"},"pi":{"extensions":["./dist/index.js"]},"bin":{"pi-mesh":"bin/pi-mesh.js","pi-mesh-tailscale":"bin/pi-mesh-tailscale.js"},"dist":{"shasum":"bf89bded898166ccd14fb4cc8a519131d74042f4","tarball":"https://registry.npmjs.org/@ahkohd/pi-mesh/-/pi-mesh-0.1.2.tgz","fileCount":9,"integrity":"sha512-4oq586pEynDC4ZxnahEXOekjQaeUdRdf+xp9H3w1n6vtXnUz0saDL3yAYPbOLvGOI23lJq3qxRaF5G2dV+izvg==","signatures":[{"sig":"MEUCIFdKhN7kz2IWQVEYXCuiSbgbUJBsyjBJFeqkONtJIrBEAiEAwWw7GRhEaJFnrhyDwZXLKmzsN0X3MCsk1UsxRP9S7bk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ahkohd%2fpi-mesh@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22396},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"scripts":{"test":"cargo test && npm run typecheck","build":"tsc","pack:dry":"npm pack --dry-run","typecheck":"tsc --noEmit","version:sync":"node scripts/sync-npm-version.cjs"},"_npmUser":{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"},"repository":{"url":"git+https://github.com/ahkohd/pi-mesh.git","type":"git"},"_npmVersion":"11.13.0","description":"P2P Pi agent mesh with pluggable discovery connectors.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"typebox":"^1.1.38","@earendil-works/pi-coding-agent":"^0.78.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^25.8.0"},"optionalDependencies":{"@ahkohd/pi-mesh-darwin-x64":"0.1.2","@ahkohd/pi-mesh-darwin-arm64":"0.1.2","@ahkohd/pi-mesh-linux-x64-gnu":"0.1.2","@ahkohd/pi-mesh-linux-arm64-gnu":"0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/pi-mesh_0.1.2_1781998918512_0.5249024575889805","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@ahkohd/pi-mesh","version":"0.1.3","license":"MIT","_id":"@ahkohd/pi-mesh@0.1.3","maintainers":[{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"}],"homepage":"https://github.com/ahkohd/pi-mesh#readme","bugs":{"url":"https://github.com/ahkohd/pi-mesh/issues"},"pi":{"extensions":["./dist/index.js"]},"bin":{"pi-mesh":"bin/pi-mesh.js","pi-mesh-mcp":"bin/pi-mesh-mcp.js","pi-mesh-tailscale":"bin/pi-mesh-tailscale.js"},"dist":{"shasum":"75903e8c1deaa2006f3293a4338228a064a7b770","tarball":"https://registry.npmjs.org/@ahkohd/pi-mesh/-/pi-mesh-0.1.3.tgz","fileCount":12,"integrity":"sha512-qTmm/gvCN8op2gw+wi0hg3T0xdzkEc0FMZekSCxh2A22GEieNKsnuAgr8FXyqNjDOWrLdWmzLHCnAw3Jjwqwmg==","signatures":[{"sig":"MEYCIQCgWED7EX3agYpcXLraDqvLDFV+IddVmWjsZcJbKZZK4wIhANfBII630fXOwBsy2u3jtgjB9qPcvfZCq+raoDt4Cj6q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ahkohd%2fpi-mesh@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27178},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"scripts":{"test":"cargo test && npm run typecheck","build":"tsc","pack:dry":"npm pack --dry-run","typecheck":"tsc --noEmit","version:sync":"node scripts/sync-npm-version.cjs"},"_npmUser":{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"},"repository":{"url":"git+https://github.com/ahkohd/pi-mesh.git","type":"git"},"_npmVersion":"11.13.0","description":"P2P Pi agent mesh with pluggable discovery connectors.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.4.3","typebox":"^1.1.38","@modelcontextprotocol/sdk":"^1.29.0","@earendil-works/pi-coding-agent":"^0.78.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^25.8.0"},"optionalDependencies":{"@ahkohd/pi-mesh-darwin-x64":"0.1.3","@ahkohd/pi-mesh-darwin-arm64":"0.1.3","@ahkohd/pi-mesh-linux-x64-gnu":"0.1.3","@ahkohd/pi-mesh-linux-arm64-gnu":"0.1.3"},"_npmOperationalInternal":{"tmp":"tmp/pi-mesh_0.1.3_1782002080174_0.5604798769333836","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@ahkohd/pi-mesh","version":"0.1.4","license":"MIT","_id":"@ahkohd/pi-mesh@0.1.4","maintainers":[{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"}],"homepage":"https://github.com/ahkohd/pi-mesh#readme","bugs":{"url":"https://github.com/ahkohd/pi-mesh/issues"},"pi":{"extensions":["./dist/index.js"]},"bin":{"pi-mesh":"bin/pi-mesh.js","pi-mesh-tailscale":"bin/pi-mesh-tailscale.js"},"dist":{"shasum":"bb29433ac4e136418a19707ab5189f9a7dbd5cf9","tarball":"https://registry.npmjs.org/@ahkohd/pi-mesh/-/pi-mesh-0.1.4.tgz","fileCount":9,"integrity":"sha512-Vku/FfMEyBaDTAfB250rcr9Vrsyydz7njhWMY5Ew9zaYBIDMLvZjlm/fOaRP6eRXLLaFe1Yesz16b1lhlQw0lg==","signatures":[{"sig":"MEUCIQCSCaFHn1v2rDioCR0sY6Bi+ZWcB7sAfbFZJRUYdMdmTwIgXx0PLakz39u88MeKBf9LFA5KC2pYs2mOBIlqbtqBrxs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ahkohd%2fpi-mesh@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24650},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"scripts":{"test":"cargo test && npm run typecheck","build":"tsc","pack:dry":"npm pack --dry-run","typecheck":"tsc --noEmit","version:sync":"node scripts/sync-npm-version.cjs"},"_npmUser":{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"},"repository":{"url":"git+https://github.com/ahkohd/pi-mesh.git","type":"git"},"_npmVersion":"11.13.0","description":"P2P Pi agent mesh with pluggable discovery connectors.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"typebox":"^1.1.38","@earendil-works/pi-coding-agent":"^0.78.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^25.8.0"},"optionalDependencies":{"@ahkohd/pi-mesh-darwin-x64":"0.1.4","@ahkohd/pi-mesh-darwin-arm64":"0.1.4","@ahkohd/pi-mesh-linux-x64-gnu":"0.1.4","@ahkohd/pi-mesh-linux-arm64-gnu":"0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-mesh_0.1.4_1782005950197_0.08546352371161814","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@ahkohd/pi-mesh","version":"0.1.5","license":"MIT","_id":"@ahkohd/pi-mesh@0.1.5","maintainers":[{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"}],"homepage":"https://github.com/ahkohd/pi-mesh#readme","bugs":{"url":"https://github.com/ahkohd/pi-mesh/issues"},"pi":{"extensions":["./dist/index.js"]},"bin":{"pi-mesh":"bin/pi-mesh.js","pi-mesh-tailscale":"bin/pi-mesh-tailscale.js"},"dist":{"shasum":"491b19f9c5994eb55a96ad41c038a34d4f574156","tarball":"https://registry.npmjs.org/@ahkohd/pi-mesh/-/pi-mesh-0.1.5.tgz","fileCount":9,"integrity":"sha512-Ny+6Q/s2igY7FRoNcQ6gkwlrNuAxMW0jpss0p8tczhNKdsCdHvgmNI0d4elfSch8oUoJSF3nZmTHIS/0HUJxYQ==","signatures":[{"sig":"MEQCIFce34C9zdGB3VAGNCdQ4r2QB86o6iduMAnuNEAi93cjAiAgVsv61kgnKTguBTqW31QygnZer5V61R4TS6CoT9sY9Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ahkohd%2fpi-mesh@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27287},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"scripts":{"test":"cargo test && npm run typecheck","build":"tsc","pack:dry":"npm pack --dry-run","typecheck":"tsc --noEmit","version:sync":"node scripts/sync-npm-version.cjs"},"_npmUser":{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"},"repository":{"url":"git+https://github.com/ahkohd/pi-mesh.git","type":"git"},"_npmVersion":"11.13.0","description":"P2P Pi agent mesh with pluggable discovery connectors.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"typebox":"^1.1.38","@earendil-works/pi-coding-agent":"^0.78.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^25.8.0"},"optionalDependencies":{"@ahkohd/pi-mesh-darwin-x64":"0.1.5","@ahkohd/pi-mesh-darwin-arm64":"0.1.5","@ahkohd/pi-mesh-linux-x64-gnu":"0.1.5","@ahkohd/pi-mesh-linux-arm64-gnu":"0.1.5"},"_npmOperationalInternal":{"tmp":"tmp/pi-mesh_0.1.5_1782009273496_0.8695617711566921","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@ahkohd/pi-mesh","version":"0.1.6","license":"MIT","_id":"@ahkohd/pi-mesh@0.1.6","maintainers":[{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"}],"homepage":"https://github.com/ahkohd/pi-mesh#readme","bugs":{"url":"https://github.com/ahkohd/pi-mesh/issues"},"pi":{"extensions":["./dist/index.js"]},"bin":{"pi-mesh":"bin/pi-mesh.js","pi-mesh-tailscale":"bin/pi-mesh-tailscale.js"},"dist":{"shasum":"8a6731fbfae62131b4def01e0b17cdbff5ddcb8f","tarball":"https://registry.npmjs.org/@ahkohd/pi-mesh/-/pi-mesh-0.1.6.tgz","fileCount":9,"integrity":"sha512-aZANJTG4T2PYOr9kzD+M7mm+C1E/ZSMk3wpcmjFyZahZnkad2GM+NVLw8k8YcMmZ7roMctwG2hC/KhM6rk6xAw==","signatures":[{"sig":"MEYCIQDdKIXSdyGuy9WYuahLrEkhslNPfuoewZfxBkE+SSv7gwIhAMy8ZumnNYiGl/R90yVXQEPDfkeH6+ohPKQ0oQAbATko","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ahkohd%2fpi-mesh@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27509},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"scripts":{"test":"cargo test && npm run typecheck","build":"tsc","pack:dry":"npm pack --dry-run","typecheck":"tsc --noEmit","version:sync":"node scripts/sync-npm-version.cjs"},"_npmUser":{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"},"repository":{"url":"git+https://github.com/ahkohd/pi-mesh.git","type":"git"},"_npmVersion":"11.13.0","description":"P2P Pi agent mesh with pluggable discovery connectors.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"typebox":"^1.1.38","@earendil-works/pi-coding-agent":"^0.78.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^25.8.0"},"optionalDependencies":{"@ahkohd/pi-mesh-darwin-x64":"0.1.6","@ahkohd/pi-mesh-darwin-arm64":"0.1.6","@ahkohd/pi-mesh-linux-x64-gnu":"0.1.6","@ahkohd/pi-mesh-linux-arm64-gnu":"0.1.6"},"_npmOperationalInternal":{"tmp":"tmp/pi-mesh_0.1.6_1782014872045_0.47509377433006494","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@ahkohd/pi-mesh","version":"0.1.7","license":"MIT","_id":"@ahkohd/pi-mesh@0.1.7","maintainers":[{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"}],"homepage":"https://github.com/ahkohd/pi-mesh#readme","bugs":{"url":"https://github.com/ahkohd/pi-mesh/issues"},"pi":{"extensions":["./dist/index.js"]},"bin":{"pi-mesh":"bin/pi-mesh.js","pi-mesh-tailscale":"bin/pi-mesh-tailscale.js"},"dist":{"shasum":"4c00f1c5ee2663e666656904bc25058ceb6bdeed","tarball":"https://registry.npmjs.org/@ahkohd/pi-mesh/-/pi-mesh-0.1.7.tgz","fileCount":9,"integrity":"sha512-uaSWgC7QPHCR7+x8fTP3OtXhiTnaQPFdGadeA/gXh5heCmbU2J05yCY4yFQwDDtOtQWcudDV8hXYhqhzu78iiQ==","signatures":[{"sig":"MEUCIQDto2Gt4mcmx1UwsbZh6IpGTk1VNLqKilQ5Kk+GFMKjhgIgFU8UeSX//yuvLiPWi1zETKzR6x1QMl43Hq+NGJATczg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ahkohd%2fpi-mesh@0.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28892},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"scripts":{"test":"cargo test && npm run typecheck","build":"tsc","pack:dry":"npm pack --dry-run","typecheck":"tsc --noEmit","version:sync":"node scripts/sync-npm-version.cjs"},"_npmUser":{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"},"repository":{"url":"git+https://github.com/ahkohd/pi-mesh.git","type":"git"},"_npmVersion":"11.13.0","description":"P2P Pi agent mesh with pluggable discovery connectors.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"typebox":"^1.1.38","@earendil-works/pi-coding-agent":"^0.78.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^25.8.0"},"optionalDependencies":{"@ahkohd/pi-mesh-darwin-x64":"0.1.7","@ahkohd/pi-mesh-darwin-arm64":"0.1.7","@ahkohd/pi-mesh-linux-x64-gnu":"0.1.7","@ahkohd/pi-mesh-linux-arm64-gnu":"0.1.7"},"_npmOperationalInternal":{"tmp":"tmp/pi-mesh_0.1.7_1782016674747_0.3149661598032947","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@ahkohd/pi-mesh","version":"0.1.8","license":"MIT","_id":"@ahkohd/pi-mesh@0.1.8","maintainers":[{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"}],"homepage":"https://github.com/ahkohd/pi-mesh#readme","bugs":{"url":"https://github.com/ahkohd/pi-mesh/issues"},"pi":{"extensions":["./dist/index.js"]},"bin":{"pi-mesh":"bin/pi-mesh.js","pi-mesh-tailscale":"bin/pi-mesh-tailscale.js"},"dist":{"shasum":"135c3e19ea4ec0b978762baee1f590b070c9a366","tarball":"https://registry.npmjs.org/@ahkohd/pi-mesh/-/pi-mesh-0.1.8.tgz","fileCount":9,"integrity":"sha512-Zu2MeQKTq4/39d8bhmmcx+4xiAXf5JUjzyPxqEK9kQjw76+BN+KjlrGosj3AngBJDG1CvV1JEfvgeOYzyExYoA==","signatures":[{"sig":"MEUCIClLa3vVv1LB2UYX11Tod2EsyruXGV5OIh3lSXV5PKxlAiEA1R+AOy1aQMfSYygWxGCPJbvZeIdTUQzRTyqkBer7jYM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ahkohd%2fpi-mesh@0.1.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28876},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"scripts":{"test":"cargo test && npm run typecheck","build":"tsc","pack:dry":"npm pack --dry-run","typecheck":"tsc --noEmit","version:sync":"node scripts/sync-npm-version.cjs"},"_npmUser":{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"},"repository":{"url":"git+https://github.com/ahkohd/pi-mesh.git","type":"git"},"_npmVersion":"11.13.0","description":"P2P Pi agent mesh with pluggable discovery connectors.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"typebox":"^1.1.38","@earendil-works/pi-coding-agent":"^0.78.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^25.8.0"},"optionalDependencies":{"@ahkohd/pi-mesh-darwin-x64":"0.1.8","@ahkohd/pi-mesh-darwin-arm64":"0.1.8","@ahkohd/pi-mesh-linux-x64-gnu":"0.1.8","@ahkohd/pi-mesh-linux-arm64-gnu":"0.1.8"},"_npmOperationalInternal":{"tmp":"tmp/pi-mesh_0.1.8_1782018490046_0.015167838734979844","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@ahkohd/pi-mesh","version":"0.1.9","license":"MIT","_id":"@ahkohd/pi-mesh@0.1.9","maintainers":[{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"}],"homepage":"https://github.com/ahkohd/pi-mesh#readme","bugs":{"url":"https://github.com/ahkohd/pi-mesh/issues"},"pi":{"extensions":["./dist/index.js"]},"bin":{"pi-mesh":"bin/pi-mesh.js","pi-mesh-tailscale":"bin/pi-mesh-tailscale.js"},"dist":{"shasum":"05337c7db619e0e1a0fac3d96a2d124d2a3aa527","tarball":"https://registry.npmjs.org/@ahkohd/pi-mesh/-/pi-mesh-0.1.9.tgz","fileCount":9,"integrity":"sha512-IbeLOdw+JxI15zBCD5wDJR7PzDQbX/+bCtNhHaFUwDrPMHUMFL6evkYbe75z5XCHHxrJ5ZN57TqplWbMqSdGtA==","signatures":[{"sig":"MEQCIBNFkenTib0xY+Bj2qv1Ldle15Vihbfh74yMJXgfoC62AiBAMsb7++tyxZCDfcdY9Bw78iPgQHnHLad3jaf4gkL/ng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ahkohd%2fpi-mesh@0.1.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29581},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"scripts":{"test":"cargo test && npm run typecheck","build":"tsc","pack:dry":"npm pack --dry-run","typecheck":"tsc --noEmit","version:sync":"node scripts/sync-npm-version.cjs"},"_npmUser":{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"},"repository":{"url":"git+https://github.com/ahkohd/pi-mesh.git","type":"git"},"_npmVersion":"11.13.0","description":"P2P Pi agent mesh with pluggable discovery connectors.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"typebox":"^1.1.38","@earendil-works/pi-coding-agent":"^0.78.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^25.8.0"},"optionalDependencies":{"@ahkohd/pi-mesh-darwin-x64":"0.1.9","@ahkohd/pi-mesh-darwin-arm64":"0.1.9","@ahkohd/pi-mesh-linux-x64-gnu":"0.1.9","@ahkohd/pi-mesh-linux-arm64-gnu":"0.1.9"},"_npmOperationalInternal":{"tmp":"tmp/pi-mesh_0.1.9_1782019851332_0.11826483763185336","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@ahkohd/pi-mesh","version":"0.1.10","description":"P2P Pi agent mesh with pluggable discovery connectors.","license":"MIT","repository":{"type":"git","url":"git+https://github.com/ahkohd/pi-mesh.git"},"bugs":{"url":"https://github.com/ahkohd/pi-mesh/issues"},"homepage":"https://github.com/ahkohd/pi-mesh#readme","type":"module","main":"dist/index.js","types":"dist/index.d.ts","bin":{"pi-mesh":"bin/pi-mesh.js","pi-mesh-tailscale":"bin/pi-mesh-tailscale.js"},"pi":{"extensions":["./dist/index.js"]},"scripts":{"build":"tsc","typecheck":"tsc --noEmit","test":"cargo test && npm run typecheck","pack:dry":"npm pack --dry-run","version:sync":"node scripts/sync-npm-version.cjs"},"publishConfig":{"access":"public","provenance":true},"dependencies":{"@earendil-works/pi-coding-agent":"^0.78.0","typebox":"^1.1.38"},"devDependencies":{"@types/node":"^25.8.0","typescript":"^6.0.3"},"engines":{"node":">=20"},"optionalDependencies":{"@ahkohd/pi-mesh-darwin-arm64":"0.1.10","@ahkohd/pi-mesh-darwin-x64":"0.1.10","@ahkohd/pi-mesh-linux-arm64-gnu":"0.1.10","@ahkohd/pi-mesh-linux-x64-gnu":"0.1.10"},"_id":"@ahkohd/pi-mesh@0.1.10","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-3L6ZxSjU9Ve/IJiEINWka0s2YksZXlQ8PMY1iSNKLuLdT8YLFfdqnjYZ043O+UW64OD9xnXV8Or5k5WRVB0gHg==","shasum":"3779d7b40dea7d9176c2d61673c6362f1e163438","tarball":"https://registry.npmjs.org/@ahkohd/pi-mesh/-/pi-mesh-0.1.10.tgz","fileCount":9,"unpackedSize":29755,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ahkohd%2fpi-mesh@0.1.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDx3A0vuRp+ixlC+hOWwhs9j7M7ILyMknZJ1V6Pe6G/AAIhAOJAyXUlA18Zbm5pc2zAKBLp0rvnZlF+cKPQtzhpkDff"}]},"_npmUser":{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"},"directories":{},"maintainers":[{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-mesh_0.1.10_1782023351031_0.3839651699810329"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-20T22:53:33.143Z","modified":"2026-06-21T06:29:11.450Z","0.1.1":"2026-06-20T22:53:33.418Z","0.1.2":"2026-06-20T23:41:58.682Z","0.1.3":"2026-06-21T00:34:40.304Z","0.1.4":"2026-06-21T01:39:10.348Z","0.1.5":"2026-06-21T02:34:33.624Z","0.1.6":"2026-06-21T04:07:52.185Z","0.1.7":"2026-06-21T04:37:54.877Z","0.1.8":"2026-06-21T05:08:10.171Z","0.1.9":"2026-06-21T05:30:51.549Z","0.1.10":"2026-06-21T06:29:11.181Z"},"bugs":{"url":"https://github.com/ahkohd/pi-mesh/issues"},"license":"MIT","homepage":"https://github.com/ahkohd/pi-mesh#readme","repository":{"type":"git","url":"git+https://github.com/ahkohd/pi-mesh.git"},"description":"P2P Pi agent mesh with pluggable discovery connectors.","maintainers":[{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"}],"readme":"# pi-mesh\n\n[![npm](https://img.shields.io/npm/v/%40ahkohd%2Fpi-mesh)](https://www.npmjs.com/package/@ahkohd/pi-mesh)\n\nP2P mesh for Pi agent sessions.\n\nEach machine runs one local service. Pi sessions register with that service, then agents can send messages or request replies from agents on the same machine or another machine.\n\n## Install\n\n```bash\npi install npm:@ahkohd/pi-mesh\n```\n\n## Quick setup\n\nRun the install command on each machine that should join the mesh. If you use Tailscale, make sure `tailscale status` works on each machine.\n\nThen start the mesh from Pi:\n\n```text\n/mesh on\n```\n\nCheck what the local service can see:\n\n```text\n/mesh list\n```\n\nTo join through a known peer, pass its service address:\n\n```text\n/mesh on 100.64.0.8:7373\n```\n\n## How it works\n\n```mermaid\nflowchart LR\n  localSession[\"Pi session\"] --> localService[\"local service\"]\n  localService --> remoteService[\"remote service\"]\n  remoteService --> remoteSession[\"remote Pi session\"]\n```\n\nOne service can serve many Pi sessions on the same machine. If a service stops, only that machine drops from the mesh.\n\nServices learn about each other from known peer addresses, connectors, and peer gossip. Once two services make contact, they exchange known peers and agents.\n\n## Commands\n\n```text\n/mesh on [peer]\n/mesh off\n/mesh list\n/mesh alias [name]\n```\n\n`/mesh on [peer]` starts or connects to the local service, registers the current session, and begins polling for messages. The optional peer is another service address, such as `100.64.0.8:7373`.\n\n`/mesh off` unregisters the current session and stops polling.\n\n`/mesh list` shows this service's address plus local and remote agents it knows about.\n\n`/mesh alias [name]` shows the current alias when called without a name. With a name, it stores a new alias for this session.\n\n## Agent tools\n\n```text\nmesh_on(peer?)\nmesh_off()\nagent_list()\nagent_send(to, message)\nagent_request(to, message, timeout_seconds?)\n```\n\n`mesh_on` registers this Pi session with the local service. With a peer address, it also connects to that peer.\n\n`mesh_off` unregisters this Pi session from the local service.\n\n`agent_list` lists agents known to the local service.\n\n`agent_send` sends a one-way message.\n\n`agent_request` sends a message and waits for the target agent to reply. The default timeout is 30 seconds.\n\nIncoming messages are delivered to the target Pi session as follow-up user messages. For requests, the target agent replies normally; its final assistant message is sent back as the request result.\n\n## Identity\n\nEach agent has a stable id for the Pi session:\n\n```text\nsessionid@machine\n```\n\nEach agent also has a mutable alias:\n\n```text\nname@machine\n```\n\nAgents may target either the id or the alias. Alias collisions are rejected.\n\n## Running\n\nNormally, start from Pi:\n\n```text\n/mesh on\n```\n\nTo join through a known peer:\n\n```text\n/mesh on 100.64.0.8:7373\n```\n\nFor one-shot auto-start from the terminal:\n\n```bash\npi --mesh-on\n```\n\nOn startup it prints the local control address, the network listen address, and the address it advertises to peers:\n\n```text\npi-mesh: control http://127.0.0.1:7372\npi-mesh: listen  http://0.0.0.0:7373\npi-mesh: addr    machine:7373\n```\n\nCheck a local service:\n\n```bash\ncurl http://127.0.0.1:7372/health\ncurl http://127.0.0.1:7372/local/list\n```\n\n## CLI\n\nFrom a terminal or SSH session, use the service CLI:\n\n```bash\nnpm install -g @ahkohd/pi-mesh\n```\n\n```bash\npi-mesh start [peer]\npi-mesh status\npi-mesh list\npi-mesh connectors\npi-mesh peer 100.64.0.8:7373\npi-mesh send clever-otter@mbp \"hello from ssh\"\npi-mesh request clever-otter@mbp \"what are you working on?\"\npi-mesh stop\npi-mesh version\n```\n\nAdd `--json` to commands that return status or data:\n\n```bash\npi-mesh --json status\npi-mesh list --json\npi-mesh request clever-otter@mbp \"status?\" --timeout 60 --json\n```\n\nCLI messages are sent as `cli@machine` by default. Use `--from name@machine` to override it.\n\nFor a container or any host without Pi:\n\n```bash\npi-mesh start\n```\n\nThen use the `pi-mesh` CLI to reach remote Pi agents.\n\n## Known peers\n\nKnown peers are service addresses in `host:port` form.\n\nSources:\n\n- `/mesh on host:port`\n- `pi-mesh start host:port`\n- `pi-mesh peer host:port`\n- connector discovery events\n\n## Connectors\n\nCore mesh code only knows service addresses. Connectors handle discovery and authorization for a network.\n\n`pi-mesh connectors` lists available connectors. A connector can include optional metadata.\n\nConnector executables are named:\n\n```text\npi-mesh-*\n```\n\nFor discovery, the service starts each connector like this:\n\n```bash\npi-mesh-example run --port 7373\n```\n\nThe connector prints newline-delimited JSON events:\n\n```json\n{\"type\":\"self\",\"addr\":\"100.64.0.7:7373\",\"source\":\"example\"}\n{\"type\":\"peer\",\"addr\":\"100.64.0.8:7373\",\"source\":\"example\"}\n```\n\nFor authorization, the service asks connectors about inbound remote IPs:\n\n```bash\npi-mesh-example auth --remote-ip 100.64.0.8\n```\n\nThe connector replies:\n\n```json\n{\"allow\":true,\"source\":\"example\"}\n```\n\nInbound `/msg` and `/announce` requests are rejected unless they come from loopback, `PI_MESH_INSECURE=1` is set, or a connector allows the remote IP.\n\nConnector docs:\n\n- [Tailscale](docs/connectors/tailscale.md)\n\n## Configuration\n\n| Variable | Default | Description |\n| --- | --- | --- |\n| `PI_MESH_BIN` | `pi-mesh` | Service executable spawned by the Pi extension. |\n| `PI_MESH_CONTROL_URL` | `http://127.0.0.1:7372` | Local control URL used by the Pi extension. |\n| `PI_MESH_CONTROL_ADDR` | `127.0.0.1:7372` | Local control API bind address. |\n| `PI_MESH_LISTEN_HOST` | `0.0.0.0` | Network API bind host. |\n| `PI_MESH_PORT` | `7373` | First network port to try. Ports are scanned through `7399`. |\n| `PI_MESH_ADVERTISE` | `<machine>:<port>` | Address announced to peers. If unset, a connector may replace it with a reachable address. |\n| `PI_MESH_INSECURE` | unset | Set to `1` to allow non-loopback inbound traffic without connector auth. Use only for local tests. |\n\n## Development\n\n```bash\nnpm install\ncargo check --bins\ncargo test\nnpm run typecheck\nnpm run build\n```\n","readmeFilename":"README.md"}