@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.
- package/README.md +343 -0
- package/dist/bridges/economy-bridge.d.ts +112 -0
- package/dist/bridges/economy-bridge.d.ts.map +1 -0
- package/dist/bridges/economy-bridge.js +430 -0
- package/dist/bridges/economy-bridge.js.map +1 -0
- package/dist/bridges/index.d.ts +8 -0
- package/dist/bridges/index.d.ts.map +1 -0
- package/dist/bridges/index.js +8 -0
- package/dist/bridges/index.js.map +1 -0
- package/dist/bridges/sparse-bridge.d.ts +118 -0
- package/dist/bridges/sparse-bridge.d.ts.map +1 -0
- package/dist/bridges/sparse-bridge.js +450 -0
- package/dist/bridges/sparse-bridge.js.map +1 -0
- package/dist/index.d.ts +95 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +155 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp-tools.d.ts +22 -0
- package/dist/mcp-tools.d.ts.map +1 -0
- package/dist/mcp-tools.js +705 -0
- package/dist/mcp-tools.js.map +1 -0
- package/dist/types.d.ts +792 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +189 -0
- package/dist/types.js.map +1 -0
- package/package.json +105 -0
|
@@ -0,0 +1,430 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Economy Bridge - Financial Risk Plugin
|
|
3
|
+
*
|
|
4
|
+
* Provides token economics and portfolio risk calculation
|
|
5
|
+
* capabilities. Integrates with ruvector-economy-wasm for
|
|
6
|
+
* high-performance VaR, CVaR, and Monte Carlo simulations.
|
|
7
|
+
*
|
|
8
|
+
* Compliance Features:
|
|
9
|
+
* - Deterministic execution for audit reproducibility
|
|
10
|
+
* - Calculation proofs for regulatory requirements
|
|
11
|
+
* - Rate limiting to prevent abuse
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Default logger
|
|
15
|
+
*/
|
|
16
|
+
const defaultLogger = {
|
|
17
|
+
debug: (msg, meta) => console.debug(`[economy-bridge] ${msg}`, meta),
|
|
18
|
+
info: (msg, meta) => console.info(`[economy-bridge] ${msg}`, meta),
|
|
19
|
+
warn: (msg, meta) => console.warn(`[economy-bridge] ${msg}`, meta),
|
|
20
|
+
error: (msg, meta) => console.error(`[economy-bridge] ${msg}`, meta),
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Portfolio risk calculator with pure JavaScript fallback
|
|
24
|
+
*/
|
|
25
|
+
export class PortfolioRiskCalculator {
|
|
26
|
+
/**
|
|
27
|
+
* Calculate Value at Risk (VaR) using historical simulation
|
|
28
|
+
*/
|
|
29
|
+
calculateVaR(returns, confidenceLevel = 0.95) {
|
|
30
|
+
if (returns.length === 0)
|
|
31
|
+
return 0;
|
|
32
|
+
const sorted = [...returns].sort((a, b) => a - b);
|
|
33
|
+
const index = Math.floor((1 - confidenceLevel) * sorted.length);
|
|
34
|
+
return -sorted[index];
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Calculate Conditional VaR (CVaR / Expected Shortfall)
|
|
38
|
+
*/
|
|
39
|
+
calculateCVaR(returns, confidenceLevel = 0.95) {
|
|
40
|
+
if (returns.length === 0)
|
|
41
|
+
return 0;
|
|
42
|
+
const sorted = [...returns].sort((a, b) => a - b);
|
|
43
|
+
const cutoffIndex = Math.floor((1 - confidenceLevel) * sorted.length);
|
|
44
|
+
let sum = 0;
|
|
45
|
+
for (let i = 0; i <= cutoffIndex; i++) {
|
|
46
|
+
sum += sorted[i];
|
|
47
|
+
}
|
|
48
|
+
return -sum / (cutoffIndex + 1);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Calculate annualized volatility
|
|
52
|
+
*/
|
|
53
|
+
calculateVolatility(returns, annualizationFactor = 252) {
|
|
54
|
+
if (returns.length < 2)
|
|
55
|
+
return 0;
|
|
56
|
+
const mean = returns.reduce((a, b) => a + b, 0) / returns.length;
|
|
57
|
+
const variance = returns.reduce((sum, r) => sum + Math.pow(r - mean, 2), 0) / (returns.length - 1);
|
|
58
|
+
const dailyVol = Math.sqrt(variance);
|
|
59
|
+
return dailyVol * Math.sqrt(annualizationFactor);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Calculate Sharpe Ratio
|
|
63
|
+
*/
|
|
64
|
+
calculateSharpe(returns, riskFreeRate = 0.02) {
|
|
65
|
+
if (returns.length < 2)
|
|
66
|
+
return 0;
|
|
67
|
+
const annualizedReturn = this.calculateAnnualizedReturn(returns);
|
|
68
|
+
const volatility = this.calculateVolatility(returns);
|
|
69
|
+
if (volatility === 0)
|
|
70
|
+
return 0;
|
|
71
|
+
return (annualizedReturn - riskFreeRate) / volatility;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Calculate Sortino Ratio
|
|
75
|
+
*/
|
|
76
|
+
calculateSortino(returns, riskFreeRate = 0.02) {
|
|
77
|
+
if (returns.length < 2)
|
|
78
|
+
return 0;
|
|
79
|
+
const annualizedReturn = this.calculateAnnualizedReturn(returns);
|
|
80
|
+
const downsideReturns = returns.filter(r => r < 0);
|
|
81
|
+
if (downsideReturns.length === 0)
|
|
82
|
+
return Infinity;
|
|
83
|
+
const downsideDeviation = Math.sqrt(downsideReturns.reduce((sum, r) => sum + r * r, 0) / downsideReturns.length) * Math.sqrt(252);
|
|
84
|
+
if (downsideDeviation === 0)
|
|
85
|
+
return 0;
|
|
86
|
+
return (annualizedReturn - riskFreeRate) / downsideDeviation;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Calculate Maximum Drawdown
|
|
90
|
+
*/
|
|
91
|
+
calculateMaxDrawdown(prices) {
|
|
92
|
+
if (prices.length < 2)
|
|
93
|
+
return 0;
|
|
94
|
+
let maxDrawdown = 0;
|
|
95
|
+
let peak = prices[0];
|
|
96
|
+
for (const price of prices) {
|
|
97
|
+
if (price > peak) {
|
|
98
|
+
peak = price;
|
|
99
|
+
}
|
|
100
|
+
const drawdown = (peak - price) / peak;
|
|
101
|
+
if (drawdown > maxDrawdown) {
|
|
102
|
+
maxDrawdown = drawdown;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return maxDrawdown;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Calculate Beta against market benchmark
|
|
109
|
+
*/
|
|
110
|
+
calculateBeta(assetReturns, marketReturns) {
|
|
111
|
+
if (assetReturns.length !== marketReturns.length || assetReturns.length < 2)
|
|
112
|
+
return 1;
|
|
113
|
+
const assetMean = assetReturns.reduce((a, b) => a + b, 0) / assetReturns.length;
|
|
114
|
+
const marketMean = marketReturns.reduce((a, b) => a + b, 0) / marketReturns.length;
|
|
115
|
+
let covariance = 0;
|
|
116
|
+
let marketVariance = 0;
|
|
117
|
+
for (let i = 0; i < assetReturns.length; i++) {
|
|
118
|
+
const assetDev = assetReturns[i] - assetMean;
|
|
119
|
+
const marketDev = marketReturns[i] - marketMean;
|
|
120
|
+
covariance += assetDev * marketDev;
|
|
121
|
+
marketVariance += marketDev * marketDev;
|
|
122
|
+
}
|
|
123
|
+
if (marketVariance === 0)
|
|
124
|
+
return 1;
|
|
125
|
+
return covariance / marketVariance;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Monte Carlo simulation for portfolio
|
|
129
|
+
*/
|
|
130
|
+
monteCarloSimulation(portfolioReturns, scenarios = 10000, horizon = 252, seed) {
|
|
131
|
+
// Simple random number generator with seed
|
|
132
|
+
let rng = seed !== undefined ? this.seededRandom(seed) : Math.random;
|
|
133
|
+
const mean = portfolioReturns.reduce((a, b) => a + b, 0) / portfolioReturns.length;
|
|
134
|
+
const std = this.calculateVolatility(portfolioReturns, 1); // Daily volatility
|
|
135
|
+
const results = [];
|
|
136
|
+
for (let s = 0; s < scenarios; s++) {
|
|
137
|
+
let cumulativeReturn = 0;
|
|
138
|
+
for (let d = 0; d < horizon; d++) {
|
|
139
|
+
// Box-Muller transform for normal distribution
|
|
140
|
+
const u1 = rng();
|
|
141
|
+
const u2 = rng();
|
|
142
|
+
const z = Math.sqrt(-2 * Math.log(u1)) * Math.cos(2 * Math.PI * u2);
|
|
143
|
+
cumulativeReturn += mean + std * z;
|
|
144
|
+
}
|
|
145
|
+
results.push(cumulativeReturn);
|
|
146
|
+
}
|
|
147
|
+
return results.sort((a, b) => a - b);
|
|
148
|
+
}
|
|
149
|
+
calculateAnnualizedReturn(returns) {
|
|
150
|
+
if (returns.length === 0)
|
|
151
|
+
return 0;
|
|
152
|
+
const totalReturn = returns.reduce((a, b) => a + b, 0);
|
|
153
|
+
const avgDailyReturn = totalReturn / returns.length;
|
|
154
|
+
return avgDailyReturn * 252; // Annualize
|
|
155
|
+
}
|
|
156
|
+
seededRandom(seed) {
|
|
157
|
+
let state = seed;
|
|
158
|
+
return () => {
|
|
159
|
+
state = (state * 1103515245 + 12345) & 0x7fffffff;
|
|
160
|
+
return state / 0x7fffffff;
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Financial Economy Bridge implementation
|
|
166
|
+
*/
|
|
167
|
+
export class FinancialEconomyBridge {
|
|
168
|
+
wasmModule = null;
|
|
169
|
+
config;
|
|
170
|
+
logger;
|
|
171
|
+
calculator;
|
|
172
|
+
marketDataCache;
|
|
173
|
+
randomSeed;
|
|
174
|
+
initialized = false;
|
|
175
|
+
constructor(config, logger) {
|
|
176
|
+
this.config = {
|
|
177
|
+
precision: config?.precision ?? 6,
|
|
178
|
+
randomSeed: config?.randomSeed ?? Date.now(),
|
|
179
|
+
defaultScenarios: config?.defaultScenarios ?? 10000,
|
|
180
|
+
};
|
|
181
|
+
this.logger = logger ?? defaultLogger;
|
|
182
|
+
this.calculator = new PortfolioRiskCalculator();
|
|
183
|
+
this.randomSeed = this.config.randomSeed;
|
|
184
|
+
this.marketDataCache = {
|
|
185
|
+
returns: new Map(),
|
|
186
|
+
prices: new Map(),
|
|
187
|
+
lastUpdated: new Date(),
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Initialize the economy bridge
|
|
192
|
+
*/
|
|
193
|
+
async initialize(config) {
|
|
194
|
+
if (config) {
|
|
195
|
+
this.config = { ...this.config, ...config };
|
|
196
|
+
if (config.randomSeed) {
|
|
197
|
+
this.randomSeed = config.randomSeed;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
try {
|
|
201
|
+
const wasmPath = await this.resolveWasmPath();
|
|
202
|
+
if (wasmPath) {
|
|
203
|
+
this.wasmModule = await this.loadWasmModule(wasmPath);
|
|
204
|
+
this.logger.info('Economy WASM module initialized', {
|
|
205
|
+
precision: this.config.precision,
|
|
206
|
+
defaultScenarios: this.config.defaultScenarios,
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
this.logger.warn('WASM module not available, using JavaScript fallback');
|
|
211
|
+
}
|
|
212
|
+
this.initialized = true;
|
|
213
|
+
}
|
|
214
|
+
catch (error) {
|
|
215
|
+
this.logger.warn('Failed to initialize WASM, using fallback', {
|
|
216
|
+
error: error instanceof Error ? error.message : String(error),
|
|
217
|
+
});
|
|
218
|
+
this.initialized = true;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Calculate Value at Risk
|
|
223
|
+
*/
|
|
224
|
+
async calculateVar(returns, confidence) {
|
|
225
|
+
if (!this.initialized) {
|
|
226
|
+
throw new Error('Economy bridge not initialized');
|
|
227
|
+
}
|
|
228
|
+
if (this.wasmModule) {
|
|
229
|
+
return this.wasmModule.calculate_var(returns, confidence);
|
|
230
|
+
}
|
|
231
|
+
return this.calculator.calculateVaR(Array.from(returns), confidence);
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Calculate Conditional VaR
|
|
235
|
+
*/
|
|
236
|
+
async calculateCvar(returns, confidence) {
|
|
237
|
+
if (!this.initialized) {
|
|
238
|
+
throw new Error('Economy bridge not initialized');
|
|
239
|
+
}
|
|
240
|
+
if (this.wasmModule) {
|
|
241
|
+
return this.wasmModule.calculate_cvar(returns, confidence);
|
|
242
|
+
}
|
|
243
|
+
return this.calculator.calculateCVaR(Array.from(returns), confidence);
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Optimize portfolio allocation
|
|
247
|
+
*/
|
|
248
|
+
async optimizePortfolio(returns, constraints) {
|
|
249
|
+
if (!this.initialized) {
|
|
250
|
+
throw new Error('Economy bridge not initialized');
|
|
251
|
+
}
|
|
252
|
+
const assetCount = returns.length;
|
|
253
|
+
const periodCount = returns[0]?.length ?? 0;
|
|
254
|
+
if (this.wasmModule && assetCount > 0 && periodCount > 0) {
|
|
255
|
+
// Flatten returns array
|
|
256
|
+
const flatReturns = new Float32Array(assetCount * periodCount);
|
|
257
|
+
for (let i = 0; i < assetCount; i++) {
|
|
258
|
+
flatReturns.set(returns[i], i * periodCount);
|
|
259
|
+
}
|
|
260
|
+
const constraintsArray = new Float32Array([
|
|
261
|
+
constraints.minWeight ?? 0,
|
|
262
|
+
constraints.maxWeight ?? 1,
|
|
263
|
+
constraints.targetReturn ?? 0.1,
|
|
264
|
+
constraints.maxVolatility ?? 0.2,
|
|
265
|
+
]);
|
|
266
|
+
return this.wasmModule.optimize_portfolio(flatReturns, constraintsArray, assetCount, periodCount);
|
|
267
|
+
}
|
|
268
|
+
// Fallback: Equal weight allocation
|
|
269
|
+
const weights = new Float32Array(assetCount);
|
|
270
|
+
const equalWeight = 1 / assetCount;
|
|
271
|
+
for (let i = 0; i < assetCount; i++) {
|
|
272
|
+
weights[i] = equalWeight;
|
|
273
|
+
}
|
|
274
|
+
return weights;
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Run Monte Carlo simulation
|
|
278
|
+
*/
|
|
279
|
+
async simulateMonteCarlo(portfolio, scenarios, horizon) {
|
|
280
|
+
if (!this.initialized) {
|
|
281
|
+
throw new Error('Economy bridge not initialized');
|
|
282
|
+
}
|
|
283
|
+
if (this.wasmModule) {
|
|
284
|
+
// Create identity covariance for simplicity
|
|
285
|
+
const n = portfolio.length;
|
|
286
|
+
const covariance = new Float32Array(n * n);
|
|
287
|
+
for (let i = 0; i < n; i++) {
|
|
288
|
+
covariance[i * n + i] = 1.0;
|
|
289
|
+
}
|
|
290
|
+
return this.wasmModule.monte_carlo_simulation(portfolio, covariance, scenarios, horizon, this.randomSeed);
|
|
291
|
+
}
|
|
292
|
+
// Fallback: JavaScript Monte Carlo
|
|
293
|
+
const results = this.calculator.monteCarloSimulation(Array.from(portfolio), scenarios, horizon, this.randomSeed);
|
|
294
|
+
return new Float32Array(results);
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Calculate complete risk metrics for a portfolio
|
|
298
|
+
*/
|
|
299
|
+
async calculateRiskMetrics(holdings, confidenceLevel = 0.95, horizon = '1d') {
|
|
300
|
+
// Generate synthetic returns for demonstration
|
|
301
|
+
// In production, fetch actual historical data
|
|
302
|
+
const returns = this.generateSyntheticReturns(holdings.length, 252);
|
|
303
|
+
const prices = this.returnsToPrice(returns, 100);
|
|
304
|
+
const horizonDays = this.getHorizonDays(horizon);
|
|
305
|
+
const scaledReturns = this.scaleReturns(returns, horizonDays);
|
|
306
|
+
const returnsArray = new Float32Array(scaledReturns);
|
|
307
|
+
return {
|
|
308
|
+
var: await this.calculateVar(returnsArray, confidenceLevel),
|
|
309
|
+
cvar: await this.calculateCvar(returnsArray, confidenceLevel),
|
|
310
|
+
sharpe: this.calculator.calculateSharpe(returns),
|
|
311
|
+
sortino: this.calculator.calculateSortino(returns),
|
|
312
|
+
maxDrawdown: this.calculator.calculateMaxDrawdown(prices),
|
|
313
|
+
volatility: this.calculator.calculateVolatility(returns),
|
|
314
|
+
confidenceLevel,
|
|
315
|
+
horizon,
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* Generate calculation proof for audit
|
|
320
|
+
*/
|
|
321
|
+
generateCalculationProof(input, output, _modelVersion = '1.0.0') {
|
|
322
|
+
const inputHash = this.hashObject(input);
|
|
323
|
+
const outputHash = this.hashObject(output);
|
|
324
|
+
return {
|
|
325
|
+
inputHash,
|
|
326
|
+
modelChecksum: this.getModelChecksum(),
|
|
327
|
+
randomSeed: this.randomSeed.toString(),
|
|
328
|
+
outputHash,
|
|
329
|
+
signature: this.signProof(inputHash, outputHash),
|
|
330
|
+
timestamp: new Date().toISOString(),
|
|
331
|
+
};
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Cleanup resources
|
|
335
|
+
*/
|
|
336
|
+
destroy() {
|
|
337
|
+
this.marketDataCache.returns.clear();
|
|
338
|
+
this.marketDataCache.prices.clear();
|
|
339
|
+
this.initialized = false;
|
|
340
|
+
}
|
|
341
|
+
// Private methods
|
|
342
|
+
async resolveWasmPath() {
|
|
343
|
+
try {
|
|
344
|
+
const module = await import(/* webpackIgnore: true */ 'ruvector-economy-wasm');
|
|
345
|
+
return module.default ?? null;
|
|
346
|
+
}
|
|
347
|
+
catch {
|
|
348
|
+
return null;
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
async loadWasmModule(wasmPath) {
|
|
352
|
+
const module = await import(wasmPath);
|
|
353
|
+
await module.default();
|
|
354
|
+
return module;
|
|
355
|
+
}
|
|
356
|
+
generateSyntheticReturns(_numAssets, numDays) {
|
|
357
|
+
// Generate synthetic returns for demonstration
|
|
358
|
+
const returns = [];
|
|
359
|
+
const dailyMean = 0.0004; // ~10% annual
|
|
360
|
+
const dailyVol = 0.012; // ~19% annual
|
|
361
|
+
for (let i = 0; i < numDays; i++) {
|
|
362
|
+
// Box-Muller for normal distribution
|
|
363
|
+
const u1 = Math.random();
|
|
364
|
+
const u2 = Math.random();
|
|
365
|
+
const z = Math.sqrt(-2 * Math.log(u1)) * Math.cos(2 * Math.PI * u2);
|
|
366
|
+
returns.push(dailyMean + dailyVol * z);
|
|
367
|
+
}
|
|
368
|
+
return returns;
|
|
369
|
+
}
|
|
370
|
+
returnsToPrice(returns, startPrice) {
|
|
371
|
+
const prices = [startPrice];
|
|
372
|
+
let currentPrice = startPrice;
|
|
373
|
+
for (const ret of returns) {
|
|
374
|
+
currentPrice *= (1 + ret);
|
|
375
|
+
prices.push(currentPrice);
|
|
376
|
+
}
|
|
377
|
+
return prices;
|
|
378
|
+
}
|
|
379
|
+
getHorizonDays(horizon) {
|
|
380
|
+
switch (horizon) {
|
|
381
|
+
case '1d': return 1;
|
|
382
|
+
case '1w': return 5;
|
|
383
|
+
case '1m': return 21;
|
|
384
|
+
case '3m': return 63;
|
|
385
|
+
case '1y': return 252;
|
|
386
|
+
default: return 1;
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
390
|
+
scaleReturns(returns, days) {
|
|
391
|
+
if (days === 1)
|
|
392
|
+
return returns;
|
|
393
|
+
// Aggregate returns over the horizon
|
|
394
|
+
const scaled = [];
|
|
395
|
+
for (let i = 0; i <= returns.length - days; i += days) {
|
|
396
|
+
let cumReturn = 0;
|
|
397
|
+
for (let j = 0; j < days && i + j < returns.length; j++) {
|
|
398
|
+
cumReturn += returns[i + j];
|
|
399
|
+
}
|
|
400
|
+
scaled.push(cumReturn);
|
|
401
|
+
}
|
|
402
|
+
return scaled;
|
|
403
|
+
}
|
|
404
|
+
hashObject(obj) {
|
|
405
|
+
const str = JSON.stringify(obj);
|
|
406
|
+
let hash = 0;
|
|
407
|
+
for (let i = 0; i < str.length; i++) {
|
|
408
|
+
const char = str.charCodeAt(i);
|
|
409
|
+
hash = ((hash << 5) - hash) + char;
|
|
410
|
+
hash = hash & hash;
|
|
411
|
+
}
|
|
412
|
+
return Math.abs(hash).toString(16).padStart(8, '0');
|
|
413
|
+
}
|
|
414
|
+
getModelChecksum() {
|
|
415
|
+
// In production, compute actual model checksum
|
|
416
|
+
return 'economy-bridge-v1-' + this.hashObject(this.config);
|
|
417
|
+
}
|
|
418
|
+
signProof(inputHash, outputHash) {
|
|
419
|
+
// In production, use cryptographic signing
|
|
420
|
+
return this.hashObject({ inputHash, outputHash, seed: this.randomSeed });
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
/**
|
|
424
|
+
* Create a new economy bridge instance
|
|
425
|
+
*/
|
|
426
|
+
export function createEconomyBridge(config, logger) {
|
|
427
|
+
return new FinancialEconomyBridge(config, logger);
|
|
428
|
+
}
|
|
429
|
+
export default FinancialEconomyBridge;
|
|
430
|
+
//# sourceMappingURL=economy-bridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"economy-bridge.js","sourceRoot":"","sources":["../../src/bridges/economy-bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Financial Risk Plugin - Bridges Barrel Export
|
|
3
|
+
*
|
|
4
|
+
* @module @claude-flow/plugin-financial-risk/bridges
|
|
5
|
+
*/
|
|
6
|
+
export { FinancialEconomyBridge, createEconomyBridge, PortfolioRiskCalculator, } from './economy-bridge.js';
|
|
7
|
+
export { FinancialSparseBridge, createSparseBridge, AnomalyDetector, MarketRegimeClassifier, } from './sparse-bridge.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bridges/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,GACvB,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Financial Risk Plugin - Bridges Barrel Export
|
|
3
|
+
*
|
|
4
|
+
* @module @claude-flow/plugin-financial-risk/bridges
|
|
5
|
+
*/
|
|
6
|
+
export { FinancialEconomyBridge, createEconomyBridge, PortfolioRiskCalculator, } from './economy-bridge.js';
|
|
7
|
+
export { FinancialSparseBridge, createSparseBridge, AnomalyDetector, MarketRegimeClassifier, } from './sparse-bridge.js';
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bridges/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,GACvB,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,118 @@
|
|
|
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
|
+
import type { SparseBridge, SparseConfig, FinancialTransaction, DetectedAnomaly, MarketRegimeType, Logger } from '../types.js';
|
|
16
|
+
/**
|
|
17
|
+
* Anomaly detection using Isolation Forest-like approach
|
|
18
|
+
*/
|
|
19
|
+
export declare class AnomalyDetector {
|
|
20
|
+
constructor(_numTrees?: number, _sampleSize?: number, _maxDepth?: number);
|
|
21
|
+
/**
|
|
22
|
+
* Calculate anomaly scores for transactions
|
|
23
|
+
*/
|
|
24
|
+
calculateAnomalyScores(transactions: FinancialTransaction[]): Map<string, number>;
|
|
25
|
+
/**
|
|
26
|
+
* Detect anomalies above threshold
|
|
27
|
+
*/
|
|
28
|
+
detectAnomalies(transactions: FinancialTransaction[], threshold?: number): DetectedAnomaly[];
|
|
29
|
+
private extractFeatures;
|
|
30
|
+
private isolationScore;
|
|
31
|
+
private medianAbsoluteDeviation;
|
|
32
|
+
private scoresToSeverity;
|
|
33
|
+
private classifyAnomalyType;
|
|
34
|
+
private generateDescription;
|
|
35
|
+
private identifyIndicators;
|
|
36
|
+
private recommendAction;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Market regime classifier
|
|
40
|
+
*/
|
|
41
|
+
export declare class MarketRegimeClassifier {
|
|
42
|
+
private readonly windowSize;
|
|
43
|
+
constructor(windowSize?: number);
|
|
44
|
+
/**
|
|
45
|
+
* Classify current market regime
|
|
46
|
+
*/
|
|
47
|
+
classify(prices: number[], _volumes?: number[]): {
|
|
48
|
+
regime: MarketRegimeType;
|
|
49
|
+
confidence: number;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Get regime probabilities
|
|
53
|
+
*/
|
|
54
|
+
getRegimeProbabilities(prices: number[]): Record<MarketRegimeType, number>;
|
|
55
|
+
private calculateReturns;
|
|
56
|
+
private calculateVolatility;
|
|
57
|
+
private calculateTrend;
|
|
58
|
+
private calculateMomentum;
|
|
59
|
+
private determineRegime;
|
|
60
|
+
private calculateConfidence;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Financial Sparse Bridge implementation
|
|
64
|
+
*/
|
|
65
|
+
export declare class FinancialSparseBridge implements SparseBridge {
|
|
66
|
+
private wasmModule;
|
|
67
|
+
private modelPtr;
|
|
68
|
+
private config;
|
|
69
|
+
private logger;
|
|
70
|
+
private anomalyDetector;
|
|
71
|
+
private regimeClassifier;
|
|
72
|
+
initialized: boolean;
|
|
73
|
+
constructor(config?: Partial<SparseConfig>, logger?: Logger);
|
|
74
|
+
/**
|
|
75
|
+
* Initialize the sparse bridge
|
|
76
|
+
*/
|
|
77
|
+
initialize(config?: SparseConfig): Promise<void>;
|
|
78
|
+
/**
|
|
79
|
+
* Perform sparse inference on features
|
|
80
|
+
*/
|
|
81
|
+
sparseInference(features: Float32Array, indices: Uint32Array): Promise<Float32Array>;
|
|
82
|
+
/**
|
|
83
|
+
* Detect anomalies in transactions
|
|
84
|
+
*/
|
|
85
|
+
detectAnomalies(transactions: Float32Array[], threshold: number): Promise<Uint32Array>;
|
|
86
|
+
/**
|
|
87
|
+
* Classify market regime from market data
|
|
88
|
+
*/
|
|
89
|
+
classifyRegime(marketData: Float32Array): Promise<{
|
|
90
|
+
regime: number;
|
|
91
|
+
confidence: number;
|
|
92
|
+
}>;
|
|
93
|
+
/**
|
|
94
|
+
* Detect anomalies in financial transactions
|
|
95
|
+
*/
|
|
96
|
+
detectTransactionAnomalies(transactions: FinancialTransaction[], threshold?: number): Promise<DetectedAnomaly[]>;
|
|
97
|
+
/**
|
|
98
|
+
* Classify market regime from price data
|
|
99
|
+
*/
|
|
100
|
+
classifyMarketRegime(prices: number[], volumes?: number[]): Promise<{
|
|
101
|
+
regime: MarketRegimeType;
|
|
102
|
+
confidence: number;
|
|
103
|
+
probabilities: Record<MarketRegimeType, number>;
|
|
104
|
+
}>;
|
|
105
|
+
/**
|
|
106
|
+
* Cleanup resources
|
|
107
|
+
*/
|
|
108
|
+
destroy(): void;
|
|
109
|
+
private resolveWasmPath;
|
|
110
|
+
private loadWasmModule;
|
|
111
|
+
private regimeToCode;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Create a new sparse bridge instance
|
|
115
|
+
*/
|
|
116
|
+
export declare function createSparseBridge(config?: Partial<SparseConfig>, logger?: Logger): FinancialSparseBridge;
|
|
117
|
+
export default FinancialSparseBridge;
|
|
118
|
+
//# sourceMappingURL=sparse-bridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sparse-bridge.d.ts","sourceRoot":"","sources":["../../src/bridges/sparse-bridge.ts"],"names":[],"mappings":"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"}
|