@baguette-studios/kernl-telemetry 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,246 @@
1
+ import type { AgentEvent, AgentMessage, AgentModelSnapshot, AgentPrivacyMetadata, AgentRequest, AgentSnapshot } from "@baguette-studios/kernl-core";
2
+ export declare const TELEMETRY_SCHEMA_VERSION: "2026-06-30";
3
+ export type TelemetrySchemaVersion = typeof TELEMETRY_SCHEMA_VERSION;
4
+ export type TelemetryStatus = "ok" | "error" | "cancelled";
5
+ export type TelemetryRetention = "ephemeral" | "standard" | "extended" | "do-not-store";
6
+ export type TelemetryPrivacyLevel = "public" | "internal" | "sensitive" | "restricted";
7
+ export type TelemetryRecordKind = "audit" | "session" | "run" | "span" | "tool" | "approval" | "policy" | "snapshot" | "outcome" | "analytics" | "eval";
8
+ export type TelemetryRecordName = "audit.event" | "session.started" | "session.ended" | "run.started" | "run.completed" | "run.failed" | "span.started" | "span.ended" | "tool.invocation" | "tool.result" | "approval.requested" | "approval.resolved" | "policy.applied" | "snapshot.resolved" | "outcome.recorded" | "analytics.event" | "eval.scored";
9
+ export type AnalyticsEventName = "session.started" | "session.ended" | "boundary.activated" | "prompt.clicked" | "tools.visible" | "tools.hidden" | "tool.called" | "approval.requested" | "approval.resolved" | "navigation.used" | "agent.handoff" | "error.raised" | "retry.requested" | "usage.recorded" | "outcome.recorded";
10
+ export type TelemetryPrivacy = {
11
+ level?: TelemetryPrivacyLevel | undefined;
12
+ redactKeys?: readonly string[] | undefined;
13
+ includeRawPayload?: boolean | undefined;
14
+ controls?: AgentPrivacyMetadata | undefined;
15
+ };
16
+ export type TelemetryRecord = {
17
+ version: TelemetrySchemaVersion;
18
+ id: string;
19
+ kind: TelemetryRecordKind;
20
+ name: TelemetryRecordName;
21
+ timestamp: number;
22
+ traceId?: string | undefined;
23
+ sessionId?: string | undefined;
24
+ runId?: string | undefined;
25
+ spanId?: string | undefined;
26
+ parentSpanId?: string | undefined;
27
+ status?: TelemetryStatus | undefined;
28
+ retention?: TelemetryRetention | undefined;
29
+ privacy?: TelemetryPrivacy | undefined;
30
+ attributes?: Record<string, unknown> | undefined;
31
+ input?: unknown;
32
+ output?: unknown;
33
+ error?: string | undefined;
34
+ };
35
+ export type AgentRunTraceEventKind = "run" | "boundary" | "snapshot" | "tool" | "policy" | "message" | "approval" | "error";
36
+ export type AgentRunTraceHeader = {
37
+ runId: string;
38
+ status: string;
39
+ projectId?: string | undefined;
40
+ environment?: string | undefined;
41
+ sessionId?: string | undefined;
42
+ userId?: string | undefined;
43
+ tenantId?: string | undefined;
44
+ traceId?: string | undefined;
45
+ createdAt?: number | undefined;
46
+ updatedAt?: number | undefined;
47
+ eventCursor?: number | undefined;
48
+ metadata?: Record<string, unknown> | undefined;
49
+ };
50
+ export type AgentRunTraceRequestSummary = {
51
+ messageCount: number;
52
+ toolCount: number;
53
+ scopeCount: number;
54
+ policyCount: number;
55
+ metadata?: Record<string, unknown> | undefined;
56
+ };
57
+ export type AgentRunTraceSummary = {
58
+ eventCount: number;
59
+ requestMessageCount: number;
60
+ toolCallCount: number;
61
+ toolResultCount: number;
62
+ pendingToolCallCount: number;
63
+ submittedToolResultCount: number;
64
+ approvalCount: number;
65
+ errorCount: number;
66
+ byKind: Partial<Record<AgentRunTraceEventKind, number>>;
67
+ };
68
+ export type AgentRunTraceEvent = {
69
+ id: string;
70
+ kind: AgentRunTraceEventKind;
71
+ label: string;
72
+ timestamp: number;
73
+ sequence?: number | undefined;
74
+ sourceType?: string | undefined;
75
+ status?: string | undefined;
76
+ summary?: string | undefined;
77
+ details?: Record<string, unknown> | undefined;
78
+ };
79
+ export type AgentRunTraceView = {
80
+ run: AgentRunTraceHeader;
81
+ request: AgentRunTraceRequestSummary;
82
+ summary: AgentRunTraceSummary;
83
+ events: readonly AgentRunTraceEvent[];
84
+ };
85
+ export type AnalyticsEvent = TelemetryRecord & {
86
+ kind: "analytics";
87
+ name: "analytics.event";
88
+ attributes: {
89
+ eventName: AnalyticsEventName;
90
+ [key: string]: unknown;
91
+ };
92
+ };
93
+ export type TraceSpanKind = "agent.turn" | "model.request" | "tool.call" | "approval" | "policy" | "snapshot" | "navigation" | "export" | "eval";
94
+ export type TraceSpanInput = {
95
+ name: string;
96
+ kind: TraceSpanKind;
97
+ spanId?: string | undefined;
98
+ parentSpanId?: string | undefined;
99
+ attributes?: Record<string, unknown> | undefined;
100
+ input?: unknown;
101
+ };
102
+ export type TelemetryFactoryOptions = {
103
+ now?: (() => number) | undefined;
104
+ idFactory?: (() => string) | undefined;
105
+ };
106
+ export type TelemetryRecordInput = Omit<TelemetryRecord, "version" | "id" | "timestamp"> & {
107
+ id?: string | undefined;
108
+ timestamp?: number | undefined;
109
+ };
110
+ export type TelemetryFilterOptions = {
111
+ includeRawPayloads?: boolean | undefined;
112
+ redactKeys?: readonly string[] | undefined;
113
+ sampleRate?: number | undefined;
114
+ retention?: TelemetryRetention | undefined;
115
+ };
116
+ export type TelemetryExportResult = {
117
+ status: "success" | "partial" | "error";
118
+ exported: number;
119
+ failed: number;
120
+ errors?: string[] | undefined;
121
+ };
122
+ export type TelemetryExporter = {
123
+ export(records: readonly TelemetryRecord[]): Promise<TelemetryExportResult>;
124
+ };
125
+ export type TelemetrySink<TPayload = unknown> = (payload: TPayload) => void | Promise<void>;
126
+ export type LangfuseEvent = {
127
+ id: string;
128
+ timestamp: number;
129
+ name: string;
130
+ traceId?: string | undefined;
131
+ sessionId?: string | undefined;
132
+ metadata: Record<string, unknown>;
133
+ input?: unknown;
134
+ output?: unknown;
135
+ };
136
+ export type OpenTelemetrySpan = {
137
+ traceId: string;
138
+ spanId: string;
139
+ parentSpanId?: string | undefined;
140
+ name: string;
141
+ startTimeUnixNano: number;
142
+ endTimeUnixNano?: number | undefined;
143
+ attributes: Record<string, unknown>;
144
+ status?: TelemetryStatus | undefined;
145
+ };
146
+ export type EvalScore = {
147
+ id: string;
148
+ rubricId: string;
149
+ label: string;
150
+ score: number;
151
+ maxScore: number;
152
+ passed: boolean;
153
+ reason?: string | undefined;
154
+ metadata?: Record<string, unknown> | undefined;
155
+ };
156
+ export type EvalRubricScope = {
157
+ agentId?: string | undefined;
158
+ boundaryId?: string | undefined;
159
+ skillId?: string | undefined;
160
+ workflowId?: string | undefined;
161
+ };
162
+ export type EvalRubric = {
163
+ id: string;
164
+ label: string;
165
+ description?: string | undefined;
166
+ scope?: EvalRubricScope | undefined;
167
+ criteria: readonly string[];
168
+ maxScore?: number | undefined;
169
+ passThreshold?: number | undefined;
170
+ metadata?: Record<string, unknown> | undefined;
171
+ };
172
+ export type EvalJudgeInput = {
173
+ rubric: EvalRubric;
174
+ messages: readonly AgentMessage[];
175
+ trace?: readonly TelemetryRecord[] | undefined;
176
+ metadata?: Record<string, unknown> | undefined;
177
+ };
178
+ export type EvalJudge = (input: EvalJudgeInput) => EvalScore | Promise<EvalScore>;
179
+ export type RunEvalOptions = {
180
+ messages: readonly AgentMessage[];
181
+ rubrics?: readonly EvalRubric[] | undefined;
182
+ judge: EvalJudge;
183
+ trace?: readonly TelemetryRecord[] | undefined;
184
+ metadata?: Record<string, unknown> | undefined;
185
+ now?: (() => number) | undefined;
186
+ idFactory?: (() => string) | undefined;
187
+ };
188
+ export type EvalRunResult = {
189
+ scores: EvalScore[];
190
+ records: TelemetryRecord[];
191
+ };
192
+ export declare const DEFAULT_EVAL_RUBRICS: readonly EvalRubric[];
193
+ export declare function createTelemetryRecord(input: TelemetryRecordInput, options?: TelemetryFactoryOptions): TelemetryRecord;
194
+ export declare function isTelemetryRecord(value: unknown): value is TelemetryRecord;
195
+ export declare function createAnalyticsEvent(eventName: AnalyticsEventName, attributes?: Record<string, unknown>, options?: TelemetryFactoryOptions & Partial<Pick<TelemetryRecord, "traceId" | "sessionId" | "runId" | "retention" | "privacy">>): AnalyticsEvent;
196
+ export declare function analyticsFromAgentEvent(event: AgentEvent, options?: TelemetryFactoryOptions & {
197
+ traceId?: string | undefined;
198
+ sessionId?: string | undefined;
199
+ runId?: string | undefined;
200
+ }): AnalyticsEvent | undefined;
201
+ export declare function createTraceRecorder(options?: TelemetryFactoryOptions & {
202
+ traceId?: string | undefined;
203
+ sessionId?: string | undefined;
204
+ }): {
205
+ traceId: string;
206
+ records: TelemetryRecord[];
207
+ startRun: (runId?: string, attributes?: Record<string, unknown>) => TelemetryRecord;
208
+ endRun: (runId: string, status?: TelemetryStatus, attributes?: Record<string, unknown>) => TelemetryRecord;
209
+ startSpan: (input: TraceSpanInput & {
210
+ runId?: string | undefined;
211
+ }) => TelemetryRecord;
212
+ endSpan: (spanId: string, status?: TelemetryStatus, output?: unknown, attributes?: Record<string, unknown>) => TelemetryRecord;
213
+ recordAgentEvent: (event: AgentEvent, context?: {
214
+ runId?: string | undefined;
215
+ }) => TelemetryRecord | undefined;
216
+ recordSnapshot: (snapshot: AgentSnapshot | AgentModelSnapshot, context?: {
217
+ runId?: string | undefined;
218
+ }) => TelemetryRecord;
219
+ recordModelRequest: (request: AgentRequest, context?: {
220
+ runId?: string | undefined;
221
+ spanId?: string | undefined;
222
+ parentSpanId?: string | undefined;
223
+ }) => TelemetryRecord;
224
+ };
225
+ export declare function filterTelemetryRecord(record: TelemetryRecord, options?: TelemetryFilterOptions): TelemetryRecord | undefined;
226
+ export declare function sampleTelemetryRecord(record: TelemetryRecord, sampleRate: number): boolean;
227
+ export declare function createNoopTelemetryExporter(): TelemetryExporter;
228
+ export declare function createMemoryTelemetryExporter(target?: TelemetryRecord[]): TelemetryExporter & {
229
+ records: TelemetryRecord[];
230
+ };
231
+ export declare function createCompositeTelemetryExporter(exporters: readonly TelemetryExporter[]): TelemetryExporter;
232
+ export declare function createLangfuseExporter(sink: TelemetrySink<LangfuseEvent>): TelemetryExporter;
233
+ export declare function createOpenTelemetryExporter(sink: TelemetrySink<OpenTelemetrySpan>): TelemetryExporter;
234
+ export declare function runEvalHooks(options: RunEvalOptions): Promise<EvalRunResult>;
235
+ export declare function createDeterministicEvalJudge(scores: Record<string, number> | ((input: EvalJudgeInput) => number)): EvalJudge;
236
+ export declare function evalScoreToTelemetryRecord(score: EvalScore, options?: TelemetryFactoryOptions & {
237
+ sessionId?: string | undefined;
238
+ runId?: string | undefined;
239
+ traceId?: string | undefined;
240
+ }): TelemetryRecord;
241
+ export declare function toLangfuseEvent(record: TelemetryRecord): LangfuseEvent;
242
+ export declare function toOpenTelemetrySpan(record: TelemetryRecord): OpenTelemetrySpan;
243
+ export * from "./delivery.js";
244
+ export * from "./semantic.js";
245
+ export * from "./sinks.js";
246
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}