{"_id":"@agenticros/zenoh-fleet","_rev":"5-9bccf471f27e8446da4884b4b9ab0ef4","name":"@agenticros/zenoh-fleet","dist-tags":{"latest":"0.1.4"},"versions":{"0.1.0":{"name":"@agenticros/zenoh-fleet","version":"0.1.0","keywords":["zenoh","ros","ros2","robotics","fleet","agenticros","cli"],"author":{"name":"Chris Matthieu"},"license":"Apache-2.0","_id":"@agenticros/zenoh-fleet@0.1.0","maintainers":[{"name":"chrismatthieu","email":"chris@matthieu.us"}],"homepage":"https://github.com/agenticros/zenoh-fleet","bugs":{"url":"https://github.com/agenticros/zenoh-fleet/issues"},"bin":{"zenoh-fleet":"dist/index.js"},"dist":{"shasum":"2b64e124c5f1e1a486836d079056d4aefd3ebe42","tarball":"https://registry.npmjs.org/@agenticros/zenoh-fleet/-/zenoh-fleet-0.1.0.tgz","fileCount":39,"integrity":"sha512-N8aTMnU12uZD8IWp5PId6wXOv8EgGIQP9KxPubsEpVGuo2FszMvlcddtuhzQU/4e9g4SY+fr6a8Ojyb8L0xfKg==","signatures":[{"sig":"MEUCIQDHCNtxxW3IiUlqc1b/soTqJo9HUsM+BBSyrtMSNuYmJQIgYVAPUpsL+c6CRwoUWHz2aPla0mZDd2sjo4BJFDNbbCU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63620},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"35d149c8ef6c0c22d2c852888253a9fae65c527d","scripts":{"test":"tsc && node --test --test-force-exit \"dist/__tests__/*.test.js\"","build":"tsc && chmod +x dist/index.js","clean":"rm -rf dist tsconfig.tsbuildinfo","typecheck":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build && npm test"},"_npmUser":{"name":"chrismatthieu","email":"chris@matthieu.us"},"repository":{"url":"git+https://github.com/agenticros/zenoh-fleet.git","type":"git"},"_npmVersion":"10.9.8","description":"Enter-to-accept wizard that writes compatible Zenoh JSON5 for a hub or member on a robot fleet.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"commander":"^12.1.0","@inquirer/prompts":"^7.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^20.17.0"},"_npmOperationalInternal":{"tmp":"tmp/zenoh-fleet_0.1.0_1787771686681_0.12532481354666092","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@agenticros/zenoh-fleet","version":"0.1.1","keywords":["zenoh","ros","ros2","robotics","fleet","agenticros","cli"],"author":{"name":"Chris Matthieu"},"license":"Apache-2.0","_id":"@agenticros/zenoh-fleet@0.1.1","maintainers":[{"name":"chrismatthieu","email":"chris@matthieu.us"}],"homepage":"https://github.com/agenticros/zenoh-fleet","bugs":{"url":"https://github.com/agenticros/zenoh-fleet/issues"},"bin":{"zenoh-fleet":"dist/index.js"},"dist":{"shasum":"1a3adc9e49559bc87069e10f74d104f634f1fd87","tarball":"https://registry.npmjs.org/@agenticros/zenoh-fleet/-/zenoh-fleet-0.1.1.tgz","fileCount":39,"integrity":"sha512-sm6eYVhWKRNMu8vuG4eNYz3E8uSgmXH+UX9eLGbLdQlfQLfLIAR/R+5HSEszHzQEIHku0gyb9J5sSew0BfmQ9A==","signatures":[{"sig":"MEUCIEwYhjyxfIqfJKoWBjhLA+ziM2Ti72PLnHMnaO3jKzfKAiEA0/4Jbx5oRVTjhCdKcJZAbLnJt3tZNZkO+u0K/TS5AKA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDZxuQ32+4itZv4wN3AGILpYkrW98RCYVpe3w2pgBP6LwIhALw602eR3wI/C4nZWMDFzLMSneIscpEUIw4slZEI8eTl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67885},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"e13187b6c30bc36c203463c9d696247ba44e8038","scripts":{"test":"tsc && node --test --test-force-exit \"dist/__tests__/*.test.js\"","build":"tsc && chmod +x dist/index.js","clean":"rm -rf dist tsconfig.tsbuildinfo","typecheck":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build && npm test"},"_npmUser":{"name":"chrismatthieu","email":"chris@matthieu.us"},"repository":{"url":"git+https://github.com/agenticros/zenoh-fleet.git","type":"git"},"_npmVersion":"10.9.8","description":"Enter-to-accept wizard that writes compatible Zenoh JSON5 for a hub or member on a robot fleet.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"commander":"^12.1.0","@inquirer/prompts":"^7.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^20.17.0"},"_npmOperationalInternal":{"tmp":"tmp/zenoh-fleet_0.1.1_1787772133828_0.1464548077468073","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@agenticros/zenoh-fleet","version":"0.1.2","keywords":["zenoh","ros","ros2","robotics","fleet","agenticros","cli"],"author":{"name":"Chris Matthieu"},"license":"Apache-2.0","_id":"@agenticros/zenoh-fleet@0.1.2","maintainers":[{"name":"chrismatthieu","email":"chris@matthieu.us"}],"homepage":"https://github.com/agenticros/zenoh-fleet","bugs":{"url":"https://github.com/agenticros/zenoh-fleet/issues"},"bin":{"zenoh-fleet":"dist/index.js"},"dist":{"shasum":"3ecfd9f981fa9fe186b4e1e3e2f26e74f0abe33f","tarball":"https://registry.npmjs.org/@agenticros/zenoh-fleet/-/zenoh-fleet-0.1.2.tgz","fileCount":40,"integrity":"sha512-yv44bla7OX1/S87JAnwnZiqmeD3l8hL5nwD+6BC0DpbTym6eYXJWbIwq4TGSvcvtuvyS15BD+gneU8d9KnoagQ==","signatures":[{"sig":"MEYCIQD4uyrXyufLHtmHOZUuVu3NJsrOA8+zxQaNHhp1x2V8JAIhAKp5fIu9nqYDu2T8R/OOblfvAsPu2+iUFOOvbA5IS57y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDgqYQVxigje5wQxchEJVe4huwbLfC8XWhyrRQrLprWOgIhANJQzujEQ0Le4/zfQo0m1Xkfb91BMlbRY6wfrhhuCrQB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69115},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"56aa413c18d34690dde5e72f9247854bb09b94e5","scripts":{"test":"tsc && node --test --test-force-exit \"dist/__tests__/*.test.js\"","build":"tsc && chmod +x dist/index.js && node scripts/link-local-bin.mjs","clean":"rm -rf dist tsconfig.tsbuildinfo","typecheck":"tsc --noEmit","postinstall":"node scripts/link-local-bin.mjs","prepublishOnly":"npm run clean && npm run build && npm test"},"_npmUser":{"name":"chrismatthieu","email":"chris@matthieu.us"},"repository":{"url":"git+https://github.com/agenticros/zenoh-fleet.git","type":"git"},"_npmVersion":"10.9.8","description":"Enter-to-accept wizard that writes compatible Zenoh JSON5 for a hub or member on a robot fleet.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"commander":"^12.1.0","@inquirer/prompts":"^7.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^20.17.0"},"_npmOperationalInternal":{"tmp":"tmp/zenoh-fleet_0.1.2_1787772538443_0.993687631939842","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@agenticros/zenoh-fleet","version":"0.1.3","keywords":["zenoh","ros","ros2","robotics","fleet","agenticros","cli"],"author":{"name":"Chris Matthieu"},"license":"Apache-2.0","_id":"@agenticros/zenoh-fleet@0.1.3","maintainers":[{"name":"chrismatthieu","email":"chris@matthieu.us"}],"homepage":"https://github.com/agenticros/zenoh-fleet","bugs":{"url":"https://github.com/agenticros/zenoh-fleet/issues"},"bin":{"zenoh-fleet":"dist/index.js"},"dist":{"shasum":"2ee806ebce9c551776f56c7ed287c3db16c520ab","tarball":"https://registry.npmjs.org/@agenticros/zenoh-fleet/-/zenoh-fleet-0.1.3.tgz","fileCount":40,"integrity":"sha512-bOaYBT+i+prlPO0yqwt84mNcSLaPYR8GilBWtYlfkzrpCIMiVe/+lpgQJwPLVmN6k27ttdVBUqq03IsG6e1MiQ==","signatures":[{"sig":"MEYCIQC4vsIzBKLCZIQJNwFwzTKBBFGDNhGJUyu+slkUQRpbxAIhAJUU6JzJds4MH45ZVXBAxBf1LVREiolVvpeq7Gi1gNXO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEWjwasOty2XngiTj7Q5QmXQK9IdLb/Fp92qLbIoglVqAiA6cIwa/IDvAw96HaITluLxLlNBYa3L9qAjCsS2bYLLXQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69094},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"0e71b029191486c94bfbe7460d9a61e82166a84a","scripts":{"test":"tsc && node --test --test-force-exit \"dist/__tests__/*.test.js\"","build":"tsc && chmod +x dist/index.js && node scripts/link-local-bin.mjs","clean":"rm -rf dist tsconfig.tsbuildinfo","typecheck":"tsc --noEmit","postinstall":"node scripts/link-local-bin.mjs","prepublishOnly":"npm run clean && npm run build && npm test"},"_npmUser":{"name":"chrismatthieu","email":"chris@matthieu.us"},"repository":{"url":"git+https://github.com/agenticros/zenoh-fleet.git","type":"git"},"_npmVersion":"10.9.8","description":"Enter-to-accept wizard that writes compatible Zenoh JSON5 for a hub or member on a robot fleet.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"commander":"^12.1.0","@inquirer/prompts":"^7.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^20.17.0"},"_npmOperationalInternal":{"tmp":"tmp/zenoh-fleet_0.1.3_1787772748225_0.16236592909570224","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"_id":"@agenticros/zenoh-fleet@0.1.4","bin":{"zenoh-fleet":"dist/index.js"},"bugs":{"url":"https://github.com/agenticros/zenoh-fleet/issues"},"dist":{"shasum":"99a6c6b067cd53dbc98c7e8ed5713ad9f16ae89e","tarball":"https://registry.npmjs.org/@agenticros/zenoh-fleet/-/zenoh-fleet-0.1.4.tgz","fileCount":40,"integrity":"sha512-53o1M1BGqmPUnmwgZvnWTuj4gb+KC1UWRZhA2LBur2Z+6uUa5A8pagv8lInZrFlgcGGc8epZWIdwtaoQfhVFqw==","signatures":[{"sig":"MEUCIQDY5AGGC4iAazgpoxjKxcxwacaOQmpLrTGwmZHATA3yXwIgDlMitw85fxRaK+YupBJMKmJTN4eP3fHZjeyuIVyY2EA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFDQraDLoDOOYAox+iKq+dbvK2Ksp9WGCr9yBXnpfFxPAiEApcA2RXXDci4nXFR9VdYUUzrR+R4G8J2eyACa0mXHzfo="}],"unpackedSize":69137},"main":"./dist/index.js","name":"@agenticros/zenoh-fleet","type":"module","types":"./dist/index.d.ts","author":{"name":"Chris Matthieu"},"engines":{"node":">=20.0.0"},"gitHead":"89098f4778bc13ad85fafc002ef55ec717c452e4","license":"Apache-2.0","scripts":{"test":"tsc && node --test --test-force-exit \"dist/__tests__/*.test.js\"","build":"tsc && chmod +x dist/index.js && node scripts/link-local-bin.mjs","clean":"rm -rf dist tsconfig.tsbuildinfo","typecheck":"tsc --noEmit","postinstall":"node scripts/link-local-bin.mjs","prepublishOnly":"npm run clean && npm run build && npm test"},"version":"0.1.4","_npmUser":{"name":"chrismatthieu","email":"chris@matthieu.us"},"homepage":"https://github.com/agenticros/zenoh-fleet","keywords":["zenoh","ros","ros2","robotics","fleet","agenticros","cli"],"repository":{"url":"git+https://github.com/agenticros/zenoh-fleet.git","type":"git"},"_npmVersion":"10.9.8","description":"Enter-to-accept wizard that writes compatible Zenoh JSON5 for a hub or member on a robot fleet.","directories":{},"maintainers":[{"name":"chrismatthieu","email":"chris@matthieu.us"}],"_nodeVersion":"22.23.1","dependencies":{"commander":"^12.1.0","@inquirer/prompts":"^7.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^20.17.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/zenoh-fleet_0.1.4_1787773502766_0.826990907728675"}}},"time":{"created":"2026-08-26T19:14:46.441Z","modified":"2026-08-26T19:45:03.089Z","0.1.0":"2026-08-26T19:14:46.836Z","0.1.1":"2026-08-26T19:22:13.926Z","0.1.2":"2026-08-26T19:28:58.528Z","0.1.3":"2026-08-26T19:32:28.306Z","0.1.4":"2026-08-26T19:45:02.891Z"},"bugs":{"url":"https://github.com/agenticros/zenoh-fleet/issues"},"author":{"name":"Chris Matthieu"},"license":"Apache-2.0","homepage":"https://github.com/agenticros/zenoh-fleet","keywords":["zenoh","ros","ros2","robotics","fleet","agenticros","cli"],"repository":{"url":"git+https://github.com/agenticros/zenoh-fleet.git","type":"git"},"description":"Enter-to-accept wizard that writes compatible Zenoh JSON5 for a hub or member on a robot fleet.","maintainers":[{"name":"chrismatthieu","email":"chris@matthieu.us"}],"readme":"# zenoh-fleet\n\nEnter-to-accept CLI that writes **compatible Zenoh JSON5** for every machine on a robot fleet. Each box runs the same command, picks **hub** or **member**, and gets the files it should actually start — not a copy-and-tweak of Eclipse `DEFAULT_CONFIG.json5`.\n\n```bash\nnpx zenoh-fleet                      # wizard (same CLI as @agenticros/zenoh-fleet)\nnpx @agenticros/zenoh-fleet          # scoped name; also works\nzenoh-fleet --help                   # routing + commands\nzenoh-fleet --version\nzenoh-fleet init --role member --yes\n```\n\nRun `npx` from any directory **except** a source checkout unless you have run `npm install` there (npm otherwise looks for a local `zenoh-fleet` bin that is not linked). From this repo you can also run `node dist/index.js`.\n\nApache-2.0. Node ≥ 20. No dependency on Corebrum or `@agenticros/core`.\n\n## Routing\n\nHub (router)\n: One `zenohd` on this machine. Listens on TCP 7447 (and WebSocket 10000 if AgenticROS is enabled). Other machines connect here. Default when no fleet exists yet. v1 writes `zenohd.json5`.\n\nMember (client)\n: A robot, Corebrum worker, or AgenticROS laptop. Does **not** run a second router. Connects to the hub (`zenoh-bridge-ros2dds`, `rmw_zenoh` session, or `corebrum --zenoh-router`). v1 writes client/bridge files.\n\nPeer mesh\n: Every node is a router and lists the others in `connect.endpoints`. No single hub. **Not generated in v1** (AgenticROS robots stay clients, not a second `zenohd`). Use `--role hub` or `--role member`. `--role peer` is an error.\n\nPublic LAN\n: Multicast scouting on. Members on the same L2 can join without a hub IP.\n\nPrivate mesh\n: Multicast off. Members need the hub endpoint (`--join`, `--hub-ip`, or an ARC pull after the hub publishes).\n\n## Defaults (hit Enter)\n\nName the fleet (or keep `local-fleet`) and press Enter through the rest:\n\n- Isolation: public LAN\n- Ports: `7447` / `10000`\n- Integrations: AgenticROS + Corebrum + ROS 2 DDS bridge (rmw_zenoh off)\n- Advertised IP: first non-loopback IPv4\n- Role: hub if no fleet exists yet, otherwise member\n- ARC: yes only if `agenticros login` already stored an API token\n\n## Independent machines\n\n```bash\n# laptop / edge box\nzenoh-fleet init --role hub --name warehouse-01 --yes\n\n# robot (copy fleet.json, or pull from ARC)\nzenoh-fleet init --role member --name warehouse-01 --join ./warehouse-01/fleet.json --yes\n```\n\nHub output: `fleet.json`, `zenohd.json5`, `README.md`. Start the router from the **parent** directory (or `cd` into the output folder first):\n\n```bash\nzenohd -c /absolute/path/to/warehouse-01/zenohd.json5\n```\n\nMember output (by integration): `fleet.json`, `zenoh-bridge-ros2dds-robot.json5`, optional `rmw-zenoh-session.json5`, `README.md`.\n\n## AgenticROS Cloud (ARC)\n\nOptional. If you are logged in (`agenticros login`), the hub can **PUT** its advertised `tcp/<lan-ip>:7447` and `ws://<lan-ip>:10000` to `https://cloud.agenticros.com/orgs/current/zenoh-fleet`. Members **GET** that record so they can Enter-through without copying IPs.\n\nARC does not discover LAN addresses and cannot punch NAT. Cross-site private meshes still need a VPN (Tailscale, etc.) or a public hub. Robots do not publish their own IPs in v1.\n\n## Deploy notes\n\n- Hub: `zenohd -c zenohd.json5`. Install `zenoh-plugin-remote-api` for AgenticROS.\n- AgenticROS: `zenoh.routerEndpoint` = `ws://<hub>:10000` (never `tcp/...`).\n- Corebrum: `corebrum daemon --zenoh-router tcp://<hub>:7447`.\n- Robot: `zenoh-bridge-ros2dds -c zenoh-bridge-ros2dds-robot.json5`, then `nc -zv <hub> 7447`.\n\n## License\n\nApache License 2.0.\n","readmeFilename":"README.md"}