Support openai/elicitation form requests (#41447)

## What changed

- Advertise `openai/elicitation` form support when the client declares an
  object-valued `form` capability, without deriving it from the legacy
  `openai/form` capability.
- Handle `openai/elicitation/create` requests in `form` mode and forward their
  metadata and opaque schema through app-server as `openaiForm`, preserving
  `x-openai-*` annotations.
- Keep legacy form handling independent and have the TUI automatically decline
  the new form requests it cannot render.

## Testing

- Add an app-server round-trip test for capability negotiation, request
  forwarding, and accepted responses.
- Extend MCP capability filtering coverage for `openai/elicitation.form`.

GitOrigin-RevId: 88f39257bffafe4ee98a9c910e38507843cd7eeb
This commit is contained in:
victor-openai authored and copyberry committed 2026-08-29 02:43:10 +00:00
1 parent 0ae94fdd49
commit eec4a23cb1
19 files changed
+329 -25

No files matched your search

+3 -1
View File
@@ -942,7 +942,9 @@ fn guardian_elicitation_review_request(
"guardian MCP elicitation review does not support this elicitation mode",
);
}
Elicitation::OpenAiForm { .. } => return GuardianElicitationReview::NotRequested,
Elicitation::OpenAiForm { .. } | Elicitation::OpenAiElicitationForm { .. } => {
return GuardianElicitationReview::NotRequested;
}
};
let Some(meta) = meta.as_ref().map(|meta| &meta.0.0) else {