UNPKG

@just-every/ensemble

Version:

LLM provider abstraction layer with unified streaming interface

96 lines 3.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TraceContext = void 0; exports.createTraceContext = createTraceContext; const crypto_1 = require("crypto"); const trace_logger_js_1 = require("./trace_logger.cjs"); class TraceContext { agent; operation; turnId; requestCount = 0; requestNumbers = new Map(); constructor(agent, operation, turnId) { this.agent = agent; this.operation = operation; this.turnId = turnId || (0, crypto_1.randomUUID)(); } async emitTurnStart(data) { await (0, trace_logger_js_1.emitTraceEvent)({ type: 'turn_start', turn_id: this.turnId, data: { operation: this.operation, agent_id: this.agent.agent_id, name: this.agent.name, model: this.agent.model, model_class: this.agent.modelClass, ...data, }, }); } async emitRequestStart(requestId, data) { this.requestCount += 1; this.requestNumbers.set(requestId, this.requestCount); await (0, trace_logger_js_1.emitTraceEvent)({ type: 'request_start', turn_id: this.turnId, request_id: requestId, data: { request_number: this.requestCount, ...data, }, }); return this.requestCount; } async emitToolStart(requestId, toolCallId, data) { await (0, trace_logger_js_1.emitTraceEvent)({ type: 'tool_start', turn_id: this.turnId, request_id: requestId, tool_call_id: toolCallId, data, }); } async emitToolDone(requestId, toolCallId, data) { await (0, trace_logger_js_1.emitTraceEvent)({ type: 'tool_done', turn_id: this.turnId, request_id: requestId, tool_call_id: toolCallId, data, }); } async emitRequestEnd(requestId, data) { const requestNumber = requestId ? this.requestNumbers.get(requestId) : undefined; await (0, trace_logger_js_1.emitTraceEvent)({ type: 'request_end', turn_id: this.turnId, request_id: requestId, data: { request_number: requestNumber, ...data, }, }); } async emitTurnEnd(status, reason, data) { await (0, trace_logger_js_1.emitTraceEvent)({ type: 'turn_end', turn_id: this.turnId, data: { status, reason, request_count: this.requestCount, ...data, }, }); } getRequestCount() { return this.requestCount; } } exports.TraceContext = TraceContext; function createTraceContext(agent, operation, turnId) { return new TraceContext(agent, operation, turnId); } //# sourceMappingURL=trace_context.js.map