The MAF A2UI docs were a single page rendering the shared A2UI stub, which
matched neither of the two prod shapes. Restructure to shape #2 — the a2ui
submenu — mirroring the langgraph / strands / deepagents tree 1:1:
generative-ui/a2ui/
index.mdx (Overview)
fixed-schema.mdx
dynamic-schema.mdx
styling.mdx
advanced.mdx
meta.json
Content is ported page-by-page from the reference tree (deepagents, authored
mode) with MAF-accurate code — `agent-framework-ag-ui` auto-injection
(`injectA2UITool`), the real `a2ui_dynamic` / `a2ui_fixed` agents, and the
`enable_a2ui` backend-owned recovery note. styling/advanced are the
framework-agnostic frontend pages. docs-links now point the demos at the
matching sub-pages (dynamic-schema / fixed-schema).
Bring the just-released A2UI support and latest Microsoft Agent Framework
(Python) into the showcase, following the langgraph-python A2UI pattern.
- Bump agent-framework-ag-ui[a2ui]/openai/core to 1.2.0/1.14.0/1.15.0. 1.2.0
is A2UI's first release; the [a2ui] extra pulls ag-ui-a2ui-toolkit.
- Add the a2ui-recovery demo, mirroring langgraph-python's recovery demo:
backend-owned A2UI via the adapter's native enable_a2ui (injectA2UITool=false),
which runs the shared toolkit validate/retry recovery loop in-process. The
heal pill recovers a malformed first render into a valid surface; the exhaust
pill hits the attempt cap and surfaces the a2ui_recovery_exhausted fallback.
Reuses the declarative-gen-ui catalog. Adds the agent, route, page, chat,
suggestions, a D6 aimock fixture (framework-unique prompts), and an e2e spec.
- Enrich the MAF A2UI docs page with how-to content covering the three A2UI
flavors (dynamic, fixed, recovery) and connect the three A2UI demos through
docs-links.
Validation: validate-pins clean (count/hash unchanged), validate-parity PASS,
generate-registry clean. The recovery loop is verified at the AG-UI protocol
layer against aimock on the published 1.2.0 wheel (heal streams a2ui_operations
after an invalid-then-valid render; exhaust returns a2ui_recovery_exhausted
after 3 attempts; RUN_FINISHED, no RUN_ERROR).
Audit-driven corrections to per-framework docs-links.json so every
supported (wired/stub) cell on the dashboard resolves to a real
shell-docs page and a non-stale OG URL. Result: 545 → 613 cells fully
working; remaining 78 cells are known docs gaps tracked separately
(voice → PDX-85; auth/agent-config/byoc-* across frameworks where no
canonical page exists).
- built-in-agent: drop 6 stale `/features/*` OG overrides retired by
the IA reorg. Cells now inherit canonical OGs that still exist on
docs.copilotkit.ai (`/human-in-the-loop`, `/generative-ui/...`,
etc.).
- langgraph-python: fix `auth` OG (`/langgraph/authentication` →
`/langgraph/auth`) + add framework-specific shell override (`/auth`
resolves to `integrations/langgraph/auth.mdx`). Null `voice` and
`byoc-hashbrown` OGs that pointed to retired pages.
- google-adk: replace 27 `shell_docs_path: null` opt-outs with
explicit canonical paths so cells route to real shell-docs pages
(mix of canonical root + adk-specific overrides). The original
rationale ("shell does not have a google-adk-scoped docs tree") is
now stale — shell-docs has an `integrations/adk/` tree (11 pages),
and the rest resolve via canonical inheritance. Also fix two retired
a2ui sub-paths (dynamic-schema/fixed-schema) that are now combined
on a single `/adk/generative-ui/a2ui` page on docs.copilotkit.ai.
- ag2 / ms-agent-python / ms-agent-dotnet: add framework-specific auth
overrides pointing at `/<framework>/auth` on both OG and shell.
The showcase framework directories better reflect their role as
integration examples rather than distributable packages.
Renames showcase/packages/ -> showcase/integrations/ and updates
the test docker-compose file reference accordingly.