Skip to content

Commit 1535fb3

Browse files
Add README.md for tool compatibility (#4)
Systems like Glama and modelcontextprotocol/servers CI require a README.md at the repo root. This is a Markdown conversion of the existing README.adoc with identical content. Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 18abd37 commit 1535fb3

1 file changed

Lines changed: 104 additions & 0 deletions

File tree

README.md

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
# Bundle of Joy (BoJ) Server
2+
3+
Unified server capability catalogue with formally verified cartridges, distributed community hosting, and the Teranga menu system.
4+
5+
> **AI-Assisted Install:** Just tell any AI assistant:
6+
> `Set up Bundle of Joy Server from https://github.com/hyperpolymath/boj-server`
7+
> The AI reads this repo, asks you a few questions, and handles everything.
8+
9+
## What is this?
10+
11+
BoJ solves the **combinatoric explosion of developer server protocols**. Instead of hunting across dozens of MCP, LSP, DAP, and other servers, AI goes to ONE place — the Teranga menu — and orders what it needs.
12+
13+
The server is **distributed**: community nodes volunteer compute time (like Tor/IPFS), with cryptographic hash attestation ensuring integrity. No central hosting required.
14+
15+
## The 2D Capability Matrix
16+
17+
Capabilities are organised as a 2D matrix:
18+
19+
- **Columns** = protocol types (MCP, LSP, DAP, BSP, NeSy, Agentic, Fleet, gRPC, REST)
20+
- **Rows** = capability domains (Cloud, Container, Database, K8s, Git, Secrets, Queues, IaC, Observe, SSG, Proof, Fleet, NeSy)
21+
- **Cells** = cartridges (formally verified, swappable capability modules)
22+
23+
Each cartridge follows the **three-layer stack**:
24+
25+
| Layer | Language | Purpose |
26+
|-------|----------|---------|
27+
| **ABI** | Idris2 | Formal proofs, `%default total`, zero `believe_me` |
28+
| **FFI** | Zig | C-compatible native execution, zero runtime deps |
29+
| **Adapter** | V-lang | Triple API (REST + gRPC + GraphQL) |
30+
31+
## The Teranga Menu
32+
33+
The menu has three tiers:
34+
35+
- **Teranga (Core)**: Cartridges maintained by the project
36+
- **Shield**: Privacy and security (SDP, DoQ/DoH, oDNS)
37+
- **Ayo (Community)**: Community-contributed cartridges
38+
39+
AI agents act as the "Maître D'" — presenting the menu to users as honoured guests.
40+
41+
See: `.machine_readable/servers/menu.a2ml`
42+
43+
## Quick Start
44+
45+
```bash
46+
# Clone and enter
47+
git clone https://github.com/hyperpolymath/boj-server
48+
cd boj-server
49+
50+
# Type-check the Idris2 ABI
51+
cd src/abi && idris2 --build boj.ipkg
52+
53+
# Build the Zig FFI
54+
cd ../../ffi/zig && zig build
55+
56+
# Run tests
57+
cd ffi/zig && zig build test
58+
```
59+
60+
## Distributed Hosting (Umoja Network)
61+
62+
BoJ servers are community-hosted:
63+
64+
- Pull the container from the Stapeln supply chain
65+
- Run it locally (Podman, Chainguard base)
66+
- Your node appears in the Umoja network via gossip protocol
67+
- Hash attestation ensures integrity — tampered nodes are excluded from the community network but can still run locally
68+
69+
See: `docs/FEDERATION.md`
70+
71+
## Contributing Cartridges
72+
73+
Build a cartridge that passes the `IsUnbreakable` proof and it goes in the Ayo menu with your name honoured.
74+
75+
See: `docs/DEVELOPERS.md`
76+
77+
## Cultural Terminology
78+
79+
We use terms from Wolof (*Teranga* — hospitality), Swahili (*Umoja* — unity), and Yoruba (*Ayo* — joy) to align our architecture with global values.
80+
81+
See: `docs/CULTURAL-RESPECT.md`
82+
83+
## License
84+
85+
PMPL-1.0-or-later (Palimpsest License). The license's provenance requirements (crypto signatures, emotional lineage) align directly with the hash attestation model.
86+
87+
## Project Status
88+
89+
**Grade A (Production)** — 18 cartridges, 307 tests passing, thread-safe FFI (mutex-hardened), panic-attack validated. See `READINESS.md` for the full CRG assessment and `.machine_readable/STATE.a2ml` for milestone progress.
90+
91+
## A Community Project
92+
93+
This is a community project. Nobody makes money from it. It exists because the problem (too many servers, too much fragmentation) needed solving, and the solution needed building.
94+
95+
**What would help most right now:**
96+
97+
- **Host a node** — Even for a few hours a week. Pull the container, let it gossip. Every node strengthens the network. See `docs/OPERATOR-QUICKSTART.md`.
98+
- **Try it out** — Use it via MCP, REST, or gRPC. Break things. Tell me what's confusing, what's missing, what doesn't work.
99+
- **Build on it** — Write a cartridge, create an extension, wire it to your own tools. The third axis is wide open.
100+
- **Give feedback** — Comments, issues, PRs, emails, carrier pigeons. All welcome.
101+
102+
A huge thank you to anyone who takes the time to look at this. Even a quick glance and an honest opinion helps enormously. I built this to learn from it, and I learn most from other people using it.
103+
104+
Contact: `j.d.a.jewell@open.ac.uk` | GitHub: [hyperpolymath](https://github.com/hyperpolymath) | Issues: [boj-server/issues](https://github.com/hyperpolymath/boj-server/issues)

0 commit comments

Comments
 (0)