UNPKG

eve

Version:

Filesystem-first framework for durable backend AI agents that run anywhere.

46 lines (45 loc) 1.82 kB
import type { SpanProcessor } from "#compiled/@vercel/otel/index.js"; /** * The local spool, as a span processor. * * Session liveness and retention live in here rather than in the runtime that * installs it, so nothing an author puts in the same `spanProcessors` list can * see them — and eve's accept filter never reaches an author's exporters. */ export interface LocalTracesProcessor extends SpanProcessor { /** * Settles pending writes and releases this conversation's active traces. */ releaseConversation(conversationId: string): Promise<boolean>; } /** * Reports whether a processor tracks which conversation owns which trace, so * eve can tell it when that conversation is done. * * Anything standing between eve and the spool has to answer for the spool, so * this is the check a wrapper uses to decide whether it must forward the call. * * @internal */ export declare function hasConversationRelease(processor: SpanProcessor): processor is LocalTracesProcessor; /** * Writes the OTLP/JSON spool under `.eve/traces/v1`. * * `EVE_TRACES=off` removes the writer but keeps the processor: eve still has * to observe spans to track which session owns which trace. * * Internal because of `releaseConversation`, which eve's runtime drives off session * lifecycle. The authored surface is `localTraces()`, which wraps this in an * `OtelIntegration`. */ export declare function createLocalTracesProcessor(input?: { readonly appRoot?: string; }): LocalTracesProcessor; /** Maps legacy local content configuration onto destination redaction. @internal */ export declare function resolveLocalTracesContent(options?: { readonly recordInputs?: boolean; readonly recordOutputs?: boolean; }): { readonly recordInputs: boolean; readonly recordOutputs: boolean; };