eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
35 lines (34 loc) • 1.34 kB
TypeScript
import type { ChannelAudience } from "#shared/channel-audience.js";
export interface SpanExportContext {
readonly attributes: Readonly<Record<string, unknown>>;
readonly audience: ChannelAudience;
readonly name: string;
readonly spanId: string;
readonly traceId: string;
}
export type SpanExportDecision = {
readonly emit: boolean;
} | {
readonly redact: true;
readonly inputs?: boolean;
readonly outputs?: boolean;
};
export type SpanExportAttributeValue = string | number | boolean | readonly string[] | readonly number[] | readonly boolean[];
export type SpanAttributeDecision = {
readonly emit: boolean;
} | {
readonly replace: true;
readonly value: SpanExportAttributeValue;
};
export interface SpanExportPolicy {
/** Drop one span or redact its directional content for this destination. */
readonly span?: (span: SpanExportContext) => SpanExportDecision;
/** Emit or replace individual span attributes after content filtering. */
readonly attribute?: (input: {
readonly key: string;
readonly span: SpanExportContext;
readonly value: unknown;
}) => SpanAttributeDecision;
}
/** @internal */
export declare function normalizeSpanExportPolicies(policy: SpanExportPolicy | readonly SpanExportPolicy[] | undefined): readonly SpanExportPolicy[];