~ knotless Search/
↑↓ move↵ open⇧↵ all results
0
0
main
59 lines · 2.9 KB Raw History
# atlibs-agent-reference-spa

An agent in a browser tab whose tools are atlibs modules as MCP servers.

```sh
cargo install --locked --git https://knotless.dev/johnandersen777.bsky.social/atlibs --rev 88b2ba8 atlibs
git clone https://knotless.dev/johnandersen777.bsky.social/atlibs-agent-reference-spa
cd atlibs-agent-reference-spa
npm ci
scripts/stage.sh
python3 -m http.server 8780 --bind 127.0.0.1 -d dist   # http://127.0.0.1:8780/
```

| what | from |
|---|---|
| `@publicdomainrelay/atlibs` 0.3.0, `-code-mode` 0.3.0, `-webrtc` 0.3.0 | jsdelivr (`index.html` import map; `package-lock.json` for the tests) |
| `@atproto/oauth-client-browser` 0.5.14, `@noble/curves` 2.4.0, `age-encryption` 0.3.1 | esm.sh |
| assemblyscript 0.28.20, binaryen 131.0.0-nightly.20260721, long 5.3.2, pico 2.1.1 | jsdelivr |
| modules, sessions | bobvmbuilder.bsky.social records, pinned in `atlibs.lock.json` |

| module | record CID |
|---|---|
| `asyncai` | `bafyreieqen4dln6b4tmqfrjrjj2btnjk34b2g4t5zwmkfqyn2gnwsytr5u` |
| `ingress` | `bafyreidhsbptjjb4kbzdom2s6fgj47urcne56gcgl4hks254qertg7e3ja` |
| `knotless` | `bafyreigkzgwqtubfondk4zoow6dwbbp3g2wjowai3r5ugflamdm3o6gtqa` |
| `marque` | `bafyreigtk2moowpnarynnlhle6seiod547wufbivliavdutljs3bydkhli` |
| `fedproxy` | `bafyreicllggppbda4seli2iwfcorrzjlob2bv2byynao4obeqxhwzom5wi` |
| `cocore-inference` | `bafyreihu3lg26h6dnclaqbguls2ruy5ucvop6wjs7ra3udbkvnj767xdwu` |
| `cocore-keys` | `bafyreig6hbygdinpqds27gehfptu5nhc2zoypfl4o56gcwxs4j7lxvqtva` |
| `vm-mcp` (the model's VM tools) | `bafyreibtx6dmuht5oyy5asptxjvmdqsdv3i55ey44we6fvhcnrdq3mi6by` |
| `requester` (vm-mcp hook default; the page's webrtc signals) | `bafyreibxy3u2vr3opw3faazfbkdynilci225yc3c3xaih3ieuab3wfjvzu` |
| `process-mcp` (vm-mcp hook default) | `bafyreibp47v3kvfqqstf67mn7mso6pe4asqwlurf3sn6pkoe34bojbjthm` |
| `policy-requester-tangled-vouch` (requester hook default) | `bafyreifhncpmc7wjnn6jxwuwrtqqsyv3cqckcjv7ei3q4smqa5ov36yw3y` |
| `user-data` (requester hook default) | `bafyreicijszhjnyrjfrycdevgzij6bib5f6od6mvowik5hhv7xw3wsuype` |
| `iroh-user-data` (user-data hook default) | `bafyreia7uwc2p2el77cw5ilm37c2vftqwg47jyqsctslymdb37ncxcmqiu` |

Deploy (any static host):

```sh
scripts/stage.sh --origin https://you.example/agent/ && rsync -a dist/ you.example:/srv/agent/
```

Deploy https://atlibs-agent.socialweb.computer/ (`scripts/deploy.sh`: stage for that origin, back up the live dir, tar over ssh to the socialweb.computer gateway, a Caddy `file_server` site):

```sh
scripts/deploy.sh
```

Update a module: `atlibs add bobvmbuilder.bsky.social/<module>`, then `scripts/stage.sh`. Servers and defaults: `config.js`.

## Open

- co/core's API (cocore.dev/api/v1) allows CORS only from localhost origins, so a deployed page offers custom inference endpoints only; co/core works from `127.0.0.1`.

Test (after `scripts/stage.sh`; the page test needs Chrome):

```sh
node --test test/*.test.mjs
```