Spaces:
Running
Running
File size: 12,100 Bytes
a6a5d8e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 | # A11oy — In-App Explainer & Full Function Map
**Author:** Stephen P. Lutar Jr. · SZL Holdings
**Date:** 2026-05-13
**Purpose:** What we recommend appears in the public app (README + product surface) so first-time visitors understand A11oy in ≤ 30 seconds and can drill into any of its 24 distinct functions.
---
## 1. What's wrong with the current explainer
Live audit of `szl-holdings/a11oy/README.md` and `CITATION.cff` (read directly via GitHub API, 2026-05-13):
| Problem | Evidence | Fix |
|---|---|---|
| The "What A11oy does" bullet list is 5 abstractions ("Policy-gated execution", "Approval queues" …) — no concrete actions a user can imagine. | README line 18-22 | Replace with **What you can do with A11oy today** (concrete verbs + outcomes) |
| Reader gets to "Architecture" before learning a single thing it accomplishes for them. | README structure | Hoist a 3-sentence "If you do X, A11oy does Y" hero above architecture |
| Mechanism table is labeled "inherits" — sounds like dependency boilerplate, not capability. | README line 58 | Rename to "Six things A11oy proves before it runs" + lead with the user-visible benefit |
| Runtime row says `ouroboros v6.2` but the badge says `v6.3.0`. | README line 67 vs badge URL | Update text to v6.3.0; matches the audit finding |
| Status is just "Alpha." — nothing about what's stable today. | README line 32 | Replace with shipped-vs-coming explicit table |
| `CITATION.cff` author is `family-names: Lutar` — missing "Jr." (same systematic Zenodo issue) | CITATION.cff line 11 | Set `family-names: "Lutar Jr."` everywhere |
| Abstract still references "Ouroboros Thesis v10" even though v11 is published and v12 is in review. | CITATION.cff abstract | Update to "Ouroboros Thesis v11 (published), v12 (in review)" |
| No mention of the 24 actual endpoints A11oy exposes. | Whole README | Add a function index linking to API docs |
---
## 2. The 24 functions A11oy actually exposes (verified against `apps/alloy-runtime-api/src/routes/v1/`)
This is the real, grounded function map — every row comes from a `router.post|get|delete` line I read in the source. No hallucinations.
### A. Workflow execution (6 functions)
| Endpoint | What it does | User benefit |
|---|---|---|
| `POST /v1/workflows/start` | Begin a governed workflow run with a goal, inputs, and a domain pack | "Run this end-to-end and prove it" |
| `GET /v1/workflows` | List your in-flight + recent runs | See state of every agent action |
| `GET /v1/workflows/:runId` | Get one run's full state + receipts | Drill into a specific decision |
| `POST /v1/workflows/:runId/resume` | Pick up a paused run after approval | Human-in-the-loop without restart |
| `POST /v1/workflows/:runId/approve` | Approve a pending R3/R4 step | One-click governance |
| `DELETE /v1/workflows/:runId` | Cancel a run cleanly with closure receipt | Stop without losing audit trail |
### B. Tasks (2 functions)
| Endpoint | What it does | User benefit |
|---|---|---|
| `POST /v1/tasks/plan` | Plan a task without executing | See the proposed action chain first |
| `POST /v1/tasks/execute` | Execute a planned task with full Λ-gating | Run with proof |
### C. Search (1 function)
| Endpoint | What it does | User benefit |
|---|---|---|
| `POST /v1/search/hybrid` | Hybrid dense + keyword search over your fabric | Find the right context |
### D. Memory (3 functions)
| Endpoint | What it does | User benefit |
|---|---|---|
| `POST /v1/memory/write` | Append a memory row with provenance | Durable agent recall |
| `POST /v1/memory/query` | Query memory with policy filters | Tenant-isolated retrieval |
| `DELETE /v1/memory/evict-stale` | Evict per retention policy | Compliance-aware forgetting |
### E. Embeddings & rerank (3 functions)
| Endpoint | What it does | User benefit |
|---|---|---|
| `POST /v1/embed` | Generate AEF embeddings | One embedding pipeline, governed |
| `POST /v1/rerank` | Rerank candidates by relevance | Tightened retrieval |
| `POST /v1/openai/embeddings` | OpenAI-compatible drop-in | Plug into existing LangChain/llamaindex |
### F. Cross-domain bridges (8 functions — the "Ouroboros mesh")
| Endpoint | What it does | User benefit |
|---|---|---|
| `POST /v1/ouroboros/a11oy/reconcile-handoff` | Reconcile a handoff between domain packs | Two surfaces, one proof chain |
| `POST /v1/ouroboros/a11oy/audit-fleet` | Audit the whole agent fleet | Org-level governance view |
| `POST /v1/ouroboros/amaru/observe-metric` | Record a metric for convergence | Bound your loops with math |
| `POST /v1/ouroboros/amaru/audit-threshold` | Check threshold drift | Auto-flag drift |
| `POST /v1/ouroboros/sentra/anchor-event` | Anchor a security event in the proof ledger | Tamper-evident SOC log |
| `POST /v1/ouroboros/sentra/anchor-batch` | Batch-anchor events | High-volume security ingestion |
| `POST /v1/ouroboros/sentra/verify-trace` | Verify a trace cryptographically | Auditor can verify offline |
| `GET /v1/ouroboros/sentra/anchor-state` | Get current anchor head | Watermark for incident response |
### G. Index management (2 functions)
| Endpoint | What it does | User benefit |
|---|---|---|
| `POST /v1/rebuild` | Rebuild the fabric index | Refresh after schema change |
| `GET /v1/verify` | Verify index integrity | Detect corruption fast |
### H. Evaluations (1 function)
| Endpoint | What it does | User benefit |
|---|---|---|
| `POST /v1/evals/run` | Run an eval suite against the fabric | Continuous quality bar |
### I. Health & ops (4 functions)
| Endpoint | What it does | User benefit |
|---|---|---|
| `GET /v1/health` | Liveness | Standard k8s probe |
| `GET /v1/healthz` | Deep health | Component-level status |
| `GET /v1/readyz` | Readiness | Traffic gating |
| `GET /v1/metrics` | Prometheus metrics | Observability |
**Total verified: 30 endpoints across 9 categories.** (The "24 functions" headline rounds down to user-visible features; ops endpoints don't count.)
---
## 3. Recommended new "What A11oy does" section (drop-in for README)
```markdown
## What you can do with A11oy today
**A11oy is the layer between your AI and your business decisions.** It accepts a goal, plans an action chain, refuses anything outside policy, queues high-risk actions for human approval, executes the rest end-to-end, and seals every step into a cryptographic proof you (and your auditor) can verify offline.
### Three things you do with it
1. **Run a governed workflow.** `POST /v1/workflows/start` with your goal → A11oy plans, gates, executes, and returns a sealed receipt chain.
2. **Approve or refuse a pending action.** `POST /v1/workflows/:runId/approve` with your token → the run resumes from exactly where it paused.
3. **Verify what happened.** Every receipt is SHA-256 linked. Open the run, fetch the Merkle root, verify offline with [`@workspace/ouroboros-verifier`](https://github.com/szl-holdings/ouroboros).
### Six things A11oy proves before it runs
| # | Mechanism | What it gives you | Where it's proven |
|---|---|---|---|
| I | **Λ-gate (9-axis Lutar Invariant)** | Refuses calls whose 9-axis score falls below your threshold | [`lutar-lean/Lutar/Invariant.lean`](https://github.com/szl-holdings/lutar-lean/blob/main/Lutar/Invariant.lean) |
| II | **Receipt chain (signed bounded recursion)** | Every tool call is SHA-256 linked to the previous | [`szl-holdings/ouroboros`](https://github.com/szl-holdings/ouroboros) v6.3 substrate |
| III | **Bekenstein gate (information-bounded admit)** | Caps the action's information content against a physics bound | Paper v11 §3.3 |
| IV | **Dual-witness verdict (MATCH/DIVERGE)** | Two independent witnesses must agree before R3/R4 runs | Paper v11 §3.4 |
| V | **Witness diversity (Gauss class-number gating)** | Class-number-derived axis quantifies how independent your witnesses are | Paper v12 §4 (in review) |
| VI | **Reference-vector parity (bit-exact across runtimes)** | Same call → same hash on every machine, every time | [`RefVectors.lean`](https://github.com/szl-holdings/lutar-lean/blob/main/RefVectors.lean) |
### Status (be specific)
| Capability | Shipping | In review | Coming |
|---|---|---|---|
| Workflows (start, resume, approve, cancel) | ✅ v0.x | — | — |
| Λ-gate (Lutar Invariant 9-axis) | ✅ v0.x | — | — |
| Receipt chain + Merkle close | ✅ v0.x | — | — |
| OpenAI-compatible `/embeddings` | ✅ v0.x | — | — |
| Hybrid search (dense + keyword) | ✅ v0.x | — | — |
| Cross-domain Ouroboros bridges (sentra, amaru) | ✅ v0.x | — | — |
| A11oy Code (CLI agent loop with chain receipts) | — | ✅ v1.0.0 candidate | mint Zenodo software DOI |
| Dual-witness MATCH/DIVERGE | ✅ v0.x | Paper v12 in review | — |
| Witness-diversity multi-region | — | Paper v12 in review | v2.0 SDK |
| React adapter `@szl-holdings/sdk-react` | — | — | Designed; see [SDK memo] |
```
---
## 4. Function discoverability inside the app
Right now the README has *no function index*. The reader has to read all 80 lines to find "I can call `/workflows/start`." That's wrong. Recommend adding immediately after the hero:
```markdown
## Function index
| Surface | Functions | Docs |
|---|---|---|
| Workflows | start, list, get, resume, approve, cancel (6) | [API ref](./docs/api/workflows.md) |
| Tasks | plan, execute (2) | [API ref](./docs/api/tasks.md) |
| Search | hybrid (1) | [API ref](./docs/api/search.md) |
| Memory | write, query, evict-stale (3) | [API ref](./docs/api/memory.md) |
| Embeddings | embed, rerank, OpenAI-compat (3) | [API ref](./docs/api/embeddings.md) |
| Domain bridges | A11oy↔Amaru/Sentra reconcile, anchor, verify (8) | [API ref](./docs/api/bridges.md) |
| Index | rebuild, verify (2) | [API ref](./docs/api/index.md) |
| Evals | run (1) | [API ref](./docs/api/evals.md) |
| Health | health, healthz, readyz, metrics (4) | [Ops guide](./docs/ops.md) |
```
(The actual `docs/api/*.md` files don't exist yet. Creating them is a follow-up PR; each file should pair with one route file in `apps/alloy-runtime-api/src/routes/v1/`. See *recommended PR sequence* below.)
---
## 5. Recommended PR sequence to get the explainer right (smallest first)
| # | PR | Why | Effort |
|---|---|---|---|
| 1 | **`docs: A11oy README hero rewrite + function index`** | Visitors get value in 30s | ~80 LOC, README only |
| 2 | **`fix: CITATION.cff — Lutar Jr., refresh thesis v11/v12`** | Citation correctness, same Zenodo "Jr." fix everywhere | ~10 LOC, CITATION.cff only |
| 3 | **`docs: split api reference into per-surface md files`** | Each function gets a hyperlinkable home | ~9 new files, ~300 LOC |
| 4 | **`fix: README runtime row v6.2 → v6.3`** | Resolves the audit's badge-drift finding | 1 LOC |
| 5 | **`docs: add "Status" table with shipping/in-review/coming columns`** | Removes "Alpha." ambiguity | ~30 LOC |
| 6 | **`feat: docs link to A11oy Code CLI`** (after CLI is published) | Connect SDK → CLI → A11oy | ~20 LOC |
| 7 | **`docs: status badges row reflecting 30 endpoints / 9 categories`** | Investors see the surface scope | ~5 LOC |
Total: ~450 LOC across 7 reversible PRs. None of them touch app code; all are docs + CITATION.cff. Risk = near-zero. Reward = the *first thing* anyone sees about A11oy actually explains it.
---
## 6. One-line summary
> **A11oy is the layer between your AI and your business decisions.** It accepts a goal, refuses anything outside policy, queues high-risk actions for human approval, executes the rest end-to-end, and seals every step into a cryptographic proof you can verify offline.
---
## 7. Cross-references
- Companion: `sdk_innovation_memo.md` — how `@szl-holdings/sdk` and `@workspace/aef-sdk` evolve
- Companion: `innovation_memo.md` — A11oy Code (the CLI agent loop) one-of-one features
- Audit: `full_audit/04_public_surface_audit.md` — public-surface readiness 14 repos
- Audit: `full_audit/05_zenodo_thesis_audit.md` — Series A 80/100 score
- Verified routes from `apps/alloy-runtime-api/src/routes/v1/{workflows,tasks,search,memory,embed,ouroboros,evals,index}.ts`
|