@amaster.ai/pi-telemetry 0.1.2-beta.61 → 0.1.2-beta.63
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.
- package/README.md +12 -14
- package/dist/config.d.ts +0 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/extension.d.ts.map +1 -1
- package/dist/extension.js +84 -28
- package/dist/extension.js.map +1 -1
- package/dist/index.d.ts +6 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/langfuse/config.d.ts +8 -0
- package/dist/langfuse/config.d.ts.map +1 -0
- package/dist/langfuse/config.js +79 -0
- package/dist/langfuse/config.js.map +1 -0
- package/dist/langfuse/exporters.d.ts +34 -0
- package/dist/langfuse/exporters.d.ts.map +1 -0
- package/dist/langfuse/exporters.js +466 -0
- package/dist/langfuse/exporters.js.map +1 -0
- package/dist/langfuse/mapping.d.ts +24 -0
- package/dist/langfuse/mapping.d.ts.map +1 -0
- package/dist/langfuse/mapping.js +130 -0
- package/dist/langfuse/mapping.js.map +1 -0
- package/dist/langfuse/metadata.d.ts +17 -0
- package/dist/langfuse/metadata.d.ts.map +1 -0
- package/dist/langfuse/metadata.js +89 -0
- package/dist/langfuse/metadata.js.map +1 -0
- package/dist/langfuse/types.d.ts +31 -0
- package/dist/langfuse/types.d.ts.map +1 -0
- package/dist/langfuse/types.js +36 -0
- package/dist/langfuse/types.js.map +1 -0
- package/dist/langfuse/utils.d.ts +17 -0
- package/dist/langfuse/utils.d.ts.map +1 -0
- package/dist/langfuse/utils.js +113 -0
- package/dist/langfuse/utils.js.map +1 -0
- package/dist/langfuse.d.ts +3 -80
- package/dist/langfuse.d.ts.map +1 -1
- package/dist/langfuse.js +4 -1139
- package/dist/langfuse.js.map +1 -1
- package/dist/otel.d.ts +5 -4
- package/dist/otel.d.ts.map +1 -1
- package/dist/otel.js +42 -30
- package/dist/otel.js.map +1 -1
- package/dist/parse.d.ts +4 -0
- package/dist/parse.d.ts.map +1 -0
- package/dist/parse.js +14 -0
- package/dist/parse.js.map +1 -0
- package/package.json +8 -3
package/README.md
CHANGED
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
|
|
5
5
|
Runtime telemetry contracts and exporters for pi.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Uses the official Langfuse JS v5 and OpenTelemetry SDKs. Langfuse export runs through `@langfuse/tracing` and `@langfuse/otel`; generic OTLP export uses `OTLPTraceExporter`. Requests time out after 15 seconds and lifecycle flushes are capped at 30 seconds.
|
|
8
8
|
|
|
9
9
|
## Entry Points
|
|
10
10
|
|
|
11
11
|
- `@amaster.ai/pi-telemetry`: stable contracts, `NoopRuntimeEventExporter`, and `CompositeRuntimeEventExporter`.
|
|
12
12
|
- `@amaster.ai/pi-telemetry/config`: `TelemetryConfig` type, `resolveConfig`, and `loadConfigFromFile`.
|
|
13
|
-
- `@amaster.ai/pi-telemetry/langfuse`: Langfuse
|
|
13
|
+
- `@amaster.ai/pi-telemetry/langfuse`: Langfuse JS v5 exporter using `@langfuse/tracing` and `@langfuse/otel`.
|
|
14
14
|
- `@amaster.ai/pi-telemetry/otel`: generic OTLP/HTTP traces exporter.
|
|
15
15
|
|
|
16
16
|
## Events
|
|
@@ -21,22 +21,23 @@ The extension hooks into the following Pi lifecycle events:
|
|
|
21
21
|
|-------|-----------------|
|
|
22
22
|
| `session_start` | Initialize exporters from config |
|
|
23
23
|
| `input` | Start a new trace (traceId boundary = user input) |
|
|
24
|
-
| `turn_start` | Begin
|
|
25
|
-
| `before_provider_request` |
|
|
26
|
-
| `after_provider_response` |
|
|
27
|
-
| `
|
|
24
|
+
| `turn_start` | Begin the root or subagent span on the first turn |
|
|
25
|
+
| `before_provider_request` | Begin an LLM generation span and record model input |
|
|
26
|
+
| `after_provider_response` | Mark failed provider responses |
|
|
27
|
+
| `message_update` | Record provider stream events beneath the active LLM generation |
|
|
28
|
+
| `agent_end` | Complete the root or subagent span once per user prompt |
|
|
28
29
|
| `tool_execution_start` | Begin tool span |
|
|
29
30
|
| `tool_execution_end` | End tool span with result |
|
|
30
|
-
| `message_end` |
|
|
31
|
+
| `message_end` | Complete an LLM generation span with output and usage |
|
|
31
32
|
| `model_select` | Record model switch events |
|
|
32
33
|
| `session_compact` | Record context compaction events |
|
|
33
34
|
| `session_shutdown` | Flush and shutdown exporters |
|
|
34
35
|
|
|
35
36
|
### Trace lifecycle
|
|
36
37
|
|
|
37
|
-
Traces are scoped to user input boundaries (not individual turns). A single user message may trigger multiple LLM turns and tool calls — all grouped under one trace
|
|
38
|
+
Traces are scoped to user input boundaries (not individual turns). A single user message may trigger multiple LLM turns and tool calls — all grouped under one trace and completed once on `agent_end`.
|
|
38
39
|
|
|
39
|
-
Langfuse traces
|
|
40
|
+
Langfuse traces carry the configured `serviceName` as resource/metadata attributes and `langfuse.session.id` on every span so shared projects can filter traces by runtime and session. The extension also adds `taskRunId` correlation metadata when `PI_TELEMETRY_TASK_RUN_ID` is present.
|
|
40
41
|
|
|
41
42
|
## Configuration
|
|
42
43
|
|
|
@@ -95,7 +96,6 @@ Configuration is read from the `"pi-telemetry"` section of, in increasing priori
|
|
|
95
96
|
| `headers` | `Record<string, string>` | — | Request headers |
|
|
96
97
|
| `flushAt` | `number` | `20` | Batch size before flush |
|
|
97
98
|
| `flushIntervalMs` | `number` | `5000` | Flush interval in ms |
|
|
98
|
-
| `errorLabel` | `string` | — | Custom label for error messages |
|
|
99
99
|
|
|
100
100
|
When the endpoint does not end with `/v1/traces`, the exporter appends `/v1/traces`.
|
|
101
101
|
|
|
@@ -103,12 +103,10 @@ When the endpoint does not end with `/v1/traces`, the exporter appends `/v1/trac
|
|
|
103
103
|
|
|
104
104
|
```ts
|
|
105
105
|
import { loadConfigFromFile, resolveConfig } from "@amaster.ai/pi-telemetry/config";
|
|
106
|
-
import {
|
|
107
|
-
import { createOtelExporter } from "@amaster.ai/pi-telemetry/otel";
|
|
106
|
+
import { createTelemetryExporter } from "@amaster.ai/pi-telemetry/otel";
|
|
108
107
|
|
|
109
108
|
const config = resolveConfig(loadConfigFromFile());
|
|
110
|
-
const
|
|
111
|
-
const otel = createOtelExporter(config);
|
|
109
|
+
const telemetry = createTelemetryExporter(config); // one provider for both destinations
|
|
112
110
|
```
|
|
113
111
|
|
|
114
112
|
## Privacy
|
package/dist/config.d.ts
CHANGED
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAExF,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAExF,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAOD,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,eAAe,CAEvE;AAED,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,eAAe,CAE/E"}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA0B,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA0B,MAAM,gCAAgC,CAAC;AA4BxF,MAAM,QAAQ,GAAoB;IAChC,WAAW,EAAE,WAAW;IACxB,eAAe,EAAE,KAAK;CACvB,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,MAAwB;IACpD,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAA2B;IAC5D,OAAO,cAAc,CAAkB,cAAc,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;AACzE,CAAC"}
|
package/dist/extension.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,iCAAiC,CAAC;AA6LtF,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CA+VjE"}
|
package/dist/extension.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
2
|
import { isProjectTrusted } from '@amaster.ai/pi-shared/settings';
|
|
3
3
|
import { loadConfigFromFile, resolveConfig } from './config.js';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
4
|
+
import { NoopRuntimeEventExporter } from './index.js';
|
|
5
|
+
import { createTelemetryExporter } from './otel.js';
|
|
6
|
+
const MAX_STREAM_CAPTURE_BYTES = 1_000_000;
|
|
7
7
|
function modelConfigFromCtx(ctx) {
|
|
8
8
|
const model = ctx.model;
|
|
9
9
|
if (!model) {
|
|
@@ -18,7 +18,11 @@ function extractOutput(message) {
|
|
|
18
18
|
if (!message || typeof message !== 'object')
|
|
19
19
|
return undefined;
|
|
20
20
|
const msg = message;
|
|
21
|
-
if (msg.role !== 'assistant'
|
|
21
|
+
if (msg.role !== 'assistant')
|
|
22
|
+
return undefined;
|
|
23
|
+
if (typeof msg.content === 'string')
|
|
24
|
+
return msg.content;
|
|
25
|
+
if (!Array.isArray(msg.content))
|
|
22
26
|
return undefined;
|
|
23
27
|
const texts = [];
|
|
24
28
|
for (const block of msg.content) {
|
|
@@ -32,6 +36,14 @@ function extractOutput(message) {
|
|
|
32
36
|
}
|
|
33
37
|
return texts.length > 0 ? texts.join('\n') : undefined;
|
|
34
38
|
}
|
|
39
|
+
function extractLastOutput(messages) {
|
|
40
|
+
for (let index = messages.length - 1; index >= 0; index -= 1) {
|
|
41
|
+
const output = extractOutput(messages[index]);
|
|
42
|
+
if (output !== undefined)
|
|
43
|
+
return output;
|
|
44
|
+
}
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
35
47
|
function simplifyContent(content) {
|
|
36
48
|
if (typeof content === 'string')
|
|
37
49
|
return content;
|
|
@@ -73,7 +85,7 @@ function summarizeToolResultOutput(result, details) {
|
|
|
73
85
|
return undefined;
|
|
74
86
|
}
|
|
75
87
|
if (typeof result === 'string') {
|
|
76
|
-
return
|
|
88
|
+
return result;
|
|
77
89
|
}
|
|
78
90
|
if (!result || typeof result !== 'object' || Array.isArray(result)) {
|
|
79
91
|
return toTelemetryValue(result);
|
|
@@ -84,7 +96,7 @@ function summarizeToolResultOutput(result, details) {
|
|
|
84
96
|
}
|
|
85
97
|
const text = textContentFromToolResult(resultRecord);
|
|
86
98
|
if (text) {
|
|
87
|
-
return
|
|
99
|
+
return text;
|
|
88
100
|
}
|
|
89
101
|
return resultRecord.content !== undefined ? toTelemetryValue(resultRecord.content) : undefined;
|
|
90
102
|
}
|
|
@@ -116,7 +128,7 @@ function toTelemetryValue(value) {
|
|
|
116
128
|
return value;
|
|
117
129
|
}
|
|
118
130
|
if (typeof value === 'string') {
|
|
119
|
-
return
|
|
131
|
+
return value;
|
|
120
132
|
}
|
|
121
133
|
if (Array.isArray(value)) {
|
|
122
134
|
return value.map(toTelemetryValue).filter((item) => item !== undefined);
|
|
@@ -126,11 +138,6 @@ function toTelemetryValue(value) {
|
|
|
126
138
|
}
|
|
127
139
|
return String(value);
|
|
128
140
|
}
|
|
129
|
-
function summarizeString(value) {
|
|
130
|
-
return value.length > 500
|
|
131
|
-
? `${value.slice(0, 500)}... [truncated ${value.length - 500} chars]`
|
|
132
|
-
: value;
|
|
133
|
-
}
|
|
134
141
|
function mapUsage(usage) {
|
|
135
142
|
const result = {};
|
|
136
143
|
if (typeof usage.input === 'number')
|
|
@@ -174,6 +181,7 @@ export default function telemetryExtension(pi) {
|
|
|
174
181
|
const taskRunId = nonEmptyEnv('PI_TELEMETRY_TASK_RUN_ID');
|
|
175
182
|
const runtimeCorrelation = taskRunId ? { taskRunId } : {};
|
|
176
183
|
const isSubagent = Boolean(inheritedTraceId && ownerPid && ownerPid !== String(process.pid));
|
|
184
|
+
let presetRootTraceId = isSubagent ? undefined : inheritedTraceId;
|
|
177
185
|
let exporter = new NoopRuntimeEventExporter();
|
|
178
186
|
const localSessionId = randomUUID();
|
|
179
187
|
const sessionId = isSubagent && inheritedSessionId ? inheritedSessionId : localSessionId;
|
|
@@ -184,23 +192,25 @@ export default function telemetryExtension(pi) {
|
|
|
184
192
|
let llmGenerationCounter = 0;
|
|
185
193
|
let pendingInput;
|
|
186
194
|
let lastModelConfig = { provider: 'unknown', model: 'unknown' };
|
|
195
|
+
let streamStartedAt;
|
|
196
|
+
let streamEvents = [];
|
|
197
|
+
let streamBytes = 0;
|
|
198
|
+
let streamTruncated = false;
|
|
187
199
|
pi.on('session_start', async (_event, ctx) => {
|
|
188
200
|
const config = resolveConfig(loadConfigFromFile({
|
|
189
201
|
cwd: ctx.cwd,
|
|
190
202
|
projectTrusted: isProjectTrusted(ctx),
|
|
191
203
|
}));
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
exporter =
|
|
196
|
-
active.length > 1
|
|
197
|
-
? new CompositeRuntimeEventExporter(active)
|
|
198
|
-
: (active[0] ?? new NoopRuntimeEventExporter());
|
|
204
|
+
// One exporter/provider even when both Langfuse and a generic OTLP
|
|
205
|
+
// endpoint are configured: two providers would mint different span ids for
|
|
206
|
+
// the same logical span and cross-wire PI_TELEMETRY_TRACEPARENT.
|
|
207
|
+
exporter = createTelemetryExporter(config);
|
|
199
208
|
});
|
|
200
209
|
pi.on('input', async (event) => {
|
|
201
210
|
pendingInput = event.text;
|
|
202
211
|
if (!isSubagent) {
|
|
203
|
-
currentTraceId = randomUUID().replace(/-/g, '');
|
|
212
|
+
currentTraceId = presetRootTraceId ?? randomUUID().replace(/-/g, '');
|
|
213
|
+
presetRootTraceId = undefined;
|
|
204
214
|
process.env.PI_TELEMETRY_TRACE_ID = currentTraceId;
|
|
205
215
|
process.env.PI_TELEMETRY_SESSION_ID = sessionId;
|
|
206
216
|
process.env.PI_TELEMETRY_OWNER_PID = String(process.pid);
|
|
@@ -251,12 +261,12 @@ export default function telemetryExtension(pi) {
|
|
|
251
261
|
pendingInput = undefined;
|
|
252
262
|
}
|
|
253
263
|
});
|
|
254
|
-
pi.on('
|
|
264
|
+
pi.on('agent_end', async (event) => {
|
|
255
265
|
if (!currentTraceId)
|
|
256
266
|
return;
|
|
257
267
|
const now = Date.now();
|
|
258
268
|
const durationMs = traceStartTime ? now - traceStartTime : undefined;
|
|
259
|
-
const output =
|
|
269
|
+
const output = extractLastOutput(event.messages);
|
|
260
270
|
if (isSubagent) {
|
|
261
271
|
const details = subagentLifecycleDetails({
|
|
262
272
|
agent: subagentAgent,
|
|
@@ -310,7 +320,9 @@ export default function telemetryExtension(pi) {
|
|
|
310
320
|
pi.on('tool_execution_end', async (event) => {
|
|
311
321
|
if (!currentTraceId)
|
|
312
322
|
return;
|
|
313
|
-
|
|
323
|
+
// Failed tool results can contain credentials, internal paths, or stacks.
|
|
324
|
+
// Keep the failure signal but never forward the raw result as telemetry.
|
|
325
|
+
const details = event.isError ? undefined : toolEventDetails(event.result);
|
|
314
326
|
await exporter.publish({
|
|
315
327
|
id: randomUUID(),
|
|
316
328
|
traceId: currentTraceId,
|
|
@@ -325,9 +337,7 @@ export default function telemetryExtension(pi) {
|
|
|
325
337
|
status: event.isError ? 'failed' : 'completed',
|
|
326
338
|
createdAt: new Date().toISOString(),
|
|
327
339
|
...(details ? { details } : {}),
|
|
328
|
-
...(event.isError
|
|
329
|
-
? { error: typeof event.result === 'string' ? event.result : JSON.stringify(event.result) }
|
|
330
|
-
: {}),
|
|
340
|
+
...(event.isError ? { error: 'Tool execution failed' } : {}),
|
|
331
341
|
});
|
|
332
342
|
});
|
|
333
343
|
pi.on('before_provider_request', async (event, ctx) => {
|
|
@@ -335,6 +345,10 @@ export default function telemetryExtension(pi) {
|
|
|
335
345
|
return;
|
|
336
346
|
llmGenerationCounter++;
|
|
337
347
|
lastModelConfig = modelConfigFromCtx(ctx);
|
|
348
|
+
streamStartedAt = undefined;
|
|
349
|
+
streamEvents = [];
|
|
350
|
+
streamBytes = 0;
|
|
351
|
+
streamTruncated = false;
|
|
338
352
|
await exporter.publish({
|
|
339
353
|
id: randomUUID(),
|
|
340
354
|
traceId: currentTraceId,
|
|
@@ -372,6 +386,25 @@ export default function telemetryExtension(pi) {
|
|
|
372
386
|
error: `HTTP ${event.status}`,
|
|
373
387
|
});
|
|
374
388
|
});
|
|
389
|
+
pi.on('message_update', async (event) => {
|
|
390
|
+
if (!currentTraceId || llmGenerationCounter === 0)
|
|
391
|
+
return;
|
|
392
|
+
const update = event.assistantMessageEvent;
|
|
393
|
+
const { partial: _partial, message: _message, error: _error, ...frame } = update;
|
|
394
|
+
const value = toTelemetryValue(frame);
|
|
395
|
+
if (value === undefined)
|
|
396
|
+
return;
|
|
397
|
+
streamStartedAt ??= Date.now();
|
|
398
|
+
const bytes = Buffer.byteLength(JSON.stringify(value));
|
|
399
|
+
if (!streamTruncated && streamBytes + bytes <= MAX_STREAM_CAPTURE_BYTES) {
|
|
400
|
+
streamEvents.push(value);
|
|
401
|
+
streamBytes += bytes;
|
|
402
|
+
}
|
|
403
|
+
else if (!streamTruncated) {
|
|
404
|
+
streamEvents.push({ type: 'truncated', maxBytes: MAX_STREAM_CAPTURE_BYTES });
|
|
405
|
+
streamTruncated = true;
|
|
406
|
+
}
|
|
407
|
+
});
|
|
375
408
|
pi.on('message_end', async (event) => {
|
|
376
409
|
if (!currentTraceId)
|
|
377
410
|
return;
|
|
@@ -381,6 +414,27 @@ export default function telemetryExtension(pi) {
|
|
|
381
414
|
const content = simplifyContent(msg.content) ?? extractOutput(event.message);
|
|
382
415
|
const usage = msg.usage;
|
|
383
416
|
const mapped = usage ? mapUsage(usage) : undefined;
|
|
417
|
+
if (streamStartedAt !== undefined && streamEvents.length > 0) {
|
|
418
|
+
const endedAt = Date.now();
|
|
419
|
+
await exporter.publish({
|
|
420
|
+
id: randomUUID(),
|
|
421
|
+
traceId: currentTraceId,
|
|
422
|
+
...runtimeCorrelation,
|
|
423
|
+
sessionId: localSessionId,
|
|
424
|
+
conversationId: localSessionId,
|
|
425
|
+
...(isSubagent
|
|
426
|
+
? { ...(parentSessionId ? { parentSessionId } : {}), childSessionId: localSessionId }
|
|
427
|
+
: {}),
|
|
428
|
+
llmGenerationId: `gen-${llmGenerationCounter}`,
|
|
429
|
+
createdAt: new Date(streamStartedAt).toISOString(),
|
|
430
|
+
durationMs: endedAt - streamStartedAt,
|
|
431
|
+
streamEvents,
|
|
432
|
+
});
|
|
433
|
+
streamStartedAt = undefined;
|
|
434
|
+
streamEvents = [];
|
|
435
|
+
streamBytes = 0;
|
|
436
|
+
streamTruncated = false;
|
|
437
|
+
}
|
|
384
438
|
const output = {};
|
|
385
439
|
if (content !== undefined)
|
|
386
440
|
output.content = content;
|
|
@@ -427,7 +481,10 @@ export default function telemetryExtension(pi) {
|
|
|
427
481
|
}
|
|
428
482
|
: null,
|
|
429
483
|
to: model
|
|
430
|
-
? {
|
|
484
|
+
? {
|
|
485
|
+
provider: String(model.provider ?? 'unknown'),
|
|
486
|
+
model: String(model.id ?? 'unknown'),
|
|
487
|
+
}
|
|
431
488
|
: null,
|
|
432
489
|
source: String(evt.source ?? 'unknown'),
|
|
433
490
|
},
|
|
@@ -451,7 +508,6 @@ export default function telemetryExtension(pi) {
|
|
|
451
508
|
});
|
|
452
509
|
});
|
|
453
510
|
pi.on('session_shutdown', async () => {
|
|
454
|
-
await exporter.flush?.();
|
|
455
511
|
await exporter.close?.();
|
|
456
512
|
});
|
|
457
513
|
}
|
package/dist/extension.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,20 +1,15 @@
|
|
|
1
|
-
import type { RuntimeLifecycleEvent, RuntimeLlmGenerationEvent, RuntimeToolEvent } from '@amaster.ai/pi-shared';
|
|
2
|
-
export type
|
|
1
|
+
import type { JsonValue, RuntimeLifecycleEvent, RuntimeLlmGenerationEvent, RuntimeToolEvent } from '@amaster.ai/pi-shared';
|
|
2
|
+
export type RuntimeLlmStreamEvent = Omit<RuntimeLlmGenerationEvent, 'status' | 'model' | 'input' | 'output' | 'usage' | 'responseId' | 'stopReason' | 'error'> & {
|
|
3
|
+
streamEvents: JsonValue[];
|
|
4
|
+
error?: string;
|
|
5
|
+
};
|
|
6
|
+
export type RuntimeTelemetryEvent = RuntimeLifecycleEvent | RuntimeToolEvent | RuntimeLlmGenerationEvent | RuntimeLlmStreamEvent;
|
|
3
7
|
export interface RuntimeEventExporter {
|
|
4
8
|
publish(event: RuntimeTelemetryEvent): Promise<void>;
|
|
5
9
|
flush?(): Promise<void>;
|
|
6
10
|
close?(): Promise<void>;
|
|
7
11
|
}
|
|
8
12
|
export type TelemetryEnvironment = Record<string, string | undefined>;
|
|
9
|
-
export type TelemetryFetch = (input: string, init: {
|
|
10
|
-
method: 'POST';
|
|
11
|
-
headers: Record<string, string>;
|
|
12
|
-
body: string;
|
|
13
|
-
}) => Promise<{
|
|
14
|
-
ok: boolean;
|
|
15
|
-
status: number;
|
|
16
|
-
text(): Promise<string>;
|
|
17
|
-
}>;
|
|
18
13
|
export type TelemetryRedactor = (event: RuntimeTelemetryEvent) => RuntimeTelemetryEvent | undefined;
|
|
19
14
|
export type RuntimeTelemetryOptions = {
|
|
20
15
|
serviceName?: string | undefined;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,qBAAqB,EACrB,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,yBAAyB,EACzB,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,YAAY,GAAG,YAAY,GAAG,OAAO,CAC1F,GAAG;IACF,YAAY,EAAE,SAAS,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAC7B,qBAAqB,GACrB,gBAAgB,GAChB,yBAAyB,GACzB,qBAAqB,CAAC;AAE1B,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB;AAED,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAEtE,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,qBAAqB,KAAK,qBAAqB,GAAG,SAAS,CAAC;AAEpG,MAAM,MAAM,uBAAuB,GAAG;IACpC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;CAC7C,CAAC;AAEF,qBAAa,wBAAyB,YAAW,oBAAoB;IAC7D,OAAO,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IACrD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IACtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAC7B;AAED,qBAAa,6BAA8B,YAAW,oBAAoB;IAC5D,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,oBAAoB,EAAE;IAExD,OAAO,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAM7B;AAED,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -15,6 +15,8 @@ export class CompositeRuntimeEventExporter {
|
|
|
15
15
|
await Promise.allSettled(this.exporters.map((exporter) => exporter.flush?.()));
|
|
16
16
|
}
|
|
17
17
|
async close() {
|
|
18
|
+
// Preserve the public flush-before-close contract. Built-in close()
|
|
19
|
+
// implementations may flush again, but an already-drained queue is a no-op.
|
|
18
20
|
await this.flush();
|
|
19
21
|
await Promise.allSettled(this.exporters.map((exporter) => exporter.close?.()));
|
|
20
22
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAsCA,MAAM,OAAO,wBAAwB;IACnC,KAAK,CAAC,OAAO,CAAC,MAA6B,IAAkB,CAAC;IAC9D,KAAK,CAAC,KAAK,KAAmB,CAAC;IAC/B,KAAK,CAAC,KAAK,KAAmB,CAAC;CAChC;AAED,MAAM,OAAO,6BAA6B;IACX;IAA7B,YAA6B,SAAiC;QAAjC,cAAS,GAAT,SAAS,CAAwB;IAAG,CAAC;IAElE,KAAK,CAAC,OAAO,CAAC,KAA4B;QACxC,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,KAAK,CAAC,KAAK;QACT,oEAAoE;QACpE,4EAA4E;QAC5E,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IACjF,CAAC;CACF;AAED,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { TelemetryConfig } from '../config.js';
|
|
2
|
+
import { type RuntimeEventExporter, type TelemetryEnvironment } from '../index.js';
|
|
3
|
+
import { type LangfuseExporterConfig } from './types.js';
|
|
4
|
+
export declare function createRuntimeEventExporterFromEnv(env: TelemetryEnvironment): RuntimeEventExporter;
|
|
5
|
+
export declare function createLangfuseExporter(telemetryConfig: TelemetryConfig): RuntimeEventExporter;
|
|
6
|
+
export declare function resolveLangfuseExporterConfig(telemetryConfig: TelemetryConfig): LangfuseExporterConfig;
|
|
7
|
+
export declare function resolveLangfuseConfig(env: TelemetryEnvironment): LangfuseExporterConfig;
|
|
8
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/langfuse/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EAC1B,MAAM,aAAa,CAAC;AAGrB,OAAO,EAIL,KAAK,sBAAsB,EAE5B,MAAM,YAAY,CAAC;AAEpB,wBAAgB,iCAAiC,CAAC,GAAG,EAAE,oBAAoB,GAAG,oBAAoB,CAKjG;AAED,wBAAgB,sBAAsB,CAAC,eAAe,EAAE,eAAe,GAAG,oBAAoB,CAK7F;AA6BD,wBAAgB,6BAA6B,CAC3C,eAAe,EAAE,eAAe,GAC/B,sBAAsB,CAgBxB;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,oBAAoB,GAAG,sBAAsB,CAqBvF"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { NoopRuntimeEventExporter, } from '../index.js';
|
|
2
|
+
import { parseBoolean, parsePositiveInteger, trim } from '../parse.js';
|
|
3
|
+
import { OtelRuntimeEventExporter } from './exporters.js';
|
|
4
|
+
import { DEFAULT_FLUSH_AT, DEFAULT_FLUSH_INTERVAL_MS, DEFAULT_LANGFUSE_BASE_URL, } from './types.js';
|
|
5
|
+
export function createRuntimeEventExporterFromEnv(env) {
|
|
6
|
+
const config = resolveLangfuseConfig(env);
|
|
7
|
+
return config.enabled
|
|
8
|
+
? new OtelRuntimeEventExporter(langfuseOtelConfig(config))
|
|
9
|
+
: new NoopRuntimeEventExporter();
|
|
10
|
+
}
|
|
11
|
+
export function createLangfuseExporter(telemetryConfig) {
|
|
12
|
+
const config = resolveLangfuseExporterConfig(telemetryConfig);
|
|
13
|
+
return config.enabled
|
|
14
|
+
? new OtelRuntimeEventExporter(langfuseOtelConfig(config))
|
|
15
|
+
: new NoopRuntimeEventExporter();
|
|
16
|
+
}
|
|
17
|
+
// Langfuse's write path is OTLP/HTTP via the official SDK: the exporter's
|
|
18
|
+
// provider carries a LangfuseSpanProcessor (@langfuse/otel), which wraps a
|
|
19
|
+
// BatchSpanProcessor + OTLPTraceExporter with Langfuse auth against
|
|
20
|
+
// `<baseUrl>/api/public/otel/v1/traces`. The legacy batch ingestion API the
|
|
21
|
+
// old Langfuse SDK v3 exporter talked to is removed from Langfuse Cloud on
|
|
22
|
+
// 2026-11-16 (and is already rejected by self-hosted v4 in events_only
|
|
23
|
+
// mode). x-langfuse-ingestion-version: 4 opts into real-time v4 ingestion
|
|
24
|
+
// (without it, data can lag the v2 read APIs by up to 15 minutes).
|
|
25
|
+
function langfuseOtelConfig(config) {
|
|
26
|
+
return {
|
|
27
|
+
enabled: true,
|
|
28
|
+
endpoint: '',
|
|
29
|
+
langfuse: {
|
|
30
|
+
publicKey: config.publicKey,
|
|
31
|
+
secretKey: config.secretKey,
|
|
32
|
+
baseUrl: config.baseUrl,
|
|
33
|
+
flushAt: config.flushAt,
|
|
34
|
+
flushIntervalMs: config.flushIntervalMs,
|
|
35
|
+
},
|
|
36
|
+
flushAt: config.flushAt,
|
|
37
|
+
flushIntervalMs: config.flushIntervalMs,
|
|
38
|
+
...(config.serviceName ? { serviceName: config.serviceName } : {}),
|
|
39
|
+
...(config.serviceVersion ? { serviceVersion: config.serviceVersion } : {}),
|
|
40
|
+
...(config.includePayloads !== undefined ? { includePayloads: config.includePayloads } : {}),
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
export function resolveLangfuseExporterConfig(telemetryConfig) {
|
|
44
|
+
const lf = telemetryConfig.langfuse;
|
|
45
|
+
const publicKey = lf?.publicKey ?? '';
|
|
46
|
+
const secretKey = lf?.secretKey ?? '';
|
|
47
|
+
const credentialsPresent = Boolean(publicKey && secretKey);
|
|
48
|
+
return {
|
|
49
|
+
enabled: Boolean(lf?.enabled && credentialsPresent),
|
|
50
|
+
publicKey,
|
|
51
|
+
secretKey,
|
|
52
|
+
baseUrl: lf?.baseUrl || DEFAULT_LANGFUSE_BASE_URL,
|
|
53
|
+
flushAt: parsePositiveInteger(lf?.flushAt, DEFAULT_FLUSH_AT),
|
|
54
|
+
flushIntervalMs: parsePositiveInteger(lf?.flushIntervalMs, DEFAULT_FLUSH_INTERVAL_MS),
|
|
55
|
+
serviceName: telemetryConfig.serviceName ?? 'pi-server',
|
|
56
|
+
...(telemetryConfig.serviceVersion ? { serviceVersion: telemetryConfig.serviceVersion } : {}),
|
|
57
|
+
includePayloads: telemetryConfig.includePayloads ?? false,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
export function resolveLangfuseConfig(env) {
|
|
61
|
+
const enabled = parseBoolean(env.LANGFUSE_ENABLED);
|
|
62
|
+
const publicKey = trim(env.LANGFUSE_PUBLIC_KEY);
|
|
63
|
+
const secretKey = trim(env.LANGFUSE_SECRET_KEY);
|
|
64
|
+
const baseUrl = trim(env.LANGFUSE_BASE_URL) ?? DEFAULT_LANGFUSE_BASE_URL;
|
|
65
|
+
const credentialsPresent = Boolean(publicKey && secretKey);
|
|
66
|
+
const serviceVersion = trim(env.TELEMETRY_SERVICE_VERSION);
|
|
67
|
+
return {
|
|
68
|
+
enabled: Boolean(enabled && credentialsPresent),
|
|
69
|
+
publicKey: publicKey ?? '',
|
|
70
|
+
secretKey: secretKey ?? '',
|
|
71
|
+
baseUrl,
|
|
72
|
+
flushAt: parsePositiveInteger(env.LANGFUSE_FLUSH_AT, DEFAULT_FLUSH_AT),
|
|
73
|
+
flushIntervalMs: parsePositiveInteger(env.LANGFUSE_FLUSH_INTERVAL_MS, DEFAULT_FLUSH_INTERVAL_MS),
|
|
74
|
+
serviceName: trim(env.TELEMETRY_SERVICE_NAME ?? env.OTEL_SERVICE_NAME) ?? 'pi-server',
|
|
75
|
+
...(serviceVersion ? { serviceVersion } : {}),
|
|
76
|
+
includePayloads: parseBoolean(env.TELEMETRY_INCLUDE_PAYLOADS ?? env.LANGFUSE_INCLUDE_PAYLOADS),
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/langfuse/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { BasicTracerProvider, type IdGenerator } from '@opentelemetry/sdk-trace-base';
|
|
2
|
+
import type { RuntimeEventExporter, RuntimeTelemetryEvent } from '../index.js';
|
|
3
|
+
import { type OtelExporterConfig } from './types.js';
|
|
4
|
+
export declare class TelemetryIdGenerator implements IdGenerator {
|
|
5
|
+
nextTraceId: string | undefined;
|
|
6
|
+
generateTraceId(): string;
|
|
7
|
+
generateSpanId(): string;
|
|
8
|
+
}
|
|
9
|
+
export declare class OtelRuntimeEventExporter implements RuntimeEventExporter {
|
|
10
|
+
private readonly config;
|
|
11
|
+
private readonly provider;
|
|
12
|
+
private readonly tracer;
|
|
13
|
+
private readonly idGenerator;
|
|
14
|
+
private readonly openSpans;
|
|
15
|
+
private openSpanCapWarned;
|
|
16
|
+
constructor(config: OtelExporterConfig, opts?: {
|
|
17
|
+
provider?: BasicTracerProvider;
|
|
18
|
+
});
|
|
19
|
+
publish(event: RuntimeTelemetryEvent): Promise<void>;
|
|
20
|
+
flush(): Promise<void>;
|
|
21
|
+
close(): Promise<void>;
|
|
22
|
+
private publishLifecycleEvent;
|
|
23
|
+
private publishToolEvent;
|
|
24
|
+
private publishLlmGenerationEvent;
|
|
25
|
+
private publishLlmStreamEvent;
|
|
26
|
+
private startSpan;
|
|
27
|
+
private emitTerminalSpan;
|
|
28
|
+
private endOpenSpan;
|
|
29
|
+
private trackOpenSpan;
|
|
30
|
+
private subagentParentContext;
|
|
31
|
+
private telemetryParentContext;
|
|
32
|
+
private enrichSpanAttributes;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=exporters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exporters.d.ts","sourceRoot":"","sources":["../../src/langfuse/exporters.ts"],"names":[],"mappings":"AAsBA,OAAO,EACL,mBAAmB,EAEnB,KAAK,WAAW,EAEjB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EACV,oBAAoB,EAEpB,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAwBrB,OAAO,EAML,KAAK,kBAAkB,EACxB,MAAM,YAAY,CAAC;AA4BpB,qBAAa,oBAAqB,YAAW,WAAW;IACtD,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAEhC,eAAe,IAAI,MAAM;IAMzB,cAAc,IAAI,MAAM;CAGzB;AAQD,qBAAa,wBAAyB,YAAW,oBAAoB;IACnE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8B;IAC1D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmC;IAC7D,OAAO,CAAC,iBAAiB,CAAS;gBAEtB,MAAM,EAAE,kBAAkB,EAAE,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,mBAAmB,CAAA;KAAE;IAM3E,OAAO,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBpD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAUtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAU5B,OAAO,CAAC,qBAAqB;IAgI7B,OAAO,CAAC,gBAAgB;IAyCxB,OAAO,CAAC,yBAAyB;IAoDjC,OAAO,CAAC,qBAAqB;IAqB7B,OAAO,CAAC,SAAS;IAuBjB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,aAAa;IAyBrB,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,oBAAoB;CAyB7B"}
|