bandkit 1.0.2 → 1.0.4
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 +27 -3
- package/dist/BandPanel.d.ts.map +1 -1
- package/dist/BandPanel.js +1 -1
- package/dist/BandPanel.js.map +1 -1
- package/dist/BotDecisionPanel.d.ts +7 -0
- package/dist/BotDecisionPanel.d.ts.map +1 -0
- package/dist/BotDecisionPanel.js +124 -0
- package/dist/BotDecisionPanel.js.map +1 -0
- package/dist/decisionEngine.d.ts +41 -0
- package/dist/decisionEngine.d.ts.map +1 -0
- package/dist/decisionEngine.js +166 -0
- package/dist/decisionEngine.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/useBotDecision.d.ts +32 -0
- package/dist/useBotDecision.d.ts.map +1 -0
- package/dist/useBotDecision.js +104 -0
- package/dist/useBotDecision.js.map +1 -0
- package/dist/useCoinbaseTicker.d.ts +28 -0
- package/dist/useCoinbaseTicker.d.ts.map +1 -0
- package/dist/useCoinbaseTicker.js +87 -0
- package/dist/useCoinbaseTicker.js.map +1 -0
- package/package.json +4 -2
- package/scripts/test-decision-stream.cjs +417 -0
package/README.md
CHANGED
|
@@ -10,6 +10,7 @@ The package ships:
|
|
|
10
10
|
- Live market widgets: `<OrderBookWidget />`, `<TradeTape />`
|
|
11
11
|
- On-chain feed: `<ContractEventFeed />` (watches your deployed strategy contract's events)
|
|
12
12
|
- Context badges: `<RegimeBadge />` (volatility regime), `<GasBadge />` (mainnet gas price)
|
|
13
|
+
- Decision proxy: `<BotDecisionPanel />` — live BUY/SELL/WAIT/STAND-DOWN preview from Binance + Coinbase data (preview only, not the on-chain bot)
|
|
13
14
|
- A dark UI throughout
|
|
14
15
|
|
|
15
16
|
It does **not** ship trading strategy logic, signal generation, risk management, or the off-chain trade-execution daemon — those are out of scope.
|
|
@@ -47,19 +48,23 @@ max-width 1100px, gap 20px, system font stack:
|
|
|
47
48
|
│ │
|
|
48
49
|
├──────────────────────┬──────────────────────────────┤
|
|
49
50
|
│ │ │
|
|
50
|
-
│ <BandPanel /> │ <
|
|
51
|
+
│ <BandPanel /> │ <BotDecisionPanel /> │ ← two-column split
|
|
51
52
|
│ (the bot UI: it │ │ on >=900px wide,
|
|
52
53
|
│ has its own deploy,├──────────────────────────────┤ stacked below
|
|
53
|
-
│ fund, start, stop, │
|
|
54
|
+
│ fund, start, stop, │ <OrderBookWidget /> │
|
|
54
55
|
│ withdraw buttons. │ │
|
|
55
56
|
│ Default title is ├──────────────────────────────┤
|
|
56
|
-
│ "Get started") │
|
|
57
|
+
│ "Get started") │ <TradeTape /> │
|
|
58
|
+
│ │ │
|
|
59
|
+
│ ├──────────────────────────────┤
|
|
60
|
+
│ │ <ContractEventFeed │
|
|
57
61
|
│ │ strategyContractAddress= │
|
|
58
62
|
│ │ {deployedAddress} /> │
|
|
59
63
|
└──────────────────────┴──────────────────────────────┘
|
|
60
64
|
|
|
61
65
|
Components to import from bandkit:
|
|
62
66
|
- BandPanel (the main staged UI)
|
|
67
|
+
- BotDecisionPanel (live BUY/SELL/WAIT decision preview — top of right column)
|
|
63
68
|
- OrderBookWidget (live Binance ETH/USDT depth)
|
|
64
69
|
- TradeTape (live recent trades)
|
|
65
70
|
- ContractEventFeed (on-chain events from the deployed strategy)
|
|
@@ -224,6 +229,25 @@ type RegimeBadgeProps = {
|
|
|
224
229
|
};
|
|
225
230
|
```
|
|
226
231
|
|
|
232
|
+
### `<BotDecisionPanel />`
|
|
233
|
+
|
|
234
|
+
Live decision proxy. Combines Binance order book imbalance + recent trade flow + volatility regime + Coinbase cross-venue divergence into a `BUY` / `SELL` / `WAIT` / `STAND DOWN` decision with a 0–100 confidence score and human-readable reasons. **Preview only — does not execute trades.**
|
|
235
|
+
|
|
236
|
+
```ts
|
|
237
|
+
type BotDecisionPanelProps = {
|
|
238
|
+
className?: string;
|
|
239
|
+
title?: string; // default: "Bot Decision (live)"
|
|
240
|
+
evaluationIntervalMs?: number; // default: 2000
|
|
241
|
+
flowWindowMs?: number; // default: 60000
|
|
242
|
+
historyLimit?: number; // default: 30
|
|
243
|
+
thresholds?: Partial<DecisionThresholds>; // override imbalance/flow/spread/divergence/depth cutoffs
|
|
244
|
+
enabled?: boolean;
|
|
245
|
+
// plus sub-options: orderBook, trades, coinbase, regime
|
|
246
|
+
};
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
The pure decision function `computeBotDecision()` is also exported, so you can re-use the same logic in a Node script or backtest without React.
|
|
250
|
+
|
|
227
251
|
### `<GasBadge />`
|
|
228
252
|
|
|
229
253
|
Current mainnet gas price, color-coded by tier (low/normal/high/spike).
|
package/dist/BandPanel.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BandPanel.d.ts","sourceRoot":"","sources":["../src/BandPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAGpC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAEvE,MAAM,MAAM,cAAc,GAAG;IAC3B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACrE,0BAA0B,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACzD,CAAC;AAgFF,wBAAgB,SAAS,CAAC,EACxB,uBAAuB,EACvB,qBAAqB,EACrB,OAAoB,EACpB,SAAS,EACT,KAAqB,EACrB,WAAW,EACX,0BAA0B,EAC3B,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"BandPanel.d.ts","sourceRoot":"","sources":["../src/BandPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAGpC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAEvE,MAAM,MAAM,cAAc,GAAG;IAC3B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACrE,0BAA0B,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACzD,CAAC;AAgFF,wBAAgB,SAAS,CAAC,EACxB,uBAAuB,EACvB,qBAAqB,EACrB,OAAoB,EACpB,SAAS,EACT,KAAqB,EACrB,WAAW,EACX,0BAA0B,EAC3B,EAAE,cAAc,2CAwThB"}
|
package/dist/BandPanel.js
CHANGED
|
@@ -206,7 +206,7 @@ export function BandPanel({ strategyContractAddress, strategyWalletAddress, chai
|
|
|
206
206
|
deployment.error?.message ??
|
|
207
207
|
strategyContract.error?.message ??
|
|
208
208
|
price.error ??
|
|
209
|
-
wallet.error?.message })) : null, _jsx("footer", { style: { borderTop: `1px solid ${palette.border}`, color: palette.textDim, fontSize: 12, paddingTop: 14 }
|
|
209
|
+
wallet.error?.message })) : null, _jsx("footer", { style: { borderTop: `1px solid ${palette.border}`, color: palette.textDim, fontSize: 12, paddingTop: 14 } })] }));
|
|
210
210
|
}
|
|
211
211
|
// ---- Sub-components ------------------------------------------------------
|
|
212
212
|
function StageRail({ stages, labels }) {
|
package/dist/BandPanel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BandPanel.js","sourceRoot":"","sources":["../src/BandPanel.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BandPanel.js","sourceRoot":"","sources":["../src/BandPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type UseBotDecisionOptions } from "./useBotDecision.js";
|
|
2
|
+
export type BotDecisionPanelProps = UseBotDecisionOptions & {
|
|
3
|
+
className?: string;
|
|
4
|
+
title?: string;
|
|
5
|
+
};
|
|
6
|
+
export declare function BotDecisionPanel({ className, title, ...hookOptions }: BotDecisionPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
//# sourceMappingURL=BotDecisionPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BotDecisionPanel.d.ts","sourceRoot":"","sources":["../src/BotDecisionPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAGjF,MAAM,MAAM,qBAAqB,GAAG,qBAAqB,GAAG;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAsCF,wBAAgB,gBAAgB,CAAC,EAAE,SAAS,EAAE,KAA6B,EAAE,GAAG,WAAW,EAAE,EAAE,qBAAqB,2CA2HnH"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useBotDecision } from "./useBotDecision.js";
|
|
3
|
+
const palette = {
|
|
4
|
+
bg: "#0a0a0a",
|
|
5
|
+
surface: "#111113",
|
|
6
|
+
surfaceMuted: "#0f0f11",
|
|
7
|
+
border: "#1f1f23",
|
|
8
|
+
text: "#f5f5f7",
|
|
9
|
+
textMuted: "#9ca3af",
|
|
10
|
+
textDim: "#52525b",
|
|
11
|
+
buy: "#10b981",
|
|
12
|
+
sell: "#ef4444",
|
|
13
|
+
wait: "#fbbf24",
|
|
14
|
+
standdown: "#6b7280",
|
|
15
|
+
good: "#10b981",
|
|
16
|
+
bad: "#ef4444",
|
|
17
|
+
neutral: "#9ca3af"
|
|
18
|
+
};
|
|
19
|
+
const decisionMeta = {
|
|
20
|
+
BUY: { label: "WOULD BUY", color: palette.buy, arrow: "▲" },
|
|
21
|
+
SELL: { label: "WOULD SELL", color: palette.sell, arrow: "▼" },
|
|
22
|
+
WAIT: { label: "WAIT", color: palette.wait, arrow: "•" },
|
|
23
|
+
"STAND DOWN": { label: "STAND DOWN", color: palette.standdown, arrow: "■" }
|
|
24
|
+
};
|
|
25
|
+
const reasonColor = {
|
|
26
|
+
good: palette.good,
|
|
27
|
+
bad: palette.bad,
|
|
28
|
+
neutral: palette.neutral
|
|
29
|
+
};
|
|
30
|
+
const reasonSymbol = {
|
|
31
|
+
good: "✓",
|
|
32
|
+
bad: "✗",
|
|
33
|
+
neutral: "•"
|
|
34
|
+
};
|
|
35
|
+
export function BotDecisionPanel({ className, title = "Bot Decision (live)", ...hookOptions }) {
|
|
36
|
+
const result = useBotDecision(hookOptions);
|
|
37
|
+
const meta = decisionMeta[result.decision];
|
|
38
|
+
const recent = result.history.slice(0, 20);
|
|
39
|
+
const tally = recent.reduce((acc, h) => {
|
|
40
|
+
acc[h.decision] = (acc[h.decision] ?? 0) + 1;
|
|
41
|
+
return acc;
|
|
42
|
+
}, { BUY: 0, SELL: 0, WAIT: 0, "STAND DOWN": 0 });
|
|
43
|
+
return (_jsxs("section", { className: className, style: {
|
|
44
|
+
background: palette.bg,
|
|
45
|
+
border: `1px solid ${palette.border}`,
|
|
46
|
+
borderRadius: 14,
|
|
47
|
+
boxShadow: "0 20px 60px rgba(0, 0, 0, 0.55)",
|
|
48
|
+
color: palette.text,
|
|
49
|
+
display: "grid",
|
|
50
|
+
fontFamily: "system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif",
|
|
51
|
+
gap: 14,
|
|
52
|
+
maxWidth: 420,
|
|
53
|
+
padding: 18
|
|
54
|
+
}, children: [_jsxs("header", { style: { alignItems: "center", display: "flex", justifyContent: "space-between" }, children: [_jsx("h3", { style: { fontSize: 14, fontWeight: 700, letterSpacing: "0.02em", margin: 0 }, children: title }), _jsx("span", { style: { color: palette.textDim, fontSize: 11 }, children: result.evaluatedAt ? `updated ${timeAgoShort(result.evaluatedAt.getTime())}` : "warming up" })] }), _jsxs("div", { style: {
|
|
55
|
+
alignItems: "center",
|
|
56
|
+
background: palette.surface,
|
|
57
|
+
border: `1px solid ${meta.color}55`,
|
|
58
|
+
borderRadius: 10,
|
|
59
|
+
display: "flex",
|
|
60
|
+
gap: 12,
|
|
61
|
+
padding: "12px 14px"
|
|
62
|
+
}, children: [_jsx("span", { "aria-hidden": true, style: {
|
|
63
|
+
color: meta.color,
|
|
64
|
+
fontSize: 22,
|
|
65
|
+
fontWeight: 800,
|
|
66
|
+
lineHeight: 1,
|
|
67
|
+
width: 22
|
|
68
|
+
}, children: meta.arrow }), _jsxs("div", { style: { display: "grid", flex: 1, gap: 2 }, children: [_jsx("strong", { style: { color: meta.color, fontSize: 15, fontWeight: 700, letterSpacing: "0.04em" }, children: meta.label }), _jsxs("span", { style: { color: palette.textMuted, fontSize: 11 }, children: ["confidence ", result.confidence, "%"] })] }), _jsx(ConfidenceBar, { value: result.confidence, color: meta.color })] }), _jsx("ul", { style: { display: "grid", gap: 4, listStyle: "none", margin: 0, padding: 0 }, children: result.reasons.map((reason, idx) => (_jsxs("li", { style: {
|
|
69
|
+
alignItems: "baseline",
|
|
70
|
+
color: palette.text,
|
|
71
|
+
display: "grid",
|
|
72
|
+
fontSize: 12,
|
|
73
|
+
gap: 8,
|
|
74
|
+
gridTemplateColumns: "12px 1fr"
|
|
75
|
+
}, children: [_jsx("span", { style: { color: reasonColor[reason.tone] }, children: reasonSymbol[reason.tone] }), _jsx("span", { style: { color: reason.tone === "bad" ? palette.textMuted : palette.text }, children: reason.text })] }, `${reason.text}-${idx}`))) }), _jsxs("div", { style: {
|
|
76
|
+
alignItems: "center",
|
|
77
|
+
background: palette.surfaceMuted,
|
|
78
|
+
border: `1px solid ${palette.border}`,
|
|
79
|
+
borderRadius: 8,
|
|
80
|
+
color: palette.textMuted,
|
|
81
|
+
display: "flex",
|
|
82
|
+
fontSize: 11,
|
|
83
|
+
fontVariantNumeric: "tabular-nums",
|
|
84
|
+
gap: 10,
|
|
85
|
+
justifyContent: "space-between",
|
|
86
|
+
padding: "8px 12px"
|
|
87
|
+
}, children: [_jsxs("span", { children: ["Last ", recent.length, ":"] }), _jsx(Pill, { label: "BUY", count: tally.BUY, color: palette.buy }), _jsx(Pill, { label: "WAIT", count: tally.WAIT, color: palette.wait }), _jsx(Pill, { label: "SELL", count: tally.SELL, color: palette.sell }), _jsx(Pill, { label: "OFF", count: tally["STAND DOWN"], color: palette.standdown })] }), _jsx("div", { style: {
|
|
88
|
+
color: palette.textDim,
|
|
89
|
+
fontSize: 10,
|
|
90
|
+
lineHeight: 1.4
|
|
91
|
+
}, children: "Preview only. Decisions here describe what the strategy would do given live Binance + Coinbase data \u2014 they do not execute on-chain trades. The actual bot runs as a separate Node process against Uniswap." })] }));
|
|
92
|
+
}
|
|
93
|
+
function Pill({ label, count, color }) {
|
|
94
|
+
return (_jsxs("span", { style: {
|
|
95
|
+
alignItems: "center",
|
|
96
|
+
background: `${color}1f`,
|
|
97
|
+
border: `1px solid ${color}55`,
|
|
98
|
+
borderRadius: 6,
|
|
99
|
+
color,
|
|
100
|
+
display: "inline-flex",
|
|
101
|
+
fontSize: 10,
|
|
102
|
+
fontWeight: 700,
|
|
103
|
+
gap: 4,
|
|
104
|
+
padding: "2px 8px"
|
|
105
|
+
}, children: [label, " ", _jsx("strong", { children: count })] }));
|
|
106
|
+
}
|
|
107
|
+
function ConfidenceBar({ value, color }) {
|
|
108
|
+
const safe = Math.max(0, Math.min(100, value));
|
|
109
|
+
return (_jsx("div", { "aria-hidden": true, style: {
|
|
110
|
+
background: palette.surfaceMuted,
|
|
111
|
+
border: `1px solid ${palette.border}`,
|
|
112
|
+
borderRadius: 6,
|
|
113
|
+
height: 6,
|
|
114
|
+
overflow: "hidden",
|
|
115
|
+
width: 72
|
|
116
|
+
}, children: _jsx("div", { style: { background: color, height: "100%", width: `${safe}%` } }) }));
|
|
117
|
+
}
|
|
118
|
+
function timeAgoShort(ts) {
|
|
119
|
+
const seconds = Math.max(0, (Date.now() - ts) / 1000);
|
|
120
|
+
if (seconds < 60)
|
|
121
|
+
return `${seconds.toFixed(0)}s ago`;
|
|
122
|
+
return `${Math.floor(seconds / 60)}m ago`;
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=BotDecisionPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BotDecisionPanel.js","sourceRoot":"","sources":["../src/BotDecisionPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { Regime } from "./useVolatilityRegime.js";
|
|
2
|
+
export type BotDecision = "BUY" | "SELL" | "WAIT" | "STAND DOWN";
|
|
3
|
+
export type DecisionReason = {
|
|
4
|
+
text: string;
|
|
5
|
+
tone: "good" | "bad" | "neutral";
|
|
6
|
+
};
|
|
7
|
+
export type DecisionInputs = {
|
|
8
|
+
regime: Regime;
|
|
9
|
+
bookImbalance: number;
|
|
10
|
+
tradeImbalance: number;
|
|
11
|
+
spreadPct: number;
|
|
12
|
+
venueDivergenceBps: number | null;
|
|
13
|
+
bookDepthWithinHalfPctEth: number;
|
|
14
|
+
midPrice: number | null;
|
|
15
|
+
};
|
|
16
|
+
export type DecisionResult = {
|
|
17
|
+
decision: BotDecision;
|
|
18
|
+
confidence: number;
|
|
19
|
+
reasons: DecisionReason[];
|
|
20
|
+
};
|
|
21
|
+
export type DecisionThresholds = {
|
|
22
|
+
imbalanceThreshold: number;
|
|
23
|
+
flowThreshold: number;
|
|
24
|
+
spreadWidePct: number;
|
|
25
|
+
divergenceBps: number;
|
|
26
|
+
minDepthEth: number;
|
|
27
|
+
};
|
|
28
|
+
export declare const DEFAULT_DECISION_THRESHOLDS: DecisionThresholds;
|
|
29
|
+
export declare function computeBotDecision(inputs: DecisionInputs, thresholds?: DecisionThresholds): DecisionResult;
|
|
30
|
+
export type BookLevel = {
|
|
31
|
+
price: number;
|
|
32
|
+
size: number;
|
|
33
|
+
};
|
|
34
|
+
export declare function computeBookImbalance(bids: BookLevel[], asks: BookLevel[], midPrice: number, withinPct?: number): number;
|
|
35
|
+
export declare function computeBookDepth(bids: BookLevel[], asks: BookLevel[], midPrice: number, withinPct?: number): number;
|
|
36
|
+
export declare function computeTradeImbalance(trades: {
|
|
37
|
+
side: "buy" | "sell";
|
|
38
|
+
size: number;
|
|
39
|
+
timestamp: number;
|
|
40
|
+
}[], windowMs?: number, nowMs?: number): number;
|
|
41
|
+
//# sourceMappingURL=decisionEngine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decisionEngine.d.ts","sourceRoot":"","sources":["../src/decisionEngine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEvD,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,YAAY,CAAC;AAEjE,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,yBAAyB,EAAE,MAAM,CAAC;IAClC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,kBAMzC,CAAC;AAEF,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,cAAc,EACtB,UAAU,GAAE,kBAAgD,GAC3D,cAAc,CA2HhB;AAKD,MAAM,MAAM,SAAS,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,SAAS,EAAE,EACjB,IAAI,EAAE,SAAS,EAAE,EACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,SAAQ,GAChB,MAAM,CASR;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,SAAS,EAAE,EACjB,IAAI,EAAE,SAAS,EAAE,EACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,SAAQ,GAChB,MAAM,CAMR;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE;IAAE,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAAE,EACnE,QAAQ,SAAS,EACjB,KAAK,SAAa,GACjB,MAAM,CAYR"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
export const DEFAULT_DECISION_THRESHOLDS = {
|
|
2
|
+
imbalanceThreshold: 0.15,
|
|
3
|
+
flowThreshold: 0.1,
|
|
4
|
+
spreadWidePct: 0.05,
|
|
5
|
+
divergenceBps: 5,
|
|
6
|
+
minDepthEth: 50
|
|
7
|
+
};
|
|
8
|
+
export function computeBotDecision(inputs, thresholds = DEFAULT_DECISION_THRESHOLDS) {
|
|
9
|
+
const reasons = [];
|
|
10
|
+
// Regime gate
|
|
11
|
+
if (inputs.regime === "UNKNOWN") {
|
|
12
|
+
return {
|
|
13
|
+
decision: "WAIT",
|
|
14
|
+
confidence: 0,
|
|
15
|
+
reasons: [{ text: "Volatility classifier still warming up", tone: "neutral" }]
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
if (inputs.regime === "TRENDING") {
|
|
19
|
+
return {
|
|
20
|
+
decision: "STAND DOWN",
|
|
21
|
+
confidence: 90,
|
|
22
|
+
reasons: [
|
|
23
|
+
{ text: "Regime: TRENDING — range bot sits out", tone: "bad" },
|
|
24
|
+
{ text: "Re-engages when price stabilises in a range", tone: "neutral" }
|
|
25
|
+
]
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
let scoreBuy = 0;
|
|
29
|
+
let scoreSell = 0;
|
|
30
|
+
let confidence = inputs.regime === "RANGING" ? 45 : 30;
|
|
31
|
+
if (inputs.regime === "RANGING") {
|
|
32
|
+
reasons.push({ text: "Regime: RANGING (favourable)", tone: "good" });
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
reasons.push({ text: "Regime: MIXED", tone: "neutral" });
|
|
36
|
+
}
|
|
37
|
+
// Book imbalance
|
|
38
|
+
if (inputs.bookImbalance >= thresholds.imbalanceThreshold) {
|
|
39
|
+
const pct = inputs.bookImbalance * 100;
|
|
40
|
+
scoreBuy += 25;
|
|
41
|
+
reasons.push({ text: `Book imbalance +${pct.toFixed(0)}% bid-heavy`, tone: "good" });
|
|
42
|
+
}
|
|
43
|
+
else if (inputs.bookImbalance <= -thresholds.imbalanceThreshold) {
|
|
44
|
+
const pct = inputs.bookImbalance * 100;
|
|
45
|
+
scoreSell += 25;
|
|
46
|
+
reasons.push({ text: `Book imbalance ${pct.toFixed(0)}% ask-heavy`, tone: "good" });
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
reasons.push({
|
|
50
|
+
text: `Book imbalance balanced (${(inputs.bookImbalance * 100).toFixed(0)}%)`,
|
|
51
|
+
tone: "neutral"
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
// Trade flow (last 60s)
|
|
55
|
+
if (inputs.tradeImbalance >= thresholds.flowThreshold) {
|
|
56
|
+
const buyPct = (0.5 + inputs.tradeImbalance / 2) * 100;
|
|
57
|
+
scoreBuy += 20;
|
|
58
|
+
reasons.push({ text: `Recent flow ${buyPct.toFixed(0)}% buys`, tone: "good" });
|
|
59
|
+
}
|
|
60
|
+
else if (inputs.tradeImbalance <= -thresholds.flowThreshold) {
|
|
61
|
+
const sellPct = (0.5 - inputs.tradeImbalance / 2) * 100;
|
|
62
|
+
scoreSell += 20;
|
|
63
|
+
reasons.push({ text: `Recent flow ${sellPct.toFixed(0)}% sells`, tone: "good" });
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
reasons.push({ text: "Recent flow balanced", tone: "neutral" });
|
|
67
|
+
}
|
|
68
|
+
// Spread
|
|
69
|
+
if (inputs.spreadPct > thresholds.spreadWidePct) {
|
|
70
|
+
confidence -= 10;
|
|
71
|
+
reasons.push({ text: `Spread wide (${inputs.spreadPct.toFixed(3)}%)`, tone: "bad" });
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
confidence += 5;
|
|
75
|
+
reasons.push({ text: `Spread tight (${inputs.spreadPct.toFixed(3)}%)`, tone: "good" });
|
|
76
|
+
}
|
|
77
|
+
// Cross-venue divergence
|
|
78
|
+
if (inputs.venueDivergenceBps !== null && Number.isFinite(inputs.venueDivergenceBps)) {
|
|
79
|
+
if (inputs.venueDivergenceBps > thresholds.divergenceBps) {
|
|
80
|
+
scoreBuy += 12;
|
|
81
|
+
reasons.push({
|
|
82
|
+
text: `Binance leading +${inputs.venueDivergenceBps.toFixed(1)} bps vs Coinbase`,
|
|
83
|
+
tone: "good"
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
else if (inputs.venueDivergenceBps < -thresholds.divergenceBps) {
|
|
87
|
+
scoreSell += 12;
|
|
88
|
+
reasons.push({
|
|
89
|
+
text: `Binance lagging ${inputs.venueDivergenceBps.toFixed(1)} bps vs Coinbase`,
|
|
90
|
+
tone: "good"
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
reasons.push({
|
|
95
|
+
text: `Venue divergence ${inputs.venueDivergenceBps.toFixed(1)} bps (aligned)`,
|
|
96
|
+
tone: "neutral"
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
// Depth check
|
|
101
|
+
if (inputs.bookDepthWithinHalfPctEth < thresholds.minDepthEth) {
|
|
102
|
+
confidence -= 15;
|
|
103
|
+
reasons.push({
|
|
104
|
+
text: `Thin book — ${inputs.bookDepthWithinHalfPctEth.toFixed(0)} ETH within ±0.5%`,
|
|
105
|
+
tone: "bad"
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
confidence += 5;
|
|
110
|
+
reasons.push({
|
|
111
|
+
text: `Book depth healthy (${inputs.bookDepthWithinHalfPctEth.toFixed(0)} ETH within ±0.5%)`,
|
|
112
|
+
tone: "good"
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
let decision;
|
|
116
|
+
let finalConfidence = confidence;
|
|
117
|
+
if (scoreBuy > scoreSell + 12) {
|
|
118
|
+
decision = "BUY";
|
|
119
|
+
finalConfidence = Math.min(100, Math.max(0, confidence + scoreBuy));
|
|
120
|
+
}
|
|
121
|
+
else if (scoreSell > scoreBuy + 12) {
|
|
122
|
+
decision = "SELL";
|
|
123
|
+
finalConfidence = Math.min(100, Math.max(0, confidence + scoreSell));
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
decision = "WAIT";
|
|
127
|
+
finalConfidence = Math.min(100, Math.max(0, confidence + Math.max(scoreBuy, scoreSell) / 2));
|
|
128
|
+
reasons.push({ text: "Signals mixed — no clear direction", tone: "neutral" });
|
|
129
|
+
}
|
|
130
|
+
return { decision, confidence: finalConfidence, reasons };
|
|
131
|
+
}
|
|
132
|
+
export function computeBookImbalance(bids, asks, midPrice, withinPct = 0.005) {
|
|
133
|
+
const lowerBound = midPrice * (1 - withinPct);
|
|
134
|
+
const upperBound = midPrice * (1 + withinPct);
|
|
135
|
+
const bidSize = bids.filter((b) => b.price >= lowerBound).reduce((sum, b) => sum + b.size, 0);
|
|
136
|
+
const askSize = asks.filter((a) => a.price <= upperBound).reduce((sum, a) => sum + a.size, 0);
|
|
137
|
+
const total = bidSize + askSize;
|
|
138
|
+
if (total <= 0)
|
|
139
|
+
return 0;
|
|
140
|
+
return (bidSize - askSize) / total;
|
|
141
|
+
}
|
|
142
|
+
export function computeBookDepth(bids, asks, midPrice, withinPct = 0.005) {
|
|
143
|
+
const lowerBound = midPrice * (1 - withinPct);
|
|
144
|
+
const upperBound = midPrice * (1 + withinPct);
|
|
145
|
+
const bidSize = bids.filter((b) => b.price >= lowerBound).reduce((sum, b) => sum + b.size, 0);
|
|
146
|
+
const askSize = asks.filter((a) => a.price <= upperBound).reduce((sum, a) => sum + a.size, 0);
|
|
147
|
+
return bidSize + askSize;
|
|
148
|
+
}
|
|
149
|
+
export function computeTradeImbalance(trades, windowMs = 60_000, nowMs = Date.now()) {
|
|
150
|
+
const cutoff = nowMs - windowMs;
|
|
151
|
+
let buyVolume = 0;
|
|
152
|
+
let sellVolume = 0;
|
|
153
|
+
for (const t of trades) {
|
|
154
|
+
if (t.timestamp < cutoff)
|
|
155
|
+
continue;
|
|
156
|
+
if (t.side === "buy")
|
|
157
|
+
buyVolume += t.size;
|
|
158
|
+
else
|
|
159
|
+
sellVolume += t.size;
|
|
160
|
+
}
|
|
161
|
+
const total = buyVolume + sellVolume;
|
|
162
|
+
if (total <= 0)
|
|
163
|
+
return 0;
|
|
164
|
+
return (buyVolume - sellVolume) / total;
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=decisionEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decisionEngine.js","sourceRoot":"","sources":["../src/decisionEngine.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -21,6 +21,10 @@ export { useVolatilityRegime, type Regime, type UseVolatilityRegimeOptions, type
|
|
|
21
21
|
export { RegimeBadge, type RegimeBadgeProps } from "./RegimeBadge.js";
|
|
22
22
|
export { useGasPrice, type GasTier, type UseGasPriceOptions, type UseGasPriceResult } from "./useGasPrice.js";
|
|
23
23
|
export { GasBadge, type GasBadgeProps } from "./GasBadge.js";
|
|
24
|
+
export { useCoinbaseTicker, type CoinbaseTickerStatus, type CoinbaseTickerMessage, type UseCoinbaseTickerOptions, type UseCoinbaseTickerResult } from "./useCoinbaseTicker.js";
|
|
25
|
+
export { useBotDecision, type BotDecision, type DecisionResult, type DecisionThresholds, type DecisionHistoryEntry, type UseBotDecisionOptions, type UseBotDecisionResult } from "./useBotDecision.js";
|
|
26
|
+
export { computeBotDecision, computeBookImbalance, computeBookDepth, computeTradeImbalance, DEFAULT_DECISION_THRESHOLDS, type DecisionInputs, type DecisionReason, type BookLevel } from "./decisionEngine.js";
|
|
27
|
+
export { BotDecisionPanel, type BotDecisionPanelProps } from "./BotDecisionPanel.js";
|
|
24
28
|
/** @deprecated Use BAND_STRATEGY_ABI. Will be removed in v1.0. */
|
|
25
29
|
export { BAND_STRATEGY_ABI as ETH_BOT_VAULT_ABI } from "./bandStrategyAbi.js";
|
|
26
30
|
/** @deprecated Use BAND_STRATEGY_BYTECODE. Will be removed in v1.0. */
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACxF,OAAO,EAAE,mBAAmB,EAAE,KAAK,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AACvF,OAAO,EACL,iCAAiC,EACjC,6BAA6B,EAC7B,KAAK,oCAAoC,EACzC,KAAK,mCAAmC,EACzC,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,KAAK,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,EAC/B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,mBAAmB,EACnB,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC/B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,KAAK,0BAA0B,EAAE,KAAK,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAGhI,OAAO,EACL,mBAAmB,EACnB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC/B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAElF,OAAO,EACL,gBAAgB,EAChB,KAAK,KAAK,EACV,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhE,OAAO,EACL,yBAAyB,EACzB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,EACrC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAGxF,OAAO,EACL,mBAAmB,EACnB,KAAK,MAAM,EACX,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC/B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEtE,OAAO,EACL,WAAW,EACX,KAAK,OAAO,EACZ,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -24,6 +24,11 @@ export { useVolatilityRegime } from "./useVolatilityRegime.js";
|
|
|
24
24
|
export { RegimeBadge } from "./RegimeBadge.js";
|
|
25
25
|
export { useGasPrice } from "./useGasPrice.js";
|
|
26
26
|
export { GasBadge } from "./GasBadge.js";
|
|
27
|
+
// --- Cross-venue + decision proxy ---------------------------------------
|
|
28
|
+
export { useCoinbaseTicker } from "./useCoinbaseTicker.js";
|
|
29
|
+
export { useBotDecision } from "./useBotDecision.js";
|
|
30
|
+
export { computeBotDecision, computeBookImbalance, computeBookDepth, computeTradeImbalance, DEFAULT_DECISION_THRESHOLDS } from "./decisionEngine.js";
|
|
31
|
+
export { BotDecisionPanel } from "./BotDecisionPanel.js";
|
|
27
32
|
/** @deprecated Use BAND_STRATEGY_ABI. Will be removed in v1.0. */
|
|
28
33
|
export { BAND_STRATEGY_ABI as ETH_BOT_VAULT_ABI } from "./bandStrategyAbi.js";
|
|
29
34
|
/** @deprecated Use BAND_STRATEGY_BYTECODE. Will be removed in v1.0. */
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,SAAS,EAAuB,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAA+B,MAAM,wBAAwB,CAAC;AACxF,OAAO,EAAE,mBAAmB,EAAmC,MAAM,iBAAiB,CAAC;AACvF,OAAO,EACL,iCAAiC,EACjC,6BAA6B,EAG9B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAgC,MAAM,uBAAuB,CAAC;AACvF,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,EAI1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,iBAAiB,EAKlB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,mBAAmB,EAIpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAmE,MAAM,0BAA0B,CAAC;AAEhI,4EAA4E;AAC5E,OAAO,EACL,mBAAmB,EAMpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAA6B,MAAM,sBAAsB,CAAC;AAElF,OAAO,EACL,gBAAgB,EAMjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAuB,MAAM,gBAAgB,CAAC;AAEhE,4EAA4E;AAC5E,OAAO,EACL,yBAAyB,EAK1B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAA+B,MAAM,wBAAwB,CAAC;AAExF,4EAA4E;AAC5E,OAAO,EACL,mBAAmB,EAIpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,WAAW,EAAyB,MAAM,kBAAkB,CAAC;AAEtE,OAAO,EACL,WAAW,EAIZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAsB,MAAM,eAAe,CAAC;AAE7D,kEAAkE;AAClE,OAAO,EAAE,iBAAiB,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,uEAAuE;AACvE,OAAO,EAAE,sBAAsB,IAAI,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAC7F,kEAAkE;AAClE,OAAO,EAAE,iBAAiB,IAAI,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACnF,uEAAuE;AACvE,OAAO,EAAE,sBAAsB,IAAI,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAClG,0DAA0D;AAC1D,OAAO,EAAE,SAAS,IAAI,WAAW,EAA2C,MAAM,gBAAgB,CAAC;AACnG,kEAAkE;AAClE,OAAO,EAAE,iBAAiB,IAAI,aAAa,EAAqD,MAAM,wBAAwB,CAAC;AAC/H,oEAAoE;AACpE,OAAO,EAAE,mBAAmB,IAAI,4BAA4B,EAA0E,MAAM,iBAAiB,CAAC;AAC9J,kFAAkF;AAClF,OAAO,EAAE,iCAAiC,IAAI,iCAAiC,EAAE,MAAM,oCAAoC,CAAC;AAC5H,8EAA8E;AAC9E,OAAO,EACL,6BAA6B,IAAI,wBAAwB,EAG1D,MAAM,oCAAoC,CAAC;AAC5C,iEAAiE;AACjE,OAAO,EAAE,gBAAgB,IAAI,kBAAkB,EAA6D,MAAM,uBAAuB,CAAC;AAC1I,oEAAoE;AACpE,OAAO,EACL,mBAAmB,IAAI,WAAW,EAInC,MAAM,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type UseBinanceOrderBookOptions } from "./useBinanceOrderBook.js";
|
|
2
|
+
import { type UseBinanceTradesOptions } from "./useBinanceTrades.js";
|
|
3
|
+
import { type UseCoinbaseTickerOptions } from "./useCoinbaseTicker.js";
|
|
4
|
+
import { type UseVolatilityRegimeOptions } from "./useVolatilityRegime.js";
|
|
5
|
+
import { type BotDecision, type DecisionResult, type DecisionThresholds } from "./decisionEngine.js";
|
|
6
|
+
export type { BotDecision, DecisionResult, DecisionThresholds } from "./decisionEngine.js";
|
|
7
|
+
export type DecisionHistoryEntry = {
|
|
8
|
+
at: number;
|
|
9
|
+
decision: BotDecision;
|
|
10
|
+
confidence: number;
|
|
11
|
+
};
|
|
12
|
+
export type UseBotDecisionOptions = {
|
|
13
|
+
enabled?: boolean;
|
|
14
|
+
evaluationIntervalMs?: number;
|
|
15
|
+
flowWindowMs?: number;
|
|
16
|
+
historyLimit?: number;
|
|
17
|
+
thresholds?: Partial<DecisionThresholds>;
|
|
18
|
+
orderBook?: UseBinanceOrderBookOptions;
|
|
19
|
+
trades?: UseBinanceTradesOptions;
|
|
20
|
+
coinbase?: UseCoinbaseTickerOptions;
|
|
21
|
+
regime?: UseVolatilityRegimeOptions;
|
|
22
|
+
};
|
|
23
|
+
export type UseBotDecisionResult = DecisionResult & {
|
|
24
|
+
midPriceBinance: number | null;
|
|
25
|
+
midPriceCoinbase: number | null;
|
|
26
|
+
venueDivergenceBps: number | null;
|
|
27
|
+
bookDepthWithinHalfPctEth: number;
|
|
28
|
+
history: DecisionHistoryEntry[];
|
|
29
|
+
evaluatedAt?: Date;
|
|
30
|
+
};
|
|
31
|
+
export declare function useBotDecision(options?: UseBotDecisionOptions): UseBotDecisionResult;
|
|
32
|
+
//# sourceMappingURL=useBotDecision.d.ts.map
|