@timmeck/brain-core 2.36.37 → 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 +6 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/llm/index.d.ts +4 -0
- package/dist/llm/index.js +4 -0
- package/dist/llm/index.js.map +1 -1
- package/dist/llm/llm-service.d.ts +21 -0
- package/dist/llm/llm-service.js +45 -0
- package/dist/llm/llm-service.js.map +1 -1
- package/dist/llm/middleware.d.ts +122 -0
- package/dist/llm/middleware.js +185 -0
- package/dist/llm/middleware.js.map +1 -0
- package/dist/llm/structured-output.d.ts +76 -0
- package/dist/llm/structured-output.js +153 -0
- package/dist/llm/structured-output.js.map +1 -0
- 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
|
@@ -189,6 +189,10 @@ export type { PeerInfo, PeerNetworkConfig, PeerNetworkStatus } from './peer-netw
|
|
|
189
189
|
export { LLMService, runLLMServiceMigration } from './llm/index.js';
|
|
190
190
|
export { TaskRouter, AnthropicProvider, OllamaProvider, OllamaEmbeddingProvider } from './llm/index.js';
|
|
191
191
|
export type { LLMServiceConfig, LLMResponse, LLMUsageStats, PromptTemplate, ProviderInfo, LLMProvider, LLMMessage, LLMCallOptions, LLMProviderResponse, RoutingTier, AnthropicProviderConfig, OllamaProviderConfig, OllamaStatus, OllamaModelInfo, OllamaRunningModel, OllamaEmbeddingConfig, } from './llm/index.js';
|
|
192
|
+
export { parseStructuredOutput, extractJson, validateJsonSchema, getBlocks, getTextContent, getToolCalls, hasReasoning } from './llm/index.js';
|
|
193
|
+
export type { ContentBlock, TextBlock, ReasoningBlock, ToolCallBlock, CitationBlock, JsonBlock, StructuredLLMResponse, } from './llm/index.js';
|
|
194
|
+
export { composeMiddleware, retryMiddleware, costTrackingMiddleware, createCostTracker, piiRedactionMiddleware, loggingMiddleware, contextSummarizationMiddleware } from './llm/index.js';
|
|
195
|
+
export type { LLMMiddleware, LLMCallContext, NextFunction, RetryMiddlewareOptions, CostTracker, PiiRedactionOptions, LoggingMiddlewareOptions, LogEntry, ContextSummarizationOptions, } from './llm/index.js';
|
|
192
196
|
export { SignalScanner, runScannerMigration } from './scanner/index.js';
|
|
193
197
|
export { GitHubCollector } from './scanner/index.js';
|
|
194
198
|
export { HnCollector } from './scanner/index.js';
|
|
@@ -235,3 +239,5 @@ export { ActiveLearner, runActiveLearningMigration } from './active-learning/ind
|
|
|
235
239
|
export type { ActiveLearnerConfig, LearningGap, LearningStrategy, ActiveLearnerStatus } from './active-learning/index.js';
|
|
236
240
|
export { CheckpointManager, runCheckpointMigration } from './checkpoint/index.js';
|
|
237
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
|
@@ -163,6 +163,10 @@ export { PeerNetwork } from './peer-network/index.js';
|
|
|
163
163
|
// ── LLM Service ──────────────────────────────────────────
|
|
164
164
|
export { LLMService, runLLMServiceMigration } from './llm/index.js';
|
|
165
165
|
export { TaskRouter, AnthropicProvider, OllamaProvider, OllamaEmbeddingProvider } from './llm/index.js';
|
|
166
|
+
// ── Structured Output ──────────────────────────────────────
|
|
167
|
+
export { parseStructuredOutput, extractJson, validateJsonSchema, getBlocks, getTextContent, getToolCalls, hasReasoning } from './llm/index.js';
|
|
168
|
+
// ── LLM Middleware Pipeline ────────────────────────────────
|
|
169
|
+
export { composeMiddleware, retryMiddleware, costTrackingMiddleware, createCostTracker, piiRedactionMiddleware, loggingMiddleware, contextSummarizationMiddleware } from './llm/index.js';
|
|
166
170
|
// ── Scanner ──────────────────────────────────────────────
|
|
167
171
|
export { SignalScanner, runScannerMigration } from './scanner/index.js';
|
|
168
172
|
export { GitHubCollector } from './scanner/index.js';
|
|
@@ -203,4 +207,6 @@ export { ConsensusEngine, runConsensusMigration } from './consensus/index.js';
|
|
|
203
207
|
export { ActiveLearner, runActiveLearningMigration } from './active-learning/index.js';
|
|
204
208
|
// ── Checkpoint Manager ──────────────────────────────────────
|
|
205
209
|
export { CheckpointManager, runCheckpointMigration } from './checkpoint/index.js';
|
|
210
|
+
// ── Observability / Tracing ─────────────────────────────────
|
|
211
|
+
export { TraceCollector, runTraceMigration } from './observability/index.js';
|
|
206
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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"}
|
package/dist/llm/index.d.ts
CHANGED
|
@@ -8,3 +8,7 @@ export { OllamaProvider } from './ollama-provider.js';
|
|
|
8
8
|
export type { OllamaProviderConfig, OllamaStatus, OllamaModelInfo, OllamaRunningModel } from './ollama-provider.js';
|
|
9
9
|
export { OllamaEmbeddingProvider } from './ollama-embedding.js';
|
|
10
10
|
export type { OllamaEmbeddingConfig } from './ollama-embedding.js';
|
|
11
|
+
export { parseStructuredOutput, extractJson, validateJsonSchema, getBlocks, getTextContent, getToolCalls, hasReasoning } from './structured-output.js';
|
|
12
|
+
export type { ContentBlock, TextBlock, ReasoningBlock, ToolCallBlock, CitationBlock, JsonBlock, StructuredLLMResponse, } from './structured-output.js';
|
|
13
|
+
export { composeMiddleware, retryMiddleware, costTrackingMiddleware, createCostTracker, piiRedactionMiddleware, loggingMiddleware, contextSummarizationMiddleware } from './middleware.js';
|
|
14
|
+
export type { LLMMiddleware, LLMCallContext, NextFunction, RetryMiddlewareOptions, CostTracker, PiiRedactionOptions, LoggingMiddlewareOptions, LogEntry, ContextSummarizationOptions, } from './middleware.js';
|
package/dist/llm/index.js
CHANGED
|
@@ -3,4 +3,8 @@ export { TaskRouter } from './provider.js';
|
|
|
3
3
|
export { AnthropicProvider } from './anthropic-provider.js';
|
|
4
4
|
export { OllamaProvider } from './ollama-provider.js';
|
|
5
5
|
export { OllamaEmbeddingProvider } from './ollama-embedding.js';
|
|
6
|
+
// ── Structured Output ───────────────────────────────────
|
|
7
|
+
export { parseStructuredOutput, extractJson, validateJsonSchema, getBlocks, getTextContent, getToolCalls, hasReasoning } from './structured-output.js';
|
|
8
|
+
// ── Middleware Pipeline ─────────────────────────────────
|
|
9
|
+
export { composeMiddleware, retryMiddleware, costTrackingMiddleware, createCostTracker, piiRedactionMiddleware, loggingMiddleware, contextSummarizationMiddleware } from './middleware.js';
|
|
6
10
|
//# sourceMappingURL=index.js.map
|
package/dist/llm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAQtE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAG5D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAQtE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAG5D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAGhE,2DAA2D;AAC3D,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,kBAAkB,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAMvJ,2DAA2D;AAC3D,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type Database from 'better-sqlite3';
|
|
2
2
|
import type { LLMProvider } from './provider.js';
|
|
3
3
|
import { TaskRouter } from './provider.js';
|
|
4
|
+
import type { LLMMiddleware } from './middleware.js';
|
|
5
|
+
import type { StructuredLLMResponse } from './structured-output.js';
|
|
4
6
|
export interface LLMServiceConfig {
|
|
5
7
|
/** Anthropic API key. Falls back to ANTHROPIC_API_KEY env var. */
|
|
6
8
|
apiKey?: string;
|
|
@@ -80,6 +82,7 @@ export declare class LLMService {
|
|
|
80
82
|
private callHistory;
|
|
81
83
|
private stats;
|
|
82
84
|
private stmtInsertUsage;
|
|
85
|
+
private middlewares;
|
|
83
86
|
constructor(db: Database.Database, config?: LLMServiceConfig);
|
|
84
87
|
/**
|
|
85
88
|
* Register an additional LLM provider.
|
|
@@ -91,6 +94,13 @@ export declare class LLMService {
|
|
|
91
94
|
* ```
|
|
92
95
|
*/
|
|
93
96
|
registerProvider(provider: LLMProvider): void;
|
|
97
|
+
/**
|
|
98
|
+
* Register a middleware in the LLM call pipeline.
|
|
99
|
+
* Middlewares execute in registration order (first = outermost).
|
|
100
|
+
*/
|
|
101
|
+
use(middleware: LLMMiddleware): void;
|
|
102
|
+
/** Get registered middleware count (for debugging). */
|
|
103
|
+
getMiddlewareCount(): number;
|
|
94
104
|
/** Remove a provider by name. */
|
|
95
105
|
removeProvider(name: string): void;
|
|
96
106
|
/** Get all registered providers. */
|
|
@@ -113,6 +123,17 @@ export declare class LLMService {
|
|
|
113
123
|
temperature?: number;
|
|
114
124
|
provider?: string;
|
|
115
125
|
}): Promise<LLMResponse | null>;
|
|
126
|
+
/**
|
|
127
|
+
* Call LLM and parse response into structured ContentBlocks.
|
|
128
|
+
* Returns StructuredLLMResponse with both raw text and parsed blocks.
|
|
129
|
+
*/
|
|
130
|
+
callStructured(template: PromptTemplate, userMessage: string, options?: {
|
|
131
|
+
maxTokens?: number;
|
|
132
|
+
temperature?: number;
|
|
133
|
+
provider?: string;
|
|
134
|
+
}): Promise<StructuredLLMResponse | null>;
|
|
135
|
+
/** Internal call implementation (the actual LLM call logic). */
|
|
136
|
+
private callInternal;
|
|
116
137
|
/** Get usage statistics. */
|
|
117
138
|
getStats(): LLMUsageStats;
|
|
118
139
|
/** Get provider info with async availability checks. */
|
package/dist/llm/llm-service.js
CHANGED
|
@@ -2,6 +2,8 @@ import { createHash } from 'node:crypto';
|
|
|
2
2
|
import { getLogger } from '../utils/logger.js';
|
|
3
3
|
import { TaskRouter } from './provider.js';
|
|
4
4
|
import { AnthropicProvider } from './anthropic-provider.js';
|
|
5
|
+
import { composeMiddleware } from './middleware.js';
|
|
6
|
+
import { parseStructuredOutput } from './structured-output.js';
|
|
5
7
|
// ── Migration ───────────────────────────────────────────
|
|
6
8
|
export function runLLMServiceMigration(db) {
|
|
7
9
|
db.exec(`
|
|
@@ -100,6 +102,8 @@ export class LLMService {
|
|
|
100
102
|
};
|
|
101
103
|
// Prepared statements (lazy-initialized)
|
|
102
104
|
stmtInsertUsage = null;
|
|
105
|
+
// Middleware pipeline
|
|
106
|
+
middlewares = [];
|
|
103
107
|
constructor(db, config = {}) {
|
|
104
108
|
this.db = db;
|
|
105
109
|
this.model = config.model ?? 'claude-sonnet-4-20250514';
|
|
@@ -140,6 +144,17 @@ export class LLMService {
|
|
|
140
144
|
this.providers.push(provider);
|
|
141
145
|
this.log.debug(`[LLMService] Registered provider: ${provider.name} (${provider.costTier})`);
|
|
142
146
|
}
|
|
147
|
+
/**
|
|
148
|
+
* Register a middleware in the LLM call pipeline.
|
|
149
|
+
* Middlewares execute in registration order (first = outermost).
|
|
150
|
+
*/
|
|
151
|
+
use(middleware) {
|
|
152
|
+
this.middlewares.push(middleware);
|
|
153
|
+
}
|
|
154
|
+
/** Get registered middleware count (for debugging). */
|
|
155
|
+
getMiddlewareCount() {
|
|
156
|
+
return this.middlewares.length;
|
|
157
|
+
}
|
|
143
158
|
/** Remove a provider by name. */
|
|
144
159
|
removeProvider(name) {
|
|
145
160
|
this.providers = this.providers.filter(p => p.name !== name);
|
|
@@ -174,6 +189,36 @@ export class LLMService {
|
|
|
174
189
|
* - Fallback chain: if preferred provider fails → try next
|
|
175
190
|
*/
|
|
176
191
|
async call(template, userMessage, options) {
|
|
192
|
+
// If middlewares registered, route through pipeline
|
|
193
|
+
if (this.middlewares.length > 0) {
|
|
194
|
+
const ctx = {
|
|
195
|
+
template,
|
|
196
|
+
userMessage,
|
|
197
|
+
options: options ?? {},
|
|
198
|
+
metadata: {},
|
|
199
|
+
startedAt: Date.now(),
|
|
200
|
+
};
|
|
201
|
+
const chain = composeMiddleware(this.middlewares, (c) => this.callInternal(c.template, c.userMessage, c.options));
|
|
202
|
+
return chain(ctx);
|
|
203
|
+
}
|
|
204
|
+
return this.callInternal(template, userMessage, options);
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Call LLM and parse response into structured ContentBlocks.
|
|
208
|
+
* Returns StructuredLLMResponse with both raw text and parsed blocks.
|
|
209
|
+
*/
|
|
210
|
+
async callStructured(template, userMessage, options) {
|
|
211
|
+
const response = await this.call(template, userMessage, options);
|
|
212
|
+
if (!response)
|
|
213
|
+
return null;
|
|
214
|
+
const blocks = parseStructuredOutput(response.text);
|
|
215
|
+
return {
|
|
216
|
+
...response,
|
|
217
|
+
blocks,
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
/** Internal call implementation (the actual LLM call logic). */
|
|
221
|
+
async callInternal(template, userMessage, options) {
|
|
177
222
|
// Check cache first (provider-agnostic)
|
|
178
223
|
const cacheKey = this.getCacheKey(template, userMessage);
|
|
179
224
|
const cached = this.getFromCache(cacheKey);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-service.js","sourceRoot":"","sources":["../../src/llm/llm-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAsF5D,2DAA2D;AAE3D,MAAM,UAAU,sBAAsB,CAAC,EAAqB;IAC1D,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;GAeP,CAAC,CAAC;IAEH,iEAAiE;IACjE,IAAI,CAAC;QACH,EAAE,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAC;IACzF,CAAC;IAAC,MAAM,CAAC;QACP,iCAAiC;IACnC,CAAC;AACH,CAAC;AAED,2DAA2D;AAE3D,MAAM,cAAc,GAAmC;IACrD,OAAO,EAAE;;;uFAG4E;IAErF,GAAG,EAAE;;;4GAGqG;IAE1G,iBAAiB,EAAE;;;;;;;2DAOsC;IAEzD,mBAAmB,EAAE;;;;;;;;kEAQ2C;IAEhE,iBAAiB,EAAE;;;8DAGyC;IAE5D,SAAS,EAAE;;oEAEuD;IAElE,qBAAqB,EAAE;;;;;4DAKmC;IAE1D,MAAM,EAAE;0CACgC;CACzC,CAAC;AAEF,2DAA2D;AAE3D,MAAM,OAAO,UAAU;IA+BD;IA9BH,KAAK,CAAS;IACd,SAAS,CAAS;IAClB,eAAe,CAAS;IACxB,kBAAkB,CAAS;IAC3B,iBAAiB,CAAS;IAC1B,UAAU,CAAS;IACnB,eAAe,CAAS;IACxB,GAAG,GAAG,SAAS,EAAE,CAAC;IAClB,MAAM,CAAa;IAEpC,YAAY;IACJ,SAAS,GAAkB,EAAE,CAAC;IAEtC,kBAAkB;IACV,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;IACtC,WAAW,GAAiB,EAAE,CAAC;IAC/B,KAAK,GAAG;QACd,UAAU,EAAE,CAAC;QACb,WAAW,EAAE,CAAC;QACd,SAAS,EAAE,CAAC;QACZ,WAAW,EAAE,CAAC;QACd,aAAa,EAAE,CAAC;QAChB,MAAM,EAAE,CAAC;QACT,cAAc,EAAE,CAAC;QACjB,UAAU,EAAE,IAAqB;KAClC,CAAC;IAEF,yCAAyC;IACjC,eAAe,GAA8B,IAAI,CAAC;IAE1D,YAAoB,EAAqB,EAAE,SAA2B,EAAE;QAApD,OAAE,GAAF,EAAE,CAAmB;QACvC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,0BAA0B,CAAC;QACxD,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC;QAC1C,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC;QACpD,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,IAAI,OAAO,CAAC;QAC/D,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,IAAI,OAAO,CAAC;QAC7D,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,SAAS,CAAC;QACjD,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,GAAG,CAAC;QACrD,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC;QAEzD,sBAAsB,CAAC,EAAE,CAAC,CAAC;QAE3B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC,OAAO,CAC/B,mKAAmK,CACpK,CAAC;QAEF,+CAA+C;QAC/C,MAAM,eAAe,GAA4B;YAC/C,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC;QACF,MAAM,SAAS,GAAG,IAAI,iBAAiB,CAAC,eAAe,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE/B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,mCAAmC,IAAI,CAAC,KAAK,wCAAwC,MAAM,CAAC,WAAW,IAAI,IAAI,GAAG,CAAC,CAAC;IACrI,CAAC;IAED;;;;;;;;OAQG;IACH,gBAAgB,CAAC,QAAqB;QACpC,4BAA4B;QAC5B,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,0BAA0B,QAAQ,CAAC,IAAI,gCAAgC,CAAC,CAAC;YACxF,OAAO;QACT,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,qCAAqC,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC9F,CAAC;IAED,iCAAiC;IACjC,cAAc,CAAC,IAAY;QACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED,oCAAoC;IACpC,YAAY;QACV,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAED,uDAAuD;IACvD,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,+DAA+D;IAC/D,WAAW;QACT,0EAA0E;QAC1E,yFAAyF;QACzF,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YAC7B,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC3B,iCAAiC;gBACjC,OAAO,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC;YAC7B,CAAC;YACD,OAAO,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,IAAI,CACR,QAAwB,EACxB,WAAmB,EACnB,OAAyE;QAEzE,wCAAwC;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YACnD,OAAO,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACrC,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAEzB,wCAAwC;QACxC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC/E,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;YACtD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,sDAAsD;QACtD,MAAM,YAAY,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG;YACf,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,YAAY,EAAE;YAClD,EAAE,IAAI,EAAE,MAAe,EAAE,OAAO,EAAE,WAAW,EAAE;SAChD,CAAC;QAEF,6BAA6B;QAC7B,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;YACrC,4CAA4C;YAC5C,IAAI,QAAQ,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACjC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;oBAC3B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;oBAC3B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uCAAuC,QAAQ,CAAC,IAAI,eAAe,CAAC,CAAC;oBACpF,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;oBAC7B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;oBAC3B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,2CAA2C,QAAQ,CAAC,IAAI,eAAe,CAAC,CAAC;oBACxF,SAAS;gBACX,CAAC;YACH,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,gBAAgB,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE;oBACrD,SAAS,EAAE,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC,SAAS;oBAC/C,WAAW,EAAE,OAAO,EAAE,WAAW;iBAClC,CAAC,CAAC;gBAEH,MAAM,WAAW,GAAG,gBAAgB,CAAC,WAAW,GAAG,gBAAgB,CAAC,YAAY,CAAC;gBAEjF,MAAM,MAAM,GAAgB;oBAC1B,IAAI,EAAE,gBAAgB,CAAC,IAAI;oBAC3B,UAAU,EAAE,WAAW;oBACvB,WAAW,EAAE,gBAAgB,CAAC,WAAW;oBACzC,YAAY,EAAE,gBAAgB,CAAC,YAAY;oBAC3C,MAAM,EAAE,KAAK;oBACb,KAAK,EAAE,gBAAgB,CAAC,KAAK;oBAC7B,UAAU,EAAE,gBAAgB,CAAC,UAAU;oBACvC,QAAQ,EAAE,QAAQ,CAAC,IAAI;iBACxB,CAAC;gBAEF,eAAe;gBACf,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;gBACxB,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,WAAW,CAAC;gBACtC,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,gBAAgB,CAAC,UAAU,CAAC;gBACzD,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACnC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;gBAE/F,qBAAqB;gBACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAEhC,eAAe;gBACf,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;gBAEpD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,QAAQ,QAAQ,QAAQ,CAAC,IAAI,KAAK,WAAW,YAAY,gBAAgB,CAAC,UAAU,IAAI,CAAC,CAAC;gBAEzH,OAAO,MAAM,CAAC;YAChB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBACpB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,QAAQ,CAAC,IAAI,aAAc,GAAa,CAAC,OAAO,eAAe,CAAC,CAAC;gBACzG,SAAS;YACX,CAAC;QACH,CAAC;QAED,uBAAuB;QACvB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4BAA4B;IAC5B,QAAQ;QACN,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,UAAU,GAAG,GAAG,GAAG,SAAS,CAAC;QACnC,MAAM,SAAS,GAAG,GAAG,GAAG,UAAU,CAAC;QAEnC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,UAAU,CAAC,CAAC,MAAM,CAAC;QACpF,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAChH,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAE5G,uDAAuD;QACvD,MAAM,SAAS,GAAmB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzD,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,SAAS,EAAE,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,mBAAmB;YACrF,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC,YAAY,EAAE;SACpC,CAAC,CAAC,CAAC;QAEJ,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;YACjC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW;YACnC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;YAC/B,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW;YACnC,YAAY,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC;gBAC/D,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;gBACxE,CAAC,CAAC,CAAC;YACL,aAAa;YACb,cAAc;YACd,WAAW;YACX,mBAAmB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,kBAAkB,GAAG,cAAc,CAAC;YAC1E,kBAAkB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC;YACrE,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACnG,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa;YACvC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;YACzB,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;YACjC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS;SACV,CAAC;IACJ,CAAC;IAED,wDAAwD;IACxD,KAAK,CAAC,iBAAiB;QACrB,OAAO,OAAO,CAAC,GAAG,CAChB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAC,CAAC,EAAC,EAAE,CAAC,CAAC;YAC7B,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,SAAS,EAAE,MAAM,CAAC,CAAC,WAAW,EAAE;YAChC,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC,YAAY,EAAE;SACpC,CAAC,CAAC,CACJ,CAAC;IACJ,CAAC;IAED,iDAAiD;IACjD,eAAe,CAAC,KAAK,GAAG,EAAE;QACxB,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;;OAStB,CAAC,CAAC,GAAG,CAAC,KAAK,CAA2E,CAAC;QAC1F,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,kBAAkB;QAChB,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;;OAStB,CAAC,CAAC,GAAG,EAAoF,CAAC;QAC7F,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,yCAAyC;IACzC,KAAK,CAAC,QAAQ;QACZ,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACtB,IAAI,CAAC;oBACH,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAC5B,CAAC;gBAAC,MAAM,CAAC;oBACP,cAAc;gBAChB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,0DAA0D;IAE1D,+EAA+E;IACvE,KAAK,CAAC,gBAAgB,CAAC,QAAwB,EAAE,cAAuB;QAC9E,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;YAC9D,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE;gBAAE,OAAO,CAAC,CAAC,CAAC,CAAC;YAC3C,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,yBAAyB;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAE3D,gCAAgC;QAChC,MAAM,SAAS,GAAkB,EAAE,CAAC;QACpC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC1B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,cAAc;QACpB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAC1C,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,mDAAmD;QACnD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,UAAU,CAAC,CAAC,MAAM,CAAC;QAClF,OAAO,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC;IAC5C,CAAC;IAEO,gBAAgB;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,UAAU,GAAG,GAAG,GAAG,SAAS,CAAC;QACnC,MAAM,SAAS,GAAG,GAAG,GAAG,UAAU,CAAC;QAEnC,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAChH,IAAI,cAAc,IAAI,IAAI,CAAC,kBAAkB;YAAE,OAAO,KAAK,CAAC;QAE5D,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC5G,IAAI,WAAW,IAAI,IAAI,CAAC,iBAAiB;YAAE,OAAO,KAAK,CAAC;QAExD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,WAAW,CAAC,QAAwB,EAAE,WAAmB;QAC/D,MAAM,KAAK,GAAG,GAAG,QAAQ,IAAI,WAAW,EAAE,CAAC;QAC3C,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1D,CAAC;IAEO,YAAY,CAAC,GAAW;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC,QAAQ,CAAC;IACxB,CAAC;IAEO,QAAQ,CAAC,GAAW,EAAE,QAAqB;QACjD,wCAAwC;QACxC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAChD,IAAI,QAAQ;gBAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YAClB,QAAQ;YACR,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU;SACxC,CAAC,CAAC;IACL,CAAC;IAEO,gBAAgB;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC;QAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;IAC3E,CAAC;IAEO,WAAW,CAAC,IAAY,EAAE,QAAgB,EAAE,QAAqB,EAAE,MAAe;QACxF,IAAI,CAAC;YACH,IAAI,CAAC,eAAe,EAAE,GAAG,CACvB,IAAI,EACJ,QAAQ,EACR,QAAQ,CAAC,KAAK,EACd,QAAQ,CAAC,WAAW,EACpB,QAAQ,CAAC,YAAY,EACrB,QAAQ,CAAC,UAAU,EACnB,QAAQ,CAAC,UAAU,EACnB,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACd,QAAQ,CAAC,QAAQ,IAAI,WAAW,CACjC,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,wCAAwC;QAC1C,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"llm-service.js","sourceRoot":"","sources":["../../src/llm/llm-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LLM Middleware Pipeline — Composable request/response processing
|
|
3
|
+
*
|
|
4
|
+
* Inspiriert von LangChain's callback system und Express middleware.
|
|
5
|
+
* Jede Middleware kann den LLM-Call modifizieren, loggen, oder abbrechen.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* ```typescript
|
|
9
|
+
* llmService.use(loggingMiddleware());
|
|
10
|
+
* llmService.use(retryMiddleware({ maxAttempts: 3 }));
|
|
11
|
+
* llmService.use(costTrackingMiddleware(tracker));
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
import type { LLMResponse, PromptTemplate } from './llm-service.js';
|
|
15
|
+
export interface LLMCallContext {
|
|
16
|
+
/** Template being used */
|
|
17
|
+
template: PromptTemplate;
|
|
18
|
+
/** User message / prompt content */
|
|
19
|
+
userMessage: string;
|
|
20
|
+
/** Call options */
|
|
21
|
+
options: {
|
|
22
|
+
maxTokens?: number;
|
|
23
|
+
temperature?: number;
|
|
24
|
+
provider?: string;
|
|
25
|
+
};
|
|
26
|
+
/** Metadata bag — middlewares can attach arbitrary data */
|
|
27
|
+
metadata: Record<string, unknown>;
|
|
28
|
+
/** Timestamp when the call started */
|
|
29
|
+
startedAt: number;
|
|
30
|
+
}
|
|
31
|
+
export type NextFunction = (ctx: LLMCallContext) => Promise<LLMResponse | null>;
|
|
32
|
+
/**
|
|
33
|
+
* Middleware function signature.
|
|
34
|
+
* Receives the call context and a `next` function to continue the chain.
|
|
35
|
+
* Can modify context before calling next, modify response after, or short-circuit.
|
|
36
|
+
*/
|
|
37
|
+
export type LLMMiddleware = (ctx: LLMCallContext, next: NextFunction) => Promise<LLMResponse | null>;
|
|
38
|
+
/**
|
|
39
|
+
* Compose multiple middlewares into a single middleware chain.
|
|
40
|
+
* Middlewares execute in registration order (first registered = outermost).
|
|
41
|
+
*/
|
|
42
|
+
export declare function composeMiddleware(middlewares: LLMMiddleware[], handler: NextFunction): NextFunction;
|
|
43
|
+
export interface RetryMiddlewareOptions {
|
|
44
|
+
/** Max retry attempts. Default: 3 */
|
|
45
|
+
maxAttempts?: number;
|
|
46
|
+
/** Base delay in ms. Default: 1000 */
|
|
47
|
+
baseDelay?: number;
|
|
48
|
+
/** Max delay in ms. Default: 30000 */
|
|
49
|
+
maxDelay?: number;
|
|
50
|
+
/** Only retry on these error types. Default: all errors */
|
|
51
|
+
retryOn?: (error: Error) => boolean;
|
|
52
|
+
/** Callback on each retry */
|
|
53
|
+
onRetry?: (attempt: number, error: Error) => void;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Retry middleware — automatic retry with exponential backoff.
|
|
57
|
+
* Uses the shared retryWithBackoff utility.
|
|
58
|
+
*/
|
|
59
|
+
export declare function retryMiddleware(options?: RetryMiddlewareOptions): LLMMiddleware;
|
|
60
|
+
export interface CostTracker {
|
|
61
|
+
totalCost: number;
|
|
62
|
+
callCount: number;
|
|
63
|
+
costPerTemplate: Record<string, number>;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Cost tracking middleware — tracks per-call and aggregate costs.
|
|
67
|
+
*/
|
|
68
|
+
export declare function costTrackingMiddleware(tracker: CostTracker): LLMMiddleware;
|
|
69
|
+
/**
|
|
70
|
+
* Create a fresh cost tracker instance.
|
|
71
|
+
*/
|
|
72
|
+
export declare function createCostTracker(): CostTracker;
|
|
73
|
+
export interface PiiRedactionOptions {
|
|
74
|
+
/** Patterns to redact. Default: email, phone, SSN, credit card */
|
|
75
|
+
patterns?: Array<{
|
|
76
|
+
regex: RegExp;
|
|
77
|
+
replacement: string;
|
|
78
|
+
}>;
|
|
79
|
+
/** Custom redaction function */
|
|
80
|
+
redact?: (text: string) => string;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* PII redaction middleware — strips sensitive data from prompts before sending to LLM.
|
|
84
|
+
*/
|
|
85
|
+
export declare function piiRedactionMiddleware(options?: PiiRedactionOptions): LLMMiddleware;
|
|
86
|
+
export interface LoggingMiddlewareOptions {
|
|
87
|
+
/** Log level. Default: 'debug' */
|
|
88
|
+
level?: 'debug' | 'info';
|
|
89
|
+
/** Include full prompt in log. Default: false */
|
|
90
|
+
includePrompt?: boolean;
|
|
91
|
+
/** Max prompt length in log. Default: 200 */
|
|
92
|
+
maxPromptLength?: number;
|
|
93
|
+
/** Custom log handler (overrides default logger) */
|
|
94
|
+
onLog?: (entry: LogEntry) => void;
|
|
95
|
+
}
|
|
96
|
+
export interface LogEntry {
|
|
97
|
+
template: PromptTemplate;
|
|
98
|
+
provider: string | null;
|
|
99
|
+
durationMs: number;
|
|
100
|
+
inputTokens: number;
|
|
101
|
+
outputTokens: number;
|
|
102
|
+
cached: boolean;
|
|
103
|
+
success: boolean;
|
|
104
|
+
error?: string;
|
|
105
|
+
prompt?: string;
|
|
106
|
+
metadata: Record<string, unknown>;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Logging middleware — structured trace logging for every LLM call.
|
|
110
|
+
*/
|
|
111
|
+
export declare function loggingMiddleware(options?: LoggingMiddlewareOptions): LLMMiddleware;
|
|
112
|
+
export interface ContextSummarizationOptions {
|
|
113
|
+
/** Max character length before summarization kicks in. Default: 50000 */
|
|
114
|
+
maxLength?: number;
|
|
115
|
+
/** How aggressively to compress. Default: 0.5 (keep ~50%) */
|
|
116
|
+
compressionRatio?: number;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Context summarization middleware — truncates overly long prompts.
|
|
120
|
+
* Simple heuristic: keeps the first and last portions when too long.
|
|
121
|
+
*/
|
|
122
|
+
export declare function contextSummarizationMiddleware(options?: ContextSummarizationOptions): LLMMiddleware;
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LLM Middleware Pipeline — Composable request/response processing
|
|
3
|
+
*
|
|
4
|
+
* Inspiriert von LangChain's callback system und Express middleware.
|
|
5
|
+
* Jede Middleware kann den LLM-Call modifizieren, loggen, oder abbrechen.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* ```typescript
|
|
9
|
+
* llmService.use(loggingMiddleware());
|
|
10
|
+
* llmService.use(retryMiddleware({ maxAttempts: 3 }));
|
|
11
|
+
* llmService.use(costTrackingMiddleware(tracker));
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
import { retryWithBackoff } from '../utils/retry.js';
|
|
15
|
+
import { getLogger } from '../utils/logger.js';
|
|
16
|
+
// ── Compose ─────────────────────────────────────────────
|
|
17
|
+
/**
|
|
18
|
+
* Compose multiple middlewares into a single middleware chain.
|
|
19
|
+
* Middlewares execute in registration order (first registered = outermost).
|
|
20
|
+
*/
|
|
21
|
+
export function composeMiddleware(middlewares, handler) {
|
|
22
|
+
if (middlewares.length === 0)
|
|
23
|
+
return handler;
|
|
24
|
+
return middlewares.reduceRight((next, mw) => (ctx) => mw(ctx, next), handler);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Retry middleware — automatic retry with exponential backoff.
|
|
28
|
+
* Uses the shared retryWithBackoff utility.
|
|
29
|
+
*/
|
|
30
|
+
export function retryMiddleware(options = {}) {
|
|
31
|
+
const { maxAttempts = 3, baseDelay = 1000, maxDelay = 30000, retryOn, onRetry, } = options;
|
|
32
|
+
return async (ctx, next) => {
|
|
33
|
+
return retryWithBackoff(() => next(ctx).then(r => {
|
|
34
|
+
if (r === null)
|
|
35
|
+
throw new Error('LLM call returned null');
|
|
36
|
+
return r;
|
|
37
|
+
}), {
|
|
38
|
+
maxAttempts,
|
|
39
|
+
baseDelay,
|
|
40
|
+
maxDelay,
|
|
41
|
+
retryOn,
|
|
42
|
+
onRetry: onRetry ? (attempt, error) => onRetry(attempt, error) : undefined,
|
|
43
|
+
}).catch(() => null);
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
/** Token pricing per model (USD per 1K tokens) */
|
|
47
|
+
const MODEL_PRICING = {
|
|
48
|
+
'claude-sonnet-4-20250514': { input: 0.003, output: 0.015 },
|
|
49
|
+
'claude-haiku-3-5-20241022': { input: 0.001, output: 0.005 },
|
|
50
|
+
'claude-opus-4-20250514': { input: 0.015, output: 0.075 },
|
|
51
|
+
};
|
|
52
|
+
function estimateCost(response) {
|
|
53
|
+
const pricing = MODEL_PRICING[response.model] ?? { input: 0.003, output: 0.015 };
|
|
54
|
+
return (response.inputTokens * pricing.input + response.outputTokens * pricing.output) / 1000;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Cost tracking middleware — tracks per-call and aggregate costs.
|
|
58
|
+
*/
|
|
59
|
+
export function costTrackingMiddleware(tracker) {
|
|
60
|
+
return async (ctx, next) => {
|
|
61
|
+
const response = await next(ctx);
|
|
62
|
+
if (response) {
|
|
63
|
+
const cost = estimateCost(response);
|
|
64
|
+
tracker.totalCost += cost;
|
|
65
|
+
tracker.callCount++;
|
|
66
|
+
tracker.costPerTemplate[ctx.template] = (tracker.costPerTemplate[ctx.template] ?? 0) + cost;
|
|
67
|
+
ctx.metadata['cost'] = cost;
|
|
68
|
+
ctx.metadata['totalCost'] = tracker.totalCost;
|
|
69
|
+
}
|
|
70
|
+
return response;
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Create a fresh cost tracker instance.
|
|
75
|
+
*/
|
|
76
|
+
export function createCostTracker() {
|
|
77
|
+
return { totalCost: 0, callCount: 0, costPerTemplate: {} };
|
|
78
|
+
}
|
|
79
|
+
const DEFAULT_PII_PATTERNS = [
|
|
80
|
+
// API keys (common patterns) — must come before phone to avoid partial matches
|
|
81
|
+
{ regex: /\bsk-[a-zA-Z0-9]{20,}\b/g, replacement: '[API_KEY]' },
|
|
82
|
+
// Email addresses
|
|
83
|
+
{ regex: /[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g, replacement: '[EMAIL]' },
|
|
84
|
+
// Credit card numbers
|
|
85
|
+
{ regex: /\b\d{4}[-\s]?\d{4}[-\s]?\d{4}[-\s]?\d{4}\b/g, replacement: '[CARD]' },
|
|
86
|
+
// SSN
|
|
87
|
+
{ regex: /\b\d{3}-\d{2}-\d{4}\b/g, replacement: '[SSN]' },
|
|
88
|
+
// Phone numbers (various formats)
|
|
89
|
+
{ regex: /(\+?\d{1,3}[-.\s]?)?\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}/g, replacement: '[PHONE]' },
|
|
90
|
+
];
|
|
91
|
+
/**
|
|
92
|
+
* PII redaction middleware — strips sensitive data from prompts before sending to LLM.
|
|
93
|
+
*/
|
|
94
|
+
export function piiRedactionMiddleware(options = {}) {
|
|
95
|
+
const patterns = options.patterns ?? DEFAULT_PII_PATTERNS;
|
|
96
|
+
const customRedact = options.redact;
|
|
97
|
+
return async (ctx, next) => {
|
|
98
|
+
let sanitized = ctx.userMessage;
|
|
99
|
+
if (customRedact) {
|
|
100
|
+
sanitized = customRedact(sanitized);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
for (const p of patterns) {
|
|
104
|
+
sanitized = sanitized.replace(p.regex, p.replacement);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
// Only modify if something changed
|
|
108
|
+
if (sanitized !== ctx.userMessage) {
|
|
109
|
+
ctx.metadata['piiRedacted'] = true;
|
|
110
|
+
ctx.userMessage = sanitized;
|
|
111
|
+
}
|
|
112
|
+
return next(ctx);
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Logging middleware — structured trace logging for every LLM call.
|
|
117
|
+
*/
|
|
118
|
+
export function loggingMiddleware(options = {}) {
|
|
119
|
+
const { level = 'debug', includePrompt = false, maxPromptLength = 200, onLog, } = options;
|
|
120
|
+
const log = getLogger();
|
|
121
|
+
return async (ctx, next) => {
|
|
122
|
+
const start = Date.now();
|
|
123
|
+
let response = null;
|
|
124
|
+
let error = null;
|
|
125
|
+
try {
|
|
126
|
+
response = await next(ctx);
|
|
127
|
+
return response;
|
|
128
|
+
}
|
|
129
|
+
catch (e) {
|
|
130
|
+
error = e;
|
|
131
|
+
throw e;
|
|
132
|
+
}
|
|
133
|
+
finally {
|
|
134
|
+
const entry = {
|
|
135
|
+
template: ctx.template,
|
|
136
|
+
provider: response?.provider ?? null,
|
|
137
|
+
durationMs: Date.now() - start,
|
|
138
|
+
inputTokens: response?.inputTokens ?? 0,
|
|
139
|
+
outputTokens: response?.outputTokens ?? 0,
|
|
140
|
+
cached: response?.cached ?? false,
|
|
141
|
+
success: response !== null && !error,
|
|
142
|
+
error: error?.message,
|
|
143
|
+
metadata: ctx.metadata,
|
|
144
|
+
};
|
|
145
|
+
if (includePrompt) {
|
|
146
|
+
entry.prompt = ctx.userMessage.length > maxPromptLength
|
|
147
|
+
? ctx.userMessage.slice(0, maxPromptLength) + '...'
|
|
148
|
+
: ctx.userMessage;
|
|
149
|
+
}
|
|
150
|
+
if (onLog) {
|
|
151
|
+
onLog(entry);
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
const msg = `[LLM] ${ctx.template} via ${entry.provider ?? 'none'}: ${entry.inputTokens}+${entry.outputTokens} tokens, ${entry.durationMs}ms${entry.cached ? ' (cached)' : ''}${error ? ` ERROR: ${error.message}` : ''}`;
|
|
155
|
+
if (level === 'info') {
|
|
156
|
+
log.info(msg);
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
log.debug(msg);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Context summarization middleware — truncates overly long prompts.
|
|
167
|
+
* Simple heuristic: keeps the first and last portions when too long.
|
|
168
|
+
*/
|
|
169
|
+
export function contextSummarizationMiddleware(options = {}) {
|
|
170
|
+
const { maxLength = 50000, compressionRatio = 0.5 } = options;
|
|
171
|
+
return async (ctx, next) => {
|
|
172
|
+
if (ctx.userMessage.length > maxLength) {
|
|
173
|
+
const keepChars = Math.floor(maxLength * compressionRatio);
|
|
174
|
+
const halfKeep = Math.floor(keepChars / 2);
|
|
175
|
+
const truncated = ctx.userMessage.slice(0, halfKeep) +
|
|
176
|
+
`\n\n[... ${ctx.userMessage.length - keepChars} characters truncated ...]\n\n` +
|
|
177
|
+
ctx.userMessage.slice(-halfKeep);
|
|
178
|
+
ctx.userMessage = truncated;
|
|
179
|
+
ctx.metadata['contextTruncated'] = true;
|
|
180
|
+
ctx.metadata['originalLength'] = ctx.userMessage.length;
|
|
181
|
+
}
|
|
182
|
+
return next(ctx);
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=middleware.js.map
|