Setup
- Python
- Node.js
Streaming
Streaming works without any additional configuration. The runtime stampsX-Xenovia-Session-Id and X-Xenovia-Trace-Id into the response headers before the first byte.
- Python
- Node.js
Tool calling
Tool definitions pass through unchanged. Xenovia records tool call names and arguments in the trace and evaluates them against your request-stage Rego policy before forwarding.403 before reaching the upstream LLM.
Sessions
PassX-Xenovia-Session-Id (a valid UUID) to group related calls into a session. All turns under that session ID appear together in Traces with a per-session turn counter.
- Python
- Node.js
user field. See Runtime Architecture for the full five-strategy chain.
Custom trace properties
Attach up to 20X-Xenovia-Property-* headers to tag traces with application context. Keys must be ≤ 64 chars; values ≤ 512 chars; the policy_ prefix is reserved.
Policy blocks
When a request is blocked by policy, the runtime returns403 Forbidden. The OpenAI SDK raises this as PermissionDeniedError. The X-Xenovia-Trace-Id response header identifies the blocking trace.
- Python
- Node.js