cortex-risk-sdk 1.0.0
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/dist/client.d.ts +73 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +221 -0
- package/dist/client.js.map +1 -0
- package/dist/errors.d.ts +19 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +60 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +857 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +41 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +11 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +33 -0
- package/dist/utils.js.map +1 -0
- package/dist/websocket.d.ts +29 -0
- package/dist/websocket.d.ts.map +1 -0
- package/dist/websocket.js +65 -0
- package/dist/websocket.js.map +1 -0
- package/package.json +75 -0
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { RiskEngineConfig, CalibrateRequest, CalibrateResponse, RegimeResponse, VaRResponse, VolatilityForecastResponse, BacktestSummaryResponse, TailProbResponse, RegimeDurationsResponse, RegimeHistoryResponse, TransitionAlertResponse, RegimeStatisticsResponse, CompareRequest, CompareResponse, ComparisonReportResponse, PortfolioCalibrateRequest, PortfolioVaRResponse, MarginalVaRResponse, StressVaRResponse, CopulaPortfolioVaRResponse, CopulaCompareResponse, CopulaDiagnosticsResponse, RegimeDependentCopulaVaRResponse, EVTCalibrateRequest, EVTCalibrateResponse, EVTVaRResponse, EVTDiagnosticsResponse, HawkesCalibrateRequest, HawkesCalibrateResponse, HawkesIntensityResponse, HawkesClustersResponse, HawkesVaRRequest, HawkesVaRResponse, HawkesSimulateRequest, HawkesSimulateResponse, HurstResponse, MultifractalSpectrumResponse, RegimeHurstResponse, FractalDiagnosticsResponse, RoughCalibrateRequest, RoughCalibrateResponse, RoughForecastResponse, RoughDiagnosticsResponse, RoughCompareMSMResponse, SVJCalibrateRequest, SVJCalibrateResponse, SVJVaRResponse, SVJJumpRiskResponse, SVJDiagnosticsResponse, NewsFeedResponse, NewsMarketSignal, GuardianAssessRequest, GuardianAssessResponse } from "./types";
|
|
2
|
+
export declare class RiskEngineClient {
|
|
3
|
+
private readonly baseUrl;
|
|
4
|
+
private readonly timeout;
|
|
5
|
+
private readonly policy;
|
|
6
|
+
private readonly validate;
|
|
7
|
+
constructor(config: RiskEngineConfig);
|
|
8
|
+
private request;
|
|
9
|
+
private get;
|
|
10
|
+
private post;
|
|
11
|
+
private parsed;
|
|
12
|
+
private qs;
|
|
13
|
+
/** Calibrate MSM model for a token */
|
|
14
|
+
calibrate(req: CalibrateRequest): Promise<CalibrateResponse>;
|
|
15
|
+
/** Get current regime state */
|
|
16
|
+
regime(token: string): Promise<RegimeResponse>;
|
|
17
|
+
/** Get VaR at given confidence level */
|
|
18
|
+
var(token: string, confidence: number, opts?: {
|
|
19
|
+
use_student_t?: boolean;
|
|
20
|
+
nu?: number;
|
|
21
|
+
}): Promise<VaRResponse>;
|
|
22
|
+
/** Get volatility forecast */
|
|
23
|
+
volatilityForecast(token: string): Promise<VolatilityForecastResponse>;
|
|
24
|
+
/** Get backtest summary */
|
|
25
|
+
backtestSummary(token: string): Promise<BacktestSummaryResponse>;
|
|
26
|
+
/** Get tail probabilities */
|
|
27
|
+
tailProbs(token: string, threshold?: number): Promise<TailProbResponse>;
|
|
28
|
+
regimeDurations(token: string): Promise<RegimeDurationsResponse>;
|
|
29
|
+
regimeHistory(token: string): Promise<RegimeHistoryResponse>;
|
|
30
|
+
regimeStatistics(token: string): Promise<RegimeStatisticsResponse>;
|
|
31
|
+
transitionAlert(token: string, threshold?: number): Promise<TransitionAlertResponse>;
|
|
32
|
+
compare(req: CompareRequest): Promise<CompareResponse>;
|
|
33
|
+
comparisonReport(token: string): Promise<ComparisonReportResponse>;
|
|
34
|
+
portfolioCalibrate(req: PortfolioCalibrateRequest): Promise<PortfolioVaRResponse>;
|
|
35
|
+
portfolioVar(key: string, alpha?: number): Promise<PortfolioVaRResponse>;
|
|
36
|
+
marginalVar(key: string): Promise<MarginalVaRResponse>;
|
|
37
|
+
stressVar(key: string, forced_regime: number): Promise<StressVaRResponse>;
|
|
38
|
+
copulaVar(key: string, opts?: {
|
|
39
|
+
alpha?: number;
|
|
40
|
+
n_simulations?: number;
|
|
41
|
+
}): Promise<CopulaPortfolioVaRResponse>;
|
|
42
|
+
copulaCompare(key: string): Promise<CopulaCompareResponse>;
|
|
43
|
+
copulaDiagnostics(key: string): Promise<CopulaDiagnosticsResponse>;
|
|
44
|
+
regimeDependentCopulaVar(key: string, opts?: {
|
|
45
|
+
alpha?: number;
|
|
46
|
+
n_simulations?: number;
|
|
47
|
+
}): Promise<RegimeDependentCopulaVaRResponse>;
|
|
48
|
+
evtCalibrate(req: EVTCalibrateRequest): Promise<EVTCalibrateResponse>;
|
|
49
|
+
evtVar(token: string, confidence: number): Promise<EVTVaRResponse>;
|
|
50
|
+
evtDiagnostics(token: string): Promise<EVTDiagnosticsResponse>;
|
|
51
|
+
hawkesCalibrate(req: HawkesCalibrateRequest): Promise<HawkesCalibrateResponse>;
|
|
52
|
+
hawkesIntensity(token: string): Promise<HawkesIntensityResponse>;
|
|
53
|
+
hawkesClusters(token: string): Promise<HawkesClustersResponse>;
|
|
54
|
+
hawkesVar(req: HawkesVaRRequest): Promise<HawkesVaRResponse>;
|
|
55
|
+
hawkesSimulate(req: HawkesSimulateRequest): Promise<HawkesSimulateResponse>;
|
|
56
|
+
hurst(token: string, method?: string): Promise<HurstResponse>;
|
|
57
|
+
spectrum(token: string): Promise<MultifractalSpectrumResponse>;
|
|
58
|
+
regimeHurst(token: string): Promise<RegimeHurstResponse>;
|
|
59
|
+
fractalDiagnostics(token: string): Promise<FractalDiagnosticsResponse>;
|
|
60
|
+
roughCalibrate(req: RoughCalibrateRequest): Promise<RoughCalibrateResponse>;
|
|
61
|
+
roughForecast(token: string, horizon?: number): Promise<RoughForecastResponse>;
|
|
62
|
+
roughDiagnostics(token: string): Promise<RoughDiagnosticsResponse>;
|
|
63
|
+
roughCompareMsm(token: string): Promise<RoughCompareMSMResponse>;
|
|
64
|
+
svjCalibrate(req: SVJCalibrateRequest): Promise<SVJCalibrateResponse>;
|
|
65
|
+
svjVar(token: string, confidence?: number): Promise<SVJVaRResponse>;
|
|
66
|
+
svjJumpRisk(token: string): Promise<SVJJumpRiskResponse>;
|
|
67
|
+
svjDiagnostics(token: string): Promise<SVJDiagnosticsResponse>;
|
|
68
|
+
newsFeed(token: string): Promise<NewsFeedResponse>;
|
|
69
|
+
newsSentiment(token: string): Promise<NewsMarketSignal>;
|
|
70
|
+
newsSignal(token: string): Promise<NewsMarketSignal>;
|
|
71
|
+
guardianAssess(req: GuardianAssessRequest): Promise<GuardianAssessResponse>;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
ADDED
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RiskEngineClient = void 0;
|
|
4
|
+
const types_1 = require("./types");
|
|
5
|
+
const errors_1 = require("./errors");
|
|
6
|
+
const utils_1 = require("./utils");
|
|
7
|
+
const DEFAULTS = {
|
|
8
|
+
timeout: 30_000,
|
|
9
|
+
retries: 2,
|
|
10
|
+
retryDelay: 500,
|
|
11
|
+
circuitBreakerThreshold: 5,
|
|
12
|
+
circuitBreakerResetMs: 30_000,
|
|
13
|
+
validateResponses: false,
|
|
14
|
+
};
|
|
15
|
+
class RiskEngineClient {
|
|
16
|
+
baseUrl;
|
|
17
|
+
timeout;
|
|
18
|
+
policy;
|
|
19
|
+
validate;
|
|
20
|
+
constructor(config) {
|
|
21
|
+
this.baseUrl = config.baseUrl.replace(/\/+$/, "");
|
|
22
|
+
this.timeout = config.timeout ?? DEFAULTS.timeout;
|
|
23
|
+
this.validate = config.validateResponses ?? false;
|
|
24
|
+
this.policy = (0, utils_1.createResiliencePolicy)({
|
|
25
|
+
timeoutMs: this.timeout,
|
|
26
|
+
maxRetries: config.retries ?? DEFAULTS.retries,
|
|
27
|
+
retryBaseDelay: config.retryDelay ?? DEFAULTS.retryDelay,
|
|
28
|
+
cbThreshold: config.circuitBreakerThreshold ?? DEFAULTS.circuitBreakerThreshold,
|
|
29
|
+
cbResetMs: config.circuitBreakerResetMs ?? DEFAULTS.circuitBreakerResetMs,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
// ── Internal HTTP helpers ──
|
|
33
|
+
async request(method, path, body, schema) {
|
|
34
|
+
const url = `${this.baseUrl}${path}`;
|
|
35
|
+
return (0, utils_1.executeWithResilience)(this.policy, async (signal) => {
|
|
36
|
+
const init = {
|
|
37
|
+
method,
|
|
38
|
+
headers: { "Content-Type": "application/json" },
|
|
39
|
+
signal,
|
|
40
|
+
};
|
|
41
|
+
if (body !== undefined)
|
|
42
|
+
init.body = JSON.stringify(body);
|
|
43
|
+
const res = await fetch(url, init);
|
|
44
|
+
const text = await res.text();
|
|
45
|
+
if (!res.ok)
|
|
46
|
+
throw (0, errors_1.mapHttpError)(res.status, text, url);
|
|
47
|
+
return this.parsed(JSON.parse(text), schema);
|
|
48
|
+
}, url, this.timeout);
|
|
49
|
+
}
|
|
50
|
+
get(path, schema) {
|
|
51
|
+
return this.request("GET", path, undefined, schema);
|
|
52
|
+
}
|
|
53
|
+
post(path, body, schema) {
|
|
54
|
+
return this.request("POST", path, body, schema);
|
|
55
|
+
}
|
|
56
|
+
parsed(data, schema) {
|
|
57
|
+
if (!this.validate || !schema)
|
|
58
|
+
return data;
|
|
59
|
+
return schema.parse(data);
|
|
60
|
+
}
|
|
61
|
+
qs(params) {
|
|
62
|
+
const parts = [];
|
|
63
|
+
for (const [k, v] of Object.entries(params)) {
|
|
64
|
+
if (v !== undefined && v !== null)
|
|
65
|
+
parts.push(`${k}=${encodeURIComponent(String(v))}`);
|
|
66
|
+
}
|
|
67
|
+
return parts.length ? `?${parts.join("&")}` : "";
|
|
68
|
+
}
|
|
69
|
+
// ── Core MSM ──
|
|
70
|
+
/** Calibrate MSM model for a token */
|
|
71
|
+
async calibrate(req) {
|
|
72
|
+
return this.post("/api/v1/calibrate", req);
|
|
73
|
+
}
|
|
74
|
+
/** Get current regime state */
|
|
75
|
+
async regime(token) {
|
|
76
|
+
return this.get(`/api/v1/regime/current${this.qs({ token })}`, types_1.RegimeResponseSchema);
|
|
77
|
+
}
|
|
78
|
+
/** Get VaR at given confidence level */
|
|
79
|
+
async var(token, confidence, opts) {
|
|
80
|
+
return this.get(`/api/v1/var/${confidence}${this.qs({ token, ...opts })}`, types_1.VaRResponseSchema);
|
|
81
|
+
}
|
|
82
|
+
/** Get volatility forecast */
|
|
83
|
+
async volatilityForecast(token) {
|
|
84
|
+
return this.get(`/api/v1/volatility/forecast${this.qs({ token })}`);
|
|
85
|
+
}
|
|
86
|
+
/** Get backtest summary */
|
|
87
|
+
async backtestSummary(token) {
|
|
88
|
+
return this.get(`/api/v1/backtest/summary${this.qs({ token })}`);
|
|
89
|
+
}
|
|
90
|
+
/** Get tail probabilities */
|
|
91
|
+
async tailProbs(token, threshold) {
|
|
92
|
+
return this.get(`/api/v1/tail-probs${this.qs({ token, threshold })}`);
|
|
93
|
+
}
|
|
94
|
+
// ── Regime Analytics ──
|
|
95
|
+
async regimeDurations(token) {
|
|
96
|
+
return this.get(`/api/v1/regime/durations${this.qs({ token })}`);
|
|
97
|
+
}
|
|
98
|
+
async regimeHistory(token) {
|
|
99
|
+
return this.get(`/api/v1/regime/history${this.qs({ token })}`);
|
|
100
|
+
}
|
|
101
|
+
async regimeStatistics(token) {
|
|
102
|
+
return this.get(`/api/v1/regime/statistics${this.qs({ token })}`);
|
|
103
|
+
}
|
|
104
|
+
async transitionAlert(token, threshold) {
|
|
105
|
+
return this.get(`/api/v1/regime/transition-alert${this.qs({ token, threshold })}`);
|
|
106
|
+
}
|
|
107
|
+
// ── Model Comparison ──
|
|
108
|
+
async compare(req) {
|
|
109
|
+
return this.post("/api/v1/compare", req);
|
|
110
|
+
}
|
|
111
|
+
async comparisonReport(token) {
|
|
112
|
+
return this.get(`/api/v1/compare/report/${encodeURIComponent(token)}`);
|
|
113
|
+
}
|
|
114
|
+
// ── Portfolio VaR ──
|
|
115
|
+
async portfolioCalibrate(req) {
|
|
116
|
+
return this.post("/api/v1/portfolio/calibrate", req);
|
|
117
|
+
}
|
|
118
|
+
async portfolioVar(key, alpha) {
|
|
119
|
+
return this.get(`/api/v1/portfolio/var${this.qs({ key, alpha })}`);
|
|
120
|
+
}
|
|
121
|
+
async marginalVar(key) {
|
|
122
|
+
return this.get(`/api/v1/portfolio/marginal-var${this.qs({ key })}`);
|
|
123
|
+
}
|
|
124
|
+
async stressVar(key, forced_regime) {
|
|
125
|
+
return this.get(`/api/v1/portfolio/stress-var${this.qs({ key, forced_regime })}`);
|
|
126
|
+
}
|
|
127
|
+
// ── Copula Portfolio VaR ──
|
|
128
|
+
async copulaVar(key, opts) {
|
|
129
|
+
return this.get(`/api/v1/portfolio/copula/var${this.qs({ key, ...opts })}`);
|
|
130
|
+
}
|
|
131
|
+
async copulaCompare(key) {
|
|
132
|
+
return this.get(`/api/v1/portfolio/copula/compare${this.qs({ key })}`);
|
|
133
|
+
}
|
|
134
|
+
async copulaDiagnostics(key) {
|
|
135
|
+
return this.get(`/api/v1/portfolio/copula/diagnostics${this.qs({ key })}`);
|
|
136
|
+
}
|
|
137
|
+
async regimeDependentCopulaVar(key, opts) {
|
|
138
|
+
return this.get(`/api/v1/portfolio/copula/regime-var${this.qs({ key, ...opts })}`);
|
|
139
|
+
}
|
|
140
|
+
// ── EVT ──
|
|
141
|
+
async evtCalibrate(req) {
|
|
142
|
+
return this.post("/api/v1/evt/calibrate", req);
|
|
143
|
+
}
|
|
144
|
+
async evtVar(token, confidence) {
|
|
145
|
+
return this.get(`/api/v1/evt/var/${confidence}${this.qs({ token })}`);
|
|
146
|
+
}
|
|
147
|
+
async evtDiagnostics(token) {
|
|
148
|
+
return this.get(`/api/v1/evt/diagnostics${this.qs({ token })}`);
|
|
149
|
+
}
|
|
150
|
+
// ── Hawkes Process ──
|
|
151
|
+
async hawkesCalibrate(req) {
|
|
152
|
+
return this.post("/api/v1/hawkes/calibrate", req);
|
|
153
|
+
}
|
|
154
|
+
async hawkesIntensity(token) {
|
|
155
|
+
return this.get(`/api/v1/hawkes/intensity${this.qs({ token })}`);
|
|
156
|
+
}
|
|
157
|
+
async hawkesClusters(token) {
|
|
158
|
+
return this.get(`/api/v1/hawkes/clusters${this.qs({ token })}`);
|
|
159
|
+
}
|
|
160
|
+
async hawkesVar(req) {
|
|
161
|
+
return this.post("/api/v1/hawkes/var", req);
|
|
162
|
+
}
|
|
163
|
+
async hawkesSimulate(req) {
|
|
164
|
+
return this.post("/api/v1/hawkes/simulate", req);
|
|
165
|
+
}
|
|
166
|
+
// ── Multifractal / Hurst ──
|
|
167
|
+
async hurst(token, method) {
|
|
168
|
+
return this.get(`/api/v1/fractal/hurst${this.qs({ token, method })}`);
|
|
169
|
+
}
|
|
170
|
+
async spectrum(token) {
|
|
171
|
+
return this.get(`/api/v1/fractal/spectrum${this.qs({ token })}`);
|
|
172
|
+
}
|
|
173
|
+
async regimeHurst(token) {
|
|
174
|
+
return this.get(`/api/v1/fractal/regime-hurst${this.qs({ token })}`);
|
|
175
|
+
}
|
|
176
|
+
async fractalDiagnostics(token) {
|
|
177
|
+
return this.get(`/api/v1/fractal/diagnostics${this.qs({ token })}`);
|
|
178
|
+
}
|
|
179
|
+
// ── Rough Volatility ──
|
|
180
|
+
async roughCalibrate(req) {
|
|
181
|
+
return this.post("/api/v1/rough/calibrate", req);
|
|
182
|
+
}
|
|
183
|
+
async roughForecast(token, horizon) {
|
|
184
|
+
return this.get(`/api/v1/rough/forecast${this.qs({ token, horizon })}`);
|
|
185
|
+
}
|
|
186
|
+
async roughDiagnostics(token) {
|
|
187
|
+
return this.get(`/api/v1/rough/diagnostics${this.qs({ token })}`);
|
|
188
|
+
}
|
|
189
|
+
async roughCompareMsm(token) {
|
|
190
|
+
return this.get(`/api/v1/rough/compare-msm${this.qs({ token })}`);
|
|
191
|
+
}
|
|
192
|
+
// ── SVJ ──
|
|
193
|
+
async svjCalibrate(req) {
|
|
194
|
+
return this.post("/api/v1/svj/calibrate", req);
|
|
195
|
+
}
|
|
196
|
+
async svjVar(token, confidence) {
|
|
197
|
+
return this.get(`/api/v1/svj/var${this.qs({ token, confidence })}`);
|
|
198
|
+
}
|
|
199
|
+
async svjJumpRisk(token) {
|
|
200
|
+
return this.get(`/api/v1/svj/jump-risk${this.qs({ token })}`);
|
|
201
|
+
}
|
|
202
|
+
async svjDiagnostics(token) {
|
|
203
|
+
return this.get(`/api/v1/svj/diagnostics${this.qs({ token })}`);
|
|
204
|
+
}
|
|
205
|
+
// ── News ──
|
|
206
|
+
async newsFeed(token) {
|
|
207
|
+
return this.get(`/api/v1/news/feed${this.qs({ token })}`);
|
|
208
|
+
}
|
|
209
|
+
async newsSentiment(token) {
|
|
210
|
+
return this.get(`/api/v1/news/sentiment${this.qs({ token })}`);
|
|
211
|
+
}
|
|
212
|
+
async newsSignal(token) {
|
|
213
|
+
return this.get(`/api/v1/news/signal${this.qs({ token })}`);
|
|
214
|
+
}
|
|
215
|
+
// ── Guardian ──
|
|
216
|
+
async guardianAssess(req) {
|
|
217
|
+
return this.post("/api/v1/guardian/assess", req, types_1.GuardianAssessResponseSchema);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
exports.RiskEngineClient = RiskEngineClient;
|
|
221
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare class RiskEngineError extends Error {
|
|
2
|
+
readonly statusCode?: number | undefined;
|
|
3
|
+
readonly errorCode?: string | undefined;
|
|
4
|
+
constructor(message: string, statusCode?: number | undefined, errorCode?: string | undefined);
|
|
5
|
+
}
|
|
6
|
+
export declare class RiskEngineTimeout extends RiskEngineError {
|
|
7
|
+
constructor(url: string, timeoutMs: number);
|
|
8
|
+
}
|
|
9
|
+
export declare class ModelCalibrationError extends RiskEngineError {
|
|
10
|
+
constructor(token: string, detail?: string);
|
|
11
|
+
}
|
|
12
|
+
export declare class InvalidTokenError extends RiskEngineError {
|
|
13
|
+
constructor(token: string);
|
|
14
|
+
}
|
|
15
|
+
export declare class CircuitBreakerOpenError extends RiskEngineError {
|
|
16
|
+
constructor(resetMs: number);
|
|
17
|
+
}
|
|
18
|
+
export declare function mapHttpError(status: number, body: string, url: string): RiskEngineError;
|
|
19
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,eAAgB,SAAQ,KAAK;aAGtB,UAAU,CAAC,EAAE,MAAM;aACnB,SAAS,CAAC,EAAE,MAAM;gBAFlC,OAAO,EAAE,MAAM,EACC,UAAU,CAAC,EAAE,MAAM,YAAA,EACnB,SAAS,CAAC,EAAE,MAAM,YAAA;CAKrC;AAED,qBAAa,iBAAkB,SAAQ,eAAe;gBACxC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAI3C;AAED,qBAAa,qBAAsB,SAAQ,eAAe;gBAC5C,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;CAQ3C;AAED,qBAAa,iBAAkB,SAAQ,eAAe;gBACxC,KAAK,EAAE,MAAM;CAI1B;AAED,qBAAa,uBAAwB,SAAQ,eAAe;gBAC9C,OAAO,EAAE,MAAM;CAQ5B;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,eAAe,CAcvF"}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CircuitBreakerOpenError = exports.InvalidTokenError = exports.ModelCalibrationError = exports.RiskEngineTimeout = exports.RiskEngineError = void 0;
|
|
4
|
+
exports.mapHttpError = mapHttpError;
|
|
5
|
+
class RiskEngineError extends Error {
|
|
6
|
+
statusCode;
|
|
7
|
+
errorCode;
|
|
8
|
+
constructor(message, statusCode, errorCode) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.statusCode = statusCode;
|
|
11
|
+
this.errorCode = errorCode;
|
|
12
|
+
this.name = "RiskEngineError";
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.RiskEngineError = RiskEngineError;
|
|
16
|
+
class RiskEngineTimeout extends RiskEngineError {
|
|
17
|
+
constructor(url, timeoutMs) {
|
|
18
|
+
super(`Request to ${url} timed out after ${timeoutMs}ms`, 408, "TIMEOUT");
|
|
19
|
+
this.name = "RiskEngineTimeout";
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.RiskEngineTimeout = RiskEngineTimeout;
|
|
23
|
+
class ModelCalibrationError extends RiskEngineError {
|
|
24
|
+
constructor(token, detail) {
|
|
25
|
+
super(`Calibration failed for ${token}${detail ? `: ${detail}` : ""}`, 400, "CALIBRATION_FAILED");
|
|
26
|
+
this.name = "ModelCalibrationError";
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.ModelCalibrationError = ModelCalibrationError;
|
|
30
|
+
class InvalidTokenError extends RiskEngineError {
|
|
31
|
+
constructor(token) {
|
|
32
|
+
super(`Token '${token}' not found or not calibrated`, 404, "TOKEN_NOT_FOUND");
|
|
33
|
+
this.name = "InvalidTokenError";
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.InvalidTokenError = InvalidTokenError;
|
|
37
|
+
class CircuitBreakerOpenError extends RiskEngineError {
|
|
38
|
+
constructor(resetMs) {
|
|
39
|
+
super(`Circuit breaker open — retrying in ${Math.round(resetMs / 1000)}s`, 503, "CIRCUIT_BREAKER_OPEN");
|
|
40
|
+
this.name = "CircuitBreakerOpenError";
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.CircuitBreakerOpenError = CircuitBreakerOpenError;
|
|
44
|
+
function mapHttpError(status, body, url) {
|
|
45
|
+
let detail = body;
|
|
46
|
+
try {
|
|
47
|
+
const parsed = JSON.parse(body);
|
|
48
|
+
detail = parsed.detail || parsed.message || body;
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
// raw body
|
|
52
|
+
}
|
|
53
|
+
if (status === 404)
|
|
54
|
+
return new InvalidTokenError(detail);
|
|
55
|
+
if (status === 400 && detail.toLowerCase().includes("calibrat")) {
|
|
56
|
+
return new ModelCalibrationError("unknown", detail);
|
|
57
|
+
}
|
|
58
|
+
return new RiskEngineError(detail, status, `HTTP_${status}`);
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AA+CA,oCAcC;AA7DD,MAAa,eAAgB,SAAQ,KAAK;IAGtB;IACA;IAHlB,YACE,OAAe,EACC,UAAmB,EACnB,SAAkB;QAElC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,eAAU,GAAV,UAAU,CAAS;QACnB,cAAS,GAAT,SAAS,CAAS;QAGlC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AATD,0CASC;AAED,MAAa,iBAAkB,SAAQ,eAAe;IACpD,YAAY,GAAW,EAAE,SAAiB;QACxC,KAAK,CAAC,cAAc,GAAG,oBAAoB,SAAS,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAC1E,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AALD,8CAKC;AAED,MAAa,qBAAsB,SAAQ,eAAe;IACxD,YAAY,KAAa,EAAE,MAAe;QACxC,KAAK,CACH,0BAA0B,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAC/D,GAAG,EACH,oBAAoB,CACrB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AATD,sDASC;AAED,MAAa,iBAAkB,SAAQ,eAAe;IACpD,YAAY,KAAa;QACvB,KAAK,CAAC,UAAU,KAAK,+BAA+B,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC;QAC9E,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AALD,8CAKC;AAED,MAAa,uBAAwB,SAAQ,eAAe;IAC1D,YAAY,OAAe;QACzB,KAAK,CACH,sCAAsC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EACnE,GAAG,EACH,sBAAsB,CACvB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AATD,0DASC;AAED,SAAgB,YAAY,CAAC,MAAc,EAAE,IAAY,EAAE,GAAW;IACpE,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,WAAW;IACb,CAAC;IAED,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACzD,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAChE,OAAO,IAAI,qBAAqB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,IAAI,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,MAAM,EAAE,CAAC,CAAC;AAC/D,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { RiskEngineClient } from "./client";
|
|
2
|
+
export { RegimeStreamClient } from "./websocket";
|
|
3
|
+
export type { RegimeStreamConfig, RegimeHandler, ErrorHandler } from "./websocket";
|
|
4
|
+
export * from "./types";
|
|
5
|
+
export * from "./errors";
|
|
6
|
+
export { createResiliencePolicy, executeWithResilience } from "./utils";
|
|
7
|
+
export type { ResilienceConfig } from "./utils";
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACnF,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AACxE,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.executeWithResilience = exports.createResiliencePolicy = exports.RegimeStreamClient = exports.RiskEngineClient = void 0;
|
|
18
|
+
var client_1 = require("./client");
|
|
19
|
+
Object.defineProperty(exports, "RiskEngineClient", { enumerable: true, get: function () { return client_1.RiskEngineClient; } });
|
|
20
|
+
var websocket_1 = require("./websocket");
|
|
21
|
+
Object.defineProperty(exports, "RegimeStreamClient", { enumerable: true, get: function () { return websocket_1.RegimeStreamClient; } });
|
|
22
|
+
__exportStar(require("./types"), exports);
|
|
23
|
+
__exportStar(require("./errors"), exports);
|
|
24
|
+
var utils_1 = require("./utils");
|
|
25
|
+
Object.defineProperty(exports, "createResiliencePolicy", { enumerable: true, get: function () { return utils_1.createResiliencePolicy; } });
|
|
26
|
+
Object.defineProperty(exports, "executeWithResilience", { enumerable: true, get: function () { return utils_1.executeWithResilience; } });
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mCAA4C;AAAnC,0GAAA,gBAAgB,OAAA;AACzB,yCAAiD;AAAxC,+GAAA,kBAAkB,OAAA;AAE3B,0CAAwB;AACxB,2CAAyB;AACzB,iCAAwE;AAA/D,+GAAA,sBAAsB,OAAA;AAAE,8GAAA,qBAAqB,OAAA"}
|