Move the docs and bot-docs RAG clients (search/chat/index) off the
residual /api/ prefix to top-level /v1/, matching the cloud-api route
rename and the openapi v1.0.0 lock-in (no /api/ prefix):
/api/search-docs -> /v1/search-docs
/api/chat-docs -> /v1/chat-docs
/api/index-docs -> /v1/index-docs
Touched: apps/{docs,bot-docs}/lib/hanzo/client.ts,
apps/docs/scripts/update-hanzo-index.ts, the .env.example (also
corrects the stale cloud-api.hanzo.ai host -> api.hanzo.ai front door),
and the two generate-search-index.py docstrings.
Server-side these are served at /v1/ by hanzoai/ai (bare search/chat/
index-docs); deeper product GETs by hanzoai/cloud productsvc. Hard
cutover, coordinated with cloud, universe cloud-api-v1 AUTH_PUBLIC_PATHS,
python-sdk, and the openapi cloud spec.
Co-authored-by: Hanzo Dev <[email protected]>
The cloud API now sits behind one front door (ingress -> gateway -> cloud).
api.cloud.hanzo.ai / cloud-api.hanzo.ai / functions.hanzo.ai are redundant
aliases routing to the same backend, so migrate clients to api.hanzo.ai.
- docs + bot-docs lib/hanzo/client.ts, scripts/update-hanzo-index.ts:
search/index/chat-docs default base cloud-api|api.cloud.hanzo.ai ->
api.hanzo.ai (RAG paths stay /api/* — served there per cloud AUTH_PUBLIC_PATHS)
- cloud landing page.tsx: curl base + request-flow label api.cloud.hanzo.ai ->
api.hanzo.ai
- functions.mdx (x2): collapse Endpoint+Gateway to one canonical
api.hanzo.ai/v1/functions/*
- hanzo-openapi.mdx: Cloud endpoint label api.cloud.hanzo.ai -> api.hanzo.ai
Non-breaking: the aliases still resolve to the same backend.
Co-authored-by: Hanzo Dev <[email protected]>
Follow-up to 18f2af90: the package-name normalization covered JS/TS imports +
package.json but missed four other surfaces that name the same phantom packages,
relocating the breakage from 'pnpm install' to 'next/vite/astro build':
- H1: 46 CSS @import strings (@hanzo/docs-{base-ui,ui,openapi}/css/*) → real pkgs
(preserved legit @hanzo/docs-{twoslash,story} CSS)
- H2: examples/astro .astro imports (base-ui/mdx→fumadocs-ui/mdx, docs-core/toc→fumadocs-core/toc)
- L1: .changeset/config.json fixed-array lockstep names
- L2: removed apps/docs/next.config.mts dead phantom→phantom self-alias + dup keys
Found by adversarial red review of 18f2af90.
The fumadocs-fork rebrand left ~13 apps + examples referencing packages under
names that don't exist in the workspace (in BOTH directions: some kept
fumadocs-*, some became @hanzo/docs-*). pnpm install failed outright. Mapped
every reference (deps + imports, 607 source + 61 package.json) to the package
that actually exists, by suffix:
@hanzo/docs-{core,mdx,ui,base-ui} → fumadocs-{core,mdx,ui} / @fumadocs/base-ui
@fumadocs/{story,cli,mdx-remote,tailwind} → @hanzo/docs-{story,cli,...}
fumadocs-{docgen,epub,twoslash,typescript} → @hanzo/docs-{...}
drop phantom eslint-config-custom
Guarded @hanzo/docs-mdx vs -mdx-remote. Also fixes a pre-existing cli bug
(createConfigSchema referenced undefined isSrc) that blocked the package build.
Verified: pnpm install resolves clean (46.8s, was broken); package dist
regenerates phantom-free from the corrected source (hanzo-docs 430→0). Full
app build-green is blocked only by a node v26 toolchain bug in fumadocs-mdx's
config loader (repo targets node >=24.14; CI node builds it).
- Remove TODO comments from base-ui, radix-ui, core, mdx packages
- Replace nginx:alpine with ghcr.io/hanzoai/static in all app Dockerfiles
(bot-docs, cloud, flow, visor)
Upstream changes include:
- UI: improved TOC detection, clerk variant, slot support
- Base UI: redesigned home layout navigation menu
- CLI: slot support in customise command
- OpenAPI: unsetting auth fields in playground
- Multiple version package releases
All fumadocs-* imports renamed to @hanzo/docs-* namespace.
- Main docs: Techstars-backed applied AI lab, Zen LLMs, full platform desc
- Bot-docs: Hanzo Bot personal AI assistant description
- System prompt sent via initialMessages, parsed server-side from AI SDK format
- Fix docs client.ts domain from api.cloud.hanzo.ai to cloud-api.hanzo.ai
- Fix docs search.tsx to use chatEndpoint from client config instead of
broken /api/chat local route
- Add pk-* publishable key Authorization header to both docs and bot-docs
chat transports for cloud-api auth
Wire up full-text search and RAG chat for docs.hanzo.bot using the
Hanzo Search cloud-api endpoints with store=bot-docs. Includes search
dialog, page tree jump-to, and direct browser-to-API chat transport.
Five new docs pages: marketplace overview, bot wallets, auto-purchase rules,
marketplace listings, and confidential computing with NVIDIA Blackwell TEE.
Added marketplace section to docs navigation.
New sections: AI Capacity Marketplace (buy/sell compute, bot wallets, auto-purchase
rules, confidential computing), updated Why Hanzo Bot with wallet and TEE cards,
updated ecosystem links with Marketplace and Commerce, updated pricing tiers with
marketplace features.
- Create proper SVG OG image for social sharing
- Fix metadata base URL from hanzo.bot to docs.hanzo.bot
- Add explicit OG image refs to metadata config
- Add overflow-hidden to prevent horizontal scroll on mobile
- Scale heading from text-3xl (mobile) to text-6xl (desktop)
- Reduce padding on mobile (px-4 vs px-6)
- Scale body text from text-base (mobile) to text-lg (desktop)
- Add ninja emoji poof animation cycling through team roles (devops, reviewer, etc.)
- Update hero copy: "Your AI Team. In a Box." with compelling value props
- Add pricing section (Free/$5 Cloud/$25 Cloud Pro) with feature comparison
- Create dedicated /pricing page with FAQ and enterprise CTA
- Replace BotIcon with Hanzo H logo in navigation
- Add Pricing link to nav alongside Skills, Integrations, Showcase, Docs
- Add Hanzo ecosystem section linking to LLM Gateway, MCP, Dev, etc.
- Full responsive design for mobile/tablet/desktop
pnpm install creates workspace symlinks but skips bin link creation
when dist files don't exist yet. After turbo builds the packages,
the dist files exist through the workspace symlink but the bin links
remain missing. Using node directly bypasses the bin link entirely.