showcase/integrations/llamaindex/PARITY_NOTES.md
This package aligns with showcase/integrations/langgraph-python in terms of demo coverage. The LlamaIndex package uses AG-UI workflow routers (get_ag_ui_workflow_router) as its backend primitive. The default router at / hosts the shared-tool agent that powers most demos; specialized routers (reasoning, A2UI dynamic/fixed, BYOC json-render, BYOC hashbrown, open-gen-ui, multimodal, voice, agent-config, auth, mcp-apps, tool-rendering-reasoning-chain) live at dedicated subpaths. Per-demo agent.py files in the demo directories are thin stubs pointing to the relevant backend module.
The following demos are intentionally skipped because they depend on LangGraph-specific primitives for which LlamaIndex has no analogue.
| Demo | Missing primitive / reason |
|---|---|
gen-ui-interrupt | LangGraph's interrupt() primitive + useLangGraphInterrupt. LlamaIndex AG-UI has no interrupt/resume primitive. |
interrupt-headless | Same interrupt() primitive dependency as gen-ui-interrupt. |
hitl-in-chat-booking | Booking flow uses interrupt() to pause for the time-picker selection — same dependency as gen-ui-interrupt. |
beautiful-chat is now ported in simplified form (see Partial Ports). cli-start and mcp-apps are now wired in the manifest.
beautiful-chat: Ported as a polished agentic-chat starter surface (brand-tinted layout, suggestion pills, glassy chat panel) backed by a dedicated beautiful_chat_router. The full LangGraph version bundles a landing-page-style design system (example-layout, example-canvas, generative-ui catalog, full hooks tree) which is intentionally out of scope here — the LlamaIndex cell shows "polished CopilotChat starter" without re-cloning the entire reference frontend. Richer behaviors live in their dedicated demos (declarative-gen-ui, shared-state-read-write, mcp-apps).agent-config: The LangGraph graph reads RunnableConfig.configurable.properties to recompose the system prompt per turn. get_ag_ui_workflow_router does not yet expose the same hook surface, so the LlamaIndex port applies the default profile at startup and surfaces the provider wiring (<CopilotKitProvider properties={...}>) for parity of the client-side API. The TS-side runtime route (src/app/api/copilotkit-agent-config/route.ts) now mirrors the LangGraph showcase's AgentConfigLangGraphAgent with an AgentConfigHttpAgent subclass that repacks non-structural forwardedProps keys into forwardedProps.config.configurable.properties, so the wire contract is identical across frameworks and a Python-side recomposer can drop in without further frontend changes. Dynamic per-turn recomposition on the Python side is tracked as a follow-up.multimodal (Python side): Ported as a CopilotChat attachment demo backed by the upstream llama-index-protocols-ag-ui==0.4.1 adapter's AG-UI content-part conversion for text, image, and document parts. The frontend LFS-pointer guard and sample-button magic-byte validation are ported verbatim from the LangGraph showcase, so bundled samples always fail loudly when LFS isn't materialised on the deploy.Every other demo from the canonical matrix is ported. Each has:
src/app/demos/<id>/page.tsxsrc/app/demos/<id>/agent.py stubsrc/agents/ (or a registration on the shared router)manifest.yaml with highlight paths that point at the real filesqa/<id>.md test plantests/e2e/<id>.spec.tssrc/app/api/copilotkit-*/route.ts