@truenorth-ai/cli 0.1.1 → 0.3.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/README.md +22 -0
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +10 -5
- package/dist/api/client.js.map +1 -1
- package/dist/commands/options.d.ts +3 -0
- package/dist/commands/options.d.ts.map +1 -0
- package/dist/commands/options.js +303 -0
- package/dist/commands/options.js.map +1 -0
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +12 -0
- package/dist/config.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
</p>
|
|
9
9
|
|
|
10
10
|
<p align="center">
|
|
11
|
+
<a href="https://app.true-north.xyz"><img alt="Website" src="https://img.shields.io/badge/TrueNorth-app.true--north.xyz-8B5CF6"></a>
|
|
12
|
+
<a href="https://www.npmjs.com/package/@truenorth-ai/cli"><img alt="npm" src="https://img.shields.io/npm/v/@truenorth-ai/cli"></a>
|
|
11
13
|
<img alt="Node.js" src="https://img.shields.io/badge/node-%3E%3D18-brightgreen">
|
|
12
14
|
<img alt="TypeScript" src="https://img.shields.io/badge/TypeScript-strict-3178c6">
|
|
13
15
|
<img alt="License: MIT" src="https://img.shields.io/badge/license-MIT-blue.svg">
|
|
@@ -31,6 +33,26 @@
|
|
|
31
33
|
|
|
32
34
|
## Installation
|
|
33
35
|
|
|
36
|
+
### npm (recommended)
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
npm i -g @truenorth-ai/cli
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Agent skills
|
|
43
|
+
|
|
44
|
+
Install as an AI agent skill ([skills.sh](https://skills.sh/Advent-AI/truenorth-cli/truenorth) | [ClawHub](https://clawhub.ai/LJlkdskdjflsa/truenorth)):
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# skills.sh (Claude Code, Cursor, Windsurf, Copilot, Codex, etc.)
|
|
48
|
+
npx skills add Advent-AI/truenorth-cli@truenorth -g -y
|
|
49
|
+
|
|
50
|
+
# ClawHub (OpenClaw)
|
|
51
|
+
clawhub install truenorth
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### From source
|
|
55
|
+
|
|
34
56
|
```bash
|
|
35
57
|
git clone https://github.com/Advent-AI/truenorth-cli.git
|
|
36
58
|
cd truenorth-cli
|
package/dist/api/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAgC1F,wBAAsB,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC,CAG5E;AAED,wBAAsB,QAAQ,CAC5B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAM3C"}
|
package/dist/api/client.js
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
|
-
import { getBaseUrl } from "../config.js";
|
|
1
|
+
import { getBaseUrl, getAuthToken } from "../config.js";
|
|
2
2
|
async function request(url, init) {
|
|
3
3
|
try {
|
|
4
|
+
const authToken = getAuthToken();
|
|
5
|
+
const headers = {
|
|
6
|
+
"Content-Type": "application/json",
|
|
7
|
+
...init?.headers,
|
|
8
|
+
};
|
|
9
|
+
if (authToken) {
|
|
10
|
+
headers["Authorization"] = authToken;
|
|
11
|
+
}
|
|
4
12
|
const res = await fetch(url, {
|
|
5
13
|
...init,
|
|
6
|
-
headers
|
|
7
|
-
"Content-Type": "application/json",
|
|
8
|
-
...init?.headers,
|
|
9
|
-
},
|
|
14
|
+
headers,
|
|
10
15
|
});
|
|
11
16
|
if (!res.ok) {
|
|
12
17
|
const body = await res.text().catch(() => "");
|
package/dist/api/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGxD,KAAK,UAAU,OAAO,CAAI,GAAW,EAAE,IAAkB;IACvD,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;QACjC,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;YAClC,GAAG,IAAI,EAAE,OAAiC;SAC3C,CAAC;QAEF,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;QACvC,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC3B,GAAG,IAAI;YACP,OAAO;SACR,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAC9C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,GAAG,CAAC,MAAM,KAAK,IAAI,IAAI,GAAG,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;QACnG,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAM,CAAC;QACrC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IACnC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,OAAO,OAAO,CAAuB,OAAO,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,QAAgB,EAChB,IAA6B;IAE7B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,OAAO,OAAO,CAAsB,GAAG,OAAO,OAAO,EAAE;QACrD,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;KACpD,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/commands/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6SpC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoC7D"}
|
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import { executeTool } from "../api/tools.js";
|
|
3
|
+
import { startSpinner, formatPrice, formatPercent, formatNumber, formatDuration, printJson, isJsonMode, wrapAction, addJsonOption, makeTable, } from "../utils.js";
|
|
4
|
+
// ── Helpers ───────────────────────────────────────────────────────────
|
|
5
|
+
function pct(val, spot) {
|
|
6
|
+
const p = ((val / spot) - 1) * 100;
|
|
7
|
+
return formatPercent(p);
|
|
8
|
+
}
|
|
9
|
+
function bar(iv, scale = 5) {
|
|
10
|
+
return chalk.green("█".repeat(Math.max(1, Math.round(iv / scale))));
|
|
11
|
+
}
|
|
12
|
+
function section(num, title) {
|
|
13
|
+
console.log(chalk.bold.cyan(`\n${num}. ${title} ${"─".repeat(Math.max(1, 50 - title.length))}`));
|
|
14
|
+
}
|
|
15
|
+
function insight(data) {
|
|
16
|
+
if (!data)
|
|
17
|
+
return;
|
|
18
|
+
const headline = data.headline;
|
|
19
|
+
if (headline) {
|
|
20
|
+
console.log(` ${chalk.bold.white(headline)}`);
|
|
21
|
+
}
|
|
22
|
+
const scenario = data.current_scenario;
|
|
23
|
+
if (scenario) {
|
|
24
|
+
console.log(chalk.dim(` ${scenario.slice(0, 200)}${scenario.length > 200 ? "…" : ""}`));
|
|
25
|
+
}
|
|
26
|
+
const implication = data.trading_implication;
|
|
27
|
+
if (implication) {
|
|
28
|
+
console.log(chalk.yellow(` → ${implication.slice(0, 200)}${implication.length > 200 ? "…" : ""}`));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function timeliness(data) {
|
|
32
|
+
if (!data)
|
|
33
|
+
return;
|
|
34
|
+
const freshness = data.freshness;
|
|
35
|
+
if (freshness) {
|
|
36
|
+
console.log(chalk.dim(` ⏱ ${freshness.slice(0, 120)}`));
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
// ── Custom Renderer ──────────────────────────────────────────────────
|
|
40
|
+
function renderOptionsReport(result) {
|
|
41
|
+
const spot = result.spot;
|
|
42
|
+
const currency = result.currency;
|
|
43
|
+
const market = result.market;
|
|
44
|
+
const atmIv = result.atm_iv;
|
|
45
|
+
const topExpiry = result.top_expiry;
|
|
46
|
+
const dte = result.days_to_expiry;
|
|
47
|
+
const hoursToExpiry = result.hours_to_expiry;
|
|
48
|
+
const contracts = result.total_contracts;
|
|
49
|
+
const summary = result.summary;
|
|
50
|
+
const sections = result.sections;
|
|
51
|
+
const freshness = result.data_freshness;
|
|
52
|
+
// ── Header ──────────────────────────────────────────────────────
|
|
53
|
+
const isUsdc = market !== currency;
|
|
54
|
+
const label = isUsdc ? `${currency} (USDC-settled)` : currency;
|
|
55
|
+
console.log();
|
|
56
|
+
console.log(chalk.bold("══════════════════════════════════════════════════════"));
|
|
57
|
+
console.log(chalk.bold(` ${label} OPTIONS INTELLIGENCE`));
|
|
58
|
+
console.log(` Spot: ${formatPrice(spot)} │ ATM IV: ${chalk.white(atmIv + "%")} │ Expiry: ${chalk.white(topExpiry)}${dte !== null ? chalk.dim(` (${dte}d / ${hoursToExpiry}h)`) : ""}`);
|
|
59
|
+
console.log(` Contracts: ${chalk.white(String(contracts))} │ Sentiment: ${sentimentBadge(summary.sentiment)} │ Regime: ${regimeBadge(summary.regime)}`);
|
|
60
|
+
console.log(chalk.bold("══════════════════════════════════════════════════════"));
|
|
61
|
+
// ── Summary ─────────────────────────────────────────────────────
|
|
62
|
+
if (summary) {
|
|
63
|
+
console.log();
|
|
64
|
+
console.log(chalk.dim(` ${summary.headline}`));
|
|
65
|
+
const levels = summary.key_levels;
|
|
66
|
+
if (levels) {
|
|
67
|
+
const parts = [];
|
|
68
|
+
if (levels.max_pain)
|
|
69
|
+
parts.push(`MaxPain ${formatPrice(levels.max_pain)}`);
|
|
70
|
+
if (levels.gex_flip)
|
|
71
|
+
parts.push(`GEX Flip ${formatPrice(levels.gex_flip)}`);
|
|
72
|
+
if (levels.nearest_call_wall)
|
|
73
|
+
parts.push(`Resistance ${formatPrice(levels.nearest_call_wall)}`);
|
|
74
|
+
if (levels.nearest_put_wall)
|
|
75
|
+
parts.push(`Support ${formatPrice(levels.nearest_put_wall)}`);
|
|
76
|
+
console.log(` ${chalk.dim("Key:")} ${parts.join(chalk.dim(" │ "))}`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
// ── 1. Max Pain ─────────────────────────────────────────────────
|
|
80
|
+
const mp = sections.max_pain;
|
|
81
|
+
const mpData = mp.data;
|
|
82
|
+
section(1, "MAX PAIN");
|
|
83
|
+
console.log(` ${formatPrice(mpData.strike)} (${pct(mpData.strike, spot)} from spot)`);
|
|
84
|
+
insight(mp.insight);
|
|
85
|
+
// ── 2. GEX ──────────────────────────────────────────────────────
|
|
86
|
+
const gex = sections.gex;
|
|
87
|
+
const gexData = gex.data;
|
|
88
|
+
section(2, "GAMMA EXPOSURE (GEX)");
|
|
89
|
+
console.log(` Gamma Flip: ${formatPrice(gexData.gamma_flip)} (${pct(gexData.gamma_flip, spot)})`);
|
|
90
|
+
console.log(` Call Gamma Wall: ${formatPrice(gexData.call_gamma_wall)} │ Put Gamma Wall: ${formatPrice(gexData.put_gamma_wall)}`);
|
|
91
|
+
console.log(` Regime: ${regimeBadge(gexData.regime)}`);
|
|
92
|
+
insight(gex.insight);
|
|
93
|
+
// ── 3. IV Term Structure ────────────────────────────────────────
|
|
94
|
+
const ivt = sections.iv_term;
|
|
95
|
+
const ivtData = ivt.data;
|
|
96
|
+
const ts = ivtData.term_structure;
|
|
97
|
+
section(3, "IV TERM STRUCTURE");
|
|
98
|
+
console.log(` Shape: ${chalk.white(String(ivtData.shape).toUpperCase())}`);
|
|
99
|
+
if (ts && ts.length > 0) {
|
|
100
|
+
for (const t of ts.slice(0, 8)) {
|
|
101
|
+
const expiry = String(t.expiry).padStart(9);
|
|
102
|
+
const dte = String(t.dte).padStart(3);
|
|
103
|
+
const iv = t.atm_iv.toFixed(1).padStart(5);
|
|
104
|
+
console.log(` ${chalk.dim(expiry)} (${dte}d) ${chalk.white(iv + "%")} ${bar(t.atm_iv)}`);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
insight(ivt.insight);
|
|
108
|
+
// ── 4. Risk Reversal ────────────────────────────────────────────
|
|
109
|
+
const rr = sections.risk_reversal;
|
|
110
|
+
const rrData = rr.data;
|
|
111
|
+
section(4, "RISK REVERSAL (25-delta)");
|
|
112
|
+
console.log(` 25d RR: ${formatPercent(rrData.rr_25d)} — ${biasBadge(rrData.bias)}`);
|
|
113
|
+
const c25 = rrData.call_25d;
|
|
114
|
+
const p25 = rrData.put_25d;
|
|
115
|
+
if (c25 && p25) {
|
|
116
|
+
console.log(` 25d Call: ${formatPrice(c25.strike)} IV=${chalk.white(c25.iv.toFixed(1) + "%")} │ 25d Put: ${formatPrice(p25.strike)} IV=${chalk.white(p25.iv.toFixed(1) + "%")}`);
|
|
117
|
+
}
|
|
118
|
+
insight(rr.insight);
|
|
119
|
+
// ── 5. Put/Call Ratio ───────────────────────────────────────────
|
|
120
|
+
const pc = sections.pc_ratio;
|
|
121
|
+
const pcData = pc.data;
|
|
122
|
+
section(5, "PUT/CALL RATIO");
|
|
123
|
+
console.log(` By OI: ${chalk.bold.white(String(pcData.by_oi))} (${formatNumber(pcData.put_oi)}P / ${formatNumber(pcData.call_oi)}C)`);
|
|
124
|
+
console.log(` By Volume: ${chalk.bold.white(String(pcData.by_volume))} (${formatNumber(pcData.put_volume)}P / ${formatNumber(pcData.call_volume)}C)`);
|
|
125
|
+
insight(pc.insight);
|
|
126
|
+
// ── 6. IV Skew ──────────────────────────────────────────────────
|
|
127
|
+
const skew = sections.iv_skew;
|
|
128
|
+
const skewData = skew.data;
|
|
129
|
+
section(6, "IV SKEW");
|
|
130
|
+
console.log(` Slope: ${formatPercent(skewData.slope)}`);
|
|
131
|
+
const otmPuts = skewData.otm_puts;
|
|
132
|
+
const otmCalls = skewData.otm_calls;
|
|
133
|
+
if (otmPuts && otmPuts.length > 0) {
|
|
134
|
+
console.log(chalk.dim(" OTM Puts (below spot):"));
|
|
135
|
+
for (const p of otmPuts.slice(-3)) {
|
|
136
|
+
console.log(` ${formatPrice(p.strike).padStart(10)} (${formatPercent(p.moneyness_pct)}) IV=${chalk.white(p.iv.toFixed(1) + "%")}`);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
if (otmCalls && otmCalls.length > 0) {
|
|
140
|
+
console.log(chalk.dim(" OTM Calls (above spot):"));
|
|
141
|
+
for (const c of otmCalls.slice(0, 3)) {
|
|
142
|
+
console.log(` ${formatPrice(c.strike).padStart(10)} (${formatPercent(c.moneyness_pct)}) IV=${chalk.white(c.iv.toFixed(1) + "%")}`);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
insight(skew.insight);
|
|
146
|
+
// ── 7. Delta Exposure ───────────────────────────────────────────
|
|
147
|
+
const delta = sections.delta_exposure;
|
|
148
|
+
const deltaData = delta.data;
|
|
149
|
+
section(7, "DELTA EXPOSURE");
|
|
150
|
+
console.log(` Net: ${formatNumber(deltaData.net_delta_usd)} ${biasBadge(deltaData.bias)}`);
|
|
151
|
+
console.log(` Call: ${formatNumber(deltaData.call_delta_usd)} │ Put: ${formatNumber(deltaData.put_delta_usd)}`);
|
|
152
|
+
insight(delta.insight);
|
|
153
|
+
// ── 8. Call/Put Walls ───────────────────────────────────────────
|
|
154
|
+
const walls = sections.call_put_walls;
|
|
155
|
+
const wallsData = walls.data;
|
|
156
|
+
section(8, "CALL/PUT WALLS");
|
|
157
|
+
const cw = wallsData.call_walls;
|
|
158
|
+
const pw = wallsData.put_walls;
|
|
159
|
+
if (cw && cw.length > 0) {
|
|
160
|
+
console.log(chalk.dim(" Resistance (call walls):"));
|
|
161
|
+
const cwRows = cw.map((w) => [
|
|
162
|
+
formatPrice(w.strike),
|
|
163
|
+
formatPercent(w.pct_from_spot),
|
|
164
|
+
formatNumber(w.oi),
|
|
165
|
+
]);
|
|
166
|
+
console.log(makeTable(["Strike", "From Spot", "OI"], cwRows));
|
|
167
|
+
}
|
|
168
|
+
if (pw && pw.length > 0) {
|
|
169
|
+
console.log(chalk.dim(" Support (put walls):"));
|
|
170
|
+
const pwRows = pw.map((w) => [
|
|
171
|
+
formatPrice(w.strike),
|
|
172
|
+
formatPercent(w.pct_from_spot),
|
|
173
|
+
formatNumber(w.oi),
|
|
174
|
+
]);
|
|
175
|
+
console.log(makeTable(["Strike", "From Spot", "OI"], pwRows));
|
|
176
|
+
}
|
|
177
|
+
insight(walls.insight);
|
|
178
|
+
// ── 9. Block Trades ─────────────────────────────────────────────
|
|
179
|
+
const blocks = sections.block_trades;
|
|
180
|
+
const blocksData = blocks.data;
|
|
181
|
+
section(9, "BLOCK TRADES (>$1M premium)");
|
|
182
|
+
const blockCount = blocksData.count;
|
|
183
|
+
const blockBias = blocksData.bias;
|
|
184
|
+
console.log(` Blocks: ${chalk.white(String(blockCount))} │ Bias: ${biasBadge(blockBias)}`);
|
|
185
|
+
const blockTrades = blocksData.trades;
|
|
186
|
+
if (blockTrades && blockTrades.length > 0) {
|
|
187
|
+
const rows = blockTrades.slice(0, 5).map((b) => [
|
|
188
|
+
chalk.dim(String(b.time || "").slice(11, 19)),
|
|
189
|
+
b.direction.toUpperCase() === "BUY" ? chalk.green("BUY") : chalk.red("SELL"),
|
|
190
|
+
String(b.instrument),
|
|
191
|
+
formatNumber(b.premium_usd),
|
|
192
|
+
formatNumber(b.underlying_notional_usd),
|
|
193
|
+
chalk.white(b.iv.toFixed(1) + "%"),
|
|
194
|
+
]);
|
|
195
|
+
console.log(makeTable(["Time", "Side", "Instrument", "Premium", "Notional", "IV"], rows));
|
|
196
|
+
}
|
|
197
|
+
insight(blocks.insight);
|
|
198
|
+
// ── 10. FOMC Event Study ────────────────────────────────────────
|
|
199
|
+
const event = sections.event_study;
|
|
200
|
+
const eventData = event.data;
|
|
201
|
+
section(10, "FOMC EVENT STUDY");
|
|
202
|
+
const sampleSize = eventData.sample_size;
|
|
203
|
+
if (sampleSize > 0) {
|
|
204
|
+
console.log(` Sample: ${chalk.white(String(sampleSize))} FOMC meetings`);
|
|
205
|
+
console.log(` Avg return: ${formatPercent(eventData.avg_total_pct)} (pre: ${formatPercent(eventData.avg_pre_pct)}, post: ${formatPercent(eventData.avg_post_pct)})`);
|
|
206
|
+
const events = eventData.events;
|
|
207
|
+
if (events && events.length > 0) {
|
|
208
|
+
const rows = events.map((e) => [
|
|
209
|
+
chalk.dim(String(e.date)),
|
|
210
|
+
formatPercent(e.return_pre_pct),
|
|
211
|
+
formatPercent(e.return_post_pct),
|
|
212
|
+
formatPercent(e.return_total_pct),
|
|
213
|
+
formatPrice(e.price_t0),
|
|
214
|
+
]);
|
|
215
|
+
console.log(makeTable(["Date", "Pre%", "Post%", "Total%", "Price@T"], rows));
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
console.log(chalk.dim(" No event study data available"));
|
|
220
|
+
}
|
|
221
|
+
insight(event.insight);
|
|
222
|
+
// ── Freshness Footer ────────────────────────────────────────────
|
|
223
|
+
if (freshness) {
|
|
224
|
+
console.log(chalk.bold("\n══════════════════════════════════════════════════════"));
|
|
225
|
+
const cached = freshness.is_cached;
|
|
226
|
+
const ttl = freshness.cache_ttl_seconds;
|
|
227
|
+
const nextFomc = freshness.next_fomc;
|
|
228
|
+
const daysToFomc = freshness.days_to_next_fomc;
|
|
229
|
+
const parts = [];
|
|
230
|
+
if (cached) {
|
|
231
|
+
parts.push(chalk.yellow(`cached (${freshness.cache_age_seconds}s old, ${freshness.cache_remaining_seconds}s remaining)`));
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
parts.push(chalk.green(`fresh (TTL ${ttl}s)`));
|
|
235
|
+
}
|
|
236
|
+
if (nextFomc) {
|
|
237
|
+
parts.push(`Next FOMC: ${chalk.white(nextFomc)} (${daysToFomc}d)`);
|
|
238
|
+
}
|
|
239
|
+
console.log(` ${chalk.dim("Data:")} ${parts.join(chalk.dim(" │ "))}`);
|
|
240
|
+
const guide = freshness.staleness_guide;
|
|
241
|
+
if (guide) {
|
|
242
|
+
const rt = guide.real_time_sensitive || [];
|
|
243
|
+
const hr = guide.hourly_stable || [];
|
|
244
|
+
const dy = guide.daily_stable || [];
|
|
245
|
+
console.log(` ${chalk.dim("Staleness:")} ${chalk.red("●")} ${rt.join(", ")} ${chalk.yellow("●")} ${hr.join(", ")} ${chalk.green("●")} ${dy.join(", ")}`);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
console.log();
|
|
249
|
+
}
|
|
250
|
+
// ── Badge helpers ─────────────────────────────────────────────────
|
|
251
|
+
function sentimentBadge(s) {
|
|
252
|
+
if (s === "bearish")
|
|
253
|
+
return chalk.bgRed.white(" BEARISH ");
|
|
254
|
+
if (s === "bullish")
|
|
255
|
+
return chalk.bgGreen.black(" BULLISH ");
|
|
256
|
+
return chalk.bgYellow.black(" NEUTRAL ");
|
|
257
|
+
}
|
|
258
|
+
function regimeBadge(r) {
|
|
259
|
+
if (r === "positive_gamma")
|
|
260
|
+
return chalk.bgBlue.white(" +γ RANGE-BOUND ");
|
|
261
|
+
if (r === "negative_gamma")
|
|
262
|
+
return chalk.bgRed.white(" -γ TRENDING ");
|
|
263
|
+
return chalk.dim(r);
|
|
264
|
+
}
|
|
265
|
+
function biasBadge(b) {
|
|
266
|
+
if (b === "bearish" || b === "short")
|
|
267
|
+
return chalk.red(b.toUpperCase());
|
|
268
|
+
if (b === "bullish" || b === "long")
|
|
269
|
+
return chalk.green(b.toUpperCase());
|
|
270
|
+
return chalk.yellow(b.toUpperCase());
|
|
271
|
+
}
|
|
272
|
+
// ── Command Registration ─────────────────────────────────────────
|
|
273
|
+
export function registerOptionsCommand(program) {
|
|
274
|
+
const cmd = program
|
|
275
|
+
.command("options <token>")
|
|
276
|
+
.description("Options intelligence report for a token")
|
|
277
|
+
.option("--token-address <addr>", "Token address (overrides positional)");
|
|
278
|
+
addJsonOption(cmd);
|
|
279
|
+
cmd.action(wrapAction(async (token, _opts) => {
|
|
280
|
+
const opts = _opts;
|
|
281
|
+
const args = {
|
|
282
|
+
token_address: opts.tokenAddress ?? token,
|
|
283
|
+
};
|
|
284
|
+
const spinner = startSpinner(`Fetching options data for ${chalk.cyan(args.token_address)}…`);
|
|
285
|
+
const result = await executeTool("options_report", args);
|
|
286
|
+
spinner.stop();
|
|
287
|
+
if (isJsonMode(opts)) {
|
|
288
|
+
printJson(result);
|
|
289
|
+
return;
|
|
290
|
+
}
|
|
291
|
+
// Check for tool-level error
|
|
292
|
+
const data = result.result;
|
|
293
|
+
if (data.status === "error") {
|
|
294
|
+
console.error(chalk.red(`\nError: ${data.error || data.message || "Unknown error"}`));
|
|
295
|
+
if (data.hint)
|
|
296
|
+
console.error(chalk.dim(`Hint: ${data.hint}`));
|
|
297
|
+
process.exit(1);
|
|
298
|
+
}
|
|
299
|
+
console.log(chalk.bold(`\n Options Intelligence ${formatDuration(result.durationMs)}\n`));
|
|
300
|
+
renderOptionsReport(data);
|
|
301
|
+
}));
|
|
302
|
+
}
|
|
303
|
+
//# sourceMappingURL=options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/commands/options.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type TnConfig } from "./types.js";
|
|
2
|
+
export declare function getAuthToken(): string | undefined;
|
|
2
3
|
export declare function loadConfig(): TnConfig;
|
|
3
4
|
export declare function saveConfig(config: Partial<TnConfig>): void;
|
|
4
5
|
export declare function getBaseUrl(): string;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAM3D,wBAAgB,YAAY,IAAI,MAAM,GAAG,SAAS,CASjD;AAED,wBAAgB,UAAU,IAAI,QAAQ,CAUrC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAK1D;AAED,wBAAgB,UAAU,IAAI,MAAM,CAEnC"}
|
package/dist/config.js
CHANGED
|
@@ -4,6 +4,18 @@ import { homedir } from "node:os";
|
|
|
4
4
|
import { DEFAULT_CONFIG } from "./types.js";
|
|
5
5
|
const CONFIG_DIR = join(homedir(), ".truenorth");
|
|
6
6
|
const CONFIG_FILE = join(CONFIG_DIR, "config.json");
|
|
7
|
+
const AUTH_TOKEN_FILE = join(CONFIG_DIR, "auth_token");
|
|
8
|
+
export function getAuthToken() {
|
|
9
|
+
try {
|
|
10
|
+
if (existsSync(AUTH_TOKEN_FILE)) {
|
|
11
|
+
return readFileSync(AUTH_TOKEN_FILE, "utf-8").trim();
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
// ignore
|
|
16
|
+
}
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
7
19
|
export function loadConfig() {
|
|
8
20
|
try {
|
|
9
21
|
if (existsSync(CONFIG_FILE)) {
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,cAAc,EAAiB,MAAM,YAAY,CAAC;AAE3D,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;AACjD,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,cAAc,EAAiB,MAAM,YAAY,CAAC;AAE3D,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;AACjD,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AACpD,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AAEvD,MAAM,UAAU,YAAY;IAC1B,IAAI,CAAC;QACH,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YAChC,OAAO,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QACvD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,SAAS;IACX,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC;QACH,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC/C,OAAO,EAAE,GAAG,cAAc,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACnD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,2BAA2B;IAC7B,CAAC;IACD,OAAO,EAAE,GAAG,cAAc,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAyB;IAClD,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC;IACzC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,UAAU,EAAE,CAAC,OAAO,CAAC;AACzD,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -11,6 +11,7 @@ import { registerEventsCommand } from "./commands/events.js";
|
|
|
11
11
|
import { registerPerpsCommand } from "./commands/perps.js";
|
|
12
12
|
import { registerDefiCommand } from "./commands/defi.js";
|
|
13
13
|
import { registerSearchCommand } from "./commands/search.js";
|
|
14
|
+
import { registerOptionsCommand } from "./commands/options.js";
|
|
14
15
|
const program = new Command();
|
|
15
16
|
program
|
|
16
17
|
.name("tn")
|
|
@@ -26,6 +27,7 @@ registerEventsCommand(program);
|
|
|
26
27
|
registerPerpsCommand(program);
|
|
27
28
|
registerDefiCommand(program);
|
|
28
29
|
registerSearchCommand(program);
|
|
30
|
+
registerOptionsCommand(program);
|
|
29
31
|
// ── config command ───────────────────────────────────────────────────
|
|
30
32
|
program
|
|
31
33
|
.command("config")
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AA8DA,MAAM,CAAC,MAAM,cAAc,GAAa;IACtC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AA8DA,MAAM,CAAC,MAAM,cAAc,GAAa;IACtC,OAAO,EAAE,mDAAmD;IAC5D,gBAAgB,EAAE,IAAI;IACtB,YAAY,EAAE,EAAE;CACjB,CAAC"}
|