lloyal-agents API Reference
    Preparing search index...

    Type Alias TraceEvent

    TraceEvent:
        | TraceEventBase & {
            name: string;
            type: "scope:open";
            meta?: Record<string, unknown>;
        }
        | TraceEventBase & {
            durationMs: number;
            name: string;
            type: "scope:close";
        }
        | TraceEventBase & {
            messages: string;
            promptText: string;
            role: | "sharedRoot"
            | "agentSuffix"
            | "generate"
            | "diverge"
            | "toolResultDelta";
            tokenCount: number;
            type: "prompt:format";
            grammar?: string;
            taskContent?: string;
            tools?: string;
        }
        | TraceEventBase & {
            branchHandle: number;
            parentHandle: number
            | null;
            position: number;
            role:
                | "root"
                | "sharedRoot"
                | "agentFork"
                | "scratchpad"
                | "divergeAttempt";
            type: "branch:create";
        }
        | TraceEventBase & {
            branchHandle: number;
            role: | "sharedPrefix"
            | "agentSuffix"
            | "toolResult"
            | "warmDelta"
            | "scratchpad";
            tokenCount: number;
            type: "branch:prefill";
        }
        | TraceEventBase & {
            branchHandle: number;
            position: number;
            type: "branch:prune";
        }
        | TraceEventBase & {
            branchHandle: number;
            hasGrammar: boolean;
            hasParent: boolean;
            role: string;
            type: "generate:start";
        }
        | TraceEventBase & {
            branchHandle: number;
            output: string;
            tokenCount: number;
            type: "generate:end";
            parsed?: unknown;
        }
        | TraceEventBase & {
            agentCount: number;
            pressure: { headroom: number; remaining: number; softLimit: number };
            taskSuffixTokens: number[];
            type: "pool:open";
        }
        | TraceEventBase & {
            agents: {
                agentId: number;
                findings: string
                | null;
                ppl: number;
                tokenCount: number;
                toolCallCount: number;
            }[];
            durationMs: number;
            steps: number;
            totalTokens: number;
            type: "pool:close";
        }
        | TraceEventBase & {
            activeAgents: number;
            phase: "PRODUCE"
            | "COMMIT"
            | "SETTLE"
            | "DISPATCH";
            pressure: {
                cellsUsed: number;
                headroom: number;
                nCtx: number;
                remaining: number;
            };
            type: "pool:tick";
        }
        | TraceEventBase & {
            agentId: number;
            reason: | "pressure_init"
            | "pressure_critical"
            | "pressure_softcut"
            | "pressure_settle_reject"
            | "maxTurns"
            | "stop_token";
            type: "pool:agentDrop";
        }
        | TraceEventBase & {
            agentId: number;
            parsedContent: string
            | null;
            parsedToolCalls: { arguments: string; name: string }[];
            rawOutput: string;
            turn: number;
            type: "agent:turn";
        }
        | TraceEventBase & {
            agentId: number;
            args: Record<string, unknown>;
            callId: string;
            tool: string;
            toolIndex: number;
            toolkitSize: number;
            type: "tool:dispatch";
        }
        | TraceEventBase & {
            agentId: number;
            durationMs: number;
            prefillTokenCount: number;
            result: unknown;
            tool: string;
            type: "tool:result";
        }
        | TraceEventBase & {
            agentId: number;
            error: string;
            tool: string;
            type: "tool:error";
        }
        | TraceEventBase & {
            attempts: number;
            prefixLength: number;
            type: "diverge:start";
        }
        | TraceEventBase & {
            bestIdx: number;
            outputs: string[];
            ppls: number[];
            totalTokens: number;
            type: "diverge:end";
        }
        | TraceEventBase & {
            chunkCount: number;
            query: string;
            type: "rerank:start";
        }
        | TraceEventBase & {
            durationMs: number;
            selectedPassageCount: number;
            topResults: { file: string; heading: string; score: number }[];
            totalChars: number;
            type: "rerank:end";
        }
        | TraceEventBase & { sourceName: string; type: "source:bind" }
        | TraceEventBase & {
            questions: string[];
            sourceName: string;
            type: "source:research";
        }
        | TraceEventBase & {
            chunkCount: number;
            sourceName: string;
            type: "source:chunks";
        }

    Discriminated union of all trace event types

    Every variant extends TraceEventBase with a type discriminant. Events cover the full lifecycle of agent execution: scope open/close, prompt formatting, branch creation/prefill/prune, generation start/end, agent pool ticks, tool dispatch/result, diverge attempts, reranker passes, and source bindings.

    Written to a TraceWriter throughout the runtime. Consumers (e.g. JsonlTraceWriter) serialize events to JSONL for post-hoc analysis.