@vizzor/cli 0.14.6 → 0.15.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 CHANGED
@@ -50,6 +50,22 @@ ETH at $2,112 | Bullish | Confidence: Medium-High
50
50
 
51
51
  ---
52
52
 
53
+ ## What's new in v0.15.1 — Polaris
54
+
55
+ > [Full release notes →](https://github.com/7ayLabs/vizzor/releases/tag/v0.15.1)
56
+
57
+ - **Four new free-tier signal sources** — Deribit options term structure + 25-delta skew, Hyperliquid DEX positioning vs CEX funding divergence, Reddit + 4chan retail-sentiment NLP with contrarian top/bottom flags, and a 30-day funding-rate z-score from a new history table.
58
+ - **Closed-loop WR observability** — every signal records its vote + outcome, the auditor classifies each signal as INVERT / DAMPEN / WATCH / KEEP from rolling WR, and a polarity registry applies sign + magnitude overrides BEFORE CF combination. New `/wr-diagnose` + `/signal-override` commands.
59
+ - **Adversarial signal-conflict gate** — when onChain CF and logicRules CF disagree by >0.6 magnitude in opposite directions, the prediction is reframed as RANGE instead of emitting low-conviction directional noise.
60
+ - **Calibration acceleration** — regime-bucketed Platt shards per (family, regime), cross-symbol per-family prior inheritance, confidence-weighted SGD, calibrator bootstrap from a 30-day rolling window.
61
+ - **Production-grade auto-deploy** — merging to `main` auto-SSHes to the VPS, pulls the new image from GHCR, and rolls the docker stack in ~3-5 min. Health-gated, concurrency-protected.
62
+ - **Per-user accuracy correctness** — `user_id` persisted at `logPrediction` insert time closes the long-standing bug where every operator on the same bot saw a shared WR.
63
+ - **Session-scoped DM delivery + orphan re-guard** — old DMs from previous sessions never deliver, mid-session deletes suppress queued DMs.
64
+ - **Env-aware data dir** (`VIZZOR_DATA_DIR`) — dev and prod can now run on the same machine without thrashing shared SQLite state.
65
+ - **Sentry, Prometheus `/metrics`, bearer-auth `/health`** — observability for unattended 24/7 operation.
66
+
67
+ ---
68
+
53
69
  ## Why Vizzor?
54
70
 
55
71
  Most crypto tools show you what already happened. Vizzor shows you what's likely to happen next.
@@ -72,6 +88,7 @@ That's it. Vizzor launches a guided setup wizard that walks you through:
72
88
  - Choosing your AI provider (Claude, GPT-4, Gemini, or local Ollama)
73
89
  - Setting up API keys
74
90
  - Picking your default chain
91
+ - Optionally installing the ChronoVisor ML engine on first run
75
92
  - Learning the first commands
76
93
 
77
94
  ### Start predicting
@@ -88,7 +105,8 @@ That's it. Vizzor launches a guided setup wizard that walks you through:
88
105
  ### Better prediction accuracy
89
106
 
90
107
  After setup, follow these tips for the best results:
91
- - Run `/cosmos on` to enable full data pipeline
108
+ - Enable the ChronoVisor engine during setup, or run `vizzor chronovisor setup` later
109
+ - Run `/cosmos on` for stricter tracked-only qualification and fewer low-edge setups
92
110
  - For intraday: focus on `BTC`, `ETH`, and `SOL` with `2h`, `3h`, `4h`, `6h` horizons
93
111
  - For scalping: focus on `BTC` and `ETH` with exact short horizons like `10m`, `20m`, `45m`
94
112
  - For long-range: ask for `7d`, `30d`, `90d`, or `1y` scenario ranges
@@ -155,6 +173,8 @@ docker compose up -d # Starts CLI + ChronoVisor Engine + PostgreSQL + Web D
155
173
  |---------|-------------|
156
174
  | **Price predictions** | Bull/bear/likely targets across 9 timeframes (5m to 3 months), batch multi-horizon in a single call |
157
175
  | **ChronoVisor engine** | Mathematical prediction system: Bayesian inference, certainty-factor algebra with weak signal dampening, first-order logic rules (17 base + 7 scalping), meta-reasoning, and continuous weight learning with feedback loops |
176
+ | **Triple-system A+ gate** | Predictions promoted to tracked tier only when Vizzor TA + SMC structure + ICT timing all align on direction (Vizzor's mental model: take a trade only when momentum, structure, and timing agree) |
177
+ | **Persistent calibration** | Platt calibrator, FOL rule tracker, and per-symbol volatility registry survive process restarts — tracked WR no longer rebuilds from zero after every deploy |
158
178
  | **Alert-hit notifications** | Toast banners when price targets hit, with training feedback (accuracy, streak, weight updates), ESC-to-dismiss, auto-dismiss |
159
179
  | **Prediction markets** | Integrates Gamma and Polymarket data for market-implied probabilities |
160
180
  | **Polymarket edge scanning** | Compare ChronoVisor predictions vs Polymarket odds, detect mispricings, execute trades via CLOB API |
@@ -165,6 +185,9 @@ docker compose up -d # Starts CLI + ChronoVisor Engine + PostgreSQL + Web D
165
185
  |---------|-------------|
166
186
  | **Multi-exchange pricing** | Aggregated prices from 15 exchanges (Binance, Coinbase, Kraken, OKX, Bybit, Gate.io, KuCoin, HTX, MEXC, Bitget, CoinGecko, CryptoCompare, DexScreener, GeckoTerminal, Jupiter) with VWAP/median aggregation and outlier detection |
167
187
  | **Microstructure analysis** | Market structure, FVGs, VWAP, volume delta, liquidation map, order book depth, S/R zones, squeeze detection |
188
+ | **CVD / aggressor delta** | Cumulative volume delta from Binance trade stream — short/mid divergence + impulse detection |
189
+ | **Anticipatory signals** | Whale Alert exchange flow, stablecoin mint/burn velocity, token unlock calendar, Coinbase premium spread, SEC EDGAR pre-news filings — fire before price moves, not after |
190
+ | **SMC + ICT layer** | Smart Money Concepts aggregator (BOS, CHoCH, liquidity sweeps, order blocks) + ICT timing (London/NY kill-zones, Asian range sweeps) |
168
191
  | **Derivatives positioning** | Funding rates, open interest, long/short ratios from Binance Futures |
169
192
  | **Sentiment analysis** | Fear & Greed Index + news sentiment + buy/sell transaction ratios |
170
193
  | **Trending discovery** | What's moving right now across DexScreener and CoinGecko |
@@ -188,6 +211,7 @@ docker compose up -d # Starts CLI + ChronoVisor Engine + PostgreSQL + Web D
188
211
  | **Backtesting** | Test strategies against historical data with full metrics (return, win rate, Sharpe, drawdown) |
189
212
  | **Wallet management** | AES-256-GCM encrypted wallets with scrypt key derivation |
190
213
  | **Notifications & alerts** | Price alerts for all prediction types (directional + sideways breakout), interactive alerts panel with dismiss-on-review |
214
+ | **AI auto-armed alerts** | When the AI composes a directional trade plan (Entry/TP/SL), the `set_trade_plan_alerts` tool automatically arms price-threshold alerts at those levels with confirmation footer in the reply |
191
215
 
192
216
  ### Platforms
193
217
 
@@ -197,7 +221,7 @@ docker compose up -d # Starts CLI + ChronoVisor Engine + PostgreSQL + Web D
197
221
  | **Web Dashboard** | Next.js 15 — AI chat, markets, agents, portfolio, Polymarket, notifications |
198
222
  | **REST API** | Fastify + Swagger — 40+ endpoints with API key auth and rate limiting |
199
223
  | **Discord Bot** | Full command suite with AI-powered chat via @mention |
200
- | **Telegram Bot** | Full command suite with AI chat on any message |
224
+ | **Telegram Bot** | Full command suite with AI chat on any message — production-ready with `/health` endpoint, graceful shutdown, automated backups, and 6-hour state persistence (Platt calibrator + rule tracker survive restart). New commands: `/alerts` (list armed alerts), `/whoami` (allowlist onboarding), `/chronovisor minsystems` (D4 gate runtime tuning) |
201
225
 
202
226
  ---
203
227
 
@@ -457,6 +481,12 @@ WS /ws # WebSocket real-time push
457
481
 
458
482
  The ChronoVisor engine is an optional Python-based prediction accelerator with 16 trained models that enhances Vizzor's predictions with ML. When unavailable, Vizzor falls back to its rule-based heuristics automatically — no setup required to start using Vizzor.
459
483
 
484
+ If your tracked setups keep getting skipped, check whether ChronoVisor is actually enabled and healthy:
485
+
486
+ ```bash
487
+ vizzor chronovisor status
488
+ ```
489
+
460
490
  ### Quick setup
461
491
 
462
492
  ```bash
@@ -486,6 +516,18 @@ curl http://localhost:7200/health
486
516
  | **Runtime** | Docker (recommended) or Python 3.11+ |
487
517
  | **GPU** | Not required — CPU-based by default |
488
518
 
519
+ ### Production deployment
520
+
521
+ A `docker-compose.prod.yml` overlay layers production hardening on top of the base compose: `restart: always`, JSON log rotation (10MB × 3 files per service), and the `vizzor-backup` sidecar that runs `scripts/backup.sh` every 6 hours with 14-day retention. The bot exposes a `/health` endpoint (default `:7101`) compatible with UptimeRobot, BetterStack, and Docker healthchecks.
522
+
523
+ ```bash
524
+ # On the VPS, after first build:
525
+ docker compose -f docker-compose.yml -f docker-compose.prod.yml --env-file .env up -d
526
+ curl http://localhost:7101/health # → {"ok":true,"status":"healthy",...}
527
+ ```
528
+
529
+ See [`scripts/backup.sh`](scripts/backup.sh), [`scripts/restore.sh`](scripts/restore.sh), and [`scripts/deploy-gen-env.py`](scripts/deploy-gen-env.py) for the operator-facing backup, restore, and `.env` bootstrap helpers.
530
+
489
531
  ---
490
532
 
491
533
  ## Configuration
@@ -0,0 +1,12 @@
1
+ FROM python:3.11-slim
2
+
3
+ WORKDIR /app
4
+
5
+ COPY pyproject.toml .
6
+ COPY src/ src/
7
+
8
+ RUN pip install --no-cache-dir .
9
+
10
+ EXPOSE 7200
11
+
12
+ CMD ["uvicorn", "src.server:app", "--host", "0.0.0.0", "--port", "7200"]
@@ -0,0 +1,36 @@
1
+ {
2
+ "accuracy": 0.22,
3
+ "per_class": {
4
+ "trending_bull": {
5
+ "precision": 0.14285714285714285,
6
+ "recall": 0.09090909090909091,
7
+ "f1-score": 0.1111111111111111,
8
+ "support": 33.0
9
+ },
10
+ "trending_bear": {
11
+ "precision": 0.208955223880597,
12
+ "recall": 0.45161290322580644,
13
+ "f1-score": 0.2857142857142857,
14
+ "support": 31.0
15
+ },
16
+ "ranging": {
17
+ "precision": 0.20689655172413793,
18
+ "recall": 0.2222222222222222,
19
+ "f1-score": 0.21428571428571427,
20
+ "support": 27.0
21
+ },
22
+ "volatile": {
23
+ "precision": 0.2857142857142857,
24
+ "recall": 0.1875,
25
+ "f1-score": 0.22641509433962265,
26
+ "support": 32.0
27
+ },
28
+ "capitulation": {
29
+ "precision": 0.3333333333333333,
30
+ "recall": 0.14814814814814814,
31
+ "f1-score": 0.20512820512820512,
32
+ "support": 27.0
33
+ }
34
+ },
35
+ "test_samples": 150
36
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "accuracy": 0.96,
3
+ "precision": 0.9285714285714286,
4
+ "recall": 0.8666666666666667,
5
+ "f1": 0.896551724137931,
6
+ "test_samples": 150
7
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "accuracy": 0.37333333333333335,
3
+ "test_samples": 75
4
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "r2": 0.9008962744572128,
3
+ "mae": 9.576466093118714,
4
+ "test_samples": 150
5
+ }
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "vizzor-ml-sidecar"
3
- version = "0.14.5"
3
+ version = "0.15.0"
4
4
  description = "ML sidecar for Vizzor — LSTM, RF, Isolation Forest, Rug Detection, Wallet Classification, Sentiment NLP, Trend Scoring, TA Interpretation, Regime Detection, Strategy Bandit, Project Risk, Portfolio Optimization, Intent Classification"
5
5
  requires-python = ">=3.11"
6
6
  dependencies = [
@@ -9,7 +9,7 @@ dependencies = [
9
9
  "torch>=2.5.0",
10
10
  "scikit-learn>=1.6.0",
11
11
  "psycopg2-binary>=2.9.10",
12
- "numpy>=2.1.0",
12
+ "numpy>=1.26,<2.0",
13
13
  "pandas>=2.2.0",
14
14
  "joblib>=1.4.0",
15
15
  "transformers>=4.40.0",
@@ -664,7 +664,7 @@ async def lifespan(_app: FastAPI):
664
664
 
665
665
  app = FastAPI(
666
666
  title="Vizzor ML Sidecar",
667
- version="0.14.5",
667
+ version="0.15.0",
668
668
  lifespan=lifespan,
669
669
  )
670
670
 
@@ -1509,6 +1509,7 @@ async def catalog_roadmap():
1509
1509
  @app.get("/health")
1510
1510
  async def health():
1511
1511
  return {
1512
+ "version": app.version,
1512
1513
  "models": [
1513
1514
  {
1514
1515
  "name": "lstm-predictor",