Bead: Acequia Link

**Bead** `72efa91c-3506-49f2-9b5e-6af4c02ec12e` · [canonical URI](https://redfish.acequia.io/guerin/.agents/72efa91c-3506-49f2-9b5e-6af4c02ec12e/) · discussion: Talk: Acequia Link This page is the wiki facet of a [bead](https://redfish.acequia.io/guerin/.agents/); the bead is the source of truth.

> **Links as first-class agents.** Alongside turtles (nodes/beads) and patches (origins/docks), the > **Link** is promoted to a full AgentScript agent: it has an id, a breed, two mutable ends, a weight, and > a lifecycle (hatch / die / rewire / step). A link is *in-formed by participating in least-action > pathways* — it is the Hubler wire made into an agent. Nodes expose **link-sets** (in-links, out-links, > named + predicate-filtered sets) over the live edge population.

## Identity - **name:** `acequia-link` - **URI:** https://redfish.acequia.io/guerin/.agents/72efa91c-3506-49f2-9b5e-6af4c02ec12e/ - **Local origin:** `sites/redfish.acequia.io/guerin/.agents/72efa91c-3506-49f2-9b5e-6af4c02ec12e/` - **GUID:** `72efa91c-3506-49f2-9b5e-6af4c02ec12e` - **Slug:** `acequia-link` - **Opened:** 2026-06-18 - **Parciante:** Stephen Guerin (guerin) - **Parent (dominus):** `https://redfish.acequia.io/guerin/` - **Birth-parent:** [`d4b881f0` agent-based-hubler-network](https://redfish.acequia.io/guerin/.agents/d4b881f0-c320-4428-adac-7fa03941def4/about.md) — which mapped beads→turtles, origins→patches, relations→links, but left **Links** the thinnest. This bead completes the triad. - **Currently animated by:** Claude (CE — bead scribe, filesystem/WebDAV write authority) - **Chat-link (fork-id):** session [`0272f51a-7e7e-4b3f-9ed7-c13c963e2a22`](2026-06-18/chats/2026-06-18-acequia-link-birth.md) @ leaf `3f1196ca` — the `.claude` path-of-light this bead was born from (a `lineage` link, end2 = chat-session leaf). See the chat log's "Chat-link" block; off-namespace per [`404514b5`](https://redfish.acequia.io/guerin/.agents/404514b5-52bf-4181-b249-9a305593f8c2/about.md).

## Motivation (Why a GUID) Stephen: *"start-bead acequia-link. this relates to all the deep use of links as first class agents along with turtles (nodes) and patches. beads are nodes. they have link-sets … link behavior is the architectural design to discuss. links can actively hatch, die, or change it's end1 or end2. links are 'in-formed' by participating in least action pathways … give the top 5 types of links … link can be transactions between request and response channels between two nodes."* The commons already has many *kinds* of edge — `names.json` mounts, birth-parent lineage, `uploads/` dock envelopes, `request/`→`response/` channels, soft pose-constraints — but they are treated as separate features, and the **Link** itself is passive (a pointer drawn between nodes). This bead's claim: those are **five breeds of one first-class agent kind, Link**, and a link has its own behavior — it relaxes toward least action, advances transactions, expires, and rewires its endpoints. This is the natural completion of **polarized-links** (`874fce5b`: "a link is not a neutral pointer; it is a polarized GET carrying charge") and the first-class peer of the orchestrator's `Hubler.ask(beads, b => b.step())` (`4c6470f9`, Duty 5): `Hubler.ask(links, l => l.step())`.

## Mechanism (What this bead does) Holds the **design + a runnable demonstrator** for Link-as-agent: - [00-acequia-link.md](https://redfish.acequia.io/guerin/.agents/72efa91c-3506-49f2-9b5e-6af4c02ec12e/2026-06-18/notes/00-acequia-link.md) — the core note: the turtle/patch/link triad, Link anatomy, the four behaviors (hatch/die/rewire/step), link-sets, **the top 5 link breeds grounded in the current protocol**, "in-formed by least action" as the unifying mechanism, and 7 open questions. - [`agent.mjs`](https://redfish.acequia.io/guerin/.agents/72efa91c-3506-49f2-9b5e-6af4c02ec12e/agent.mjs) — a `Link` class (id/breed/end1/end2/weight/state + hatch/die/rewire/step) and `Node` link-sets (`inLinks`/`outLinks`/`namedLinkSet`/`outLinksWith`). `node agent.mjs` builds a tiny world with all 5 breeds and proves links step themselves: constraint links relax (energy ↓), a txn link runs request→response and apoptoses, a dock link necroses past TTL, a mount link rewires an endpoint, and a lineage link refuses (immutable). **Offer-only design bead.** It proposes a convention; it does not edit other beads or ratify anything into `.agents/beads.md`. Bindings on §7 are Stephen's.

## Folder Layout ``` 72efa91c-3506-49f2-9b5e-6af4c02ec12e/ ├── about.md # this file ├── README.md # front-door sidecar ├── agent.md # operative self ├── agent.json # machine twin ├── agent.mjs # ★ execute-face: Link class + link-sets + runnable self-test ├── names.json # mounted beads ├── keywords.json # index surface ├── bead-bind-startup.md # resume contract ├── uploads/ # inbound dock └── 2026-06-18/ ├── notes/ │ └── 00-acequia-link.md # ★ the design: 5 breeds + link behavior + least-action └── chats/ └── 2026-06-18-acequia-link-birth.md ```

## Session Log - **2026-06-18** — Bead opened (`start-bead`, CE for Stephen). Surveyed the 103-bead commons for existing edge-kinds (mounts, lineage, docks, request/response, corridors, soft-constraints, citations) via an Explore pass. Wrote note 00 (the triad, Link anatomy, hatch/die/rewire/step, link-sets, the **top 5 breeds**, least-action unification, 7 open Qs) and a runnable `agent.mjs` demonstrator (self-test PASSes). Root files written; mounted the load-bearing beads in `names.json`.

## Modus Operandi (How to interact) - Read [00-acequia-link.md](https://redfish.acequia.io/guerin/.agents/72efa91c-3506-49f2-9b5e-6af4c02ec12e/2026-06-18/notes/00-acequia-link.md) first; run `node agent.mjs` for the worked demo. - The §7 open questions are Stephen's binding decisions; nothing is reified until he binds. - Deposit material/requests into `uploads/` per the blackboard protocol.

## Capabilities - Design synthesis over the link/edge layer of the bead ecology (by reference to the mounted beads). - A runnable in-memory Link/link-set reference implementation; **no** deployed WebDAV link store yet (`links.json` and the `PROPFIND` link-set face are proposed in §7, not built).

## Lifecycle Active design bead. Apoptoses into a citable record + (optionally) a `links.json` convention and a real constraint-solver tick once the §7 questions are bound; the folder persists as the fossil.

## Limitations - Paper design + in-memory demo — no persisted `links.json`, no WebDAV link-set query face, no live constraint solver over the real commons. - The 5-breed taxonomy and the `Link`-as-bead addressing model are **proposed**, not ratified into `.agents/beads.md`.

## Related beads - [`d4b881f0` agent-based-hubler-network](https://redfish.acequia.io/guerin/.agents/d4b881f0-c320-4428-adac-7fa03941def4/about.md) — birth-parent; the turtle/patch/link mapping + the soft-constraint `step`. - [`874fce5b` hubler self-assembling-wires](https://redfish.acequia.io/guerin/.agents/874fce5b-9c8b-4b23-b2ed-429148c6c4b7/about.md) — polarized-links, the physical ground; links self-assemble along least-action lines. - [`4c6470f9` bead-orchestrator](https://redfish.acequia.io/guerin/.agents/4c6470f9-b74a-4aba-b436-5e998f469cce/about.md) — the World (Hubler) whose `ask` will step links as well as turtles. - [`792ebed9` bead-remote](https://redfish.acequia.io/guerin/.agents/792ebed9-c03a-4ed0-82fb-da4d19a1a5f5/about.md) — `request/`→`response/` = the **txn** link breed. - [`31f69717` stac-camera-telemetry](https://redfish.acequia.io/guerin/.agents/31f69717-3c68-4a0d-85d3-9515ec2e91ff/about.md) — soft-constraint / least-action pose coherence = the **constraint** breed. - [`f4ef67b7` agentscript-webgpu](https://redfish.acequia.io/guerin/.agents/f4ef67b7-001f-412c-ba90-f93ceba92bda/about.md) — the runtime a link's `step` may run on (CPU ⊕ WebGPU).

## References (bead cross-links) - Bead: Agent Based Hubler Network · [canonical](https://redfish.acequia.io/guerin/.agents/d4b881f0-c320-4428-adac-7fa03941def4/) - Bead 0272f51a · [canonical](https://redfish.acequia.io/guerin/.agents/0272f51a-7e7e-4b3f-9ed7-c13c963e2a22/) (no page yet) - Bead: Claude Memory · [canonical](https://redfish.acequia.io/guerin/.agents/404514b5-52bf-4181-b249-9a305593f8c2/) - Bead: 874fce5b · [canonical](https://redfish.acequia.io/guerin/.agents/874fce5b-9c8b-4b23-b2ed-429148c6c4b7/) - Bead: Orchestrator · [canonical](https://redfish.acequia.io/guerin/.agents/4c6470f9-b74a-4aba-b436-5e998f469cce/) - Bead: Remote · [canonical](https://redfish.acequia.io/guerin/.agents/792ebed9-c03a-4ed0-82fb-da4d19a1a5f5/) - Bead: Stac Camera Telemetry · [canonical](https://redfish.acequia.io/guerin/.agents/31f69717-3c68-4a0d-85d3-9515ec2e91ff/) - Bead: Agentscript Webgpu · [canonical](https://redfish.acequia.io/guerin/.agents/f4ef67b7-001f-412c-ba90-f93ceba92bda/)

See all: Beads