clodds 1.2.9 → 1.4.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/skills/bundled/acp/SKILL.md +188 -0
- package/dist/skills/bundled/acp/index.d.ts +0 -3
- package/dist/skills/bundled/acp/index.js +1 -1
- package/dist/skills/bundled/acp/index.js.map +1 -1
- package/dist/skills/bundled/agentbets/SKILL.md +19 -0
- package/dist/skills/bundled/agentbets/index.js +1 -1
- package/dist/skills/bundled/agentbets/index.js.map +1 -1
- package/dist/skills/bundled/ai-strategy/SKILL.md +111 -0
- package/dist/skills/bundled/ai-strategy/index.js +1 -1
- package/dist/skills/bundled/ai-strategy/index.js.map +1 -1
- package/dist/skills/bundled/alerts/SKILL.md +87 -0
- package/dist/skills/bundled/analytics/SKILL.md +252 -0
- package/dist/skills/bundled/analytics/index.js +2 -2
- package/dist/skills/bundled/analytics/index.js.map +1 -1
- package/dist/skills/bundled/arbitrage/SKILL.md +287 -0
- package/dist/skills/bundled/arbitrage/index.js +6 -1
- package/dist/skills/bundled/arbitrage/index.js.map +1 -1
- package/dist/skills/bundled/auto-reply/SKILL.md +285 -0
- package/dist/skills/bundled/auto-reply/index.js +2 -2
- package/dist/skills/bundled/auto-reply/index.js.map +1 -1
- package/dist/skills/bundled/automation/SKILL.md +242 -0
- package/dist/skills/bundled/automation/index.js +2 -2
- package/dist/skills/bundled/automation/index.js.map +1 -1
- package/dist/skills/bundled/backtest/SKILL.md +225 -0
- package/dist/skills/bundled/bags/SKILL.md +131 -0
- package/dist/skills/bundled/bankr/SKILL.md +114 -0
- package/dist/skills/bundled/betfair/SKILL.md +113 -0
- package/dist/skills/bundled/binance-futures/SKILL.md +84 -0
- package/dist/skills/bundled/binance-futures/index.d.ts +0 -3
- package/dist/skills/bundled/binance-futures/index.js +1 -2
- package/dist/skills/bundled/binance-futures/index.js.map +1 -1
- package/dist/skills/bundled/botchan/SKILL.md +66 -0
- package/dist/skills/bundled/botchan/index.d.ts +0 -3
- package/dist/skills/bundled/botchan/index.js +0 -1
- package/dist/skills/bundled/botchan/index.js.map +1 -1
- package/dist/skills/bundled/bridge/SKILL.md +215 -0
- package/dist/skills/bundled/bridge/index.js +6 -0
- package/dist/skills/bundled/bridge/index.js.map +1 -1
- package/dist/skills/bundled/bybit-futures/SKILL.md +84 -0
- package/dist/skills/bundled/bybit-futures/index.d.ts +0 -3
- package/dist/skills/bundled/bybit-futures/index.js +0 -1
- package/dist/skills/bundled/bybit-futures/index.js.map +1 -1
- package/dist/skills/bundled/clanker/SKILL.md +125 -0
- package/dist/skills/bundled/clanker/index.d.ts +0 -3
- package/dist/skills/bundled/clanker/index.js +0 -1
- package/dist/skills/bundled/clanker/index.js.map +1 -1
- package/dist/skills/bundled/copy-trading/SKILL.md +285 -0
- package/dist/skills/bundled/copy-trading/index.js +15 -8
- package/dist/skills/bundled/copy-trading/index.js.map +1 -1
- package/dist/skills/bundled/copy-trading-solana/SKILL.md +66 -0
- package/dist/skills/bundled/credentials/SKILL.md +261 -0
- package/dist/skills/bundled/credentials/index.js +4 -0
- package/dist/skills/bundled/credentials/index.js.map +1 -1
- package/dist/skills/bundled/crypto-hft/SKILL.md +121 -0
- package/dist/skills/bundled/crypto-hft/index.js +18 -3
- package/dist/skills/bundled/crypto-hft/index.js.map +1 -1
- package/dist/skills/bundled/dca/SKILL.md +27 -0
- package/dist/skills/bundled/dex/SKILL.md +92 -0
- package/dist/skills/bundled/dex/index.js +77 -29
- package/dist/skills/bundled/dex/index.js.map +1 -1
- package/dist/skills/bundled/divergence/SKILL.md +83 -0
- package/dist/skills/bundled/doctor/SKILL.md +267 -0
- package/dist/skills/bundled/doctor/index.js +2 -8
- package/dist/skills/bundled/doctor/index.js.map +1 -1
- package/dist/skills/bundled/drift/SKILL.md +53 -0
- package/dist/skills/bundled/drift-sdk/SKILL.md +103 -0
- package/dist/skills/bundled/drift-sdk/index.d.ts +0 -3
- package/dist/skills/bundled/drift-sdk/index.js +0 -1
- package/dist/skills/bundled/drift-sdk/index.js.map +1 -1
- package/dist/skills/bundled/edge/SKILL.md +84 -0
- package/dist/skills/bundled/embeddings/SKILL.md +244 -0
- package/dist/skills/bundled/endaoment/SKILL.md +65 -0
- package/dist/skills/bundled/endaoment/index.d.ts +0 -3
- package/dist/skills/bundled/endaoment/index.js +0 -1
- package/dist/skills/bundled/endaoment/index.js.map +1 -1
- package/dist/skills/bundled/ens/SKILL.md +63 -0
- package/dist/skills/bundled/ens/index.d.ts +0 -3
- package/dist/skills/bundled/ens/index.js +0 -1
- package/dist/skills/bundled/ens/index.js.map +1 -1
- package/dist/skills/bundled/erc8004/SKILL.md +79 -0
- package/dist/skills/bundled/erc8004/index.d.ts +0 -3
- package/dist/skills/bundled/erc8004/index.js +0 -1
- package/dist/skills/bundled/erc8004/index.js.map +1 -1
- package/dist/skills/bundled/execution/SKILL.md +278 -0
- package/dist/skills/bundled/farcaster/SKILL.md +80 -0
- package/dist/skills/bundled/farcaster/index.js +12 -0
- package/dist/skills/bundled/farcaster/index.js.map +1 -1
- package/dist/skills/bundled/features/SKILL.md +20 -0
- package/dist/skills/bundled/feeds/SKILL.md +288 -0
- package/dist/skills/bundled/harden/SKILL.md +74 -0
- package/dist/skills/bundled/history/SKILL.md +257 -0
- package/dist/skills/bundled/hyperliquid/SKILL.md +200 -0
- package/dist/skills/bundled/hyperliquid/index.d.ts +0 -3
- package/dist/skills/bundled/hyperliquid/index.js +0 -1
- package/dist/skills/bundled/hyperliquid/index.js.map +1 -1
- package/dist/skills/bundled/identity/SKILL.md +228 -0
- package/dist/skills/bundled/identity/index.js +2 -2
- package/dist/skills/bundled/identity/index.js.map +1 -1
- package/dist/skills/bundled/integrations/SKILL.md +321 -0
- package/dist/skills/bundled/integrations/index.js +2 -2
- package/dist/skills/bundled/integrations/index.js.map +1 -1
- package/dist/skills/bundled/jupiter/SKILL.md +163 -0
- package/dist/skills/bundled/jupiter/index.js +2 -2
- package/dist/skills/bundled/kamino/SKILL.md +69 -0
- package/dist/skills/bundled/ledger/SKILL.md +20 -0
- package/dist/skills/bundled/lighter/SKILL.md +83 -0
- package/dist/skills/bundled/lighter/index.d.ts +0 -3
- package/dist/skills/bundled/lighter/index.js +0 -1
- package/dist/skills/bundled/lighter/index.js.map +1 -1
- package/dist/skills/bundled/marginfi/SKILL.md +62 -0
- package/dist/skills/bundled/market-index/SKILL.md +242 -0
- package/dist/skills/bundled/market-index/index.js +1 -3
- package/dist/skills/bundled/market-index/index.js.map +1 -1
- package/dist/skills/bundled/markets/SKILL.md +49 -0
- package/dist/skills/bundled/mcp/SKILL.md +235 -0
- package/dist/skills/bundled/mcp/index.js +1 -3
- package/dist/skills/bundled/mcp/index.js.map +1 -1
- package/dist/skills/bundled/memory/SKILL.md +209 -0
- package/dist/skills/bundled/metaculus/SKILL.md +62 -0
- package/dist/skills/bundled/metaculus/index.js +4 -1
- package/dist/skills/bundled/metaculus/index.js.map +1 -1
- package/dist/skills/bundled/meteora/SKILL.md +28 -0
- package/dist/skills/bundled/meteora-dbc/SKILL.md +25 -0
- package/dist/skills/bundled/metrics/SKILL.md +338 -0
- package/dist/skills/bundled/mev/SKILL.md +239 -0
- package/dist/skills/bundled/mev/index.js +2 -2
- package/dist/skills/bundled/mev/index.js.map +1 -1
- package/dist/skills/bundled/mexc-futures/SKILL.md +86 -0
- package/dist/skills/bundled/mexc-futures/index.d.ts +0 -3
- package/dist/skills/bundled/mexc-futures/index.js +0 -1
- package/dist/skills/bundled/mexc-futures/index.js.map +1 -1
- package/dist/skills/bundled/mm/SKILL.md +142 -0
- package/dist/skills/bundled/mm/index.js +28 -27
- package/dist/skills/bundled/mm/index.js.map +1 -1
- package/dist/skills/bundled/monitoring/SKILL.md +249 -0
- package/dist/skills/bundled/news/SKILL.md +95 -0
- package/dist/skills/bundled/news/index.js +1 -2
- package/dist/skills/bundled/news/index.js.map +1 -1
- package/dist/skills/bundled/onchainkit/SKILL.md +83 -0
- package/dist/skills/bundled/opinion/SKILL.md +87 -0
- package/dist/skills/bundled/opportunity/SKILL.md +308 -0
- package/dist/skills/bundled/orca/SKILL.md +28 -0
- package/dist/skills/bundled/orca/index.js +11 -7
- package/dist/skills/bundled/orca/index.js.map +1 -1
- package/dist/skills/bundled/pairing/SKILL.md +275 -0
- package/dist/skills/bundled/pancakeswap/SKILL.md +93 -0
- package/dist/skills/bundled/pancakeswap/index.d.ts +0 -3
- package/dist/skills/bundled/pancakeswap/index.js +0 -1
- package/dist/skills/bundled/pancakeswap/index.js.map +1 -1
- package/dist/skills/bundled/percolator/SKILL.md +22 -0
- package/dist/skills/bundled/permissions/SKILL.md +269 -0
- package/dist/skills/bundled/permissions/index.js +2 -2
- package/dist/skills/bundled/permissions/index.js.map +1 -1
- package/dist/skills/bundled/plugins/SKILL.md +263 -0
- package/dist/skills/bundled/plugins/index.js +2 -2
- package/dist/skills/bundled/plugins/index.js.map +1 -1
- package/dist/skills/bundled/portfolio/SKILL.md +161 -0
- package/dist/skills/bundled/portfolio/index.js +1 -1
- package/dist/skills/bundled/portfolio/index.js.map +1 -1
- package/dist/skills/bundled/portfolio-sync/SKILL.md +466 -0
- package/dist/skills/bundled/positions/SKILL.md +262 -0
- package/dist/skills/bundled/predictfun/SKILL.md +109 -0
- package/dist/skills/bundled/predictfun/index.js +1 -1
- package/dist/skills/bundled/predictfun/index.js.map +1 -1
- package/dist/skills/bundled/predictit/SKILL.md +66 -0
- package/dist/skills/bundled/predictit/index.js +4 -1
- package/dist/skills/bundled/predictit/index.js.map +1 -1
- package/dist/skills/bundled/presence/SKILL.md +217 -0
- package/dist/skills/bundled/presence/index.js +2 -2
- package/dist/skills/bundled/presence/index.js.map +1 -1
- package/dist/skills/bundled/processes/SKILL.md +254 -0
- package/dist/skills/bundled/pump-swarm/SKILL.md +309 -0
- package/dist/skills/bundled/pumpfun/SKILL.md +145 -0
- package/dist/skills/bundled/pumpfun/index.js +82 -8
- package/dist/skills/bundled/pumpfun/index.js.map +1 -1
- package/dist/skills/bundled/qmd/SKILL.md +129 -0
- package/dist/skills/bundled/qrcoin/SKILL.md +60 -0
- package/dist/skills/bundled/qrcoin/index.d.ts +0 -3
- package/dist/skills/bundled/qrcoin/index.js +0 -1
- package/dist/skills/bundled/qrcoin/index.js.map +1 -1
- package/dist/skills/bundled/raydium/SKILL.md +198 -0
- package/dist/skills/bundled/remote/SKILL.md +201 -0
- package/dist/skills/bundled/research/SKILL.md +83 -0
- package/dist/skills/bundled/research/index.js +2 -2
- package/dist/skills/bundled/research/index.js.map +1 -1
- package/dist/skills/bundled/risk/SKILL.md +323 -0
- package/dist/skills/bundled/router/SKILL.md +233 -0
- package/dist/skills/bundled/routing/SKILL.md +258 -0
- package/dist/skills/bundled/sandbox/SKILL.md +257 -0
- package/dist/skills/bundled/search-config/SKILL.md +257 -0
- package/dist/skills/bundled/search-config/index.js +2 -2
- package/dist/skills/bundled/search-config/index.js.map +1 -1
- package/dist/skills/bundled/sessions/SKILL.md +251 -0
- package/dist/skills/bundled/sessions/index.js +1 -1
- package/dist/skills/bundled/sessions/index.js.map +1 -1
- package/dist/skills/bundled/setup/SKILL.md +53 -0
- package/dist/skills/bundled/shield/SKILL.md +21 -0
- package/dist/skills/bundled/signals/SKILL.md +106 -0
- package/dist/skills/bundled/signals/index.d.ts +0 -3
- package/dist/skills/bundled/signals/index.js +3 -4
- package/dist/skills/bundled/signals/index.js.map +1 -1
- package/dist/skills/bundled/sizing/SKILL.md +238 -0
- package/dist/skills/bundled/slippage/SKILL.md +306 -0
- package/dist/skills/bundled/smarkets/SKILL.md +107 -0
- package/dist/skills/bundled/smarkets/index.js +3 -3
- package/dist/skills/bundled/smarkets/index.js.map +1 -1
- package/dist/skills/bundled/solend/SKILL.md +63 -0
- package/dist/skills/bundled/strategy/SKILL.md +266 -0
- package/dist/skills/bundled/streaming/SKILL.md +150 -0
- package/dist/skills/bundled/streaming/index.js +2 -2
- package/dist/skills/bundled/streaming/index.js.map +1 -1
- package/dist/skills/bundled/tailscale/SKILL.md +249 -0
- package/dist/skills/bundled/tailscale/index.js +2 -2
- package/dist/skills/bundled/tailscale/index.js.map +1 -1
- package/dist/skills/bundled/ticks/SKILL.md +61 -0
- package/dist/skills/bundled/token-security/SKILL.md +18 -0
- package/dist/skills/bundled/trading-evm/SKILL.md +329 -0
- package/dist/skills/bundled/trading-futures/SKILL.md +865 -0
- package/dist/skills/bundled/trading-kalshi/SKILL.md +629 -0
- package/dist/skills/bundled/trading-kalshi/index.js +2 -0
- package/dist/skills/bundled/trading-kalshi/index.js.map +1 -1
- package/dist/skills/bundled/trading-manifold/SKILL.md +387 -0
- package/dist/skills/bundled/trading-polymarket/SKILL.md +1080 -0
- package/dist/skills/bundled/trading-polymarket/index.js +28 -19
- package/dist/skills/bundled/trading-polymarket/index.js.map +1 -1
- package/dist/skills/bundled/trading-solana/SKILL.md +418 -0
- package/dist/skills/bundled/trading-solana/index.js +1 -1
- package/dist/skills/bundled/trading-solana/index.js.map +1 -1
- package/dist/skills/bundled/trading-system/SKILL.md +290 -0
- package/dist/skills/bundled/triggers/SKILL.md +433 -0
- package/dist/skills/bundled/tts/SKILL.md +220 -0
- package/dist/skills/bundled/tweet-ideas/SKILL.md +77 -0
- package/dist/skills/bundled/usage/SKILL.md +239 -0
- package/dist/skills/bundled/usage/index.js +2 -2
- package/dist/skills/bundled/usage/index.js.map +1 -1
- package/dist/skills/bundled/veil/SKILL.md +76 -0
- package/dist/skills/bundled/veil/index.d.ts +0 -3
- package/dist/skills/bundled/veil/index.js +0 -1
- package/dist/skills/bundled/veil/index.js.map +1 -1
- package/dist/skills/bundled/verify/SKILL.md +199 -0
- package/dist/skills/bundled/verify/index.d.ts +0 -3
- package/dist/skills/bundled/verify/index.js +0 -1
- package/dist/skills/bundled/verify/index.js.map +1 -1
- package/dist/skills/bundled/virtuals/SKILL.md +82 -0
- package/dist/skills/bundled/voice/SKILL.md +217 -0
- package/dist/skills/bundled/voice/index.js +2 -2
- package/dist/skills/bundled/voice/index.js.map +1 -1
- package/dist/skills/bundled/weather/SKILL.md +80 -0
- package/dist/skills/bundled/weather/index.js +3 -0
- package/dist/skills/bundled/weather/index.js.map +1 -1
- package/dist/skills/bundled/webhooks/SKILL.md +297 -0
- package/dist/skills/bundled/webhooks/index.js +2 -2
- package/dist/skills/bundled/webhooks/index.js.map +1 -1
- package/dist/skills/bundled/whale-tracking/SKILL.md +287 -0
- package/dist/skills/bundled/whale-tracking/index.js +2 -2
- package/dist/skills/bundled/whale-tracking/index.js.map +1 -1
- package/dist/skills/bundled/yoink/SKILL.md +54 -0
- package/dist/skills/bundled/yoink/index.d.ts +0 -3
- package/dist/skills/bundled/yoink/index.js +0 -1
- package/dist/skills/bundled/yoink/index.js.map +1 -1
- package/dist/skills/executor.js +5 -3
- package/dist/skills/executor.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: memory
|
|
3
|
+
description: "Persistent memory system for preferences, facts, and notes"
|
|
4
|
+
emoji: "🧠"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Memory - Complete API Reference
|
|
8
|
+
|
|
9
|
+
Store and recall user preferences, facts, and notes across conversations. Semantic search powered by vector embeddings.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Chat Commands
|
|
14
|
+
|
|
15
|
+
### Store Memories
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
/remember preference risk=conservative Save trading preference
|
|
19
|
+
/remember fact BTC halving is in April 2028 Store a fact
|
|
20
|
+
/remember note Check ETH before market open Save a note
|
|
21
|
+
/remember rule Never trade during FOMC Store trading rule
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Recall Memories
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
/memory View all memories
|
|
28
|
+
/memory preferences View preferences only
|
|
29
|
+
/memory facts View facts only
|
|
30
|
+
/memory notes View notes only
|
|
31
|
+
/memory rules View trading rules
|
|
32
|
+
/memory search "bitcoin" Search memories
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Forget Memories
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
/forget <key> Delete specific memory
|
|
39
|
+
/forget all preferences Clear all preferences
|
|
40
|
+
/forget all Clear everything (careful!)
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## TypeScript API Reference
|
|
46
|
+
|
|
47
|
+
### Create Memory Service
|
|
48
|
+
|
|
49
|
+
```typescript
|
|
50
|
+
import { createMemoryService } from 'clodds/memory';
|
|
51
|
+
|
|
52
|
+
const memory = createMemoryService({
|
|
53
|
+
// Storage backend
|
|
54
|
+
backend: 'lancedb', // 'lancedb' | 'sqlite' | 'postgres'
|
|
55
|
+
|
|
56
|
+
// Embedding model
|
|
57
|
+
embeddings: {
|
|
58
|
+
provider: 'openai',
|
|
59
|
+
model: 'text-embedding-3-small',
|
|
60
|
+
},
|
|
61
|
+
|
|
62
|
+
// Options
|
|
63
|
+
encryptionKey: process.env.MEMORY_ENCRYPTION_KEY,
|
|
64
|
+
});
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Remember (Store)
|
|
68
|
+
|
|
69
|
+
```typescript
|
|
70
|
+
// Store a preference
|
|
71
|
+
await memory.remember({
|
|
72
|
+
userId: 'user-123',
|
|
73
|
+
type: 'preference',
|
|
74
|
+
key: 'risk_tolerance',
|
|
75
|
+
value: 'conservative',
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
// Store a fact
|
|
79
|
+
await memory.remember({
|
|
80
|
+
userId: 'user-123',
|
|
81
|
+
type: 'fact',
|
|
82
|
+
content: 'BTC halving occurs approximately every 4 years',
|
|
83
|
+
metadata: { topic: 'crypto', confidence: 0.95 },
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
// Store a note
|
|
87
|
+
await memory.remember({
|
|
88
|
+
userId: 'user-123',
|
|
89
|
+
type: 'note',
|
|
90
|
+
content: 'Check Polymarket for election markets before Tuesday',
|
|
91
|
+
metadata: { priority: 'high' },
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
// Store a trading rule
|
|
95
|
+
await memory.remember({
|
|
96
|
+
userId: 'user-123',
|
|
97
|
+
type: 'rule',
|
|
98
|
+
content: 'Never trade more than 5% of portfolio on single position',
|
|
99
|
+
});
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Recall (Retrieve)
|
|
103
|
+
|
|
104
|
+
```typescript
|
|
105
|
+
// Get all memories for user
|
|
106
|
+
const all = await memory.recall({ userId: 'user-123' });
|
|
107
|
+
|
|
108
|
+
// Get by type
|
|
109
|
+
const preferences = await memory.recall({
|
|
110
|
+
userId: 'user-123',
|
|
111
|
+
type: 'preference',
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
// Get specific key
|
|
115
|
+
const risk = await memory.recall({
|
|
116
|
+
userId: 'user-123',
|
|
117
|
+
type: 'preference',
|
|
118
|
+
key: 'risk_tolerance',
|
|
119
|
+
});
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Semantic Search
|
|
123
|
+
|
|
124
|
+
```typescript
|
|
125
|
+
// Search by meaning (not just keywords)
|
|
126
|
+
const results = await memory.semanticSearch({
|
|
127
|
+
userId: 'user-123',
|
|
128
|
+
query: 'what is my risk appetite?',
|
|
129
|
+
limit: 5,
|
|
130
|
+
threshold: 0.7, // Similarity threshold
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
for (const result of results) {
|
|
134
|
+
console.log(`${result.type}: ${result.content}`);
|
|
135
|
+
console.log(` Similarity: ${result.score}`);
|
|
136
|
+
}
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### Forget (Delete)
|
|
140
|
+
|
|
141
|
+
```typescript
|
|
142
|
+
// Delete specific memory
|
|
143
|
+
await memory.forget({
|
|
144
|
+
userId: 'user-123',
|
|
145
|
+
type: 'preference',
|
|
146
|
+
key: 'risk_tolerance',
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
// Delete all of a type
|
|
150
|
+
await memory.forgetByType({
|
|
151
|
+
userId: 'user-123',
|
|
152
|
+
type: 'note',
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
// Delete all memories
|
|
156
|
+
await memory.forgetAll({ userId: 'user-123' });
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### Daily Journal
|
|
160
|
+
|
|
161
|
+
```typescript
|
|
162
|
+
// Log daily activity
|
|
163
|
+
await memory.logDaily({
|
|
164
|
+
userId: 'user-123',
|
|
165
|
+
date: new Date(),
|
|
166
|
+
trades: 5,
|
|
167
|
+
pnl: 123.45,
|
|
168
|
+
notes: 'Good day, caught BTC rally',
|
|
169
|
+
});
|
|
170
|
+
|
|
171
|
+
// Get journal entries
|
|
172
|
+
const journal = await memory.getDailyLogs({
|
|
173
|
+
userId: 'user-123',
|
|
174
|
+
from: '2024-01-01',
|
|
175
|
+
to: '2024-01-31',
|
|
176
|
+
});
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## Memory Types
|
|
182
|
+
|
|
183
|
+
| Type | Purpose | Example |
|
|
184
|
+
|------|---------|---------|
|
|
185
|
+
| **preference** | User settings | `risk=conservative` |
|
|
186
|
+
| **fact** | Stored knowledge | "ETH gas is cheaper on weekends" |
|
|
187
|
+
| **note** | Reminders/todos | "Check election markets" |
|
|
188
|
+
| **rule** | Trading rules | "Max 5% per position" |
|
|
189
|
+
| **context** | Conversation context | Auto-saved by system |
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## Storage Backends
|
|
194
|
+
|
|
195
|
+
| Backend | Description | Best For |
|
|
196
|
+
|---------|-------------|----------|
|
|
197
|
+
| **LanceDB** | Vector DB with hybrid search | Production, semantic search |
|
|
198
|
+
| **SQLite** | Local file-based | Development, single user |
|
|
199
|
+
| **PostgreSQL** | Distributed with pgvector | Multi-user, production |
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## Best Practices
|
|
204
|
+
|
|
205
|
+
1. **Be specific with keys** — `max_position_size` not just `size`
|
|
206
|
+
2. **Use types correctly** — Preferences for settings, rules for constraints
|
|
207
|
+
3. **Semantic search** — Ask questions naturally, embeddings will match
|
|
208
|
+
4. **Regular cleanup** — Delete outdated notes and facts
|
|
209
|
+
5. **Backup memories** — Export before major changes
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: metaculus
|
|
3
|
+
description: "Metaculus forecasting platform (read-only)"
|
|
4
|
+
emoji: "🔮"
|
|
5
|
+
commands:
|
|
6
|
+
- /mc
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Metaculus
|
|
10
|
+
|
|
11
|
+
Integration with Metaculus, a community forecasting platform. View questions, predictions, and tournaments.
|
|
12
|
+
|
|
13
|
+
## Quick Start
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
# Search questions
|
|
17
|
+
/mc search AI
|
|
18
|
+
|
|
19
|
+
# Get question details
|
|
20
|
+
/mc question 12345
|
|
21
|
+
|
|
22
|
+
# List tournaments
|
|
23
|
+
/mc tournaments
|
|
24
|
+
|
|
25
|
+
# Get tournament questions
|
|
26
|
+
/mc tournament 123
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Commands
|
|
30
|
+
|
|
31
|
+
| Command | Description |
|
|
32
|
+
|---------|-------------|
|
|
33
|
+
| `/mc search [query]` | Search questions |
|
|
34
|
+
| `/mc question <id>` | Get question details |
|
|
35
|
+
| `/mc tournaments` | List active tournaments |
|
|
36
|
+
| `/mc tournament <id>` | Get tournament questions |
|
|
37
|
+
|
|
38
|
+
**Examples:**
|
|
39
|
+
```bash
|
|
40
|
+
/mc search pandemic # Search for pandemic questions
|
|
41
|
+
/mc question 3479 # Get question details
|
|
42
|
+
/mc tournament 1234 # Get tournament questions
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Features
|
|
46
|
+
|
|
47
|
+
- **Community Forecasts** - Aggregate probability predictions
|
|
48
|
+
- **Tournaments** - Forecasting competitions
|
|
49
|
+
- **Question Types** - Binary, continuous, date ranges
|
|
50
|
+
- **Historical Accuracy** - Track prediction calibration
|
|
51
|
+
|
|
52
|
+
## Notes
|
|
53
|
+
|
|
54
|
+
- Metaculus is a forecasting platform (not trading)
|
|
55
|
+
- Questions show community prediction probabilities
|
|
56
|
+
- No trading or betting functionality
|
|
57
|
+
- Volume represents number of predictions
|
|
58
|
+
|
|
59
|
+
## Resources
|
|
60
|
+
|
|
61
|
+
- [Metaculus](https://www.metaculus.com/)
|
|
62
|
+
- [Metaculus API](https://www.metaculus.com/api2/)
|
|
@@ -29,11 +29,14 @@ async function getFeed() {
|
|
|
29
29
|
async function handleSearch(query) {
|
|
30
30
|
const f = await getFeed();
|
|
31
31
|
try {
|
|
32
|
+
const defaultQuery = !query;
|
|
32
33
|
const markets = await f.searchMarkets(query || 'AI');
|
|
33
34
|
if (markets.length === 0) {
|
|
34
35
|
return 'No questions found.';
|
|
35
36
|
}
|
|
36
|
-
let output =
|
|
37
|
+
let output = defaultQuery
|
|
38
|
+
? `**Metaculus Questions** (showing default results — use \`/mc search <query>\` to filter)\n\n`
|
|
39
|
+
: `**Metaculus Questions** (${markets.length} results)\n\n`;
|
|
37
40
|
for (const market of markets.slice(0, 15)) {
|
|
38
41
|
const probability = market.outcomes[0]?.price || 0.5;
|
|
39
42
|
output += `**${market.question}**\n`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/skills/bundled/metaculus/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/skills/bundled/metaculus/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: meteora
|
|
3
|
+
description: "Meteora DLMM - dynamic liquidity market maker on Solana"
|
|
4
|
+
command: met
|
|
5
|
+
emoji: "☄️"
|
|
6
|
+
gates:
|
|
7
|
+
envs:
|
|
8
|
+
- SOLANA_PRIVATE_KEY
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Meteora DLMM
|
|
12
|
+
|
|
13
|
+
Meteora uses Dynamic Liquidity Market Maker (DLMM) pools with bin-based pricing.
|
|
14
|
+
|
|
15
|
+
## Commands
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
/met swap <amount> <from> to <to> Execute swap
|
|
19
|
+
/met quote <amount> <from> to <to> Get quote
|
|
20
|
+
/met pools <token> List DLMM pools
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Examples
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
/met swap 1 SOL to USDC
|
|
27
|
+
/met pools SOL
|
|
28
|
+
```
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: meteora-dbc
|
|
3
|
+
description: "Launch tokens on Meteora dynamic bonding curves"
|
|
4
|
+
command: dbc
|
|
5
|
+
emoji: "🚀"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Meteora DBC
|
|
9
|
+
|
|
10
|
+
Launch tokens on Meteora's dynamic bonding curves with anti-sniper fees, configurable market caps, and automated DAMM migration.
|
|
11
|
+
|
|
12
|
+
## Commands
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
/dbc launch <name> <symbol> <desc> [options] Launch token on bonding curve
|
|
16
|
+
/dbc status <mint> Check pool status and migration progress
|
|
17
|
+
/dbc buy <mint> <amountSOL> Buy tokens on curve
|
|
18
|
+
/dbc sell <mint> <amountTokens> Sell tokens back to curve
|
|
19
|
+
/dbc quote <mint> <amount> [--sell] Get swap quote
|
|
20
|
+
/dbc claim <pool> [--partner] Claim creator/partner fees
|
|
21
|
+
/dbc migrate <command> [args] Migration commands (v1, v2, locker, etc)
|
|
22
|
+
/dbc fees <pool> Show fee breakdown
|
|
23
|
+
/dbc pools <command> [args] Query pools and configs
|
|
24
|
+
/dbc help Show all commands
|
|
25
|
+
```
|
|
@@ -0,0 +1,338 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: metrics
|
|
3
|
+
description: "System metrics, telemetry, and performance monitoring"
|
|
4
|
+
emoji: "📈"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Metrics - Complete API Reference
|
|
8
|
+
|
|
9
|
+
Monitor system health, track performance metrics, and analyze telemetry data.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Chat Commands
|
|
14
|
+
|
|
15
|
+
### System Metrics
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
/metrics Show current metrics
|
|
19
|
+
/metrics system CPU, memory, latency
|
|
20
|
+
/metrics api API performance stats
|
|
21
|
+
/metrics ws WebSocket health
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Trading Metrics
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
/metrics trades Trade execution stats
|
|
28
|
+
/metrics fills Fill rate metrics
|
|
29
|
+
/metrics latency Order latency stats
|
|
30
|
+
/metrics errors Error rates
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Custom Metrics
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
/metrics track <name> <value> Track custom metric
|
|
37
|
+
/metrics query <name> Query metric history
|
|
38
|
+
/metrics alert <name> > 100 Set metric alert
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Export & Reports
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
/metrics export csv Export to CSV
|
|
45
|
+
/metrics report daily Generate daily report
|
|
46
|
+
/metrics dashboard Open metrics dashboard
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## TypeScript API Reference
|
|
52
|
+
|
|
53
|
+
### Create Metrics Service
|
|
54
|
+
|
|
55
|
+
```typescript
|
|
56
|
+
import { createMetricsService } from 'clodds/metrics';
|
|
57
|
+
|
|
58
|
+
const metrics = createMetricsService({
|
|
59
|
+
// Collection
|
|
60
|
+
collectInterval: 5000, // ms
|
|
61
|
+
retention: '30d',
|
|
62
|
+
|
|
63
|
+
// Storage
|
|
64
|
+
storage: 'sqlite',
|
|
65
|
+
dbPath: './metrics.db',
|
|
66
|
+
|
|
67
|
+
// Export
|
|
68
|
+
enablePrometheus: true,
|
|
69
|
+
prometheusPort: 9090,
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
// Start collection
|
|
73
|
+
await metrics.start();
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### System Metrics
|
|
77
|
+
|
|
78
|
+
```typescript
|
|
79
|
+
const system = await metrics.getSystemMetrics();
|
|
80
|
+
|
|
81
|
+
console.log('=== System Health ===');
|
|
82
|
+
console.log(`CPU Usage: ${system.cpuUsage}%`);
|
|
83
|
+
console.log(`Memory: ${system.memoryUsed}MB / ${system.memoryTotal}MB`);
|
|
84
|
+
console.log(`Uptime: ${system.uptimeHours}h`);
|
|
85
|
+
console.log(`Active connections: ${system.activeConnections}`);
|
|
86
|
+
console.log(`Event loop lag: ${system.eventLoopLag}ms`);
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### API Metrics
|
|
90
|
+
|
|
91
|
+
```typescript
|
|
92
|
+
const api = await metrics.getApiMetrics();
|
|
93
|
+
|
|
94
|
+
console.log('=== API Performance ===');
|
|
95
|
+
console.log(`Total requests: ${api.totalRequests}`);
|
|
96
|
+
console.log(`Requests/sec: ${api.requestsPerSecond}`);
|
|
97
|
+
console.log(`Avg latency: ${api.avgLatency}ms`);
|
|
98
|
+
console.log(`P50 latency: ${api.p50Latency}ms`);
|
|
99
|
+
console.log(`P95 latency: ${api.p95Latency}ms`);
|
|
100
|
+
console.log(`P99 latency: ${api.p99Latency}ms`);
|
|
101
|
+
console.log(`Error rate: ${api.errorRate}%`);
|
|
102
|
+
|
|
103
|
+
console.log('\nBy Endpoint:');
|
|
104
|
+
for (const endpoint of api.byEndpoint) {
|
|
105
|
+
console.log(` ${endpoint.path}: ${endpoint.avgLatency}ms (${endpoint.calls} calls)`);
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### WebSocket Metrics
|
|
110
|
+
|
|
111
|
+
```typescript
|
|
112
|
+
const ws = await metrics.getWebSocketMetrics();
|
|
113
|
+
|
|
114
|
+
console.log('=== WebSocket Health ===');
|
|
115
|
+
console.log(`Active connections: ${ws.activeConnections}`);
|
|
116
|
+
console.log(`Messages/sec: ${ws.messagesPerSecond}`);
|
|
117
|
+
console.log(`Avg message size: ${ws.avgMessageSize} bytes`);
|
|
118
|
+
console.log(`Reconnections: ${ws.reconnections}`);
|
|
119
|
+
console.log(`Dropped messages: ${ws.droppedMessages}`);
|
|
120
|
+
|
|
121
|
+
console.log('\nBy Feed:');
|
|
122
|
+
for (const feed of ws.byFeed) {
|
|
123
|
+
console.log(` ${feed.name}: ${feed.messagesPerSecond}/s, ${feed.latency}ms lag`);
|
|
124
|
+
}
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Trade Execution Metrics
|
|
128
|
+
|
|
129
|
+
```typescript
|
|
130
|
+
const trades = await metrics.getTradeMetrics();
|
|
131
|
+
|
|
132
|
+
console.log('=== Trade Execution ===');
|
|
133
|
+
console.log(`Total orders: ${trades.totalOrders}`);
|
|
134
|
+
console.log(`Fill rate: ${trades.fillRate}%`);
|
|
135
|
+
console.log(`Partial fills: ${trades.partialFillRate}%`);
|
|
136
|
+
console.log(`Rejections: ${trades.rejectionRate}%`);
|
|
137
|
+
console.log(`Avg fill time: ${trades.avgFillTime}ms`);
|
|
138
|
+
console.log(`Avg slippage: ${trades.avgSlippage}%`);
|
|
139
|
+
|
|
140
|
+
console.log('\nBy Platform:');
|
|
141
|
+
for (const platform of trades.byPlatform) {
|
|
142
|
+
console.log(` ${platform.name}:`);
|
|
143
|
+
console.log(` Fill rate: ${platform.fillRate}%`);
|
|
144
|
+
console.log(` Avg latency: ${platform.avgLatency}ms`);
|
|
145
|
+
}
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Latency Breakdown
|
|
149
|
+
|
|
150
|
+
```typescript
|
|
151
|
+
const latency = await metrics.getLatencyBreakdown();
|
|
152
|
+
|
|
153
|
+
console.log('=== Latency Breakdown ===');
|
|
154
|
+
console.log(`Total order latency: ${latency.total}ms`);
|
|
155
|
+
console.log(` Signal processing: ${latency.signalProcessing}ms`);
|
|
156
|
+
console.log(` Order construction: ${latency.orderConstruction}ms`);
|
|
157
|
+
console.log(` Network round-trip: ${latency.networkRoundTrip}ms`);
|
|
158
|
+
console.log(` Exchange processing: ${latency.exchangeProcessing}ms`);
|
|
159
|
+
console.log(` Confirmation: ${latency.confirmation}ms`);
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### Error Metrics
|
|
163
|
+
|
|
164
|
+
```typescript
|
|
165
|
+
const errors = await metrics.getErrorMetrics();
|
|
166
|
+
|
|
167
|
+
console.log('=== Error Rates ===');
|
|
168
|
+
console.log(`Total errors: ${errors.totalErrors}`);
|
|
169
|
+
console.log(`Error rate: ${errors.errorRate}%`);
|
|
170
|
+
console.log(`Errors/hour: ${errors.errorsPerHour}`);
|
|
171
|
+
|
|
172
|
+
console.log('\nBy Type:');
|
|
173
|
+
for (const type of errors.byType) {
|
|
174
|
+
console.log(` ${type.name}: ${type.count} (${type.percentage}%)`);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
console.log('\nBy Platform:');
|
|
178
|
+
for (const platform of errors.byPlatform) {
|
|
179
|
+
console.log(` ${platform.name}: ${platform.errorRate}%`);
|
|
180
|
+
}
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### Custom Metrics
|
|
184
|
+
|
|
185
|
+
```typescript
|
|
186
|
+
// Track custom metric
|
|
187
|
+
metrics.track('edge_detected', 1, {
|
|
188
|
+
market: 'trump-2028',
|
|
189
|
+
edgeSize: 0.05,
|
|
190
|
+
});
|
|
191
|
+
|
|
192
|
+
// Increment counter
|
|
193
|
+
metrics.increment('trades_executed');
|
|
194
|
+
|
|
195
|
+
// Set gauge
|
|
196
|
+
metrics.gauge('active_positions', 5);
|
|
197
|
+
|
|
198
|
+
// Record timing
|
|
199
|
+
const timer = metrics.startTimer('order_execution');
|
|
200
|
+
// ... execute order ...
|
|
201
|
+
timer.end();
|
|
202
|
+
|
|
203
|
+
// Histogram
|
|
204
|
+
metrics.histogram('slippage', 0.003, {
|
|
205
|
+
platform: 'polymarket',
|
|
206
|
+
});
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### Query Metrics
|
|
210
|
+
|
|
211
|
+
```typescript
|
|
212
|
+
const query = await metrics.query({
|
|
213
|
+
metric: 'edge_detected',
|
|
214
|
+
period: '7d',
|
|
215
|
+
aggregation: 'sum',
|
|
216
|
+
groupBy: 'market',
|
|
217
|
+
});
|
|
218
|
+
|
|
219
|
+
console.log('Edge Detection by Market:');
|
|
220
|
+
for (const row of query.results) {
|
|
221
|
+
console.log(` ${row.market}: ${row.value} detections`);
|
|
222
|
+
}
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
### Metric Alerts
|
|
226
|
+
|
|
227
|
+
```typescript
|
|
228
|
+
// Set alert threshold
|
|
229
|
+
metrics.setAlert({
|
|
230
|
+
metric: 'error_rate',
|
|
231
|
+
condition: '>',
|
|
232
|
+
threshold: 5, // > 5% error rate
|
|
233
|
+
window: '5m',
|
|
234
|
+
action: 'notify',
|
|
235
|
+
});
|
|
236
|
+
|
|
237
|
+
metrics.setAlert({
|
|
238
|
+
metric: 'latency_p99',
|
|
239
|
+
condition: '>',
|
|
240
|
+
threshold: 1000, // > 1000ms
|
|
241
|
+
window: '1m',
|
|
242
|
+
action: 'escalate',
|
|
243
|
+
});
|
|
244
|
+
|
|
245
|
+
// Alert handlers
|
|
246
|
+
metrics.on('alert', (alert) => {
|
|
247
|
+
console.log(`🚨 Alert: ${alert.metric} ${alert.condition} ${alert.threshold}`);
|
|
248
|
+
console.log(` Current value: ${alert.currentValue}`);
|
|
249
|
+
});
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
### Export Metrics
|
|
253
|
+
|
|
254
|
+
```typescript
|
|
255
|
+
// Export to CSV
|
|
256
|
+
await metrics.export({
|
|
257
|
+
format: 'csv',
|
|
258
|
+
metrics: ['api_latency', 'trade_fill_rate', 'error_rate'],
|
|
259
|
+
period: '30d',
|
|
260
|
+
outputPath: './metrics-export.csv',
|
|
261
|
+
});
|
|
262
|
+
|
|
263
|
+
// Export to Prometheus
|
|
264
|
+
const prometheusFormat = metrics.toPrometheus();
|
|
265
|
+
|
|
266
|
+
// Export to JSON
|
|
267
|
+
const jsonMetrics = await metrics.toJSON({
|
|
268
|
+
period: '24h',
|
|
269
|
+
});
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
### Generate Reports
|
|
273
|
+
|
|
274
|
+
```typescript
|
|
275
|
+
const report = await metrics.generateReport({
|
|
276
|
+
type: 'daily',
|
|
277
|
+
include: ['summary', 'api', 'trades', 'errors'],
|
|
278
|
+
});
|
|
279
|
+
|
|
280
|
+
console.log('=== Daily Metrics Report ===');
|
|
281
|
+
console.log(`Date: ${report.date}`);
|
|
282
|
+
console.log(`\nSummary:`);
|
|
283
|
+
console.log(` Uptime: ${report.summary.uptime}%`);
|
|
284
|
+
console.log(` Total requests: ${report.summary.totalRequests}`);
|
|
285
|
+
console.log(` Total trades: ${report.summary.totalTrades}`);
|
|
286
|
+
console.log(` Error rate: ${report.summary.errorRate}%`);
|
|
287
|
+
console.log(`\nHighlights:`);
|
|
288
|
+
for (const highlight of report.highlights) {
|
|
289
|
+
console.log(` - ${highlight}`);
|
|
290
|
+
}
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
### Real-time Streaming
|
|
294
|
+
|
|
295
|
+
```typescript
|
|
296
|
+
// Stream metrics in real-time
|
|
297
|
+
const stream = metrics.stream(['cpu', 'memory', 'latency']);
|
|
298
|
+
|
|
299
|
+
stream.on('data', (data) => {
|
|
300
|
+
console.log(`CPU: ${data.cpu}%, Memory: ${data.memory}MB, Latency: ${data.latency}ms`);
|
|
301
|
+
});
|
|
302
|
+
|
|
303
|
+
// Stop streaming
|
|
304
|
+
stream.stop();
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
---
|
|
308
|
+
|
|
309
|
+
## Metric Types
|
|
310
|
+
|
|
311
|
+
| Type | Description | Example |
|
|
312
|
+
|------|-------------|---------|
|
|
313
|
+
| **Counter** | Monotonic increasing | `trades_total` |
|
|
314
|
+
| **Gauge** | Point-in-time value | `active_positions` |
|
|
315
|
+
| **Histogram** | Distribution | `latency_ms` |
|
|
316
|
+
| **Timer** | Duration measurement | `order_execution_time` |
|
|
317
|
+
|
|
318
|
+
---
|
|
319
|
+
|
|
320
|
+
## Built-in Metrics
|
|
321
|
+
|
|
322
|
+
| Category | Metrics |
|
|
323
|
+
|----------|---------|
|
|
324
|
+
| **System** | cpu_usage, memory_used, uptime, connections |
|
|
325
|
+
| **API** | request_count, latency_p50/p95/p99, error_rate |
|
|
326
|
+
| **WebSocket** | messages_per_sec, lag, reconnections |
|
|
327
|
+
| **Trades** | orders_total, fill_rate, slippage, execution_time |
|
|
328
|
+
| **Errors** | error_count, error_rate_by_type |
|
|
329
|
+
|
|
330
|
+
---
|
|
331
|
+
|
|
332
|
+
## Best Practices
|
|
333
|
+
|
|
334
|
+
1. **Monitor latency percentiles** — P99 matters more than average
|
|
335
|
+
2. **Set alerts proactively** — Catch issues before users notice
|
|
336
|
+
3. **Track custom metrics** — Business-specific KPIs
|
|
337
|
+
4. **Review daily reports** — Spot trends early
|
|
338
|
+
5. **Export for analysis** — Use external tools for deep dives
|