Files
apex-fusion-site/README.md
jerry 73fc9233d0 Fold the AI Agent Economy Stack into the hub as the Agent Stack section
New sidebar entry right below HAL 8 with a robot-head icon (section id
`agents`, AgentStackSection). The section carries the standalone page's
markup as an inline string with its logo sprite, and its styles in a final
style block with every class namespaced `aes-` so nothing collides with the
hub's own cards, steps and heroes. The standalone page stays as the editable
source; refold it with the integration script rather than editing by hand.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 10:17:46 -05:00

96 lines
4.2 KiB
Markdown

# AP3X Fusion — ecosystem hub
The public ecosystem site for Apex Fusion, served at
**https://apex-fusion.odyssey-works.io**.
## What this is
A single self-unpacking `index.html` (~2.1 MB) — React and all assets are
bundled inside it. Sections: ecosystem overview, the Vector edge, tri-chain
architecture, AP3X across ecosystems, markets, stack map, HAL 8, agent stack,
news, wallets, bridges, dapps, explorers, staking, developers, exchanges.
## Agent Stack section
"The AI Agent Economy Stack" (HAL 8's capability, economic and trust planes,
architecture stack, standards and ecosystem) is a section of the hub: nav entry
**Agent Stack** right below HAL 8, section id `agents`, component
`AgentStackSection`. Its markup lives in the bundle as the `AES_HTML` string
with every logo embedded inline as SVG, and its styles sit in the last
`<style>` block with all class names namespaced `aes-` so they cannot collide
with the hub's own. The same content is also kept as a standalone page,
`agent-economy-stack.html`, served at `/agent-economy-stack.html`; edit that
file and refold it rather than editing the section by hand. Third-party marks
are the owners' official files.
## How it is served
Caddy on the HAL 8 host serves this directory as a static site. The box
pulls this repository; there is no build step and nothing to compile —
committing to `main` is the deploy.
Because the site is public and carries no secrets, this repository is
public too, so the host clones it without credentials.
## External dependencies
Two things are fetched at runtime rather than bundled:
- **three.js** `0.160.0` from `cdn.jsdelivr.net` — powers the Fusion
Chamber 3D visual (§12). If the CDN is unreachable that section
degrades; the rest of the page is unaffected.
- **The AI assistant widget** posts to `window.FUSION_AI_ENDPOINT`,
falling back to `text.pollinations.ai`. See the note below.
## Note on the AI assistant
The chat widget in the bottom-right sends visitor messages to a
third-party inference endpoint by default. `window.FUSION_AI_ENDPOINT`
can be repointed at HAL 8's own OpenAI-compatible API
(`https://hal8.odyssey-works.io/v1`) so conversations stay on
Odyssey Works infrastructure.
## Markets section — live feeds
Every number on the Markets page is fetched by the visitor's browser, so
only CORS-open sources can be called directly. Two are not, and the site
origin proxies them (Caddy, `deploy/Caddyfile` in the HAL 8 repo):
| Path on this origin | Upstream | Used for |
|---------------------|---------------------|-------------------------------------------------|
| `/api/koios/*` | `api.koios.rest` | VyFi pool reserves, cstAP3X vault + supply, Minswap V2 pool datum |
| `/api/lbank/*` | `api.lbkex.com` | AP3X/USDT ticker, depth, last trade |
Direct (CORS-open): CoinGecko, DexScreener, the Minswap aggregator
(`agg-api.minswap.org`, rate-limited to roughly five calls a minute per IP,
so the page makes one), Base JSON-RPC (`base-rpc.publicnode.com`; the two
Uniswap V3 pools and the Aerodrome cbADA pool are read from the chain
because DexScreener does not index them), ApexScan v1 on Nexus (USDC.e),
the Vector Koios instance, the Prime explorer, OSAM. DexHunter is the
fallback for Cardano reserves when Koios is down.
Fast feeds refresh every 90 s; the quota'd ones (Koios, LBank, Base RPC,
ApexScan) every third tick. Polling pauses in hidden tabs.
The page's own Cardano truth is a staking receipt, not a fourth asset:
`cstAP3X` is worth `vault cAP3X / cstAP3X issued` cAP3X each (about 1.07),
so it trades above cAP3X by design.
## Updating
Edit `index.html`, commit to `main`, and the host picks it up on its next
deploy tick (every five minutes). No build, no bundler, no CI.
The page is stored inside `index.html` as a JSON-encoded template that the
bundler unpacks at load time, so do not edit the escaped text by hand.
`tools/bundle.py` decodes it to a plain HTML file and re-encodes it
byte-exactly:
```
python3 tools/bundle.py decode index.html page.html # edit page.html
python3 tools/bundle.py encode index.html page.html index.html
```
The Markets code lives in `page.html` between `const MK_CG` and
`const SECTION_COMPONENTS`.