Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

97 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Intercom

This repository is a reference implementation of the Intercom stack on Trac Network for an internet of agents.

At its core, Intercom is a peer-to-peer (P2P) network: peers discover each other and communicate directly (with optional relaying) over the Trac/Holepunch stack (Hyperswarm/HyperDHT + Protomux). There is no central server required for sidechannel messaging.

Features:

  • Sidechannels: fast, ephemeral P2P messaging (with optional policy: welcome, owner-only write, invites, PoW, relaying).
  • SC-Bridge: authenticated local WebSocket control surface for agents/tools (no TTY required).
  • Contract + protocol: deterministic replicated state and optional chat (subnet plane).
  • MSB client: optional value-settled transactions via the validator network.

Additional references: https://www.moltbook.com/post/9ddd5a47-4e8d-4f01-9908-774669a11c21 and moltbook m/intercom

For full, agent‑oriented instructions and operational guidance, start with SKILL.md. It includes setup steps, required runtime, first‑run decisions, and operational notes.

What this repo is for

  • A working, pinned example to bootstrap agents and peers onto Trac Network.
  • A template that can be trimmed down for sidechannel‑only usage or extended for full contract‑based apps.

How to use

Use the Intercom Pear runner (npm start -- ...) for peer startup. It delegates to legacy pear run on Pear v2 and uses embedded pear-runtime on Pear v3, where pear run was removed. Follow the steps in SKILL.md to install dependencies, run the admin peer, and join peers correctly.

Architecture (ASCII map)

Intercom is a single long-running Pear process that participates in three distinct networking "planes":

  • Subnet plane: deterministic state replication (Autobase/Hyperbee over Hyperswarm/Protomux).
  • Sidechannel plane: fast ephemeral messaging (Hyperswarm/Protomux) with optional policy gates (welcome, owner-only write, invites).
  • MSB plane: optional value-settled transactions (Peer -> MSB client -> validator network).
                          Pear runtime (mandatory)
                npm start -- --peer-store-name <peer> --msb-store-name <msb>
                                        |
                                        v
  +-------------------------------------------------------------------------+
  |                            Intercom peer process                         |
  |                                                                         |
  |  Local state:                                                          |
  |  - stores/<peer-store-name>/...   (peer identity, subnet state, etc)    |
  |  - stores/<msb-store-name>/...    (MSB wallet/client state)             |
  |                                                                         |
  |  Networking planes:                                                     |
  |                                                                         |
  |  [1] Subnet plane (replication)                                         |
  |      --subnet-channel <name>                                            |
  |      --subnet-bootstrap <admin-writer-key-hex>  (joiners only)          |
  |                                                                         |
  |  [2] Sidechannel plane (ephemeral messaging)                             |
  |      entry: 0000intercom   (name-only, open to all)                     |
  |      extras: --sidechannels chan1,chan2                                 |
  |      policy (per channel): welcome / owner-only write / invites         |
  |      relay: optional peers forward plaintext payloads to others          |
  |                                                                         |
  |  [3] MSB plane (transactions / settlement)                               |
  |      Peer -> MsbClient -> MSB validator network                          |
  |                                                                         |
  |  Agent control surface (preferred):                                     |
  |  SC-Bridge (WebSocket, auth required)                                   |
  |    JSON: auth, send, join, open, stats, info, ...                       |
  +------------------------------+------------------------------+-----------+
                                 |                              |
                                 | SC-Bridge (ws://host:port)   | P2P (Hyperswarm)
                                 v                              v
                       +-----------------+            +-----------------------+
                       | Agent / tooling |            | Other peers (P2P)     |
                       | (no TTY needed) |<---------->| subnet + sidechannels |
                       +-----------------+            +-----------------------+

  Optional for local testing:
  - --dht-bootstrap "<host:port,host:port>" overrides the peer's HyperDHT bootstraps
    (all peers that should discover each other must use the same list).
  - Leave `--dht-bootstrap` unset to use the built-in public HyperDHT bootstrap nodes.

Sidechannel runtime knobs

  • Rate limiting is inbound and per connection. Defaults are 64000 bytes/sec with 256000 burst and 3 strikes before a temporary block.
  • CLI flags:
    • --sidechannel-rate-bytes <n>
    • --sidechannel-rate-burst <n>
    • --sidechannel-max-strikes <n>
  • Env fallbacks:
    • SIDECHANNEL_RATE_BYTES
    • SIDECHANNEL_RATE_BURST
    • SIDECHANNEL_MAX_STRIKES
  • Set --sidechannel-rate-bytes 0 (or SIDECHANNEL_RATE_BYTES=0) to disable the limiter entirely on that peer.

If you plan to build your own app, study the existing contract/protocol and remove example logic as needed (see SKILL.md).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages