Commit Graph

7 Commits

Author SHA1 Message Date
github-actions[bot] 9e668797a4 style: auto-fix formatting 2026-06-08 11:15:14 -07:00
Jordan Ritter d865bfcc03 docs(showcase): document genuine reasoning SDK limitations + correct reasoning demo docs 2026-06-08 11:15:13 -07:00
Alem Tuzlak bda6f9e094 feat: ag2 hitl-in-chat-booking alias + mark gen-ui-interrupt/interrupt-headless unsupported
Wave-2 follow-up — ag2:
- hitl-in-chat-booking is functionally identical to hitl-in-chat on AG2 (both
  use useHumanInTheLoop with TimePickerCard); aliased to the same /demos/hitl-in-chat
  route, mirroring the langgraph-python manifest. Earlier 'skipped — missing
  primitive' note was incorrect (it conflated the booking variant with the
  useInterrupt-driven flow).
- Added not_supported_features: [gen-ui-interrupt, interrupt-headless] to the
  manifest. Both depend on LangGraph interrupt() resumable round-trips that
  AG2 ConversableAgent cannot reproduce.
- PARITY_NOTES updated to reflect the corrected classification.
2026-04-29 12:02:19 +02:00
Alem Tuzlak d48eefb341 feat(showcase/ag2): port declarative-gen-ui, a2ui-fixed-schema, mcp-apps, open-gen-ui(+advanced), agentic-chat-reasoning, tool-rendering-reasoning-chain
Ports the second batch of langgraph-python showcase cells to AG2.

Each demo gets a dedicated AG2 sub-app mounted at a named path on the
agent server, plus (where required) its own /api/copilotkit-* runtime
route so the runtime middleware config doesn't leak into other cells.

- declarative-gen-ui — A2UI Dynamic Schema. Backend (a2ui_dynamic.py)
  owns the generate_a2ui tool, calls a secondary LLM bound to
  render_a2ui, returns an a2ui_operations container. Runtime route
  with a2ui.injectA2UITool: false.
- a2ui-fixed-schema — A2UI Fixed Schema. Backend (a2ui_fixed.py) ships
  flight_schema.json and emits a2ui_operations directly from
  display_flight. Runtime route with a2ui.injectA2UITool: false.
- mcp-apps — Backend (mcp_apps_agent.py) is a no-tools ConversableAgent;
  runtime route configures mcpApps.servers pointing at the public
  Excalidraw MCP server.
- open-gen-ui, open-gen-ui-advanced — Backends are no-tools
  ConversableAgents; shared runtime route enables openGenerativeUI.
- agentic-chat-reasoning, tool-rendering-reasoning-chain — Frontend
  ports of the reasoning cells. Custom reasoningMessage slot wired as
  in the canonical reference. tool-rendering-reasoning-chain has its
  own backend with weather/flights/stock/dice tools. AG2 caveat
  documented: ConversableAgent does not natively emit AG-UI
  REASONING_MESSAGE_* events the way LangGraph deepagents does, so the
  reasoning slot may render empty until/if AG2 adds reasoning emission.

Updates manifest.yaml with all 7 new demo entries plus matching feature
list, and updates PARITY_NOTES.md to record Batch 4.
2026-04-29 11:08:43 +02:00
Alem Tuzlak 164233cc16 feat(showcase/ag2): add cli-start manifest entry and gen-ui-tool-based listing 2026-04-29 10:53:00 +02:00
Alem Tuzlak 23a3b24a01 feat(showcase/integrations): shared-state-read-write + subagents demos across 15 packages
Adds real working Shared State (Read+Write) and Sub-Agents demos to 15
showcase integrations, mirroring the canonical langgraph-python and
google-adk reference implementations. Fills rows previously empty on
the showcase coverage dashboard.

Packages: ag2, agno, claude-sdk-python, claude-sdk-typescript,
crewai-crews, langgraph-fastapi, langgraph-typescript, langroid,
llamaindex, mastra, ms-agent-dotnet, ms-agent-python, pydantic-ai,
spring-ai, strands. (built-in-agent landed independently on main as
PR #4321 — its variant is canonical; this PR no longer touches it.)

Per-package deliverables: framework-native backend agents
(preferences-injection middleware/callback + set_notes tool;
supervisor + 3 sub-agents wired as tools with running -> completed
/failed delegation log); frontend page.tsx + preferences-card.tsx /
notes-card.tsx for SSRW and delegation-log.tsx for subagents — wired
to useAgent({ updates: [OnStateChanged] }); manifest entries; runtime
route registration + per-package agent server config; real QA
scripts.

Includes targeted hardening fixes from a 7-agent code-review loop:

- Sub-agent failure paths now correctly emit status: "failed"
  (previously hardcoded "completed" or unreachable in
  mastra/strands/langgraph-fastapi/langgraph-typescript/ag2)
- Parallel-tool-call delegation race fixed in langgraph-fastapi
  (Annotated[list, add]) and langgraph-typescript (concat reducer)
- Silent data loss eliminated in
  claude-sdk-python/claude-sdk-typescript/crewai-crews — empty
  JSON.parse catches now log + emit error events
- ms-agent-dotnet set_notes writes to per-thread slot via AsyncLocal
- mastra working-memory writes are deterministic via
  src/mastra/tools/working-memory.ts helper
- spring-ai tool-call envelope ids match supervisor's tc.id() and
  AG-UI event ordering reordered; CopyOnWriteArrayList for
  parallel-call safety
- Stack trace + raw error message leaks scrubbed across 8+ Next.js
  routes — log server-side with errorId + return generic envelope
- Sub-agent calls no longer block event loops in ag2
  (asyncio.to_thread), langroid (llm_response_async), pydantic-ai
  (async run + async tools)
- langroid lru_cache cross-request contamination dropped
- Numerous smaller items: claude-sdk-python invalid model id, Callable
  annotation, /health endpoint exposed; crewai-crews supervisor
  no longer resets delegations every turn; pydantic-ai snapshot uses
  model_dump()

CI fixes folded in:
- crewai-crews test_forwarded_props: extend the stubbed
  ag_ui_crewai.endpoint module to expose
  add_crewai_flow_fastapi_endpoint and add stub
  agents.shared_state_read_write / agents.subagents modules
- generate-catalog test: bump crewai-crews wired-cell expectation
  28 -> 30; replace hardcoded total-wired count with an invariant
  (wired + stub + unshipped = 737) plus a lower-bound floor
- oxfmt run on the qa/shared-state-read-write.md files in mastra +
  spring-ai

Rebased onto latest main (post showcase/packages -> showcase/integrations
rename + post built-in-agent landing). Original blitz history
preserved at the blitz-pre-rebase-snapshot tag.

Known follow-ups (deferred to follow-up PR):
- agno sync sub_agent.run() blocks event loop (perf only)
- ms-agent-python asyncio thread-fallback fragility
- llamaindex initial-state coercion when UI clears state
- Manifest highlight audit (langgraph-typescript headless-complete,
  langgraph-fastapi byoc-* missing route.ts highlights)
- agno hitl-in-chat declared in demos but not features; duplicate
  /demos/hitl-in-chat route
- langgraph-typescript server.mjs graphSpec only registers 3 graphs
  vs 23 in langgraph.json (pre-existing)
- mastra hitl legacy demo missing from features list
- claude-sdk-python agents/agent.py line 474 also has the legacy
  claude-opus-4-5 default
- PARITY_NOTES vs manifest mismatches for hitl-in-app across
  spring-ai/agno/ag2 (pre-existing)
- spring-ai a2ui-fixed-schema missing from generative_ui list
2026-04-28 18:36:13 +02:00
Jordan Ritter dd06dd89d1 refactor(showcase): rename packages/ to integrations/
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.
2026-04-28 07:47:35 -07:00