{"_id":"@baixianger/dsh-mesh","name":"@baixianger/dsh-mesh","dist-tags":{"next":"0.1.0-rc.0","latest":"0.1.0-rc.0"},"versions":{"0.1.0-rc.0":{"name":"@baixianger/dsh-mesh","version":"0.1.0-rc.0","description":"A private, peer-to-peer mesh protocol for connecting DeepSeek Harness nodes across machines.","type":"module","main":"./lib/index.js","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","default":"./lib/index.js"}},"scripts":{"check":"node --check lib/index.js && npm pack --dry-run"},"keywords":["deepseek-harness","dsh","agent","mesh","iroh","p2p","quic"],"author":{"name":"Xiang Bai"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/baixianger/dsh-mesh.git"},"bugs":{"url":"https://github.com/baixianger/dsh-mesh/issues"},"homepage":"https://github.com/baixianger/dsh-mesh#readme","engines":{"node":">=22"},"publishConfig":{"access":"public","tag":"next"},"gitHead":"25b392aaee837641ff4ccd0b72fea6648c80fa31","_id":"@baixianger/dsh-mesh@0.1.0-rc.0","_nodeVersion":"26.0.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-LvQYNhi438jIeQph8cy4IBl3D8c4ZMfIt08IcZvXJVHRqnd4tmD/rAupHbAajEO6suTSjPKjkfXSkUEyq63yWw==","shasum":"3ab6e07f4607840456002214312c24b80488e27a","tarball":"https://registry.npmjs.org/@baixianger/dsh-mesh/-/dsh-mesh-0.1.0-rc.0.tgz","fileCount":8,"unpackedSize":10728,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCVM/7XdtlYKOhuH51AV38UY0QllXS/L0nRpABVbhlG+QIhAM9QFBZeaRSQlO3fy1H+lHz99v6EdpSo0BQmdo1rhSqk"}]},"_npmUser":{"name":"baixianger","email":"baixianger@gmail.com"},"directories":{},"maintainers":[{"name":"baixianger","email":"baixianger@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-mesh_0.1.0-rc.0_1786991416395_0.46058376789382915"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-17T18:30:16.258Z","0.1.0-rc.0":"2026-08-17T18:30:16.550Z","modified":"2026-08-17T18:30:16.749Z"},"maintainers":[{"name":"baixianger","email":"baixianger@gmail.com"}],"description":"A private, peer-to-peer mesh protocol for connecting DeepSeek Harness nodes across machines.","homepage":"https://github.com/baixianger/dsh-mesh#readme","keywords":["deepseek-harness","dsh","agent","mesh","iroh","p2p","quic"],"repository":{"type":"git","url":"git+https://github.com/baixianger/dsh-mesh.git"},"author":{"name":"Xiang Bai"},"bugs":{"url":"https://github.com/baixianger/dsh-mesh/issues"},"license":"MIT","readme":"# DSH Mesh\n\n> A private, peer-to-peer fabric for connecting DeepSeek Harness nodes across machines.\n\n**DSH Mesh** turns a collection of local DSH installations into an intentional network: nodes can discover trusted peers, exchange session-aware events, hand off work, and recover after a connection drops — without placing a central server in the execution path.\n\n| Status | Transport | Scope |\n| --- | --- | --- |\n| `0.1.0-rc.0` design preview | Iroh + QUIC | Trusted DSH nodes |\n\n## Why Mesh?\n\n`dsh-bridge` is the local contract: it normalizes events between DSH, a CLI, and other local runtimes. `dsh-mesh` carries that same contract across machines.\n\n```text\nDSH node A ── dsh-bridge ── dsh-mesh ── Iroh ── Iroh ── dsh-mesh ── dsh-bridge ── DSH node B\n```\n\nIroh supplies authenticated, encrypted QUIC connections, direct peer-to-peer paths where possible, and relay fallback where required. Mesh owns the parts specific to DSH: membership, capabilities, task approval, event ordering, and durable delivery.\n\n## Install\n\nThis first release publishes the public protocol contract and architecture documents. The executable transport is not included yet.\n\n```bash\nnpm install @baixianger/dsh-mesh@next\n```\n\n```js\nimport {\n  DSH_MESH_ALPN,\n  DSH_MESH_PROTOCOL_VERSION,\n  DSH_MESH_STAGE,\n} from \"@baixianger/dsh-mesh\";\n\nconsole.log(DSH_MESH_ALPN);             // dsh-mesh/1\nconsole.log(DSH_MESH_PROTOCOL_VERSION); // 1\nconsole.log(DSH_MESH_STAGE);            // design-preview\n```\n\n## The first protocol\n\n| Plane | What it carries | Delivery rule |\n| --- | --- | --- |\n| Control | invite, membership, heartbeat, capability updates | request/acknowledgement |\n| Task | offer, accept, progress, result, cancellation | idempotent at-least-once |\n| Session | user-approved context or trajectory references | explicit sharing only |\n\nEvery node has a persistent network identity. Joining a mesh requires an expiring invite and an explicit local approval. A transport connection alone never grants permission to execute a task.\n\n## Security posture\n\n- End-to-end encryption is supplied by Iroh's authenticated QUIC transport.\n- A mesh allowlist and capability grants sit above transport identity.\n- Remote work is denied by default until the receiving node approves it.\n- Secrets, provider credentials, and raw filesystem access never travel as ordinary session events.\n- A self-hosted relay/discovery deployment is the production path; public relays are for development only.\n\nSee [architecture](./docs/ARCHITECTURE.md), [wire protocol](./docs/PROTOCOL.md), and [security model](./docs/SECURITY.md).\n\n## Roadmap\n\n- [x] Publish the v1 protocol contract\n- [ ] `dsh-bridge` local event adapter\n- [ ] Iroh endpoint adapter and pair-by-invite flow\n- [ ] Remote task request / approval / result streams\n- [ ] Durable outbox and reconnect replay\n- [ ] Self-hosted relay and discovery guidance\n\n## Development\n\n```bash\nnpm run check\n```\n\n## License\n\nMIT © Xiang Bai\n","readmeFilename":"README.md","_rev":"1-e04fd0b3f43095bd0e8000cee237d6ec"}