@claude-flow/plugin-financial-risk 3.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,450 @@
1
+ /**
2
+ * Sparse Bridge - Financial Risk Plugin
3
+ *
4
+ * Provides sparse inference capabilities for efficient processing
5
+ * of high-dimensional financial data. Integrates with
6
+ * ruvector-sparse-inference-wasm for anomaly detection and
7
+ * market regime classification.
8
+ *
9
+ * Features:
10
+ * - Efficient sparse feature processing
11
+ * - Transaction anomaly detection
12
+ * - Market regime classification
13
+ * - Real-time fraud detection
14
+ */
15
+ /**
16
+ * Default logger
17
+ */
18
+ const defaultLogger = {
19
+ debug: (msg, meta) => console.debug(`[sparse-bridge] ${msg}`, meta),
20
+ info: (msg, meta) => console.info(`[sparse-bridge] ${msg}`, meta),
21
+ warn: (msg, meta) => console.warn(`[sparse-bridge] ${msg}`, meta),
22
+ error: (msg, meta) => console.error(`[sparse-bridge] ${msg}`, meta),
23
+ };
24
+ /**
25
+ * Anomaly detection using Isolation Forest-like approach
26
+ */
27
+ export class AnomalyDetector {
28
+ constructor(_numTrees = 100, _sampleSize = 256, _maxDepth = 8) {
29
+ // Parameters reserved for future Isolation Forest implementation
30
+ }
31
+ /**
32
+ * Calculate anomaly scores for transactions
33
+ */
34
+ calculateAnomalyScores(transactions) {
35
+ const scores = new Map();
36
+ const features = this.extractFeatures(transactions);
37
+ for (let i = 0; i < transactions.length; i++) {
38
+ const txn = transactions[i];
39
+ const featureVector = features[i];
40
+ const score = this.isolationScore(featureVector, features);
41
+ scores.set(txn.id, score);
42
+ }
43
+ return scores;
44
+ }
45
+ /**
46
+ * Detect anomalies above threshold
47
+ */
48
+ detectAnomalies(transactions, threshold = 0.8) {
49
+ const scores = this.calculateAnomalyScores(transactions);
50
+ const anomalies = [];
51
+ for (const txn of transactions) {
52
+ const score = scores.get(txn.id) ?? 0;
53
+ if (score >= threshold) {
54
+ anomalies.push({
55
+ transactionId: txn.id,
56
+ score,
57
+ severity: this.scoresToSeverity(score),
58
+ type: this.classifyAnomalyType(txn, score),
59
+ description: this.generateDescription(txn, score),
60
+ indicators: this.identifyIndicators(txn),
61
+ recommendedAction: this.recommendAction(score),
62
+ });
63
+ }
64
+ }
65
+ // Sort by score descending
66
+ anomalies.sort((a, b) => b.score - a.score);
67
+ return anomalies;
68
+ }
69
+ extractFeatures(transactions) {
70
+ return transactions.map(txn => {
71
+ const hour = new Date(txn.timestamp).getHours();
72
+ const dayOfWeek = new Date(txn.timestamp).getDay();
73
+ return [
74
+ Math.log(Math.abs(txn.amount) + 1), // Log-scaled amount
75
+ txn.amount < 0 ? 1 : 0, // Debit indicator
76
+ txn.parties.length, // Number of parties
77
+ hour / 24, // Normalized hour
78
+ dayOfWeek / 7, // Normalized day of week
79
+ txn.amount > 10000 ? 1 : 0, // Large transaction flag
80
+ txn.amount > 100000 ? 1 : 0, // Very large transaction flag
81
+ ];
82
+ });
83
+ }
84
+ isolationScore(point, allPoints) {
85
+ // Simplified isolation score based on distance from median
86
+ const numFeatures = point.length;
87
+ let totalDeviation = 0;
88
+ for (let f = 0; f < numFeatures; f++) {
89
+ const values = allPoints.map(p => p[f]).sort((a, b) => a - b);
90
+ const median = values[Math.floor(values.length / 2)];
91
+ const mad = this.medianAbsoluteDeviation(values, median);
92
+ if (mad > 0) {
93
+ totalDeviation += Math.abs(point[f] - median) / mad;
94
+ }
95
+ }
96
+ // Normalize score to [0, 1]
97
+ const normalizedScore = 1 - Math.exp(-totalDeviation / (numFeatures * 3));
98
+ return Math.min(Math.max(normalizedScore, 0), 1);
99
+ }
100
+ medianAbsoluteDeviation(values, median) {
101
+ const deviations = values.map(v => Math.abs(v - median));
102
+ deviations.sort((a, b) => a - b);
103
+ return deviations[Math.floor(deviations.length / 2)] ?? 1;
104
+ }
105
+ scoresToSeverity(score) {
106
+ if (score >= 0.95)
107
+ return 'critical';
108
+ if (score >= 0.85)
109
+ return 'high';
110
+ if (score >= 0.7)
111
+ return 'medium';
112
+ return 'low';
113
+ }
114
+ classifyAnomalyType(txn, score) {
115
+ if (Math.abs(txn.amount) > 100000)
116
+ return 'large_transaction';
117
+ if (txn.parties.length > 5)
118
+ return 'multi_party';
119
+ if (score > 0.9)
120
+ return 'pattern_deviation';
121
+ return 'unusual_activity';
122
+ }
123
+ generateDescription(txn, score) {
124
+ const amount = Math.abs(txn.amount).toLocaleString('en-US', { style: 'currency', currency: 'USD' });
125
+ return `Transaction ${txn.id} with amount ${amount} has anomaly score ${(score * 100).toFixed(1)}%`;
126
+ }
127
+ identifyIndicators(txn) {
128
+ const indicators = [];
129
+ if (Math.abs(txn.amount) > 10000)
130
+ indicators.push('large_amount');
131
+ if (txn.parties.length > 3)
132
+ indicators.push('multiple_parties');
133
+ const hour = new Date(txn.timestamp).getHours();
134
+ if (hour < 6 || hour > 22)
135
+ indicators.push('unusual_time');
136
+ const dayOfWeek = new Date(txn.timestamp).getDay();
137
+ if (dayOfWeek === 0 || dayOfWeek === 6)
138
+ indicators.push('weekend_transaction');
139
+ return indicators;
140
+ }
141
+ recommendAction(score) {
142
+ if (score >= 0.95)
143
+ return 'Immediate escalation to compliance team required';
144
+ if (score >= 0.85)
145
+ return 'Flag for manual review within 24 hours';
146
+ if (score >= 0.7)
147
+ return 'Add to monitoring watchlist';
148
+ return 'Continue standard monitoring';
149
+ }
150
+ }
151
+ /**
152
+ * Market regime classifier
153
+ */
154
+ export class MarketRegimeClassifier {
155
+ windowSize;
156
+ constructor(windowSize = 20) {
157
+ this.windowSize = windowSize;
158
+ }
159
+ /**
160
+ * Classify current market regime
161
+ */
162
+ classify(prices, _volumes) {
163
+ if (prices.length < this.windowSize) {
164
+ return { regime: 'sideways', confidence: 0.5 };
165
+ }
166
+ const returns = this.calculateReturns(prices);
167
+ const volatility = this.calculateVolatility(returns);
168
+ const trend = this.calculateTrend(prices);
169
+ const momentum = this.calculateMomentum(returns);
170
+ // Regime classification logic
171
+ const regime = this.determineRegime(trend, volatility, momentum);
172
+ const confidence = this.calculateConfidence(trend, volatility, momentum);
173
+ return { regime, confidence };
174
+ }
175
+ /**
176
+ * Get regime probabilities
177
+ */
178
+ getRegimeProbabilities(prices) {
179
+ const { regime, confidence } = this.classify(prices);
180
+ // Distribute probability based on confidence
181
+ const probs = {
182
+ bull: 0.1,
183
+ bear: 0.1,
184
+ sideways: 0.3,
185
+ high_vol: 0.2,
186
+ crisis: 0.1,
187
+ recovery: 0.2,
188
+ };
189
+ // Increase probability for detected regime
190
+ const totalOther = 1 - confidence;
191
+ for (const r of Object.keys(probs)) {
192
+ if (r === regime) {
193
+ probs[r] = confidence;
194
+ }
195
+ else {
196
+ probs[r] = (totalOther * probs[r]) / (1 - probs[regime]);
197
+ }
198
+ }
199
+ return probs;
200
+ }
201
+ calculateReturns(prices) {
202
+ const returns = [];
203
+ for (let i = 1; i < prices.length; i++) {
204
+ returns.push((prices[i] - prices[i - 1]) / prices[i - 1]);
205
+ }
206
+ return returns;
207
+ }
208
+ calculateVolatility(returns) {
209
+ if (returns.length < 2)
210
+ return 0;
211
+ const mean = returns.reduce((a, b) => a + b, 0) / returns.length;
212
+ const variance = returns.reduce((sum, r) => sum + Math.pow(r - mean, 2), 0) / (returns.length - 1);
213
+ return Math.sqrt(variance) * Math.sqrt(252); // Annualized
214
+ }
215
+ calculateTrend(prices) {
216
+ if (prices.length < 2)
217
+ return 0;
218
+ // Simple linear regression slope
219
+ const n = prices.length;
220
+ let sumX = 0, sumY = 0, sumXY = 0, sumX2 = 0;
221
+ for (let i = 0; i < n; i++) {
222
+ sumX += i;
223
+ sumY += prices[i];
224
+ sumXY += i * prices[i];
225
+ sumX2 += i * i;
226
+ }
227
+ const slope = (n * sumXY - sumX * sumY) / (n * sumX2 - sumX * sumX);
228
+ const avgPrice = sumY / n;
229
+ return slope / avgPrice * 252; // Annualized trend
230
+ }
231
+ calculateMomentum(returns) {
232
+ if (returns.length < this.windowSize)
233
+ return 0;
234
+ // Recent momentum vs historical
235
+ const recent = returns.slice(-Math.floor(this.windowSize / 2));
236
+ const historical = returns.slice(-this.windowSize, -Math.floor(this.windowSize / 2));
237
+ const recentMean = recent.reduce((a, b) => a + b, 0) / recent.length;
238
+ const historicalMean = historical.reduce((a, b) => a + b, 0) / historical.length;
239
+ return recentMean - historicalMean;
240
+ }
241
+ determineRegime(trend, volatility, momentum) {
242
+ // High volatility regimes
243
+ if (volatility > 0.4) {
244
+ if (trend < -0.3)
245
+ return 'crisis';
246
+ return 'high_vol';
247
+ }
248
+ // Trend-based regimes
249
+ if (trend > 0.15) {
250
+ return momentum > 0 ? 'bull' : 'recovery';
251
+ }
252
+ if (trend < -0.15) {
253
+ return 'bear';
254
+ }
255
+ return 'sideways';
256
+ }
257
+ calculateConfidence(trend, volatility, momentum) {
258
+ // Higher confidence for extreme values
259
+ const trendStrength = Math.min(Math.abs(trend) / 0.3, 1);
260
+ const volStrength = Math.min(volatility / 0.4, 1);
261
+ const momStrength = Math.min(Math.abs(momentum) / 0.01, 1);
262
+ return 0.4 + 0.6 * Math.max(trendStrength, volStrength, momStrength);
263
+ }
264
+ }
265
+ /**
266
+ * Financial Sparse Bridge implementation
267
+ */
268
+ export class FinancialSparseBridge {
269
+ wasmModule = null;
270
+ modelPtr = 0;
271
+ config;
272
+ logger;
273
+ anomalyDetector;
274
+ regimeClassifier;
275
+ initialized = false;
276
+ constructor(config, logger) {
277
+ this.config = {
278
+ sparsityThreshold: config?.sparsityThreshold ?? 0.9,
279
+ maxFeatures: config?.maxFeatures ?? 1000,
280
+ compressionLevel: config?.compressionLevel ?? 3,
281
+ };
282
+ this.logger = logger ?? defaultLogger;
283
+ this.anomalyDetector = new AnomalyDetector();
284
+ this.regimeClassifier = new MarketRegimeClassifier();
285
+ }
286
+ /**
287
+ * Initialize the sparse bridge
288
+ */
289
+ async initialize(config) {
290
+ if (config) {
291
+ this.config = { ...this.config, ...config };
292
+ }
293
+ try {
294
+ const wasmPath = await this.resolveWasmPath();
295
+ if (wasmPath) {
296
+ this.wasmModule = await this.loadWasmModule(wasmPath);
297
+ this.modelPtr = this.wasmModule.create_sparse_model(this.config.maxFeatures ?? 1000, 256, // Hidden dimension
298
+ this.config.sparsityThreshold ?? 0.9);
299
+ this.logger.info('Sparse WASM module initialized', {
300
+ maxFeatures: this.config.maxFeatures,
301
+ sparsityThreshold: this.config.sparsityThreshold,
302
+ });
303
+ }
304
+ else {
305
+ this.logger.warn('WASM module not available, using JavaScript fallback');
306
+ }
307
+ this.initialized = true;
308
+ }
309
+ catch (error) {
310
+ this.logger.warn('Failed to initialize WASM, using fallback', {
311
+ error: error instanceof Error ? error.message : String(error),
312
+ });
313
+ this.initialized = true;
314
+ }
315
+ }
316
+ /**
317
+ * Perform sparse inference on features
318
+ */
319
+ async sparseInference(features, indices) {
320
+ if (!this.initialized) {
321
+ throw new Error('Sparse bridge not initialized');
322
+ }
323
+ if (this.wasmModule && this.modelPtr) {
324
+ return this.wasmModule.sparse_forward(this.modelPtr, features, indices);
325
+ }
326
+ // Fallback: Simple linear projection
327
+ const output = new Float32Array(128);
328
+ for (let i = 0; i < indices.length && i < output.length; i++) {
329
+ const idx = indices[i];
330
+ if (idx < features.length) {
331
+ output[i] = features[idx] * 0.1; // Simple scaling
332
+ }
333
+ }
334
+ return output;
335
+ }
336
+ /**
337
+ * Detect anomalies in transactions
338
+ */
339
+ async detectAnomalies(transactions, threshold) {
340
+ if (!this.initialized) {
341
+ throw new Error('Sparse bridge not initialized');
342
+ }
343
+ if (this.wasmModule && this.modelPtr) {
344
+ const numSamples = transactions.length;
345
+ const featureDim = transactions[0]?.length ?? 0;
346
+ if (numSamples === 0 || featureDim === 0) {
347
+ return new Uint32Array(0);
348
+ }
349
+ // Flatten transactions
350
+ const flatData = new Float32Array(numSamples * featureDim);
351
+ for (let i = 0; i < numSamples; i++) {
352
+ flatData.set(transactions[i], i * featureDim);
353
+ }
354
+ return this.wasmModule.detect_anomalies(this.modelPtr, flatData, numSamples, featureDim, threshold);
355
+ }
356
+ // Fallback: Use JavaScript anomaly detector
357
+ // Convert Float32Array[] to FinancialTransaction[] for the detector
358
+ // This is a simplified fallback - in production, pass actual transactions
359
+ const anomalyIndices = [];
360
+ for (let i = 0; i < transactions.length; i++) {
361
+ const txn = transactions[i];
362
+ // Simple anomaly heuristic based on feature magnitudes
363
+ const magnitude = Math.sqrt(txn.reduce((sum, v) => sum + v * v, 0));
364
+ if (magnitude > threshold * 10) {
365
+ anomalyIndices.push(i);
366
+ }
367
+ }
368
+ return new Uint32Array(anomalyIndices);
369
+ }
370
+ /**
371
+ * Classify market regime from market data
372
+ */
373
+ async classifyRegime(marketData) {
374
+ if (!this.initialized) {
375
+ throw new Error('Sparse bridge not initialized');
376
+ }
377
+ if (this.wasmModule && this.modelPtr) {
378
+ const regimeCode = this.wasmModule.classify_regime(this.modelPtr, marketData, 20 // Window size
379
+ );
380
+ return {
381
+ regime: regimeCode,
382
+ confidence: 0.8, // WASM returns confidence separately in full implementation
383
+ };
384
+ }
385
+ // Fallback: Use JavaScript classifier
386
+ const prices = Array.from(marketData);
387
+ const result = this.regimeClassifier.classify(prices);
388
+ return {
389
+ regime: this.regimeToCode(result.regime),
390
+ confidence: result.confidence,
391
+ };
392
+ }
393
+ /**
394
+ * Detect anomalies in financial transactions
395
+ */
396
+ async detectTransactionAnomalies(transactions, threshold = 0.8) {
397
+ return this.anomalyDetector.detectAnomalies(transactions, threshold);
398
+ }
399
+ /**
400
+ * Classify market regime from price data
401
+ */
402
+ async classifyMarketRegime(prices, volumes) {
403
+ const { regime, confidence } = this.regimeClassifier.classify(prices, volumes);
404
+ const probabilities = this.regimeClassifier.getRegimeProbabilities(prices);
405
+ return { regime, confidence, probabilities };
406
+ }
407
+ /**
408
+ * Cleanup resources
409
+ */
410
+ destroy() {
411
+ if (this.wasmModule && this.modelPtr) {
412
+ this.wasmModule.free_model(this.modelPtr);
413
+ }
414
+ this.initialized = false;
415
+ }
416
+ // Private methods
417
+ async resolveWasmPath() {
418
+ try {
419
+ const module = await import(/* webpackIgnore: true */ 'ruvector-sparse-inference-wasm');
420
+ return module.default ?? null;
421
+ }
422
+ catch {
423
+ return null;
424
+ }
425
+ }
426
+ async loadWasmModule(wasmPath) {
427
+ const module = await import(wasmPath);
428
+ await module.default();
429
+ return module;
430
+ }
431
+ regimeToCode(regime) {
432
+ const codes = {
433
+ bull: 0,
434
+ bear: 1,
435
+ sideways: 2,
436
+ high_vol: 3,
437
+ crisis: 4,
438
+ recovery: 5,
439
+ };
440
+ return codes[regime] ?? 2;
441
+ }
442
+ }
443
+ /**
444
+ * Create a new sparse bridge instance
445
+ */
446
+ export function createSparseBridge(config, logger) {
447
+ return new FinancialSparseBridge(config, logger);
448
+ }
449
+ export default FinancialSparseBridge;
450
+ //# sourceMappingURL=sparse-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sparse-bridge.js","sourceRoot":"","sources":["../../src/bridges/sparse-bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Financial Risk Analysis Plugin
3
+ *
4
+ * A high-performance financial risk analysis plugin combining
5
+ * sparse inference for efficient market signal processing with
6
+ * graph neural networks for transaction network analysis.
7
+ *
8
+ * Features:
9
+ * - Portfolio risk analysis (VaR, CVaR, Sharpe, Sortino)
10
+ * - Transaction anomaly detection using GNN
11
+ * - Market regime classification
12
+ * - Regulatory compliance checking (Basel III, MiFID II, AML)
13
+ * - Stress testing with historical and hypothetical scenarios
14
+ *
15
+ * Compliance:
16
+ * - SOX and MiFID II compliant audit logging
17
+ * - Deterministic execution for reproducibility
18
+ * - Role-based access control
19
+ * - Rate limiting for fair resource allocation
20
+ *
21
+ * @packageDocumentation
22
+ * @module @claude-flow/plugin-financial-risk
23
+ */
24
+ export * from './types.js';
25
+ export { financialTools, toolHandlers, getTool, getToolNames, portfolioRiskTool, anomalyDetectTool, marketRegimeTool, complianceCheckTool, stressTestTool, } from './mcp-tools.js';
26
+ export { FinancialEconomyBridge, createEconomyBridge, PortfolioRiskCalculator, } from './bridges/economy-bridge.js';
27
+ export { FinancialSparseBridge, createSparseBridge, AnomalyDetector, MarketRegimeClassifier, } from './bridges/sparse-bridge.js';
28
+ import type { FinancialConfig, FinancialBridge, Logger } from './types.js';
29
+ /**
30
+ * Plugin metadata
31
+ */
32
+ export declare const pluginMetadata: {
33
+ name: string;
34
+ version: string;
35
+ description: string;
36
+ author: string;
37
+ license: string;
38
+ category: string;
39
+ tags: string[];
40
+ wasmPackages: string[];
41
+ };
42
+ /**
43
+ * Financial Risk Plugin class
44
+ */
45
+ export declare class FinancialRiskPlugin {
46
+ private config;
47
+ private logger;
48
+ private bridge;
49
+ private initialized;
50
+ constructor(config?: Partial<FinancialConfig>, logger?: Logger);
51
+ /**
52
+ * Initialize the plugin
53
+ */
54
+ initialize(): Promise<void>;
55
+ /**
56
+ * Get all MCP tools
57
+ */
58
+ getTools(): import("./types.js").MCPTool[];
59
+ /**
60
+ * Get the bridge for tool execution
61
+ */
62
+ getBridge(): FinancialBridge;
63
+ /**
64
+ * Get plugin configuration
65
+ */
66
+ getConfig(): FinancialConfig;
67
+ /**
68
+ * Cleanup resources
69
+ */
70
+ destroy(): Promise<void>;
71
+ }
72
+ /**
73
+ * Create a new Financial Risk Plugin instance
74
+ */
75
+ export declare function createFinancialPlugin(config?: Partial<FinancialConfig>, logger?: Logger): FinancialRiskPlugin;
76
+ /**
77
+ * Default export for plugin loader
78
+ */
79
+ declare const _default: {
80
+ metadata: {
81
+ name: string;
82
+ version: string;
83
+ description: string;
84
+ author: string;
85
+ license: string;
86
+ category: string;
87
+ tags: string[];
88
+ wasmPackages: string[];
89
+ };
90
+ tools: import("./types.js").MCPTool[];
91
+ createPlugin: typeof createFinancialPlugin;
92
+ FinancialRiskPlugin: typeof FinancialRiskPlugin;
93
+ };
94
+ export default _default;
95
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,cAAc,YAAY,CAAC;AAG3B,OAAO,EACL,cAAc,EACd,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,GACf,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,GACvB,MAAM,4BAA4B,CAAC;AAMpC,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAG3E;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;CAe1B,CAAC;AAEF;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM;IAe9D;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAqCjC;;OAEG;IACH,QAAQ;IAIR;;OAEG;IACH,SAAS,IAAI,eAAe;IAI5B;;OAEG;IACH,SAAS,IAAI,eAAe;IAI5B;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAW/B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,EACjC,MAAM,CAAC,EAAE,MAAM,GACd,mBAAmB,CAErB;AAED;;GAEG;;;;;;;;;;;;;;;;AACH,wBAKE"}