Atmosphere 4.0.54
Immutable
release. Only release title and notes can be modified.
Added
- Rich human-in-the-loop approval payloads. A reviewer can now resolve a tool
approval with more than approve/deny: approve-with-edited-arguments (the
tool runs with the reviewer's arguments) or respond (the reviewer answers on
the tool's behalf — structured JSON or free-form text — and the tool does not
run). Wire protocol:/__approval/<id>/approve {"arguments":{…}}and
/__approval/<id>/respond {…}. Fail-safe: a malformed edited-args payload denies.
Session-scoped in-memory (not crash-durable). The legacy boolean resolution path
is unchanged. - Eval flywheel.
JournalDatasetPromoterturns a recordedCoordinationJournal
interaction into anEvalCasedataset row (trace→dataset), andSampledLiveScorer
grades a configurable fraction of live turns intoEvalRunverdicts (online
scoring). Both are wired intoEvalControllerwith admin REST routes
(/api/admin/evals/dataset,/dataset/promote,/score). - OAuth on-behalf-of credential vault.
OAuthOnBehalfOfCredentialStoreis a
concreteCredentialStorethat 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 as the user. Fail-closed (no token →
no fallback credential), token-cached until expiry. Opt in with
atmosphere.ai.identity.oauth-obo.enabled=true. - Realtime voice bridge.
VoiceBridge+ theRealtimeVoiceProviderSPI bridge
client audio frames over the existing WebSocket broadcaster to a speech-to-speech
provider, fanning synthesized audio (Content.Audio) and transcripts back to the
client. A dependency-freeLoopbackVoiceProviderships as the runnable reference
(echoes audio); OpenAI Realtime / Gemini Live providers implement the same SPI. - Content-safety moderation guardrail.
ModerationGuardrailblocks 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-depRuleBasedModerationDetector(default)
or cross-runtimeLlmModerationDetector. Fail-closed by default (a detector
outage blocks the turn;.failOpen()is the explicit opt-out). Opt in with
atmosphere.ai.guardrails.moderation.enabled=true
(...detector=llmfor the model tier). - Self-healing structured output.
@AiEndpoint(structuredOutputRetries = N)
(or theai.structured.retryrequest-metadata key on theAiPipelinepath)
re-prompts the model with the schema-validation error as feedback when a typed
response fails to parse, up toNextra attempts, then fails closed. Works
identically on the websocket and channel-bridge paths. - OpenAPI → governed tools.
OpenApiToolImporterturns an OpenAPI 3.x spec
(JSON or YAML, with local$refresolution) intoToolDefinitions whose
executor performs the HTTP call. The imported operations ride the same
policy-admission and plan-and-verify path as hand-written@AiToolmethods;
approvalForWritesroutes mutating verbs through the HITL gate. - MCP client depth.
McpClientOptionsadds 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
initialize.McpServerRegistryaggregates several servers into one
collision-free tool list (first-wins) and owns their lifecycle.