dependabot[bot] opened a new pull request, #3238:
URL: https://github.com/apache/cxf/pull/3238

   Bumps 
[org.atmosphere:atmosphere-runtime](https://github.com/Atmosphere/atmosphere) 
from 3.1.0 to 4.0.54.
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a 
href="https://github.com/Atmosphere/atmosphere/releases";>org.atmosphere:atmosphere-runtime's
 releases</a>.</em></p>
   <blockquote>
   <h2>Atmosphere 4.0.54</h2>
   <h3>Added</h3>
   <ul>
   <li><strong>Rich human-in-the-loop approval payloads.</strong> A reviewer 
can now resolve a tool
   approval with more than approve/deny: 
<strong>approve-with-edited-arguments</strong> (the
   tool runs with the reviewer's arguments) or <strong>respond</strong> (the 
reviewer answers on
   the tool's behalf — structured JSON or free-form text — and the tool does not
   run). Wire protocol: <code>/__approval/&lt;id&gt;/approve 
{&quot;arguments&quot;:{…}}</code> and
   <code>/__approval/&lt;id&gt;/respond {…}</code>. Fail-safe: a malformed 
edited-args payload denies.
   Session-scoped in-memory (not crash-durable). The legacy boolean resolution 
path
   is unchanged.</li>
   <li><strong>Eval flywheel.</strong> <code>JournalDatasetPromoter</code> 
turns a recorded <code>CoordinationJournal</code>
   interaction into an <code>EvalCase</code> dataset row (trace→dataset), and 
<code>SampledLiveScorer</code>
   grades a configurable fraction of live turns into <code>EvalRun</code> 
verdicts (online
   scoring). Both are wired into <code>EvalController</code> with admin REST 
routes
   (<code>/api/admin/evals/dataset</code>, <code>/dataset/promote</code>, 
<code>/score</code>).</li>
   <li><strong>OAuth on-behalf-of credential vault.</strong> 
<code>OAuthOnBehalfOfCredentialStore</code> is a
   concrete <code>CredentialStore</code> that performs an RFC 8693 token 
exchange — swapping a
   user's stored subject token for a short-lived access token scoped to a 
downstream
   tool, so an agent calls external APIs <em>as the user</em>. Fail-closed (no 
token →
   no fallback credential), token-cached until expiry. Opt in with
   <code>atmosphere.ai.identity.oauth-obo.enabled=true</code>.</li>
   <li><strong>Realtime voice bridge.</strong> <code>VoiceBridge</code> + the 
<code>RealtimeVoiceProvider</code> SPI bridge
   client audio frames over the existing WebSocket broadcaster to a 
speech-to-speech
   provider, fanning synthesized audio (<code>Content.Audio</code>) and 
transcripts back to the
   client. A dependency-free <code>LoopbackVoiceProvider</code> ships as the 
runnable reference
   (echoes audio); OpenAI Realtime / Gemini Live providers implement the same 
SPI.</li>
   <li><strong>Content-safety moderation guardrail.</strong> 
<code>ModerationGuardrail</code> blocks turns
   whose request and/or response is flagged for hate / harassment / self-harm /
   sexual / violence / illicit content, on the existing fail-closed guardrail
   pipeline. Pluggable detector: zero-dep 
<code>RuleBasedModerationDetector</code> (default)
   or cross-runtime <code>LlmModerationDetector</code>. Fail-closed by default 
(a detector
   outage blocks the turn; <code>.failOpen()</code> is the explicit opt-out). 
Opt in with
   <code>atmosphere.ai.guardrails.moderation.enabled=true</code>
   (<code>...detector=llm</code> for the model tier).</li>
   <li><strong>Self-healing structured output.</strong> 
<code>@AiEndpoint(structuredOutputRetries = N)</code>
   (or the <code>ai.structured.retry</code> request-metadata key on the 
<code>AiPipeline</code> path)
   re-prompts the model with the schema-validation error as feedback when a 
typed
   response fails to parse, up to <code>N</code> extra attempts, then fails 
closed. Works
   identically on the websocket and channel-bridge paths.</li>
   <li><strong>OpenAPI → governed tools.</strong> 
<code>OpenApiToolImporter</code> turns an OpenAPI 3.x spec
   (JSON or YAML, with local <code>$ref</code> resolution) into 
<code>ToolDefinition</code>s whose
   executor performs the HTTP call. The imported operations ride the same
   policy-admission and plan-and-verify path as hand-written 
<code>@AiTool</code> methods;
   <code>approvalForWrites</code> routes mutating verbs through the HITL 
gate.</li>
   <li><strong>MCP client depth.</strong> <code>McpClientOptions</code> adds 
per-server tool filtering and
   display-only renaming (the executor still calls the server's original tool
   name), plus elicitation/sampling callback handlers advertised during
   <code>initialize</code>. <code>McpServerRegistry</code> aggregates several 
servers into one</li>
   </ul>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Changelog</summary>
   <p><em>Sourced from <a 
href="https://github.com/Atmosphere/atmosphere/blob/main/CHANGELOG.md";>org.atmosphere:atmosphere-runtime's
 changelog</a>.</em></p>
   <blockquote>
   <h2>[4.0.54] - 2026-06-13</h2>
   <h3>Added</h3>
   <ul>
   <li><strong>Rich human-in-the-loop approval payloads.</strong> A reviewer 
can now resolve a tool
   approval with more than approve/deny: 
<strong>approve-with-edited-arguments</strong> (the
   tool runs with the reviewer's arguments) or <strong>respond</strong> (the 
reviewer answers on
   the tool's behalf — structured JSON or free-form text — and the tool does not
   run). Wire protocol: <code>/__approval/&lt;id&gt;/approve 
{&quot;arguments&quot;:{…}}</code> and
   <code>/__approval/&lt;id&gt;/respond {…}</code>. Fail-safe: a malformed 
edited-args payload denies.
   Session-scoped in-memory (not crash-durable). The legacy boolean resolution 
path
   is unchanged.</li>
   <li><strong>Eval flywheel.</strong> <code>JournalDatasetPromoter</code> 
turns a recorded <code>CoordinationJournal</code>
   interaction into an <code>EvalCase</code> dataset row (trace→dataset), and 
<code>SampledLiveScorer</code>
   grades a configurable fraction of live turns into <code>EvalRun</code> 
verdicts (online
   scoring). Both are wired into <code>EvalController</code> with admin REST 
routes
   (<code>/api/admin/evals/dataset</code>, <code>/dataset/promote</code>, 
<code>/score</code>).</li>
   <li><strong>OAuth on-behalf-of credential vault.</strong> 
<code>OAuthOnBehalfOfCredentialStore</code> is a
   concrete <code>CredentialStore</code> that performs an RFC 8693 token 
exchange — swapping a
   user's stored subject token for a short-lived access token scoped to a 
downstream
   tool, so an agent calls external APIs <em>as the user</em>. Fail-closed (no 
token →
   no fallback credential), token-cached until expiry. Opt in with
   <code>atmosphere.ai.identity.oauth-obo.enabled=true</code>.</li>
   <li><strong>Realtime voice bridge.</strong> <code>VoiceBridge</code> + the 
<code>RealtimeVoiceProvider</code> SPI bridge
   client audio frames over the existing WebSocket broadcaster to a 
speech-to-speech
   provider, fanning synthesized audio (<code>Content.Audio</code>) and 
transcripts back to the
   client. A dependency-free <code>LoopbackVoiceProvider</code> ships as the 
runnable reference
   (echoes audio); OpenAI Realtime / Gemini Live providers implement the same 
SPI.</li>
   <li><strong>Content-safety moderation guardrail.</strong> 
<code>ModerationGuardrail</code> blocks turns
   whose request and/or response is flagged for hate / harassment / self-harm /
   sexual / violence / illicit content, on the existing fail-closed guardrail
   pipeline. Pluggable detector: zero-dep 
<code>RuleBasedModerationDetector</code> (default)
   or cross-runtime <code>LlmModerationDetector</code>. Fail-closed by default 
(a detector
   outage blocks the turn; <code>.failOpen()</code> is the explicit opt-out). 
Opt in with
   <code>atmosphere.ai.guardrails.moderation.enabled=true</code>
   (<code>...detector=llm</code> for the model tier).</li>
   <li><strong>Self-healing structured output.</strong> 
<code>@AiEndpoint(structuredOutputRetries = N)</code>
   (or the <code>ai.structured.retry</code> request-metadata key on the 
<code>AiPipeline</code> path)
   re-prompts the model with the schema-validation error as feedback when a 
typed
   response fails to parse, up to <code>N</code> extra attempts, then fails 
closed. Works
   identically on the websocket and channel-bridge paths.</li>
   <li><strong>OpenAPI → governed tools.</strong> 
<code>OpenApiToolImporter</code> turns an OpenAPI 3.x spec
   (JSON or YAML, with local <code>$ref</code> resolution) into 
<code>ToolDefinition</code>s whose
   executor performs the HTTP call. The imported operations ride the same
   policy-admission and plan-and-verify path as hand-written 
<code>@AiTool</code> methods;
   <code>approvalForWrites</code> routes mutating verbs through the HITL 
gate.</li>
   <li><strong>MCP client depth.</strong> <code>McpClientOptions</code> adds 
per-server tool filtering and
   display-only renaming (the executor still calls the server's original tool
   name), plus elicitation/sampling callback handlers advertised during
   <code>initialize</code>. <code>McpServerRegistry</code> aggregates several 
servers into one</li>
   </ul>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/Atmosphere/atmosphere/commit/123d5c9eb49ec6af65112a39659bae7d85beed1c";><code>123d5c9</code></a>
 release: Atmosphere 4.0.54</li>
   <li><a 
href="https://github.com/Atmosphere/atmosphere/commit/662655d6ad536330ff488f41897eb9842327e37f";><code>662655d</code></a>
 fix(spring-boot): decouple transport auth from a TokenValidator bean</li>
   <li><a 
href="https://github.com/Atmosphere/atmosphere/commit/e446e8e935325c28ab040a834d28c369f479a55f";><code>e446e8e</code></a>
 feat(sample): operator auth for the guarded-email Validation tab</li>
   <li><a 
href="https://github.com/Atmosphere/atmosphere/commit/f1943a934c7ac3864063b657b1cdbdb9ed109a79";><code>f1943a9</code></a>
 fix(spring-boot): authenticate console admin writes + preserve redirect 
query</li>
   <li><a 
href="https://github.com/Atmosphere/atmosphere/commit/f844e8069189b5905e7d3e298763344f37200718";><code>f844e80</code></a>
 chore(deps): upgrade Spring AI 2.0.0-M6 -&gt; 2.0.0 GA</li>
   <li><a 
href="https://github.com/Atmosphere/atmosphere/commit/791eea8dc0a24c1780c46d113d07d25eed022f8b";><code>791eea8</code></a>
 ci(samples): run the multi-agent startup-team verifier tests in CI</li>
   <li><a 
href="https://github.com/Atmosphere/atmosphere/commit/43292b0d8dccc61b1b815ea518c8380e0b2c2e17";><code>43292b0</code></a>
 docs(samples): deepen multi-agent verifier README with plan AST, refusal 
mech...</li>
   <li><a 
href="https://github.com/Atmosphere/atmosphere/commit/79b1223b23d4818f939bec6c80e9fea7b059c818";><code>79b1223</code></a>
 docs(harness): mark SMT-branch gap resolved (cc7f31f777) + doc broadened 
(55d...</li>
   <li><a 
href="https://github.com/Atmosphere/atmosphere/commit/ddd453a99accb92f1f0552530c96f29762a97094";><code>ddd453a</code></a>
 feat(samples): add plan-and-verify guardrails to the multi-agent startup 
team</li>
   <li><a 
href="https://github.com/Atmosphere/atmosphere/commit/317b645b788847a235e29e41ce8bd72b56350287";><code>317b645</code></a>
 docs(harness): log verifier-doc fabrication caught pre-publish (+ 
concurrent-...</li>
   <li>Additional commits viewable in <a 
href="https://github.com/Atmosphere/atmosphere/compare/atmosphere-project-3.1.0...atmosphere-4.0.54";>compare
 view</a></li>
   </ul>
   </details>
   <br />
   
   
   [![Dependabot compatibility 
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=org.atmosphere:atmosphere-runtime&package-manager=maven&previous-version=3.1.0&new-version=4.0.54)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
   
   Dependabot will resolve any conflicts with this PR as long as you don't 
alter it yourself. You can also trigger a rebase manually by commenting 
`@dependabot rebase`.
   
   [//]: # (dependabot-automerge-start)
   [//]: # (dependabot-automerge-end)
   
   ---
   
   <details>
   <summary>Dependabot commands and options</summary>
   <br />
   
   You can trigger Dependabot actions by commenting on this PR:
   - `@dependabot rebase` will rebase this PR
   - `@dependabot recreate` will recreate this PR, overwriting any edits that 
have been made to it
   - `@dependabot show <dependency name> ignore conditions` will show all of 
the ignore conditions of the specified dependency
   - `@dependabot ignore this major version` will close this PR and stop 
Dependabot creating any more for this major version (unless you reopen the PR 
or upgrade to it yourself)
   - `@dependabot ignore this minor version` will close this PR and stop 
Dependabot creating any more for this minor version (unless you reopen the PR 
or upgrade to it yourself)
   - `@dependabot ignore this dependency` will close this PR and stop 
Dependabot creating any more for this dependency (unless you reopen the PR or 
upgrade to it yourself)
   
   
   </details>


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to