Files
copilotkit__copilotkit/showcase/shared/constraints.yaml
Mark Fogle 06e6de87c7 feat(showcase/google-adk): add ADK-only a2ui-recovery demo (OSS-158 recovery made visible)
A new demo that surfaces the ag_ui_adk >= 0.7.0 validate->retry recovery loop
+ recovery-exhausted hard-fail envelope, rendered as the building/retrying/
failed lifecycle by @ag-ui/a2ui-middleware >= 0.0.10. Two pills, driven by
aimock fixtures that key the inner render_a2ui call by recovery attempt
(sequenceIndex):
- HEAL: attempt 0 structurally-invalid (unresolved child) -> heals to valid
- EXHAUST: invalid on every attempt -> a2ui_recovery_exhausted fallback

Backend-owned (get_a2ui_tool, recovery.maxAttempts=3, injectA2UITool=false),
reusing the declarative-gen-ui catalog + sales context. ADK-only by design:
the recovery loop lives in the ADK middleware; langgraph-python's runtime A2UI
path (@ag-ui/a2ui-middleware single-pass) has no equivalent, so there is no LP
parity reference (exempt from LP e2e-parity). Ported from ag-ui
examples/.../a2ui_recovery.py.

Wires: recovery_agent.py + registry; copilotkit-a2ui-recovery route;
demos/a2ui-recovery page/chat/suggestions; manifest demo+feature; qa spec;
aimock fixture; feature-registry + constraints (constrained-explicit) entries.

Verified in-sandbox: import-smoke (41 agents, recovery cfg), generate-registry +
validate-constraints + validate-parity (20/20 pass) + aimock-fixtures (818) +
python suite (62) all green. Browser e2e (lifecycle render + sequenceIndex
routing) + e2e spec are the documented outside-sandbox steps.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 00:49:18 +00:00

89 lines
2.1 KiB
YAML

# Constraint tables for the Showcase Decision Tree.
# Generative UI: allowlist-based (demo must appear in `allowed` list)
# Interaction Modality: denylist-based (all allowed unless in `excluded` list)
generative_ui:
constrained-declarative:
allowed:
- beautiful-chat
- cli-start
- agent-config
- agentic-chat
- chat-customization-css
- tool-rendering-default-catchall
- tool-rendering-custom-catchall
- frontend-tools
- frontend-tools-async
- gen-ui-tool-based
- useComponent
- multimodal
- suggestions
- shared-state-read-write
- readonly-state-agent-context
- shared-state-streaming
- subagents
- voice
- auth
excluded:
- tool-rendering
- hitl-in-chat
- hitl-in-app
- gen-ui-interrupt
constrained-explicit:
allowed:
- beautiful-chat
- cli-start
- agent-config
- agentic-chat
- chat-customization-css
- tool-rendering-default-catchall
- tool-rendering-custom-catchall
- tool-rendering-reasoning-chain
- agentic-chat-reasoning
- reasoning-default-render
- reasoning-default
- reasoning-custom
- prebuilt-sidebar
- prebuilt-popup
- chat-slots
- headless-simple
- headless-complete
- frontend-tools
- frontend-tools-async
- gen-ui-tool-based
- gen-ui-interrupt
- interrupt-headless
- gen-ui-agent
- hitl-in-chat
- hitl-in-chat-booking
- hitl-in-app
- hitl
- declarative-gen-ui
- a2ui-fixed-schema
- a2ui-recovery
- mcp-apps
- tool-rendering
- useComponent
- multimodal
- suggestions
- shared-state-read-write
- shared-state-read
- readonly-state-agent-context
- shared-state-streaming
- subagents
- voice
- auth
- byoc-hashbrown
- byoc-json-render
- declarative-hashbrown
- declarative-json-render
- open-gen-ui
- open-gen-ui-advanced
interaction_modalities:
headless:
excluded:
- voice
# sidebar, embedded, popup, chat: no exclusions