4 Commits

Author SHA1 Message Date
Ran Shem Tov 115f0c1029 Merge remote-tracking branch 'origin/main' into claude/xenodochial-khayyam-873a16
# Conflicts:
#	showcase/shell-docs/src/content/docs/integrations/mastra/doctest.json
2026-09-12 13:23:28 +02:00
Benjamin Taylor cf060da900 docs(showcase): state the frontend-tool requirement for the last nine frameworks (closes OSS-1036)
`generative-ui/tool-based` is the terminal page every onboarding run fetches,
and its `## How it works in code` section renders a per-framework snippet.
Nine frameworks shipped no snippet, so the section rendered nothing and the
silence meant both "no agent-side wiring is needed" and "wiring is needed and
nobody wrote it down".

Each verdict was read out of the pinned adapter rather than the docs:

- ag2: `run_stream` builds `client_tools` from `incoming.tools`.
- mastra: the adapter reduces `input.tools` into `clientTools`.
- strands, strands-typescript: a proxy tool per forwarded tool is registered
  in the agent's tool registry, and a native tool of the same name wins.
- agno: its AG-UI interface never reads `RunAgentInput.tools`, so a component
  needs an `external_execution=True` stub and a `db` for the paused run.
- deepagents: `CopilotKitMiddleware` merges `copilotkit.actions` into
  `request.tools`, so the middleware is load-bearing.
- built-in-agent: config mode forwards for you, a factory does not. It is also
  the root framework, so this is the unscoped default page.

The two .NET columns rest on their own demo agents, which render charts with
an empty tool list. No .NET SDK was available to read the NuGet hosting
package.

REQUIREMENT_NOT_ESTABLISHED is now empty. The shape test pins each snippet,
and setup-concept.test.ts no longer depends on ag2 being an open gap.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-08 16:22:29 -05:00
Ran Shem Tov 85ceb8721e feat(showcase): run the AWS Strands interrupt demos on the native interrupt
Both Strands showcase columns claimed no interrupt support and drove their two
interrupt demos through a frontend tool with an async handler. Both AG-UI Strands
bridges implement the AG-UI interrupt protocol on top of Strands' own interrupt
primitive, so the demos now use it.

- Dedicated interrupt agents whose schedule_meeting tool pauses itself with
  tool_context.interrupt(...) / context.interrupt(...), mounted on their own
  sub-path because hitl-in-chat registers a FRONTEND tool of the same name.
- interrupt-headless rebuilt on useInterrupt({ renderInChat: false }), replacing
  a hand-rolled subscriber that only matched LangGraph's legacy interrupt shape.
- Quarantine lifted, interrupt_pattern is native, and the prose claiming Strands
  has no interrupt primitive is corrected.
- reasoning-default, reasoning-custom and tool-rendering-reasoning-chain were
  registered under deprecated ids and pointed at agent names the runtime never
  registered; they now run against dedicated Responses-API agents with reasoning
  summaries enabled.
- Fixture repairs: interrupt keys that matched neither pill prompt, generic legs
  gated on turn position rather than on whether the tool had answered, and two
  short D4 keys that shadowed D6 prompts.
- Shared probes: the interrupt turns settle on the picker mounting instead of
  assistant-text stability, which an interrupt turn never produces.
- Pins raised to ag_ui_strands 0.3.0, strands-agents 1.54.0, openai 2.54.0 and
  @strands-agents/sdk 1.16.0.
2026-09-04 19:28:03 +02:00
Tyler Slaton 6c15645b6b docs: organize Channels guides by provider and framework 2026-07-27 23:50:31 -04:00