@timmeck/brain-core 2.36.38 → 2.36.39
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/command-center.html +22 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/observability/index.d.ts +2 -0
- package/dist/observability/index.js +2 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/trace-collector.d.ts +111 -0
- package/dist/observability/trace-collector.js +303 -0
- package/dist/observability/trace-collector.js.map +1 -0
- package/package.json +1 -1
package/command-center.html
CHANGED
|
@@ -572,6 +572,18 @@ canvas{display:block;width:100%;height:100%}
|
|
|
572
572
|
</div>
|
|
573
573
|
<div id="featureWishlist" style="margin-top:12px"></div>
|
|
574
574
|
</div>
|
|
575
|
+
|
|
576
|
+
<!-- Traces / Observability -->
|
|
577
|
+
<div class="section">
|
|
578
|
+
<div class="section-title"><span class="icon">🔍</span> Observability — <span data-t="Traces & Spans">Traces & Spans</span></div>
|
|
579
|
+
<p style="font-size:12px;color:var(--text-dim);margin-bottom:12px" data-t="OpenTelemetry-artige Traces: Jeder Workflow wird in Spans aufgeteilt mit Token- und Cost-Tracking.">OpenTelemetry-artige Traces: Jeder Workflow wird in Spans aufgeteilt mit Token- und Cost-Tracking.</p>
|
|
580
|
+
<div class="grid grid-4">
|
|
581
|
+
<div class="card" style="text-align:center"><div class="card-value" id="int-tr-total" style="color:var(--cyan)">0</div><div class="card-sub" data-t="Traces gesamt">Traces gesamt</div></div>
|
|
582
|
+
<div class="card" style="text-align:center"><div class="card-value" id="int-tr-active" style="color:var(--green)">0</div><div class="card-sub" data-t="Aktiv">Aktiv</div></div>
|
|
583
|
+
<div class="card" style="text-align:center"><div class="card-value" id="int-tr-spans" style="color:var(--yellow)">0</div><div class="card-sub" data-t="Spans gesamt">Spans gesamt</div></div>
|
|
584
|
+
<div class="card" style="text-align:center"><div class="card-value" id="int-tr-cost" style="color:var(--magenta)">$0.00</div><div class="card-sub" data-t="Gesamtkosten">Gesamtkosten</div></div>
|
|
585
|
+
</div>
|
|
586
|
+
</div>
|
|
575
587
|
</div>
|
|
576
588
|
|
|
577
589
|
<!-- ════ Page 6: Cross-Brain & Borg ═════════════════ -->
|
|
@@ -819,6 +831,7 @@ const translations = { en: {
|
|
|
819
831
|
'Der Lern-Kreislauf':'The Learning Cycle','Aktivität & Missionen':'Activity & Missions','Bewusstsein':'Consciousness',
|
|
820
832
|
'Was Brain sich wünscht':'What Brain wants','Wünsche':'Wishes','Offen':'Open','Gefunden':'Found','Übernommen':'Adopted',
|
|
821
833
|
'Verbindungen':'Connections','Letzter Scan':'Last scan','Suche läuft':'Searching','Verworfen':'Dismissed','Priorität':'Priority',
|
|
834
|
+
'Traces & Spans':'Traces & Spans','Traces gesamt':'Total Traces','Aktiv':'Active','Spans gesamt':'Total Spans','Gesamtkosten':'Total Cost',
|
|
822
835
|
'Noch keine Feature-Wünsche — Brain analysiert automatisch':'No feature wishes yet — Brain analyzes automatically',
|
|
823
836
|
'Brain erkennt was ihm fehlt und sucht nach passenden Features aus absorbierten Repos.':'Brain detects what it needs and searches for matching features from absorbed repos.',
|
|
824
837
|
}};
|
|
@@ -1248,6 +1261,15 @@ function renderIntelligence() {
|
|
|
1248
1261
|
wishEl.innerHTML = `<div class="empty">${t('Noch keine Feature-Wünsche — Brain analysiert automatisch')}</div>`;
|
|
1249
1262
|
}
|
|
1250
1263
|
}
|
|
1264
|
+
|
|
1265
|
+
// Traces / Observability
|
|
1266
|
+
const tr = d.traces;
|
|
1267
|
+
if (tr) {
|
|
1268
|
+
setText('int-tr-total', (tr.totalTraces || 0).toLocaleString());
|
|
1269
|
+
setText('int-tr-active', (tr.activeTraces || 0).toLocaleString());
|
|
1270
|
+
setText('int-tr-spans', (tr.totalSpans || 0).toLocaleString());
|
|
1271
|
+
setText('int-tr-cost', '$' + (tr.totalCost || 0).toFixed(2));
|
|
1272
|
+
}
|
|
1251
1273
|
}
|
|
1252
1274
|
|
|
1253
1275
|
// ── Knowledge Growth ──────────────────────────────────────
|
package/dist/index.d.ts
CHANGED
|
@@ -239,3 +239,5 @@ export { ActiveLearner, runActiveLearningMigration } from './active-learning/ind
|
|
|
239
239
|
export type { ActiveLearnerConfig, LearningGap, LearningStrategy, ActiveLearnerStatus } from './active-learning/index.js';
|
|
240
240
|
export { CheckpointManager, runCheckpointMigration } from './checkpoint/index.js';
|
|
241
241
|
export type { Checkpoint, CheckpointSummary, CheckpointManagerStatus } from './checkpoint/index.js';
|
|
242
|
+
export { TraceCollector, runTraceMigration } from './observability/index.js';
|
|
243
|
+
export type { Trace, Span, TraceTree, TraceStats, TraceListOptions, TraceCollectorStatus } from './observability/index.js';
|
package/dist/index.js
CHANGED
|
@@ -207,4 +207,6 @@ export { ConsensusEngine, runConsensusMigration } from './consensus/index.js';
|
|
|
207
207
|
export { ActiveLearner, runActiveLearningMigration } from './active-learning/index.js';
|
|
208
208
|
// ── Checkpoint Manager ──────────────────────────────────────
|
|
209
209
|
export { CheckpointManager, runCheckpointMigration } from './checkpoint/index.js';
|
|
210
|
+
// ── Observability / Tracing ─────────────────────────────────
|
|
211
|
+
export { TraceCollector, runTraceMigration } from './observability/index.js';
|
|
210
212
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/observability/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trace Collector — Observability für das Brain Ecosystem
|
|
3
|
+
*
|
|
4
|
+
* Inspiriert von OpenTelemetry / LangSmith Tracing.
|
|
5
|
+
* Erfasst Spans (Arbeitseinheiten) in hierarchischen Traces,
|
|
6
|
+
* speichert sie in SQLite und berechnet Latenz-Statistiken.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* ```typescript
|
|
10
|
+
* const traceId = collector.startTrace('research-cycle');
|
|
11
|
+
* const spanId = collector.startSpan(traceId, 'llm-call', { template: 'explain' });
|
|
12
|
+
* // ... do work ...
|
|
13
|
+
* collector.endSpan(spanId, { tokens: 150, cost: 0.001 });
|
|
14
|
+
* collector.endTrace(traceId);
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
import type Database from 'better-sqlite3';
|
|
18
|
+
export interface Trace {
|
|
19
|
+
id: string;
|
|
20
|
+
name: string;
|
|
21
|
+
status: 'running' | 'completed' | 'error';
|
|
22
|
+
startedAt: number;
|
|
23
|
+
endedAt: number | null;
|
|
24
|
+
durationMs: number | null;
|
|
25
|
+
spanCount: number;
|
|
26
|
+
totalTokens: number;
|
|
27
|
+
totalCost: number;
|
|
28
|
+
metadata: Record<string, unknown>;
|
|
29
|
+
error?: string;
|
|
30
|
+
}
|
|
31
|
+
export interface Span {
|
|
32
|
+
id: string;
|
|
33
|
+
traceId: string;
|
|
34
|
+
parentSpanId: string | null;
|
|
35
|
+
name: string;
|
|
36
|
+
status: 'running' | 'completed' | 'error';
|
|
37
|
+
startedAt: number;
|
|
38
|
+
endedAt: number | null;
|
|
39
|
+
durationMs: number | null;
|
|
40
|
+
tokens: number;
|
|
41
|
+
cost: number;
|
|
42
|
+
metadata: Record<string, unknown>;
|
|
43
|
+
error?: string;
|
|
44
|
+
}
|
|
45
|
+
export interface TraceTree {
|
|
46
|
+
trace: Trace;
|
|
47
|
+
spans: Span[];
|
|
48
|
+
}
|
|
49
|
+
export interface TraceStats {
|
|
50
|
+
totalTraces: number;
|
|
51
|
+
totalSpans: number;
|
|
52
|
+
totalTokens: number;
|
|
53
|
+
totalCost: number;
|
|
54
|
+
avgDurationMs: number;
|
|
55
|
+
p50DurationMs: number;
|
|
56
|
+
p99DurationMs: number;
|
|
57
|
+
tracesByName: Record<string, number>;
|
|
58
|
+
activeTraces: number;
|
|
59
|
+
}
|
|
60
|
+
export interface TraceListOptions {
|
|
61
|
+
limit?: number;
|
|
62
|
+
offset?: number;
|
|
63
|
+
name?: string;
|
|
64
|
+
status?: 'running' | 'completed' | 'error';
|
|
65
|
+
since?: number;
|
|
66
|
+
}
|
|
67
|
+
export interface TraceCollectorStatus {
|
|
68
|
+
totalTraces: number;
|
|
69
|
+
activeTraces: number;
|
|
70
|
+
totalSpans: number;
|
|
71
|
+
totalTokens: number;
|
|
72
|
+
totalCost: number;
|
|
73
|
+
}
|
|
74
|
+
export declare function runTraceMigration(db: Database.Database): void;
|
|
75
|
+
export declare class TraceCollector {
|
|
76
|
+
private db;
|
|
77
|
+
private readonly log;
|
|
78
|
+
private stmtInsertTrace;
|
|
79
|
+
private stmtInsertSpan;
|
|
80
|
+
private stmtEndTrace;
|
|
81
|
+
private stmtEndSpan;
|
|
82
|
+
private stmtUpdateTraceStats;
|
|
83
|
+
constructor(db: Database.Database);
|
|
84
|
+
/** Start a new trace. Returns trace ID. */
|
|
85
|
+
startTrace(name: string, metadata?: Record<string, unknown>): string;
|
|
86
|
+
/** End a trace (complete or error). */
|
|
87
|
+
endTrace(traceId: string, error?: string): void;
|
|
88
|
+
/** Start a span within a trace. Returns span ID. */
|
|
89
|
+
startSpan(traceId: string, name: string, options?: {
|
|
90
|
+
parentSpanId?: string;
|
|
91
|
+
metadata?: Record<string, unknown>;
|
|
92
|
+
}): string;
|
|
93
|
+
/** End a span with optional results. */
|
|
94
|
+
endSpan(spanId: string, result?: {
|
|
95
|
+
tokens?: number;
|
|
96
|
+
cost?: number;
|
|
97
|
+
error?: string;
|
|
98
|
+
}): void;
|
|
99
|
+
/** Get a single trace with all its spans. */
|
|
100
|
+
getTrace(traceId: string): TraceTree | null;
|
|
101
|
+
/** List traces with optional filters. */
|
|
102
|
+
listTraces(options?: TraceListOptions): Trace[];
|
|
103
|
+
/** Get aggregate statistics. */
|
|
104
|
+
getStats(): TraceStats;
|
|
105
|
+
/** Get collector status (lightweight). */
|
|
106
|
+
getStatus(): TraceCollectorStatus;
|
|
107
|
+
/** Delete traces older than maxAgeDays. Returns number pruned. */
|
|
108
|
+
prune(maxAgeDays?: number): number;
|
|
109
|
+
private mapTrace;
|
|
110
|
+
private mapSpan;
|
|
111
|
+
}
|
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trace Collector — Observability für das Brain Ecosystem
|
|
3
|
+
*
|
|
4
|
+
* Inspiriert von OpenTelemetry / LangSmith Tracing.
|
|
5
|
+
* Erfasst Spans (Arbeitseinheiten) in hierarchischen Traces,
|
|
6
|
+
* speichert sie in SQLite und berechnet Latenz-Statistiken.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* ```typescript
|
|
10
|
+
* const traceId = collector.startTrace('research-cycle');
|
|
11
|
+
* const spanId = collector.startSpan(traceId, 'llm-call', { template: 'explain' });
|
|
12
|
+
* // ... do work ...
|
|
13
|
+
* collector.endSpan(spanId, { tokens: 150, cost: 0.001 });
|
|
14
|
+
* collector.endTrace(traceId);
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
import { randomUUID } from 'node:crypto';
|
|
18
|
+
import { getLogger } from '../utils/logger.js';
|
|
19
|
+
// ── Migration ───────────────────────────────────────────
|
|
20
|
+
export function runTraceMigration(db) {
|
|
21
|
+
db.exec(`
|
|
22
|
+
CREATE TABLE IF NOT EXISTS workflow_traces (
|
|
23
|
+
id TEXT PRIMARY KEY,
|
|
24
|
+
name TEXT NOT NULL,
|
|
25
|
+
status TEXT NOT NULL DEFAULT 'running',
|
|
26
|
+
started_at INTEGER NOT NULL,
|
|
27
|
+
ended_at INTEGER,
|
|
28
|
+
duration_ms INTEGER,
|
|
29
|
+
span_count INTEGER NOT NULL DEFAULT 0,
|
|
30
|
+
total_tokens INTEGER NOT NULL DEFAULT 0,
|
|
31
|
+
total_cost REAL NOT NULL DEFAULT 0,
|
|
32
|
+
metadata TEXT DEFAULT '{}',
|
|
33
|
+
error TEXT,
|
|
34
|
+
created_at TEXT DEFAULT (datetime('now'))
|
|
35
|
+
);
|
|
36
|
+
CREATE INDEX IF NOT EXISTS idx_traces_name ON workflow_traces(name);
|
|
37
|
+
CREATE INDEX IF NOT EXISTS idx_traces_status ON workflow_traces(status);
|
|
38
|
+
CREATE INDEX IF NOT EXISTS idx_traces_started ON workflow_traces(started_at);
|
|
39
|
+
|
|
40
|
+
CREATE TABLE IF NOT EXISTS trace_spans (
|
|
41
|
+
id TEXT PRIMARY KEY,
|
|
42
|
+
trace_id TEXT NOT NULL,
|
|
43
|
+
parent_span_id TEXT,
|
|
44
|
+
name TEXT NOT NULL,
|
|
45
|
+
status TEXT NOT NULL DEFAULT 'running',
|
|
46
|
+
started_at INTEGER NOT NULL,
|
|
47
|
+
ended_at INTEGER,
|
|
48
|
+
duration_ms INTEGER,
|
|
49
|
+
tokens INTEGER NOT NULL DEFAULT 0,
|
|
50
|
+
cost REAL NOT NULL DEFAULT 0,
|
|
51
|
+
metadata TEXT DEFAULT '{}',
|
|
52
|
+
error TEXT,
|
|
53
|
+
FOREIGN KEY (trace_id) REFERENCES workflow_traces(id) ON DELETE CASCADE
|
|
54
|
+
);
|
|
55
|
+
CREATE INDEX IF NOT EXISTS idx_spans_trace ON trace_spans(trace_id);
|
|
56
|
+
CREATE INDEX IF NOT EXISTS idx_spans_parent ON trace_spans(parent_span_id);
|
|
57
|
+
`);
|
|
58
|
+
}
|
|
59
|
+
// ── Collector ───────────────────────────────────────────
|
|
60
|
+
export class TraceCollector {
|
|
61
|
+
db;
|
|
62
|
+
log = getLogger();
|
|
63
|
+
stmtInsertTrace;
|
|
64
|
+
stmtInsertSpan;
|
|
65
|
+
stmtEndTrace;
|
|
66
|
+
stmtEndSpan;
|
|
67
|
+
stmtUpdateTraceStats;
|
|
68
|
+
constructor(db) {
|
|
69
|
+
this.db = db;
|
|
70
|
+
runTraceMigration(db);
|
|
71
|
+
this.stmtInsertTrace = db.prepare(`INSERT INTO workflow_traces (id, name, status, started_at, metadata)
|
|
72
|
+
VALUES (?, ?, 'running', ?, ?)`);
|
|
73
|
+
this.stmtInsertSpan = db.prepare(`INSERT INTO trace_spans (id, trace_id, parent_span_id, name, status, started_at, metadata)
|
|
74
|
+
VALUES (?, ?, ?, ?, 'running', ?, ?)`);
|
|
75
|
+
this.stmtEndTrace = db.prepare(`UPDATE workflow_traces SET status = ?, ended_at = ?, duration_ms = ?, error = ?
|
|
76
|
+
WHERE id = ?`);
|
|
77
|
+
this.stmtEndSpan = db.prepare(`UPDATE trace_spans SET status = ?, ended_at = ?, duration_ms = ?, tokens = ?, cost = ?, error = ?
|
|
78
|
+
WHERE id = ?`);
|
|
79
|
+
this.stmtUpdateTraceStats = db.prepare(`UPDATE workflow_traces SET
|
|
80
|
+
span_count = (SELECT COUNT(*) FROM trace_spans WHERE trace_id = ?),
|
|
81
|
+
total_tokens = (SELECT COALESCE(SUM(tokens), 0) FROM trace_spans WHERE trace_id = ?),
|
|
82
|
+
total_cost = (SELECT COALESCE(SUM(cost), 0) FROM trace_spans WHERE trace_id = ?)
|
|
83
|
+
WHERE id = ?`);
|
|
84
|
+
this.log.debug('[TraceCollector] Initialized');
|
|
85
|
+
}
|
|
86
|
+
// ── Trace Lifecycle ─────────────────────────────────
|
|
87
|
+
/** Start a new trace. Returns trace ID. */
|
|
88
|
+
startTrace(name, metadata = {}) {
|
|
89
|
+
const id = randomUUID();
|
|
90
|
+
const now = Date.now();
|
|
91
|
+
try {
|
|
92
|
+
this.stmtInsertTrace.run(id, name, now, JSON.stringify(metadata));
|
|
93
|
+
}
|
|
94
|
+
catch (e) {
|
|
95
|
+
this.log.warn(`[TraceCollector] Failed to start trace: ${e.message}`);
|
|
96
|
+
}
|
|
97
|
+
return id;
|
|
98
|
+
}
|
|
99
|
+
/** End a trace (complete or error). */
|
|
100
|
+
endTrace(traceId, error) {
|
|
101
|
+
const now = Date.now();
|
|
102
|
+
try {
|
|
103
|
+
const trace = this.db.prepare('SELECT started_at FROM workflow_traces WHERE id = ?').get(traceId);
|
|
104
|
+
const duration = trace ? now - trace.started_at : 0;
|
|
105
|
+
const status = error ? 'error' : 'completed';
|
|
106
|
+
// Update aggregate stats from spans
|
|
107
|
+
this.stmtUpdateTraceStats.run(traceId, traceId, traceId, traceId);
|
|
108
|
+
this.stmtEndTrace.run(status, now, duration, error ?? null, traceId);
|
|
109
|
+
}
|
|
110
|
+
catch (e) {
|
|
111
|
+
this.log.warn(`[TraceCollector] Failed to end trace: ${e.message}`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
// ── Span Lifecycle ──────────────────────────────────
|
|
115
|
+
/** Start a span within a trace. Returns span ID. */
|
|
116
|
+
startSpan(traceId, name, options) {
|
|
117
|
+
const id = randomUUID();
|
|
118
|
+
const now = Date.now();
|
|
119
|
+
try {
|
|
120
|
+
this.stmtInsertSpan.run(id, traceId, options?.parentSpanId ?? null, name, now, JSON.stringify(options?.metadata ?? {}));
|
|
121
|
+
}
|
|
122
|
+
catch (e) {
|
|
123
|
+
this.log.warn(`[TraceCollector] Failed to start span: ${e.message}`);
|
|
124
|
+
}
|
|
125
|
+
return id;
|
|
126
|
+
}
|
|
127
|
+
/** End a span with optional results. */
|
|
128
|
+
endSpan(spanId, result) {
|
|
129
|
+
const now = Date.now();
|
|
130
|
+
try {
|
|
131
|
+
const span = this.db.prepare('SELECT started_at FROM trace_spans WHERE id = ?').get(spanId);
|
|
132
|
+
const duration = span ? now - span.started_at : 0;
|
|
133
|
+
const status = result?.error ? 'error' : 'completed';
|
|
134
|
+
this.stmtEndSpan.run(status, now, duration, result?.tokens ?? 0, result?.cost ?? 0, result?.error ?? null, spanId);
|
|
135
|
+
}
|
|
136
|
+
catch (e) {
|
|
137
|
+
this.log.warn(`[TraceCollector] Failed to end span: ${e.message}`);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
// ── Queries ─────────────────────────────────────────
|
|
141
|
+
/** Get a single trace with all its spans. */
|
|
142
|
+
getTrace(traceId) {
|
|
143
|
+
try {
|
|
144
|
+
const row = this.db.prepare('SELECT * FROM workflow_traces WHERE id = ?').get(traceId);
|
|
145
|
+
if (!row)
|
|
146
|
+
return null;
|
|
147
|
+
const spans = this.db.prepare('SELECT * FROM trace_spans WHERE trace_id = ? ORDER BY started_at').all(traceId);
|
|
148
|
+
return {
|
|
149
|
+
trace: this.mapTrace(row),
|
|
150
|
+
spans: spans.map(s => this.mapSpan(s)),
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
/** List traces with optional filters. */
|
|
158
|
+
listTraces(options = {}) {
|
|
159
|
+
const { limit = 50, offset = 0, name, status, since } = options;
|
|
160
|
+
try {
|
|
161
|
+
const conditions = [];
|
|
162
|
+
const params = [];
|
|
163
|
+
if (name) {
|
|
164
|
+
conditions.push('name = ?');
|
|
165
|
+
params.push(name);
|
|
166
|
+
}
|
|
167
|
+
if (status) {
|
|
168
|
+
conditions.push('status = ?');
|
|
169
|
+
params.push(status);
|
|
170
|
+
}
|
|
171
|
+
if (since) {
|
|
172
|
+
conditions.push('started_at >= ?');
|
|
173
|
+
params.push(since);
|
|
174
|
+
}
|
|
175
|
+
const where = conditions.length > 0 ? `WHERE ${conditions.join(' AND ')}` : '';
|
|
176
|
+
const sql = `SELECT * FROM workflow_traces ${where} ORDER BY started_at DESC LIMIT ? OFFSET ?`;
|
|
177
|
+
params.push(limit, offset);
|
|
178
|
+
const rows = this.db.prepare(sql).all(...params);
|
|
179
|
+
return rows.map(r => this.mapTrace(r));
|
|
180
|
+
}
|
|
181
|
+
catch {
|
|
182
|
+
return [];
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
/** Get aggregate statistics. */
|
|
186
|
+
getStats() {
|
|
187
|
+
try {
|
|
188
|
+
const totals = this.db.prepare(`
|
|
189
|
+
SELECT
|
|
190
|
+
COUNT(*) as total_traces,
|
|
191
|
+
COALESCE(SUM(span_count), 0) as total_spans,
|
|
192
|
+
COALESCE(SUM(total_tokens), 0) as total_tokens,
|
|
193
|
+
COALESCE(SUM(total_cost), 0) as total_cost,
|
|
194
|
+
COALESCE(AVG(duration_ms), 0) as avg_duration
|
|
195
|
+
FROM workflow_traces
|
|
196
|
+
WHERE status != 'running'
|
|
197
|
+
`).get();
|
|
198
|
+
const active = this.db.prepare("SELECT COUNT(*) as count FROM workflow_traces WHERE status = 'running'").get();
|
|
199
|
+
// P50 / P99 from completed traces
|
|
200
|
+
const durations = this.db.prepare("SELECT duration_ms FROM workflow_traces WHERE status = 'completed' AND duration_ms IS NOT NULL ORDER BY duration_ms").all();
|
|
201
|
+
const p50 = durations.length > 0
|
|
202
|
+
? durations[Math.floor(durations.length * 0.5)]?.duration_ms ?? 0
|
|
203
|
+
: 0;
|
|
204
|
+
const p99 = durations.length > 0
|
|
205
|
+
? durations[Math.floor(durations.length * 0.99)]?.duration_ms ?? 0
|
|
206
|
+
: 0;
|
|
207
|
+
// Traces by name
|
|
208
|
+
const byName = this.db.prepare('SELECT name, COUNT(*) as count FROM workflow_traces GROUP BY name').all();
|
|
209
|
+
const tracesByName = {};
|
|
210
|
+
for (const row of byName) {
|
|
211
|
+
tracesByName[row.name] = row.count;
|
|
212
|
+
}
|
|
213
|
+
return {
|
|
214
|
+
totalTraces: totals.total_traces ?? 0,
|
|
215
|
+
totalSpans: totals.total_spans ?? 0,
|
|
216
|
+
totalTokens: totals.total_tokens ?? 0,
|
|
217
|
+
totalCost: totals.total_cost ?? 0,
|
|
218
|
+
avgDurationMs: Math.round(totals.avg_duration ?? 0),
|
|
219
|
+
p50DurationMs: p50,
|
|
220
|
+
p99DurationMs: p99,
|
|
221
|
+
tracesByName,
|
|
222
|
+
activeTraces: active.count,
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
catch {
|
|
226
|
+
return {
|
|
227
|
+
totalTraces: 0, totalSpans: 0, totalTokens: 0, totalCost: 0,
|
|
228
|
+
avgDurationMs: 0, p50DurationMs: 0, p99DurationMs: 0,
|
|
229
|
+
tracesByName: {}, activeTraces: 0,
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
/** Get collector status (lightweight). */
|
|
234
|
+
getStatus() {
|
|
235
|
+
try {
|
|
236
|
+
const row = this.db.prepare(`
|
|
237
|
+
SELECT
|
|
238
|
+
COUNT(*) as total,
|
|
239
|
+
SUM(CASE WHEN status = 'running' THEN 1 ELSE 0 END) as active,
|
|
240
|
+
COALESCE(SUM(span_count), 0) as spans,
|
|
241
|
+
COALESCE(SUM(total_tokens), 0) as tokens,
|
|
242
|
+
COALESCE(SUM(total_cost), 0) as cost
|
|
243
|
+
FROM workflow_traces
|
|
244
|
+
`).get();
|
|
245
|
+
return {
|
|
246
|
+
totalTraces: row.total ?? 0,
|
|
247
|
+
activeTraces: row.active ?? 0,
|
|
248
|
+
totalSpans: row.spans ?? 0,
|
|
249
|
+
totalTokens: row.tokens ?? 0,
|
|
250
|
+
totalCost: row.cost ?? 0,
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
catch {
|
|
254
|
+
return { totalTraces: 0, activeTraces: 0, totalSpans: 0, totalTokens: 0, totalCost: 0 };
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
/** Delete traces older than maxAgeDays. Returns number pruned. */
|
|
258
|
+
prune(maxAgeDays = 30) {
|
|
259
|
+
try {
|
|
260
|
+
const cutoff = Date.now() - maxAgeDays * 86_400_000;
|
|
261
|
+
// Delete spans first (FK constraint)
|
|
262
|
+
this.db.prepare('DELETE FROM trace_spans WHERE trace_id IN (SELECT id FROM workflow_traces WHERE started_at < ? AND status != ?)').run(cutoff, 'running');
|
|
263
|
+
const result = this.db.prepare('DELETE FROM workflow_traces WHERE started_at < ? AND status != ?').run(cutoff, 'running');
|
|
264
|
+
return result.changes;
|
|
265
|
+
}
|
|
266
|
+
catch {
|
|
267
|
+
return 0;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
// ── Private ─────────────────────────────────────────
|
|
271
|
+
mapTrace(row) {
|
|
272
|
+
return {
|
|
273
|
+
id: row.id,
|
|
274
|
+
name: row.name,
|
|
275
|
+
status: row.status,
|
|
276
|
+
startedAt: row.started_at,
|
|
277
|
+
endedAt: row.ended_at,
|
|
278
|
+
durationMs: row.duration_ms,
|
|
279
|
+
spanCount: row.span_count,
|
|
280
|
+
totalTokens: row.total_tokens,
|
|
281
|
+
totalCost: row.total_cost,
|
|
282
|
+
metadata: JSON.parse(row.metadata || '{}'),
|
|
283
|
+
error: row.error,
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
mapSpan(row) {
|
|
287
|
+
return {
|
|
288
|
+
id: row.id,
|
|
289
|
+
traceId: row.trace_id,
|
|
290
|
+
parentSpanId: row.parent_span_id,
|
|
291
|
+
name: row.name,
|
|
292
|
+
status: row.status,
|
|
293
|
+
startedAt: row.started_at,
|
|
294
|
+
endedAt: row.ended_at,
|
|
295
|
+
durationMs: row.duration_ms,
|
|
296
|
+
tokens: row.tokens,
|
|
297
|
+
cost: row.cost,
|
|
298
|
+
metadata: JSON.parse(row.metadata || '{}'),
|
|
299
|
+
error: row.error,
|
|
300
|
+
};
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
//# sourceMappingURL=trace-collector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace-collector.js","sourceRoot":"","sources":["../../src/observability/trace-collector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAkE/C,2DAA2D;AAE3D,MAAM,UAAU,iBAAiB,CAAC,EAAqB;IACrD,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCP,CAAC,CAAC;AACL,CAAC;AAED,2DAA2D;AAE3D,MAAM,OAAO,cAAc;IAQL;IAPH,GAAG,GAAG,SAAS,EAAE,CAAC;IAC3B,eAAe,CAAqB;IACpC,cAAc,CAAqB;IACnC,YAAY,CAAqB;IACjC,WAAW,CAAqB;IAChC,oBAAoB,CAAqB;IAEjD,YAAoB,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;QACvC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAEtB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC,OAAO,CAC/B;sCACgC,CACjC,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC,OAAO,CAC9B;4CACsC,CACvC,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,OAAO,CAC5B;oBACc,CACf,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,OAAO,CAC3B;oBACc,CACf,CAAC;QACF,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC,OAAO,CACpC;;;;oBAIc,CACf,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACjD,CAAC;IAED,uDAAuD;IAEvD,2CAA2C;IAC3C,UAAU,CAAC,IAAY,EAAE,WAAoC,EAAE;QAC7D,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,2CAA4C,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACnF,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,uCAAuC;IACvC,QAAQ,CAAC,OAAe,EAAE,KAAc;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,qDAAqD,CAAC,CAAC,GAAG,CAAC,OAAO,CAAuC,CAAC;YACxI,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;YAE7C,oCAAoC;YACpC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAClE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,IAAI,IAAI,EAAE,OAAO,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,yCAA0C,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAED,uDAAuD;IAEvD,oDAAoD;IACpD,SAAS,CAAC,OAAe,EAAE,IAAY,EAAE,OAGxC;QACC,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,IAAI,CAAC,cAAc,CAAC,GAAG,CACrB,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,EACrD,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAC,CACxC,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0CAA2C,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,wCAAwC;IACxC,OAAO,CAAC,MAAc,EAAE,MAIvB;QACC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC,GAAG,CAAC,MAAM,CAAuC,CAAC;YAClI,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;YAErD,IAAI,CAAC,WAAW,CAAC,GAAG,CAClB,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,EAC7D,MAAM,EAAE,KAAK,IAAI,IAAI,EAAE,MAAM,CAC9B,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,wCAAyC,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAED,uDAAuD;IAEvD,6CAA6C;IAC7C,QAAQ,CAAC,OAAe;QACtB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC,GAAG,CAAC,OAAO,CAAwC,CAAC;YAC9H,IAAI,CAAC,GAAG;gBAAE,OAAO,IAAI,CAAC;YAEtB,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC3B,kEAAkE,CACnE,CAAC,GAAG,CAAC,OAAO,CAAmC,CAAC;YAEjD,OAAO;gBACL,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;gBACzB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;aACvC,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,yCAAyC;IACzC,UAAU,CAAC,UAA4B,EAAE;QACvC,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,MAAM,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;QAChE,IAAI,CAAC;YACH,MAAM,UAAU,GAAa,EAAE,CAAC;YAChC,MAAM,MAAM,GAAc,EAAE,CAAC;YAE7B,IAAI,IAAI,EAAE,CAAC;gBAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAAC,CAAC;YAC7D,IAAI,MAAM,EAAE,CAAC;gBAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAAC,CAAC;YACnE,IAAI,KAAK,EAAE,CAAC;gBAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAAC,CAAC;YAEtE,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/E,MAAM,GAAG,GAAG,iCAAiC,KAAK,4CAA4C,CAAC;YAC/F,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAE3B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAmC,CAAC;YACnF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,QAAQ;QACN,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;;OAS9B,CAAC,CAAC,GAAG,EAA4B,CAAC;YAEnC,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC5B,wEAAwE,CACzE,CAAC,GAAG,EAAuB,CAAC;YAE7B,kCAAkC;YAClC,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC/B,qHAAqH,CACtH,CAAC,GAAG,EAAoC,CAAC;YAE1C,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;gBAC9B,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,WAAW,IAAI,CAAC;gBACjE,CAAC,CAAC,CAAC,CAAC;YACN,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;gBAC9B,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,EAAE,WAAW,IAAI,CAAC;gBAClE,CAAC,CAAC,CAAC,CAAC;YAEN,iBAAiB;YACjB,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC5B,mEAAmE,CACpE,CAAC,GAAG,EAA4C,CAAC;YAElD,MAAM,YAAY,GAA2B,EAAE,CAAC;YAChD,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;gBACzB,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;YACrC,CAAC;YAED,OAAO;gBACL,WAAW,EAAE,MAAM,CAAC,YAAY,IAAI,CAAC;gBACrC,UAAU,EAAE,MAAM,CAAC,WAAW,IAAI,CAAC;gBACnC,WAAW,EAAE,MAAM,CAAC,YAAY,IAAI,CAAC;gBACrC,SAAS,EAAE,MAAM,CAAC,UAAU,IAAI,CAAC;gBACjC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC;gBACnD,aAAa,EAAE,GAAG;gBAClB,aAAa,EAAE,GAAG;gBAClB,YAAY;gBACZ,YAAY,EAAE,MAAM,CAAC,KAAK;aAC3B,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;gBACL,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC;gBAC3D,aAAa,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC;gBACpD,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC;aAClC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,0CAA0C;IAC1C,SAAS;QACP,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;OAQ3B,CAAC,CAAC,GAAG,EAA4B,CAAC;YAEnC,OAAO;gBACL,WAAW,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;gBAC3B,YAAY,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC;gBAC7B,UAAU,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;gBAC1B,WAAW,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC;gBAC5B,SAAS,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC;aACzB,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAC1F,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,KAAK,CAAC,UAAU,GAAG,EAAE;QACnB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,GAAG,UAAU,CAAC;YACpD,qCAAqC;YACrC,IAAI,CAAC,EAAE,CAAC,OAAO,CACb,iHAAiH,CAClH,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YACzB,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC5B,kEAAkE,CACnE,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YACzB,OAAO,MAAM,CAAC,OAAO,CAAC;QACxB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED,uDAAuD;IAE/C,QAAQ,CAAC,GAA4B;QAC3C,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAY;YACpB,IAAI,EAAE,GAAG,CAAC,IAAc;YACxB,MAAM,EAAE,GAAG,CAAC,MAAyB;YACrC,SAAS,EAAE,GAAG,CAAC,UAAoB;YACnC,OAAO,EAAE,GAAG,CAAC,QAAyB;YACtC,UAAU,EAAE,GAAG,CAAC,WAA4B;YAC5C,SAAS,EAAE,GAAG,CAAC,UAAoB;YACnC,WAAW,EAAE,GAAG,CAAC,YAAsB;YACvC,SAAS,EAAE,GAAG,CAAC,UAAoB;YACnC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAE,GAAG,CAAC,QAAmB,IAAI,IAAI,CAAC;YACtD,KAAK,EAAE,GAAG,CAAC,KAA2B;SACvC,CAAC;IACJ,CAAC;IAEO,OAAO,CAAC,GAA4B;QAC1C,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAY;YACpB,OAAO,EAAE,GAAG,CAAC,QAAkB;YAC/B,YAAY,EAAE,GAAG,CAAC,cAA+B;YACjD,IAAI,EAAE,GAAG,CAAC,IAAc;YACxB,MAAM,EAAE,GAAG,CAAC,MAAwB;YACpC,SAAS,EAAE,GAAG,CAAC,UAAoB;YACnC,OAAO,EAAE,GAAG,CAAC,QAAyB;YACtC,UAAU,EAAE,GAAG,CAAC,WAA4B;YAC5C,MAAM,EAAE,GAAG,CAAC,MAAgB;YAC5B,IAAI,EAAE,GAAG,CAAC,IAAc;YACxB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAE,GAAG,CAAC,QAAmB,IAAI,IAAI,CAAC;YACtD,KAAK,EAAE,GAAG,CAAC,KAA2B;SACvC,CAAC;IACJ,CAAC;CACF"}
|
package/package.json
CHANGED