@cicctencent/agent-server 0.2.67 → 0.2.69

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.
Files changed (59) hide show
  1. package/dist/cjs/agent/agent-server.d.ts.map +1 -1
  2. package/dist/cjs/agent/agent-server.js +101 -15
  3. package/dist/cjs/agent/agent-server.js.map +1 -1
  4. package/dist/cjs/index.d.ts +5 -0
  5. package/dist/cjs/index.d.ts.map +1 -1
  6. package/dist/cjs/index.js +11 -3
  7. package/dist/cjs/index.js.map +1 -1
  8. package/dist/cjs/service/observability-exporter.d.ts +65 -0
  9. package/dist/cjs/service/observability-exporter.d.ts.map +1 -0
  10. package/dist/cjs/service/observability-exporter.js +438 -0
  11. package/dist/cjs/service/observability-exporter.js.map +1 -0
  12. package/dist/cjs/service/observability.service.d.ts +2 -0
  13. package/dist/cjs/service/observability.service.d.ts.map +1 -1
  14. package/dist/cjs/service/observability.service.js +4 -2
  15. package/dist/cjs/service/observability.service.js.map +1 -1
  16. package/dist/cjs/spi/index.d.ts +3 -0
  17. package/dist/cjs/spi/index.d.ts.map +1 -1
  18. package/dist/cjs/spi/index.js +6 -1
  19. package/dist/cjs/spi/index.js.map +1 -1
  20. package/dist/cjs/spi/observability-store.d.ts +67 -0
  21. package/dist/cjs/spi/observability-store.d.ts.map +1 -0
  22. package/dist/cjs/spi/observability-store.js +329 -0
  23. package/dist/cjs/spi/observability-store.js.map +1 -0
  24. package/dist/cjs/spi/store-sink-factory.d.ts +10 -0
  25. package/dist/cjs/spi/store-sink-factory.d.ts.map +1 -0
  26. package/dist/cjs/spi/store-sink-factory.js +134 -0
  27. package/dist/cjs/spi/store-sink-factory.js.map +1 -0
  28. package/dist/cjs/types.d.ts +8 -1
  29. package/dist/cjs/types.d.ts.map +1 -1
  30. package/dist/esm/agent/agent-server.d.ts.map +1 -1
  31. package/dist/esm/agent/agent-server.js +102 -16
  32. package/dist/esm/agent/agent-server.js.map +1 -1
  33. package/dist/esm/index.d.ts +5 -0
  34. package/dist/esm/index.d.ts.map +1 -1
  35. package/dist/esm/index.js +3 -0
  36. package/dist/esm/index.js.map +1 -1
  37. package/dist/esm/service/observability-exporter.d.ts +65 -0
  38. package/dist/esm/service/observability-exporter.d.ts.map +1 -0
  39. package/dist/esm/service/observability-exporter.js +399 -0
  40. package/dist/esm/service/observability-exporter.js.map +1 -0
  41. package/dist/esm/service/observability.service.d.ts +2 -0
  42. package/dist/esm/service/observability.service.d.ts.map +1 -1
  43. package/dist/esm/service/observability.service.js +2 -1
  44. package/dist/esm/service/observability.service.js.map +1 -1
  45. package/dist/esm/spi/index.d.ts +3 -0
  46. package/dist/esm/spi/index.d.ts.map +1 -1
  47. package/dist/esm/spi/index.js +3 -0
  48. package/dist/esm/spi/index.js.map +1 -1
  49. package/dist/esm/spi/observability-store.d.ts +67 -0
  50. package/dist/esm/spi/observability-store.d.ts.map +1 -0
  51. package/dist/esm/spi/observability-store.js +325 -0
  52. package/dist/esm/spi/observability-store.js.map +1 -0
  53. package/dist/esm/spi/store-sink-factory.d.ts +10 -0
  54. package/dist/esm/spi/store-sink-factory.d.ts.map +1 -0
  55. package/dist/esm/spi/store-sink-factory.js +131 -0
  56. package/dist/esm/spi/store-sink-factory.js.map +1 -0
  57. package/dist/esm/types.d.ts +8 -1
  58. package/dist/esm/types.d.ts.map +1 -1
  59. package/package.json +2 -2
@@ -0,0 +1,65 @@
1
+ import type { ObservationRecord, TraceRecord } from '@cicctencent/agent-core';
2
+ export interface ExporterConfig {
3
+ enabled: boolean;
4
+ endpoint: string;
5
+ publicKey?: string;
6
+ secretKey?: string;
7
+ headers?: Record<string, string>;
8
+ exportIntervalMs?: number;
9
+ maxBatchSize?: number;
10
+ }
11
+ export interface ObservabilityExporter {
12
+ name: string;
13
+ config: ExporterConfig;
14
+ enqueueTrace(trace: TraceRecord): void;
15
+ enqueueObservation(observation: ObservationRecord): void;
16
+ flush(): Promise<void>;
17
+ start(): void;
18
+ stop(): void;
19
+ }
20
+ export declare class OtlpExporter implements ObservabilityExporter {
21
+ readonly name = "otlp";
22
+ config: ExporterConfig;
23
+ private timer?;
24
+ private pending;
25
+ private traceObservationMap;
26
+ private readonly maxQueueSize;
27
+ constructor(config: ExporterConfig);
28
+ enqueueTrace(trace: TraceRecord): void;
29
+ enqueueObservation(observation: ObservationRecord): void;
30
+ start(): void;
31
+ stop(): void;
32
+ flush(): Promise<void>;
33
+ private sendOtlp;
34
+ private traceToOtlpSpan;
35
+ private observationToOtlpSpan;
36
+ private toOtlpAttributes;
37
+ private deriveSpanId;
38
+ private httpPost;
39
+ }
40
+ export declare class LangfuseExporter implements ObservabilityExporter {
41
+ readonly name = "langfuse";
42
+ config: ExporterConfig;
43
+ private timer?;
44
+ private pending;
45
+ private readonly maxQueueSize;
46
+ constructor(config: ExporterConfig);
47
+ enqueueTrace(trace: TraceRecord): void;
48
+ enqueueObservation(obs: ObservationRecord): void;
49
+ start(): void;
50
+ stop(): void;
51
+ flush(): Promise<void>;
52
+ private sendIngestion;
53
+ }
54
+ export declare class ObservabilityExporterManager {
55
+ private exporters;
56
+ addExporter(exporter: ObservabilityExporter): void;
57
+ removeExporter(name: string): void;
58
+ getExporters(): ObservabilityExporter[];
59
+ getExporter(name: string): ObservabilityExporter | undefined;
60
+ enqueueTrace(trace: TraceRecord): void;
61
+ enqueueObservation(observation: ObservationRecord): void;
62
+ flushAll(): Promise<void>;
63
+ stopAll(): void;
64
+ }
65
+ //# sourceMappingURL=observability-exporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observability-exporter.d.ts","sourceRoot":"","sources":["../../../src/service/observability-exporter.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,iBAAiB,EACjB,WAAW,EACZ,MAAM,yBAAyB,CAAC;AAMjC,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,cAAc,CAAC;IACvB,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IACvC,kBAAkB,CAAC,WAAW,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACzD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,KAAK,IAAI,IAAI,CAAC;IACd,IAAI,IAAI,IAAI,CAAC;CACd;AAMD,qBAAa,YAAa,YAAW,qBAAqB;IACxD,QAAQ,CAAC,IAAI,UAAU;IACvB,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,CAAC,KAAK,CAAC,CAAiB;IAC/B,OAAO,CAAC,OAAO,CAAwE;IACvF,OAAO,CAAC,mBAAmB,CAA0C;IACrE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAE1B,MAAM,EAAE,cAAc;IAQlC,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAYtC,kBAAkB,CAAC,WAAW,EAAE,iBAAiB,GAAG,IAAI;IAOxD,KAAK,IAAI,IAAI;IASb,IAAI,IAAI,IAAI;IAON,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAiBd,QAAQ;IA0BtB,OAAO,CAAC,eAAe;IA0BvB,OAAO,CAAC,qBAAqB;IA2B7B,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,QAAQ;CAyCjB;AAMD,qBAAa,gBAAiB,YAAW,qBAAqB;IAC5D,QAAQ,CAAC,IAAI,cAAc;IAC3B,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,CAAC,KAAK,CAAC,CAAiB;IAC/B,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAE1B,MAAM,EAAE,cAAc;IAQlC,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IA4BtC,kBAAkB,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI;IAmChD,KAAK,IAAI,IAAI;IASb,IAAI,IAAI,IAAI;IAON,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAgBd,aAAa;CA0C5B;AAiBD,qBAAa,4BAA4B;IACvC,OAAO,CAAC,SAAS,CAA+B;IAEhD,WAAW,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI;IAKlD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQlC,YAAY,IAAI,qBAAqB,EAAE;IAIvC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;IAI5D,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAMtC,kBAAkB,CAAC,WAAW,EAAE,iBAAiB,GAAG,IAAI;IAMlD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,OAAO,IAAI,IAAI;CAKhB"}
@@ -0,0 +1,438 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // Observability Exporters - OTLP & Langfuse export
4
+ // ============================================================
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.ObservabilityExporterManager = exports.LangfuseExporter = exports.OtlpExporter = void 0;
40
+ const http = __importStar(require("http"));
41
+ const https = __importStar(require("https"));
42
+ // ============================================================
43
+ // OtlpExporter - exports traces as OTLP JSON to OTLP Collector / Langfuse OTLP endpoint
44
+ // ============================================================
45
+ class OtlpExporter {
46
+ name = 'otlp';
47
+ config;
48
+ timer;
49
+ pending = [];
50
+ traceObservationMap = new Map();
51
+ maxQueueSize = 10000;
52
+ constructor(config) {
53
+ this.config = {
54
+ exportIntervalMs: 5000,
55
+ maxBatchSize: 100,
56
+ ...config,
57
+ };
58
+ }
59
+ enqueueTrace(trace) {
60
+ if (!this.config.enabled)
61
+ return;
62
+ const observations = this.traceObservationMap.get(trace.traceId) || [];
63
+ this.traceObservationMap.delete(trace.traceId);
64
+ if (this.pending.length < this.maxQueueSize) {
65
+ this.pending.push({ trace, observations });
66
+ }
67
+ if (this.pending.length >= (this.config.maxBatchSize || 100)) {
68
+ this.flush().catch(() => { });
69
+ }
70
+ }
71
+ enqueueObservation(observation) {
72
+ if (!this.config.enabled)
73
+ return;
74
+ const list = this.traceObservationMap.get(observation.traceId) || [];
75
+ list.push(observation);
76
+ this.traceObservationMap.set(observation.traceId, list);
77
+ }
78
+ start() {
79
+ if (!this.config.enabled)
80
+ return;
81
+ this.stop();
82
+ this.timer = setInterval(() => {
83
+ this.flush().catch(() => { });
84
+ }, this.config.exportIntervalMs || 5000);
85
+ if (this.timer && typeof this.timer === 'object' && 'unref' in this.timer)
86
+ this.timer.unref();
87
+ }
88
+ stop() {
89
+ if (this.timer) {
90
+ clearInterval(this.timer);
91
+ this.timer = undefined;
92
+ }
93
+ }
94
+ async flush() {
95
+ if (!this.config.enabled || !this.config.endpoint)
96
+ return;
97
+ if (this.pending.length === 0)
98
+ return;
99
+ const batch = [...this.pending];
100
+ this.pending = [];
101
+ try {
102
+ await this.sendOtlp(batch);
103
+ }
104
+ catch (e) {
105
+ // re-queue on failure, but cap queue size to prevent OOM
106
+ const reQueue = batch.slice(0, this.maxQueueSize - this.pending.length);
107
+ this.pending.unshift(...reQueue);
108
+ console.error('[OtlpExporter] export failed:', e);
109
+ }
110
+ }
111
+ async sendOtlp(batch) {
112
+ const spans = batch.flatMap(({ trace, observations }) => {
113
+ const traceSpans = [
114
+ this.traceToOtlpSpan(trace),
115
+ ...observations.map(o => this.observationToOtlpSpan(o, trace)),
116
+ ];
117
+ return traceSpans;
118
+ });
119
+ const payload = {
120
+ resourceSpans: [{
121
+ resource: {
122
+ attributes: [
123
+ { key: 'service.name', value: { stringValue: 'agent-server' } },
124
+ ],
125
+ },
126
+ scopeSpans: [{
127
+ scope: { name: 'agent-observability' },
128
+ spans,
129
+ }],
130
+ }],
131
+ };
132
+ await this.httpPost(JSON.stringify(payload));
133
+ }
134
+ traceToOtlpSpan(trace) {
135
+ const startNs = (trace.startTime * 1_000_000).toString();
136
+ const endNs = (trace.endTime ? trace.endTime * 1_000_000 : Date.now() * 1_000_000).toString();
137
+ return {
138
+ traceId: trace.traceId,
139
+ spanId: this.deriveSpanId(trace.traceId),
140
+ name: trace.name || 'agent.trace',
141
+ kind: 1,
142
+ startTimeUnixNano: startNs,
143
+ endTimeUnixNano: endNs,
144
+ status: { code: trace.status === 'error' ? 2 : 1 },
145
+ attributes: this.toOtlpAttributes({
146
+ 'gen_ai.system': 'agent',
147
+ 'session.id': trace.sessionId,
148
+ 'thread.id': trace.threadId,
149
+ 'application.id': trace.applicationId,
150
+ 'agent.profile.id': trace.agentProfileId,
151
+ 'user.id': trace.userId,
152
+ 'trace.status': trace.status,
153
+ 'trace.duration_ms': trace.durationMs,
154
+ 'trace.total_tokens': trace.usage?.totalTokens,
155
+ 'trace.cost': trace.usage?.cost,
156
+ }),
157
+ };
158
+ }
159
+ observationToOtlpSpan(obs, trace) {
160
+ const startNs = (obs.startTime * 1_000_000).toString();
161
+ const endNs = (obs.endTime ? obs.endTime * 1_000_000 : Date.now() * 1_000_000).toString();
162
+ const isGeneration = obs.type === 'generation';
163
+ return {
164
+ traceId: trace.traceId,
165
+ spanId: obs.id,
166
+ parentSpanId: obs.parentObservationId || this.deriveSpanId(trace.traceId),
167
+ name: obs.name,
168
+ kind: isGeneration ? 3 : 1, // SPAN_KIND_CLIENT for generation, INTERNAL for span
169
+ startTimeUnixNano: startNs,
170
+ endTimeUnixNano: endNs,
171
+ status: { code: obs.status === 'error' ? 2 : 1 },
172
+ attributes: this.toOtlpAttributes({
173
+ 'gen_ai.system': obs.provider || 'unknown',
174
+ 'gen_ai.request.model': obs.model,
175
+ 'gen_ai.usage.prompt_tokens': obs.usage?.promptTokens,
176
+ 'gen_ai.usage.completion_tokens': obs.usage?.completionTokens,
177
+ 'gen_ai.usage.total_tokens': obs.usage?.totalTokens,
178
+ 'observation.type': obs.type,
179
+ 'observation.duration_ms': obs.durationMs,
180
+ 'observation.error': obs.error,
181
+ }),
182
+ };
183
+ }
184
+ toOtlpAttributes(obj) {
185
+ return Object.entries(obj)
186
+ .filter(([, v]) => v !== undefined && v !== null)
187
+ .map(([k, v]) => ({ key: k, value: { stringValue: String(v) } }));
188
+ }
189
+ deriveSpanId(traceId) {
190
+ // 使用确定性 hash 生成 16 位 hex span ID,避免不同 traceId 产生重复 span ID
191
+ let hash = 0;
192
+ for (let i = 0; i < traceId.length; i++) {
193
+ const ch = traceId.charCodeAt(i);
194
+ hash = ((hash << 5) - hash + ch) | 0; // 32 位整数溢出
195
+ }
196
+ const hex = Math.abs(hash).toString(16).padStart(8, '0');
197
+ // 补充 traceId 中的 hex 字符凑齐 16 位
198
+ const traceHex = (traceId.replace(/[^a-f0-9]/gi, '').padEnd(8, '0').slice(0, 8));
199
+ return (hex + traceHex).padEnd(16, '0').slice(0, 16);
200
+ }
201
+ httpPost(body) {
202
+ const url = new URL(this.config.endpoint);
203
+ const isHttps = url.protocol === 'https:';
204
+ const httpModule = isHttps ? https : http;
205
+ const headers = {
206
+ 'Content-Type': 'application/json',
207
+ 'Content-Length': String(Buffer.byteLength(body)),
208
+ ...this.config.headers,
209
+ };
210
+ // Basic Auth for Langfuse OTLP
211
+ if (this.config.publicKey && this.config.secretKey) {
212
+ const auth = Buffer.from(`${this.config.publicKey}:${this.config.secretKey}`).toString('base64');
213
+ headers['Authorization'] = `Basic ${auth}`;
214
+ }
215
+ return new Promise((resolve, reject) => {
216
+ const req = httpModule.request({
217
+ hostname: url.hostname,
218
+ port: url.port || (isHttps ? 443 : 80),
219
+ path: url.pathname + url.search,
220
+ method: 'POST',
221
+ headers,
222
+ timeout: 30000,
223
+ }, (res) => {
224
+ let data = '';
225
+ res.on('data', chunk => data += chunk);
226
+ res.on('end', () => {
227
+ if (res.statusCode && res.statusCode >= 200 && res.statusCode < 300) {
228
+ resolve();
229
+ }
230
+ else {
231
+ reject(new Error(`OTLP export failed: ${res.statusCode} ${data}`));
232
+ }
233
+ });
234
+ });
235
+ req.on('error', reject);
236
+ req.on('timeout', () => { req.destroy(new Error('OTLP export timeout')); });
237
+ req.write(body);
238
+ req.end();
239
+ });
240
+ }
241
+ }
242
+ exports.OtlpExporter = OtlpExporter;
243
+ // ============================================================
244
+ // LangfuseExporter - exports via Langfuse Ingestion REST API
245
+ // ============================================================
246
+ class LangfuseExporter {
247
+ name = 'langfuse';
248
+ config;
249
+ timer;
250
+ pending = [];
251
+ maxQueueSize = 10000;
252
+ constructor(config) {
253
+ this.config = {
254
+ exportIntervalMs: 1000,
255
+ maxBatchSize: 100,
256
+ ...config,
257
+ };
258
+ }
259
+ enqueueTrace(trace) {
260
+ if (!this.config.enabled)
261
+ return;
262
+ const event = {
263
+ id: trace.traceId,
264
+ type: 'trace-create',
265
+ timestamp: new Date(trace.startTime).toISOString(),
266
+ body: {
267
+ id: trace.traceId,
268
+ name: trace.name || 'agent.trace',
269
+ sessionId: trace.sessionId,
270
+ userId: trace.userId ? String(trace.userId) : undefined,
271
+ metadata: {
272
+ threadId: trace.threadId,
273
+ applicationId: trace.applicationId,
274
+ agentProfileId: trace.agentProfileId,
275
+ },
276
+ input: trace.input,
277
+ output: trace.output,
278
+ },
279
+ };
280
+ if (this.pending.length < this.maxQueueSize) {
281
+ this.pending.push(event);
282
+ }
283
+ if (this.pending.length >= (this.config.maxBatchSize || 100)) {
284
+ this.flush().catch(() => { });
285
+ }
286
+ }
287
+ enqueueObservation(obs) {
288
+ if (!this.config.enabled)
289
+ return;
290
+ const event = {
291
+ id: obs.id,
292
+ type: obs.type === 'generation' ? 'generation-create' : obs.type === 'event' ? 'event-create' : 'span-create',
293
+ timestamp: new Date(obs.startTime).toISOString(),
294
+ body: {
295
+ id: obs.id,
296
+ traceId: obs.traceId,
297
+ parentObservationId: obs.parentObservationId,
298
+ name: obs.name,
299
+ startTime: new Date(obs.startTime).toISOString(),
300
+ endTime: obs.endTime ? new Date(obs.endTime).toISOString() : undefined,
301
+ model: obs.model,
302
+ input: obs.input,
303
+ output: obs.output,
304
+ metadata: {
305
+ provider: obs.provider,
306
+ type: obs.type,
307
+ ...(obs.metadata || {}),
308
+ },
309
+ usage: obs.usage ? {
310
+ promptTokens: obs.usage.promptTokens,
311
+ completionTokens: obs.usage.completionTokens,
312
+ totalTokens: obs.usage.totalTokens,
313
+ } : undefined,
314
+ status: obs.status === 'error' ? 'ERROR' : 'OK',
315
+ level: obs.status === 'error' ? 'ERROR' : 'DEFAULT',
316
+ },
317
+ };
318
+ if (this.pending.length < this.maxQueueSize) {
319
+ this.pending.push(event);
320
+ }
321
+ }
322
+ start() {
323
+ if (!this.config.enabled)
324
+ return;
325
+ this.stop();
326
+ this.timer = setInterval(() => {
327
+ this.flush().catch(() => { });
328
+ }, this.config.exportIntervalMs || 1000);
329
+ if (this.timer && typeof this.timer === 'object' && 'unref' in this.timer)
330
+ this.timer.unref();
331
+ }
332
+ stop() {
333
+ if (this.timer) {
334
+ clearInterval(this.timer);
335
+ this.timer = undefined;
336
+ }
337
+ }
338
+ async flush() {
339
+ if (!this.config.enabled || !this.config.endpoint)
340
+ return;
341
+ if (this.pending.length === 0)
342
+ return;
343
+ const batch = [...this.pending];
344
+ this.pending = [];
345
+ try {
346
+ await this.sendIngestion(batch);
347
+ }
348
+ catch (e) {
349
+ const reQueue = batch.slice(0, this.maxQueueSize - this.pending.length);
350
+ this.pending.unshift(...reQueue);
351
+ console.error('[LangfuseExporter] ingestion failed:', e);
352
+ }
353
+ }
354
+ async sendIngestion(events) {
355
+ const payload = JSON.stringify({ batchEvents: events });
356
+ const url = new URL(this.config.endpoint);
357
+ const isHttps = url.protocol === 'https:';
358
+ const httpModule = isHttps ? https : http;
359
+ const headers = {
360
+ 'Content-Type': 'application/json',
361
+ 'Content-Length': String(Buffer.byteLength(payload)),
362
+ };
363
+ // Langfuse uses Basic Auth with public key : secret key
364
+ if (this.config.publicKey && this.config.secretKey) {
365
+ const auth = Buffer.from(`${this.config.publicKey}:${this.config.secretKey}`).toString('base64');
366
+ headers['Authorization'] = `Basic ${auth}`;
367
+ }
368
+ return new Promise((resolve, reject) => {
369
+ const req = httpModule.request({
370
+ hostname: url.hostname,
371
+ port: url.port || (isHttps ? 443 : 80),
372
+ path: url.pathname + url.search,
373
+ method: 'POST',
374
+ headers,
375
+ timeout: 30000,
376
+ }, (res) => {
377
+ let data = '';
378
+ res.on('data', chunk => data += chunk);
379
+ res.on('end', () => {
380
+ if (res.statusCode && res.statusCode >= 200 && res.statusCode < 300) {
381
+ resolve();
382
+ }
383
+ else {
384
+ reject(new Error(`Langfuse ingestion failed: ${res.statusCode} ${data}`));
385
+ }
386
+ });
387
+ });
388
+ req.on('error', reject);
389
+ req.on('timeout', () => { req.destroy(new Error('Langfuse ingestion timeout')); });
390
+ req.write(payload);
391
+ req.end();
392
+ });
393
+ }
394
+ }
395
+ exports.LangfuseExporter = LangfuseExporter;
396
+ // ============================================================
397
+ // Exporter Manager - manages multiple exporters
398
+ // ============================================================
399
+ class ObservabilityExporterManager {
400
+ exporters = [];
401
+ addExporter(exporter) {
402
+ this.exporters.push(exporter);
403
+ exporter.start();
404
+ }
405
+ removeExporter(name) {
406
+ const idx = this.exporters.findIndex(e => e.name === name);
407
+ if (idx !== -1) {
408
+ this.exporters[idx].stop();
409
+ this.exporters.splice(idx, 1);
410
+ }
411
+ }
412
+ getExporters() {
413
+ return [...this.exporters];
414
+ }
415
+ getExporter(name) {
416
+ return this.exporters.find(e => e.name === name);
417
+ }
418
+ enqueueTrace(trace) {
419
+ for (const e of this.exporters) {
420
+ e.enqueueTrace(trace);
421
+ }
422
+ }
423
+ enqueueObservation(observation) {
424
+ for (const e of this.exporters) {
425
+ e.enqueueObservation(observation);
426
+ }
427
+ }
428
+ async flushAll() {
429
+ await Promise.allSettled(this.exporters.map(e => e.flush()));
430
+ }
431
+ stopAll() {
432
+ for (const e of this.exporters) {
433
+ e.stop();
434
+ }
435
+ }
436
+ }
437
+ exports.ObservabilityExporterManager = ObservabilityExporterManager;
438
+ //# sourceMappingURL=observability-exporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observability-exporter.js","sourceRoot":"","sources":["../../../src/service/observability-exporter.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
1
  export { logEvent, setLogTransport } from '@cicctencent/agent-core';
2
2
  export type { LogLevel, ObservabilityEvent, LogTransport } from '@cicctencent/agent-core';
3
+ export { InMemoryObservabilityStore } from '../spi/observability-store.js';
4
+ export type { ObservabilityStoreProvider } from '../spi/observability-store.js';
3
5
  //# sourceMappingURL=observability.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"observability.service.d.ts","sourceRoot":"","sources":["../../../src/service/observability.service.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACpE,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"observability.service.d.ts","sourceRoot":"","sources":["../../../src/service/observability.service.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACpE,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE1F,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,YAAY,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC"}
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
  // ============================================================
3
- // ObservabilityService 可观测性服务(封装 agent-core)
3
+ // ObservabilityService - 可观测性服务(封装 agent-core + agent-server SPI
4
4
  // ============================================================
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.setLogTransport = exports.logEvent = void 0;
6
+ exports.InMemoryObservabilityStore = exports.setLogTransport = exports.logEvent = void 0;
7
7
  var agent_core_1 = require("@cicctencent/agent-core");
8
8
  Object.defineProperty(exports, "logEvent", { enumerable: true, get: function () { return agent_core_1.logEvent; } });
9
9
  Object.defineProperty(exports, "setLogTransport", { enumerable: true, get: function () { return agent_core_1.setLogTransport; } });
10
+ var observability_store_ts_1 = require("../spi/observability-store.js");
11
+ Object.defineProperty(exports, "InMemoryObservabilityStore", { enumerable: true, get: function () { return observability_store_ts_1.InMemoryObservabilityStore; } });
10
12
  //# sourceMappingURL=observability.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"observability.service.js","sourceRoot":"","sources":["../../../src/service/observability.service.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,+CAA+C;AAC/C,+DAA+D;;;AAE/D,sDAAoE;AAA3D,sGAAA,QAAQ,OAAA;AAAE,6GAAA,eAAe,OAAA"}
1
+ {"version":3,"file":"observability.service.js","sourceRoot":"","sources":["../../../src/service/observability.service.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,kEAAkE;AAClE,+DAA+D;;;AAE/D,sDAAoE;AAA3D,sGAAA,QAAQ,OAAA;AAAE,6GAAA,eAAe,OAAA;AAGlC,wEAA2E;AAAlE,oIAAA,0BAA0B,OAAA"}
@@ -86,6 +86,9 @@ export type { BaseThreadEntity, BaseMessageEntity, BaseWorkspaceEntity, BaseAgen
86
86
  export { JsonFileKVStorage, JsonFileListStorage, InMemoryKVStorage, InMemoryListStorage, DatabaseListStorage, createJsonFileStorage, createInMemoryStorage, } from './storage.js';
87
87
  export { ExpressSSEAdapter, KoaSSEAdapter, FastifySSEAdapter, NativeHttpSSEAdapter, adaptSSE, ExpressRequestAdapter, KoaRequestAdapter, adaptRequest, CustomSSEAdapter, } from './adapters.js';
88
88
  export * from './store-interfaces.js';
89
+ export { InMemoryObservabilityStore, } from './observability-store.js';
90
+ export type { ObservabilityStoreProvider, } from './observability-store.js';
91
+ export { createStoreSink } from './store-sink-factory.js';
89
92
  export * from './channel-types.js';
90
93
  /**
91
94
  * ## SPI 使用示例
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/spi/index.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmFG;AAGH,YAAY,EAEV,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAGlB,aAAa,EAGb,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EAGZ,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EAGnB,kBAAkB,EAClB,qBAAqB,EAGrB,qBAAqB,EAGrB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,cAAc,GACf,MAAM,YAAY,CAAC;AAGpB,OAAO,EAEL,iBAAiB,EACjB,mBAAmB,EAGnB,iBAAiB,EACjB,mBAAmB,EAGnB,mBAAmB,EAGnB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAEL,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,QAAQ,EAGR,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EAGZ,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAGvB,cAAc,uBAAuB,CAAC;AAGtC,cAAc,oBAAoB,CAAC;AAMnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyGG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/spi/index.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmFG;AAGH,YAAY,EAEV,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAGlB,aAAa,EAGb,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EAGZ,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EAGnB,kBAAkB,EAClB,qBAAqB,EAGrB,qBAAqB,EAGrB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,cAAc,GACf,MAAM,YAAY,CAAC;AAGpB,OAAO,EAEL,iBAAiB,EACjB,mBAAmB,EAGnB,iBAAiB,EACjB,mBAAmB,EAGnB,mBAAmB,EAGnB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAEL,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,QAAQ,EAGR,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EAGZ,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAGvB,cAAc,uBAAuB,CAAC;AAGtC,OAAO,EACL,0BAA0B,GAC3B,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,0BAA0B,GAC3B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D,cAAc,oBAAoB,CAAC;AAMnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyGG"}
@@ -101,7 +101,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
101
101
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
102
102
  };
103
103
  Object.defineProperty(exports, "__esModule", { value: true });
104
- exports.CustomSSEAdapter = exports.adaptRequest = exports.KoaRequestAdapter = exports.ExpressRequestAdapter = exports.adaptSSE = exports.NativeHttpSSEAdapter = exports.FastifySSEAdapter = exports.KoaSSEAdapter = exports.ExpressSSEAdapter = exports.createInMemoryStorage = exports.createJsonFileStorage = exports.DatabaseListStorage = exports.InMemoryListStorage = exports.InMemoryKVStorage = exports.JsonFileListStorage = exports.JsonFileKVStorage = void 0;
104
+ exports.createStoreSink = exports.InMemoryObservabilityStore = exports.CustomSSEAdapter = exports.adaptRequest = exports.KoaRequestAdapter = exports.ExpressRequestAdapter = exports.adaptSSE = exports.NativeHttpSSEAdapter = exports.FastifySSEAdapter = exports.KoaSSEAdapter = exports.ExpressSSEAdapter = exports.createInMemoryStorage = exports.createJsonFileStorage = exports.DatabaseListStorage = exports.InMemoryListStorage = exports.InMemoryKVStorage = exports.JsonFileListStorage = exports.JsonFileKVStorage = void 0;
105
105
  // ---- 存储适配器(参考实现) ----
106
106
  var storage_ts_1 = require("./storage.js");
107
107
  // JSON 文件存储(默认实现)
@@ -131,6 +131,11 @@ Object.defineProperty(exports, "adaptRequest", { enumerable: true, get: function
131
131
  Object.defineProperty(exports, "CustomSSEAdapter", { enumerable: true, get: function () { return adapters_ts_1.CustomSSEAdapter; } });
132
132
  // ---- Store 接口(从 agent-midway 迁移) ----
133
133
  __exportStar(require("./store-interfaces.js"), exports);
134
+ // ---- 可观测性 SPI ----
135
+ var observability_store_ts_1 = require("./observability-store.js");
136
+ Object.defineProperty(exports, "InMemoryObservabilityStore", { enumerable: true, get: function () { return observability_store_ts_1.InMemoryObservabilityStore; } });
137
+ var store_sink_factory_ts_1 = require("./store-sink-factory.js");
138
+ Object.defineProperty(exports, "createStoreSink", { enumerable: true, get: function () { return store_sink_factory_ts_1.createStoreSink; } });
134
139
  // ---- 渠道类型(从 agent-midway 迁移) ----
135
140
  __exportStar(require("./channel-types.js"), exports);
136
141
  // ============================================================
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/spi/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,WAAW;AACX,+DAA+D;AAC/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmFG;;;;;;;;;;;;;;;;;AAyCH,wBAAwB;AACxB,2CAesB;AAdpB,kBAAkB;AAClB,+GAAA,iBAAiB,OAAA;AACjB,iHAAA,mBAAmB,OAAA;AAEnB,YAAY;AACZ,+GAAA,iBAAiB,OAAA;AACjB,iHAAA,mBAAmB,OAAA;AAEnB,iBAAiB;AACjB,iHAAA,mBAAmB,OAAA;AAEnB,OAAO;AACP,mHAAA,qBAAqB,OAAA;AACrB,mHAAA,qBAAqB,OAAA;AAGvB,wBAAwB;AACxB,6CAeuB;AAdrB,UAAU;AACV,gHAAA,iBAAiB,OAAA;AACjB,4GAAA,aAAa,OAAA;AACb,gHAAA,iBAAiB,OAAA;AACjB,mHAAA,oBAAoB,OAAA;AACpB,uGAAA,QAAQ,OAAA;AAER,QAAQ;AACR,oHAAA,qBAAqB,OAAA;AACrB,gHAAA,iBAAiB,OAAA;AACjB,2GAAA,YAAY,OAAA;AAEZ,WAAW;AACX,+GAAA,gBAAgB,OAAA;AAGlB,wCAAwC;AACxC,wDAAsC;AAEtC,oCAAoC;AACpC,qDAAmC;AAEnC,+DAA+D;AAC/D,WAAW;AACX,+DAA+D;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyGG"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/spi/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,WAAW;AACX,+DAA+D;AAC/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmFG;;;;;;;;;;;;;;;;;AAyCH,wBAAwB;AACxB,2CAesB;AAdpB,kBAAkB;AAClB,+GAAA,iBAAiB,OAAA;AACjB,iHAAA,mBAAmB,OAAA;AAEnB,YAAY;AACZ,+GAAA,iBAAiB,OAAA;AACjB,iHAAA,mBAAmB,OAAA;AAEnB,iBAAiB;AACjB,iHAAA,mBAAmB,OAAA;AAEnB,OAAO;AACP,mHAAA,qBAAqB,OAAA;AACrB,mHAAA,qBAAqB,OAAA;AAGvB,wBAAwB;AACxB,6CAeuB;AAdrB,UAAU;AACV,gHAAA,iBAAiB,OAAA;AACjB,4GAAA,aAAa,OAAA;AACb,gHAAA,iBAAiB,OAAA;AACjB,mHAAA,oBAAoB,OAAA;AACpB,uGAAA,QAAQ,OAAA;AAER,QAAQ;AACR,oHAAA,qBAAqB,OAAA;AACrB,gHAAA,iBAAiB,OAAA;AACjB,2GAAA,YAAY,OAAA;AAEZ,WAAW;AACX,+GAAA,gBAAgB,OAAA;AAGlB,wCAAwC;AACxC,wDAAsC;AAEtC,qBAAqB;AACrB,mEAEkC;AADhC,oIAAA,0BAA0B,OAAA;AAK5B,iEAA0D;AAAjD,wHAAA,eAAe,OAAA;AAExB,oCAAoC;AACpC,qDAAmC;AAEnC,+DAA+D;AAC/D,WAAW;AACX,+DAA+D;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyGG"}