You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Unified server capability catalogue with formally verified cartridges, distributed community hosting, and the Teranga menu system.
3
+
# BoJ -- Bundle of Joy
4
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.
5
+
One MCP server that gives any AI assistant access to your databases, containers, git repos, secrets, and more -- instead of installing seven separate tools.
<imgsrc="https://www.bestpractices.dev/projects/12164/badge"alt="OpenSSF Best Practices passing (115%)" />
14
-
</a>
15
-
16
-
## What is this?
17
-
18
-
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.
19
-
20
-
The server is **distributed**: community nodes volunteer compute time (like Tor/IPFS), with cryptographic hash attestation ensuring integrity. No central hosting required.
**One connection, not seventeen.** Your AI assistant connects to one server and gets access to all domains through a single menu.
94
66
95
-
# Type-check the Idris2 ABI
96
-
cd src/abi && idris2 --build boj.ipkg
67
+
**Lower memory footprint.** One native process instead of 7+ separate `npm exec` processes each consuming 200-300 MB of RAM.
97
68
98
-
# Build the Zig FFI
99
-
cd ../../ffi/zig && zig build
100
-
101
-
# Run tests
102
-
cd ffi/zig && zig build test
103
-
```
69
+
**Verified state machines.** Each cartridge's lifecycle (connect, query, disconnect) is modelled as a state machine with formal proofs that prevent invalid transitions. This means your AI cannot, for example, issue a query on a closed database connection.
104
70
105
-
## Distributed Hosting (Umoja Network)
71
+
**Federation-ready.** BoJ nodes can form a peer-to-peer network (Umoja federation) for production-scale distributed hosting. Community nodes volunteer compute, with cryptographic hash attestation ensuring integrity.
106
72
107
-
BoJ servers are community-hosted:
73
+
## Current Status
108
74
109
-
- Pull the container from the Stapeln supply chain
110
-
- Run it locally (Podman, Chainguard base)
111
-
- Your node appears in the Umoja network via gossip protocol
112
-
- Hash attestation ensures integrity — tampered nodes are excluded from the community network but can still run locally
75
+
**Grade D (Alpha)** -- usable for experimentation, not yet production-hardened.
113
76
114
-
See: `docs/FEDERATION.md`
77
+
| What | Status |
78
+
|------|--------|
79
+
| Cartridges built | 17 of 17, all with compiled .so files |
| Federation (Umoja) | Real UDP gossip with hash attestation |
84
+
| Remote transport (HTTP/SSE) | Not yet |
85
+
| External dogfooding | Not yet |
115
86
116
-
## Contributing Cartridges
87
+
See [docs/READINESS.md](docs/READINESS.md) for the full component-by-component assessment.
117
88
118
-
Build a cartridge that passes the `IsUnbreakable` proof and it goes in the Ayo menu with your name honoured.
89
+
## Architecture (For Contributors)
119
90
120
-
See: `docs/DEVELOPERS.md`
91
+
BoJ uses Idris2 for interface proofs (zero `believe_me`), Zig for the C-compatible FFI layer, V-lang for the REST/gRPC/GraphQL adapter, and JavaScript for the MCP bridge. If that sounds like a lot of languages, it is -- each was chosen for a specific guarantee. See [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) for the rationale and contributor guide.
121
92
122
-
## Cultural Terminology
123
-
124
-
We use terms from Wolof (*Teranga* — hospitality), Swahili (*Umoja* — unity), and Yoruba (*Ayo* — joy) to align our architecture with global values.
125
-
126
-
See: `docs/CULTURAL-RESPECT.md`
93
+
Cartridges are loaded as shared libraries (`.so` files) at runtime, verified by hash before mounting. Community-contributed cartridges go through the same verification pipeline.
127
94
128
95
## License
129
96
130
-
PMPL-1.0-or-later (Palimpsest License). The license's provenance requirements (crypto signatures, emotional lineage) align directly with the hash attestation model.
131
-
132
-
## Project Status
133
-
134
-
**Grade D (Alpha)** — 18 cartridges, 307 tests passing, thread-safe FFI (mutex-hardened), panic-attack validated. See `docs/READINESS.md` for the full CRG assessment and `.machine_readable/STATE.a2ml` for milestone progress.
135
-
136
-
## A Community Project
137
-
138
-
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.
139
-
140
-
**What would help most right now:**
141
-
142
-
-**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`.
143
-
-**Try it out** — Use it via MCP, REST, or gRPC. Break things. Tell me what's confusing, what's missing, what doesn't work.
144
-
-**Build on it** — Write a cartridge, create an extension, wire it to your own tools. The third axis is wide open.
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.
99
+
Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath)
0 commit comments