jerry 716615a1d2 Fusion AI, powered by HAL 8
The hub's assistant becomes a consumer HAL 8 chat:
- The button is HAL 8's red eye (the real logo); the header reads POWERED BY HAL 8.
- One control, a Standard | Incognito pill. Standard keeps the conversation in this browser;
  Incognito keeps nothing and asks the server for no retention.
- Always on, no toggles: chat and code (copy; Python runs in the browser via Pyodide), images and
  video inline, web answers with their sources, voice in (speech recognition) and read-aloud.
- Streams from HAL 8's public Fusion endpoint (hal8.odyssey-works.io/v1/public/fusion/chat); the
  browser never holds a key. Limits come back as a friendly "see you tomorrow" card.
- A small safe markdown renderer: everything escaped, https-only links and media, HAL 8-relative
  file links resolved against HAL 8.
- tools/fusion_inject.py replaces the old assistant block idempotently (between /*F8-BEGIN*/ and
  /*F8-END*/) and inlines fusion/fusion.css.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 18:50:44 -05:00
2026-09-26 18:50:44 -05:00
2026-09-26 18:50:44 -05:00
2026-09-26 18:50:44 -05:00

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.

Apex Universe section

"Apex Universe" (menu entry right below Overview, section id universe, component UniverseSection) is the ecosystem as a star system drawn from public data. AP3X is the star, with a corona of the nine public allocations. PRIME, Vector and Nexus are its worlds. The stake pools form PRIME's asteroid belt, and the staking reserve is a moon filled to what is left. Agents fly as a fleet round Vector with the HAL 8 mothership. The bridges are jump gates, Cardano, Base and BNB Chain are distant worlds, the partners are beacons on the outer belt, and comets carry value home.

  • The markup (AU_HTML) and the component live in the bundle between /*AU-BEGIN*/ and /*AU-END*/. The styles are in the <style> block marked au-css-begin, with every class namespaced au-.
  • universe/ holds everything else:
    • universe.js, the three.js sandbox, which the component loads on demand through the page's import map;
    • data.json, the figures;
    • the Blender film (apex-universe.mp4) and its poster.jpg;
    • the Blender chapter frames and the sky panorama;
    • the baked world textures;
    • the logos.
  • Figures refresh daily. A cron job on the desk host (trading-bot) publishes the desk's public ecosystem snapshot to universe/data.json through the Gitea API. It commits only when the figures have changed, and that commit is the deploy.
  • Sources: the build script, sandbox module and Blender scene live in jerry/exec-engine under docs/pages/ecosystem/universe/. Rebuild with build_site.py, which replaces the injected block rather than duplicating it.

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.

Description
AP3X Fusion ecosystem hub — static site served at apex-fusion.odyssey-works.io
Readme 62 MiB
Languages
HTML 71.3%
JavaScript 26.6%
Python 2.1%