@illuma-ai/observability-core 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,141 @@
1
+ /**
2
+ * Client handle for a span observation.
3
+ *
4
+ * Returned by `TraceClient.span()` or another `SpanClient.span()`.
5
+ * Supports nested span and generation creation, enabling arbitrarily deep
6
+ * observation trees.
7
+ */
8
+ import { IngestionEventType } from './types.js';
9
+ import { GenerationClient } from './generation-client.js';
10
+ import { generateId, currentISOTimestamp } from './utils.js';
11
+ export class SpanClient {
12
+ /** Observation ID of this span. */
13
+ id;
14
+ /** Trace this span belongs to. */
15
+ traceId;
16
+ /** Enqueueing callback provided by the owning core client. */
17
+ _enqueue;
18
+ constructor(id, traceId, enqueue) {
19
+ this.id = id;
20
+ this.traceId = traceId;
21
+ this._enqueue = enqueue;
22
+ }
23
+ /**
24
+ * Create a child span nested under this span.
25
+ *
26
+ * @param params - Span parameters. `traceId` and `parentObservationId` are set automatically.
27
+ * @returns A new SpanClient for the child span.
28
+ */
29
+ span(params) {
30
+ const id = params?.id ?? generateId();
31
+ const startTime = params?.startTime ?? currentISOTimestamp();
32
+ this._enqueue({
33
+ id: generateId(),
34
+ type: IngestionEventType.SPAN_CREATE,
35
+ timestamp: currentISOTimestamp(),
36
+ body: {
37
+ ...params,
38
+ id,
39
+ traceId: this.traceId,
40
+ parentObservationId: this.id,
41
+ startTime,
42
+ },
43
+ });
44
+ return new SpanClient(id, this.traceId, this._enqueue);
45
+ }
46
+ /**
47
+ * Create an LLM generation observation nested under this span.
48
+ *
49
+ * @param params - Generation parameters. `traceId` and `parentObservationId` are set automatically.
50
+ * @returns A GenerationClient for the new generation.
51
+ */
52
+ generation(params) {
53
+ const id = params?.id ?? generateId();
54
+ const startTime = params?.startTime ?? currentISOTimestamp();
55
+ this._enqueue({
56
+ id: generateId(),
57
+ type: IngestionEventType.GENERATION_CREATE,
58
+ timestamp: currentISOTimestamp(),
59
+ body: {
60
+ ...params,
61
+ id,
62
+ traceId: this.traceId,
63
+ parentObservationId: this.id,
64
+ startTime,
65
+ },
66
+ });
67
+ return new GenerationClient(id, this.traceId, this._enqueue);
68
+ }
69
+ /**
70
+ * Create a point-in-time event nested under this span.
71
+ *
72
+ * @param params - Event parameters. `traceId` and `parentObservationId` are set automatically.
73
+ */
74
+ event(params) {
75
+ const id = params?.id ?? generateId();
76
+ const startTime = params?.startTime ?? currentISOTimestamp();
77
+ this._enqueue({
78
+ id: generateId(),
79
+ type: IngestionEventType.EVENT_CREATE,
80
+ timestamp: currentISOTimestamp(),
81
+ body: {
82
+ ...params,
83
+ id,
84
+ traceId: this.traceId,
85
+ parentObservationId: this.id,
86
+ startTime,
87
+ },
88
+ });
89
+ }
90
+ /**
91
+ * Attach a score to this span.
92
+ *
93
+ * @param params - Score parameters. `traceId` and `observationId` are set automatically.
94
+ */
95
+ score(params) {
96
+ this._enqueue({
97
+ id: generateId(),
98
+ type: IngestionEventType.SCORE_CREATE,
99
+ timestamp: currentISOTimestamp(),
100
+ body: {
101
+ id: params.id ?? generateId(),
102
+ traceId: this.traceId,
103
+ observationId: this.id,
104
+ ...params,
105
+ },
106
+ });
107
+ }
108
+ /**
109
+ * Update this span with additional data.
110
+ *
111
+ * @param params - Fields to merge into the existing span.
112
+ * @returns This SpanClient for chaining.
113
+ */
114
+ update(params) {
115
+ this._enqueue({
116
+ id: generateId(),
117
+ type: IngestionEventType.SPAN_UPDATE,
118
+ timestamp: currentISOTimestamp(),
119
+ body: {
120
+ id: this.id,
121
+ traceId: this.traceId,
122
+ ...params,
123
+ },
124
+ });
125
+ return this;
126
+ }
127
+ /**
128
+ * Convenience method to mark this span as complete.
129
+ * Sets `endTime` to now and merges any additional params.
130
+ *
131
+ * @param params - Optional fields to set on completion (output, metadata, etc.).
132
+ * @returns This SpanClient for chaining.
133
+ */
134
+ end(params) {
135
+ return this.update({
136
+ ...params,
137
+ endTime: params?.endTime ?? currentISOTimestamp(),
138
+ });
139
+ }
140
+ }
141
+ //# sourceMappingURL=span-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"span-client.js","sourceRoot":"","sources":["../src/span-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Client handle for a trace.
3
+ *
4
+ * Returned by `ObservabilityCoreClient.trace()`. Acts as the root of an
5
+ * observation tree — all spans, generations, events, and scores are created
6
+ * as children of a trace.
7
+ */
8
+ import type { TraceParams, SpanParams, GenerationParams, EventParams, ScoreParams, IngestionEvent } from './types.js';
9
+ import { SpanClient } from './span-client.js';
10
+ import { GenerationClient } from './generation-client.js';
11
+ export declare class TraceClient {
12
+ /** Trace ID. */
13
+ readonly id: string;
14
+ /** Enqueueing callback provided by the owning core client. */
15
+ private readonly _enqueue;
16
+ constructor(id: string, enqueue: (event: IngestionEvent) => void);
17
+ /**
18
+ * Create a span observation as a direct child of this trace.
19
+ *
20
+ * @param params - Span parameters. `traceId` is set automatically.
21
+ * @returns A SpanClient for the new span.
22
+ */
23
+ span(params?: Partial<SpanParams>): SpanClient;
24
+ /**
25
+ * Create an LLM generation observation as a direct child of this trace.
26
+ *
27
+ * @param params - Generation parameters. `traceId` is set automatically.
28
+ * @returns A GenerationClient for the new generation.
29
+ */
30
+ generation(params?: Partial<GenerationParams>): GenerationClient;
31
+ /**
32
+ * Create a point-in-time event as a direct child of this trace.
33
+ *
34
+ * @param params - Event parameters. `traceId` is set automatically.
35
+ */
36
+ event(params?: Partial<EventParams>): void;
37
+ /**
38
+ * Attach a score to this trace.
39
+ *
40
+ * @param params - Score parameters. `traceId` is set automatically.
41
+ */
42
+ score(params: Omit<ScoreParams, 'traceId'>): void;
43
+ /**
44
+ * Update this trace with additional data (e.g. output, metadata, tags).
45
+ *
46
+ * @param params - Fields to merge into the existing trace.
47
+ * @returns This TraceClient for chaining.
48
+ */
49
+ update(params: Partial<TraceParams>): this;
50
+ }
51
+ //# sourceMappingURL=trace-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-client.d.ts","sourceRoot":"","sources":["../src/trace-client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D,qBAAa,WAAW;IACtB,gBAAgB;IAChB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,8DAA8D;IAC9D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkC;gBAE/C,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI;IAKhE;;;;;OAKG;IACH,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU;IAmB9C;;;;;OAKG;IACH,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,gBAAgB;IAmBhE;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI;IAiB1C;;;;OAIG;IACH,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,IAAI;IAajD;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI;CAa3C"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * Client handle for a trace.
3
+ *
4
+ * Returned by `ObservabilityCoreClient.trace()`. Acts as the root of an
5
+ * observation tree — all spans, generations, events, and scores are created
6
+ * as children of a trace.
7
+ */
8
+ import { IngestionEventType } from './types.js';
9
+ import { SpanClient } from './span-client.js';
10
+ import { GenerationClient } from './generation-client.js';
11
+ import { generateId, currentISOTimestamp } from './utils.js';
12
+ export class TraceClient {
13
+ /** Trace ID. */
14
+ id;
15
+ /** Enqueueing callback provided by the owning core client. */
16
+ _enqueue;
17
+ constructor(id, enqueue) {
18
+ this.id = id;
19
+ this._enqueue = enqueue;
20
+ }
21
+ /**
22
+ * Create a span observation as a direct child of this trace.
23
+ *
24
+ * @param params - Span parameters. `traceId` is set automatically.
25
+ * @returns A SpanClient for the new span.
26
+ */
27
+ span(params) {
28
+ const id = params?.id ?? generateId();
29
+ const startTime = params?.startTime ?? currentISOTimestamp();
30
+ this._enqueue({
31
+ id: generateId(),
32
+ type: IngestionEventType.SPAN_CREATE,
33
+ timestamp: currentISOTimestamp(),
34
+ body: {
35
+ ...params,
36
+ id,
37
+ traceId: this.id,
38
+ startTime,
39
+ },
40
+ });
41
+ return new SpanClient(id, this.id, this._enqueue);
42
+ }
43
+ /**
44
+ * Create an LLM generation observation as a direct child of this trace.
45
+ *
46
+ * @param params - Generation parameters. `traceId` is set automatically.
47
+ * @returns A GenerationClient for the new generation.
48
+ */
49
+ generation(params) {
50
+ const id = params?.id ?? generateId();
51
+ const startTime = params?.startTime ?? currentISOTimestamp();
52
+ this._enqueue({
53
+ id: generateId(),
54
+ type: IngestionEventType.GENERATION_CREATE,
55
+ timestamp: currentISOTimestamp(),
56
+ body: {
57
+ ...params,
58
+ id,
59
+ traceId: this.id,
60
+ startTime,
61
+ },
62
+ });
63
+ return new GenerationClient(id, this.id, this._enqueue);
64
+ }
65
+ /**
66
+ * Create a point-in-time event as a direct child of this trace.
67
+ *
68
+ * @param params - Event parameters. `traceId` is set automatically.
69
+ */
70
+ event(params) {
71
+ const id = params?.id ?? generateId();
72
+ const startTime = params?.startTime ?? currentISOTimestamp();
73
+ this._enqueue({
74
+ id: generateId(),
75
+ type: IngestionEventType.EVENT_CREATE,
76
+ timestamp: currentISOTimestamp(),
77
+ body: {
78
+ ...params,
79
+ id,
80
+ traceId: this.id,
81
+ startTime,
82
+ },
83
+ });
84
+ }
85
+ /**
86
+ * Attach a score to this trace.
87
+ *
88
+ * @param params - Score parameters. `traceId` is set automatically.
89
+ */
90
+ score(params) {
91
+ this._enqueue({
92
+ id: generateId(),
93
+ type: IngestionEventType.SCORE_CREATE,
94
+ timestamp: currentISOTimestamp(),
95
+ body: {
96
+ id: params.id ?? generateId(),
97
+ traceId: this.id,
98
+ ...params,
99
+ },
100
+ });
101
+ }
102
+ /**
103
+ * Update this trace with additional data (e.g. output, metadata, tags).
104
+ *
105
+ * @param params - Fields to merge into the existing trace.
106
+ * @returns This TraceClient for chaining.
107
+ */
108
+ update(params) {
109
+ this._enqueue({
110
+ id: generateId(),
111
+ type: IngestionEventType.TRACE_CREATE, // Langfuse uses trace-create for upserts
112
+ timestamp: currentISOTimestamp(),
113
+ body: {
114
+ id: this.id,
115
+ ...params,
116
+ },
117
+ });
118
+ return this;
119
+ }
120
+ }
121
+ //# sourceMappingURL=trace-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-client.js","sourceRoot":"","sources":["../src/trace-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,300 @@
1
+ /**
2
+ * Core types for the Illuma Observability SDK.
3
+ *
4
+ * This module is the single source of truth for all observability types.
5
+ * It mirrors the Langfuse ingestion API contract so payloads are wire-compatible.
6
+ */
7
+ /** Observation severity / log level. */
8
+ export declare enum ObservationLevel {
9
+ DEBUG = "DEBUG",
10
+ DEFAULT = "DEFAULT",
11
+ WARNING = "WARNING",
12
+ ERROR = "ERROR"
13
+ }
14
+ /**
15
+ * Ingestion event type constants.
16
+ * These match the Langfuse API exactly so the server can process them
17
+ * without any translation layer.
18
+ */
19
+ export declare const IngestionEventType: {
20
+ readonly TRACE_CREATE: "trace-create";
21
+ readonly SPAN_CREATE: "span-create";
22
+ readonly SPAN_UPDATE: "span-update";
23
+ readonly GENERATION_CREATE: "generation-create";
24
+ readonly GENERATION_UPDATE: "generation-update";
25
+ readonly EVENT_CREATE: "event-create";
26
+ readonly SCORE_CREATE: "score-create";
27
+ readonly SDK_LOG: "sdk-log";
28
+ };
29
+ export type IngestionEventType = (typeof IngestionEventType)[keyof typeof IngestionEventType];
30
+ /** Configuration accepted by all observability client constructors. */
31
+ export interface ObservabilityClientConfig {
32
+ /** Public API key (used as the Basic-auth username). */
33
+ publicKey: string;
34
+ /** Secret API key (used as the Basic-auth password). */
35
+ secretKey: string;
36
+ /**
37
+ * Base URL of the observability server.
38
+ * @default "http://localhost:3000"
39
+ */
40
+ baseUrl?: string;
41
+ /**
42
+ * Number of events to buffer before auto-flushing.
43
+ * @default 15
44
+ */
45
+ flushAt?: number;
46
+ /**
47
+ * Interval in milliseconds between periodic flushes.
48
+ * @default 10000
49
+ */
50
+ flushInterval?: number;
51
+ /**
52
+ * Maximum number of retry attempts for failed network requests.
53
+ * Uses exponential backoff between retries.
54
+ * @default 3
55
+ */
56
+ maxRetries?: number;
57
+ /**
58
+ * When false the SDK silently drops all events.
59
+ * Useful for disabling observability in certain environments.
60
+ * @default true
61
+ */
62
+ enabled?: boolean;
63
+ /**
64
+ * Application release / version tag attached to every trace.
65
+ * Helps correlate traces with deployments.
66
+ */
67
+ release?: string;
68
+ /**
69
+ * Per-request timeout in milliseconds for flush HTTP calls.
70
+ * @default 10000
71
+ */
72
+ requestTimeout?: number;
73
+ }
74
+ /** Standard token / cost usage counters. */
75
+ export interface UsageParams {
76
+ /** Number of input tokens. */
77
+ input?: number;
78
+ /** Number of output tokens. */
79
+ output?: number;
80
+ /** Total tokens (input + output). If omitted, computed from input + output. */
81
+ total?: number;
82
+ /** Unit label, e.g. "TOKENS", "CHARACTERS", "IMAGES". */
83
+ unit?: string;
84
+ /** Cost of the input in USD. */
85
+ inputCost?: number;
86
+ /** Cost of the output in USD. */
87
+ outputCost?: number;
88
+ /** Total cost in USD. */
89
+ totalCost?: number;
90
+ }
91
+ /**
92
+ * Flexible usage details for models with non-standard billing dimensions.
93
+ * Keys are dimension names, values are numeric counts.
94
+ *
95
+ * @example
96
+ * { "cachedTokens": 200, "audioTokens": 50 }
97
+ */
98
+ export type UsageDetailsParams = Record<string, number>;
99
+ /** Parameters for creating or updating a trace. */
100
+ export interface TraceParams {
101
+ /** Client-generated trace ID. Auto-generated if omitted. */
102
+ id?: string;
103
+ /** Human-readable name for this trace. */
104
+ name?: string;
105
+ /** Identifies the end user. */
106
+ userId?: string;
107
+ /** Session grouping key. */
108
+ sessionId?: string;
109
+ /** The input payload (any serializable value). */
110
+ input?: unknown;
111
+ /** The output payload (any serializable value). */
112
+ output?: unknown;
113
+ /** Arbitrary key-value metadata. */
114
+ metadata?: Record<string, unknown>;
115
+ /** Tags for filtering and grouping. */
116
+ tags?: string[];
117
+ /** Whether this trace is publicly shareable. */
118
+ public?: boolean;
119
+ /** Application version / release override. */
120
+ version?: string;
121
+ /** ISO-8601 timestamp. Defaults to now. */
122
+ timestamp?: string;
123
+ }
124
+ /** Parameters for creating or updating an LLM generation observation. */
125
+ export interface GenerationParams {
126
+ /** Client-generated observation ID. Auto-generated if omitted. */
127
+ id?: string;
128
+ /** Trace this generation belongs to (set automatically when created via TraceClient). */
129
+ traceId?: string;
130
+ /** Parent observation ID for nesting. */
131
+ parentObservationId?: string;
132
+ /** Human-readable name. */
133
+ name?: string;
134
+ /** ISO-8601 start timestamp. */
135
+ startTime?: string;
136
+ /** ISO-8601 completion timestamp. */
137
+ endTime?: string;
138
+ /** ISO-8601 time of first token received (streaming). */
139
+ completionStartTime?: string;
140
+ /** Model identifier, e.g. "gpt-4o", "claude-3-opus". */
141
+ model?: string;
142
+ /** Model parameters (temperature, max_tokens, etc.). */
143
+ modelParameters?: Record<string, unknown>;
144
+ /** Prompt / messages sent to the model. */
145
+ input?: unknown;
146
+ /** Model response. */
147
+ output?: unknown;
148
+ /** Token / cost usage. */
149
+ usage?: UsageParams;
150
+ /** Extended usage details for non-standard billing. */
151
+ usageDetails?: UsageDetailsParams;
152
+ /** Arbitrary metadata. */
153
+ metadata?: Record<string, unknown>;
154
+ /** Observation severity level. */
155
+ level?: ObservationLevel;
156
+ /** Status message (e.g. error description). */
157
+ statusMessage?: string;
158
+ /** Application version override. */
159
+ version?: string;
160
+ /** Reference to a prompt template ID managed in the UI. */
161
+ promptName?: string;
162
+ /** Version of the prompt template. */
163
+ promptVersion?: number;
164
+ }
165
+ /** Parameters for creating or updating a span observation. */
166
+ export interface SpanParams {
167
+ /** Client-generated observation ID. Auto-generated if omitted. */
168
+ id?: string;
169
+ /** Trace this span belongs to (set automatically). */
170
+ traceId?: string;
171
+ /** Parent observation ID for nesting. */
172
+ parentObservationId?: string;
173
+ /** Human-readable name. */
174
+ name?: string;
175
+ /** ISO-8601 start timestamp. */
176
+ startTime?: string;
177
+ /** ISO-8601 end timestamp. */
178
+ endTime?: string;
179
+ /** Input payload. */
180
+ input?: unknown;
181
+ /** Output payload. */
182
+ output?: unknown;
183
+ /** Arbitrary metadata. */
184
+ metadata?: Record<string, unknown>;
185
+ /** Observation severity level. */
186
+ level?: ObservationLevel;
187
+ /** Status message. */
188
+ statusMessage?: string;
189
+ /** Application version override. */
190
+ version?: string;
191
+ }
192
+ /** Parameters for creating an event observation (no duration). */
193
+ export interface EventParams {
194
+ /** Client-generated observation ID. Auto-generated if omitted. */
195
+ id?: string;
196
+ /** Trace this event belongs to (set automatically). */
197
+ traceId?: string;
198
+ /** Parent observation ID for nesting. */
199
+ parentObservationId?: string;
200
+ /** Human-readable name. */
201
+ name?: string;
202
+ /** ISO-8601 timestamp. */
203
+ startTime?: string;
204
+ /** Input payload. */
205
+ input?: unknown;
206
+ /** Output payload. */
207
+ output?: unknown;
208
+ /** Arbitrary metadata. */
209
+ metadata?: Record<string, unknown>;
210
+ /** Observation severity level. */
211
+ level?: ObservationLevel;
212
+ /** Status message. */
213
+ statusMessage?: string;
214
+ /** Application version override. */
215
+ version?: string;
216
+ }
217
+ /** Parameters for creating a score (evaluation metric). */
218
+ export interface ScoreParams {
219
+ /** Client-generated score ID. Auto-generated if omitted. */
220
+ id?: string;
221
+ /** Trace to attach this score to. */
222
+ traceId: string;
223
+ /** Optional observation within the trace to score. */
224
+ observationId?: string;
225
+ /** Score name / metric key, e.g. "accuracy", "helpfulness". */
226
+ name: string;
227
+ /** Numeric score value. */
228
+ value: number;
229
+ /** Human-readable comment explaining the score. */
230
+ comment?: string;
231
+ /** Data type hint: "NUMERIC" or "BOOLEAN". */
232
+ dataType?: 'NUMERIC' | 'BOOLEAN';
233
+ /** Optional config ID for score definitions managed in the UI. */
234
+ configId?: string;
235
+ }
236
+ /** A single event in the ingestion batch. */
237
+ export interface IngestionEvent {
238
+ /** Unique event ID for deduplication. */
239
+ id: string;
240
+ /** Discriminator — one of the IngestionEventType constants. */
241
+ type: IngestionEventType;
242
+ /** ISO-8601 timestamp of when this event was created on the client. */
243
+ timestamp: string;
244
+ /** Event-specific payload. Shape depends on `type`. */
245
+ body: Record<string, unknown>;
246
+ /** Metadata about the SDK that produced this event. */
247
+ metadata?: {
248
+ /** SDK name, e.g. "@illuma-ai/observability-node". */
249
+ sdkName?: string;
250
+ /** SDK version. */
251
+ sdkVersion?: string;
252
+ /** Public key (for server-side correlation). */
253
+ publicKey?: string;
254
+ };
255
+ }
256
+ /**
257
+ * Batch request body sent to `POST /api/public/ingestion`.
258
+ * Mirrors the Langfuse batch ingestion contract.
259
+ */
260
+ export interface IngestionBatchRequest {
261
+ /** Array of ingestion events. */
262
+ batch: IngestionEvent[];
263
+ /** Optional metadata about the sending SDK. */
264
+ metadata?: {
265
+ sdkName?: string;
266
+ sdkVersion?: string;
267
+ publicKey?: string;
268
+ };
269
+ }
270
+ /** Per-event result within a 207 Multi-Status response. */
271
+ export interface IngestionEventResult {
272
+ /** The event ID this result refers to. */
273
+ id: string;
274
+ /** HTTP status code for this individual event. */
275
+ status: number;
276
+ /** Error message if status is not 2xx. */
277
+ message?: string;
278
+ }
279
+ /** Response body from `POST /api/public/ingestion` (207 Multi-Status). */
280
+ export interface IngestionBatchResponse {
281
+ /** Per-event success / failure results. */
282
+ successes: IngestionEventResult[];
283
+ errors: IngestionEventResult[];
284
+ }
285
+ /** Options for the abstract fetch method implemented by platform clients. */
286
+ export interface FetchOptions {
287
+ method: string;
288
+ headers: Record<string, string>;
289
+ body?: string;
290
+ signal?: AbortSignal;
291
+ }
292
+ /** Simplified response shape returned by platform fetch implementations. */
293
+ export interface FetchResponse {
294
+ status: number;
295
+ statusText: string;
296
+ json(): Promise<unknown>;
297
+ text(): Promise<string>;
298
+ ok: boolean;
299
+ }
300
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Core types for the Illuma Observability SDK.
3
+ *
4
+ * This module is the single source of truth for all observability types.
5
+ * It mirrors the Langfuse ingestion API contract so payloads are wire-compatible.
6
+ */
7
+ // ---------------------------------------------------------------------------
8
+ // Enums & Constants
9
+ // ---------------------------------------------------------------------------
10
+ /** Observation severity / log level. */
11
+ export var ObservationLevel;
12
+ (function (ObservationLevel) {
13
+ ObservationLevel["DEBUG"] = "DEBUG";
14
+ ObservationLevel["DEFAULT"] = "DEFAULT";
15
+ ObservationLevel["WARNING"] = "WARNING";
16
+ ObservationLevel["ERROR"] = "ERROR";
17
+ })(ObservationLevel || (ObservationLevel = {}));
18
+ /**
19
+ * Ingestion event type constants.
20
+ * These match the Langfuse API exactly so the server can process them
21
+ * without any translation layer.
22
+ */
23
+ export const IngestionEventType = {
24
+ // Traces
25
+ TRACE_CREATE: 'trace-create',
26
+ // Spans
27
+ SPAN_CREATE: 'span-create',
28
+ SPAN_UPDATE: 'span-update',
29
+ // Generations
30
+ GENERATION_CREATE: 'generation-create',
31
+ GENERATION_UPDATE: 'generation-update',
32
+ // Events (point-in-time observations)
33
+ EVENT_CREATE: 'event-create',
34
+ // Scores
35
+ SCORE_CREATE: 'score-create',
36
+ // SDK metadata
37
+ SDK_LOG: 'sdk-log',
38
+ };
39
+ //# sourceMappingURL=types.js.map