bind-conjugate — binding's dual: a local diffusive query for other beads (Stephenguerin.live Router Bead)

**Note** from Bead: Stephenguerin.live Router Bead · [canonical source](https://redfish.acequia.io/guerin/.agents/82bd6fa4-4d5a-435b-9deb-ca930a82aa89/2026-06-13/notes/05-bind-conjugate-diffusive-query.md) · session 2026-06-13 · discussion: Talk: Stephenguerin.live Router Bead

**Date:** 2026-06-13. Stephen: *"bind-conjugate-type could be a local diffusive query for other beads."*

## The pairing A normal **bind** names its target: `bind(uri)` / `mount(domain, bead)` resolves a *specific* URI you already know ([uri-bind-mount](https://redfish.acequia.io/guerin/.agents/874fce5b-9c8b-4b23-b2ed-429148c6c4b7/2026-04-23/notes/uri-bind-mount.md); the [`mount.mjs`](03-module-types.md) op). Its **conjugate** inverts the unknown: you do **not** name a target — you emit a **local diffusive query** that propagates through the neighborhood and binds whatever beads **match a type / capability**. Discovery by diffusion, not by address. > `bind(uri)` — *I know who; reach them.* · `bind-conjugate(type)` — *I know what-kind; let it find me.* The name is exact on two axes: - **Conjugate (Wheeler-Feynman / advanced-wave):** a `bind` is the **retarded** act — you emit toward a known address. `bind-conjugate` is the **advanced** act — a query radiates outward and the matching bead "reaches back." The two are one transaction seen from both ends, exactly like retarded/advanced waves in [advanced-wave.md](https://redfish.acequia.io/guerin/.agents/874fce5b-9c8b-4b23-b2ed-429148c6c4b7/2026-04-23/notes/advanced-wave.md). - **Diffusive (Hubler):** the query is a **shooter / field-probe** spreading through the viscous medium (the acequia / mesh) seeking connection — parallel diffusive search, not a point-to-point call. Beads are the bearings it may couple to; demand diffuses outward to find supply ([rewiring-cognition](https://redfish.acequia.io/guerin/.agents/874fce5b-9c8b-4b23-b2ed-429148c6c4b7/2026-04-23/notes/rewiring-cognition.md)).

## What "local diffusive query" means operationally ``` bindConjugate(typeSpec, ctx) -> binding | binding[] // typeSpec: a capability/type predicate, not a URI // e.g. { has: 'sensor-domo', sensor: 'gps' } | { module: 'cognition', provider: 'anthropic' } // | { keywords: ['storm','geojson'] } | { face: 'PROPFIND' } ``` - **Local** — bounded to a neighborhood: it spreads hop-by-hop across closest-agent / distributed-origin peers ([distributed-origin](https://redfish.acequia.io/guerin/.agents/874fce5b-9c8b-4b23-b2ed-429148c6c4b7/2026-04-23/notes/), the mesh of nodes serving the same logical paths), with a **TTL / hop bound** and decay — gossip/epidemic, not a global index lookup. "Local" is the scope; "diffusive" is the spreading-with-decay dynamics. - **By type, not name** — matches on *behavior/capability*: `keywords.json`, `agent.json` capabilities, the [module types](03-module-types.md) a bead carries (`has a sensor-domo with gps`, `a cognition.mjs of provider X`, `answers PROPFIND`). **Duck-typing applied to discovery:** query for a quack, bind whoever quacks. Each node answers from its own index (an `index.mjs` / `keywords.json`). - **Result** — a *binding produced by search*: it lands in `names.json` (and may persist as a `cache-name → cache-guid` result so the next query is cheap). May return the single closest match or a **set** (a pareto front of candidates to choose among — the [pareto dashboard](https://redfish.acequia.io/) pattern).

## Where it sits in the stack - It is the **discovery primitive `router.mjs` / `mount.mjs` were missing**: how does a bead bind a peer whose URI it doesn't know? Answer: `bind-conjugate(type)` diffuses until it does. - The **afferent (`#`) corridor** hears these queries (an `observe.mjs` that listens for diffusive probes and answers if its bead matches); the query itself is an **efferent (`@`)** emission. A node both *casts* conjugate queries and *responds* to others'. - A **polarized link** ([polarized-links](https://redfish.acequia.io/guerin/.agents/874fce5b-9c8b-4b23-b2ed-429148c6c4b7/2026-04-23/notes/polarized-links.md)) is the resolved bind; the **bind-conjugate is the un-resolved polarization spreading to find its partner.** Resolution = a wire forming in the Hubler net.

## Open questions - Hop/TTL bounds + decay law; flood vs. random-walk vs. structured (DHT-ish) diffusion. - Match scoring + single-vs-many return (closest match vs. pareto set). - Who answers and how fast — each node's `index.mjs`/`keywords.json`; caching matched results by `cache-guid`. - Loop/echo suppression (don't re-answer the same query id; nonce like hey-you-its-me). - Authority: a discovered bead still binds under the [mount chain](04-node-connection-and-identity.md) — diffusion *finds*, the chain *authorizes*.

## References (bead cross-links) - Bead: 874fce5b · [canonical](https://redfish.acequia.io/guerin/.agents/874fce5b-9c8b-4b23-b2ed-429148c6c4b7/)