clodds 1.2.9 → 1.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.
Files changed (226) hide show
  1. package/dist/skills/bundled/acp/SKILL.md +188 -0
  2. package/dist/skills/bundled/acp/index.d.ts +0 -3
  3. package/dist/skills/bundled/acp/index.js +1 -1
  4. package/dist/skills/bundled/acp/index.js.map +1 -1
  5. package/dist/skills/bundled/agentbets/SKILL.md +19 -0
  6. package/dist/skills/bundled/ai-strategy/SKILL.md +111 -0
  7. package/dist/skills/bundled/ai-strategy/index.js +1 -1
  8. package/dist/skills/bundled/ai-strategy/index.js.map +1 -1
  9. package/dist/skills/bundled/alerts/SKILL.md +87 -0
  10. package/dist/skills/bundled/analytics/SKILL.md +252 -0
  11. package/dist/skills/bundled/analytics/index.js +2 -2
  12. package/dist/skills/bundled/analytics/index.js.map +1 -1
  13. package/dist/skills/bundled/arbitrage/SKILL.md +287 -0
  14. package/dist/skills/bundled/auto-reply/SKILL.md +285 -0
  15. package/dist/skills/bundled/auto-reply/index.js +2 -2
  16. package/dist/skills/bundled/auto-reply/index.js.map +1 -1
  17. package/dist/skills/bundled/automation/SKILL.md +242 -0
  18. package/dist/skills/bundled/automation/index.js +2 -2
  19. package/dist/skills/bundled/automation/index.js.map +1 -1
  20. package/dist/skills/bundled/backtest/SKILL.md +225 -0
  21. package/dist/skills/bundled/bags/SKILL.md +131 -0
  22. package/dist/skills/bundled/bankr/SKILL.md +114 -0
  23. package/dist/skills/bundled/betfair/SKILL.md +113 -0
  24. package/dist/skills/bundled/binance-futures/SKILL.md +84 -0
  25. package/dist/skills/bundled/binance-futures/index.d.ts +0 -3
  26. package/dist/skills/bundled/binance-futures/index.js +1 -2
  27. package/dist/skills/bundled/binance-futures/index.js.map +1 -1
  28. package/dist/skills/bundled/botchan/SKILL.md +66 -0
  29. package/dist/skills/bundled/botchan/index.d.ts +0 -3
  30. package/dist/skills/bundled/botchan/index.js +0 -1
  31. package/dist/skills/bundled/botchan/index.js.map +1 -1
  32. package/dist/skills/bundled/bridge/SKILL.md +215 -0
  33. package/dist/skills/bundled/bybit-futures/SKILL.md +84 -0
  34. package/dist/skills/bundled/bybit-futures/index.d.ts +0 -3
  35. package/dist/skills/bundled/bybit-futures/index.js +0 -1
  36. package/dist/skills/bundled/bybit-futures/index.js.map +1 -1
  37. package/dist/skills/bundled/clanker/SKILL.md +125 -0
  38. package/dist/skills/bundled/clanker/index.d.ts +0 -3
  39. package/dist/skills/bundled/clanker/index.js +0 -1
  40. package/dist/skills/bundled/clanker/index.js.map +1 -1
  41. package/dist/skills/bundled/copy-trading/SKILL.md +285 -0
  42. package/dist/skills/bundled/copy-trading/index.js +2 -2
  43. package/dist/skills/bundled/copy-trading/index.js.map +1 -1
  44. package/dist/skills/bundled/copy-trading-solana/SKILL.md +66 -0
  45. package/dist/skills/bundled/credentials/SKILL.md +261 -0
  46. package/dist/skills/bundled/crypto-hft/SKILL.md +121 -0
  47. package/dist/skills/bundled/dca/SKILL.md +27 -0
  48. package/dist/skills/bundled/dex/SKILL.md +87 -0
  49. package/dist/skills/bundled/divergence/SKILL.md +83 -0
  50. package/dist/skills/bundled/doctor/SKILL.md +267 -0
  51. package/dist/skills/bundled/doctor/index.js +2 -8
  52. package/dist/skills/bundled/doctor/index.js.map +1 -1
  53. package/dist/skills/bundled/drift/SKILL.md +53 -0
  54. package/dist/skills/bundled/drift-sdk/SKILL.md +103 -0
  55. package/dist/skills/bundled/drift-sdk/index.d.ts +0 -3
  56. package/dist/skills/bundled/drift-sdk/index.js +0 -1
  57. package/dist/skills/bundled/drift-sdk/index.js.map +1 -1
  58. package/dist/skills/bundled/edge/SKILL.md +84 -0
  59. package/dist/skills/bundled/embeddings/SKILL.md +244 -0
  60. package/dist/skills/bundled/endaoment/SKILL.md +65 -0
  61. package/dist/skills/bundled/endaoment/index.d.ts +0 -3
  62. package/dist/skills/bundled/endaoment/index.js +0 -1
  63. package/dist/skills/bundled/endaoment/index.js.map +1 -1
  64. package/dist/skills/bundled/ens/SKILL.md +63 -0
  65. package/dist/skills/bundled/ens/index.d.ts +0 -3
  66. package/dist/skills/bundled/ens/index.js +0 -1
  67. package/dist/skills/bundled/ens/index.js.map +1 -1
  68. package/dist/skills/bundled/erc8004/SKILL.md +79 -0
  69. package/dist/skills/bundled/erc8004/index.d.ts +0 -3
  70. package/dist/skills/bundled/erc8004/index.js +0 -1
  71. package/dist/skills/bundled/erc8004/index.js.map +1 -1
  72. package/dist/skills/bundled/execution/SKILL.md +278 -0
  73. package/dist/skills/bundled/farcaster/SKILL.md +80 -0
  74. package/dist/skills/bundled/features/SKILL.md +20 -0
  75. package/dist/skills/bundled/feeds/SKILL.md +288 -0
  76. package/dist/skills/bundled/harden/SKILL.md +74 -0
  77. package/dist/skills/bundled/history/SKILL.md +257 -0
  78. package/dist/skills/bundled/hyperliquid/SKILL.md +200 -0
  79. package/dist/skills/bundled/hyperliquid/index.d.ts +0 -3
  80. package/dist/skills/bundled/hyperliquid/index.js +0 -1
  81. package/dist/skills/bundled/hyperliquid/index.js.map +1 -1
  82. package/dist/skills/bundled/identity/SKILL.md +228 -0
  83. package/dist/skills/bundled/identity/index.js +2 -2
  84. package/dist/skills/bundled/identity/index.js.map +1 -1
  85. package/dist/skills/bundled/integrations/SKILL.md +321 -0
  86. package/dist/skills/bundled/integrations/index.js +2 -2
  87. package/dist/skills/bundled/integrations/index.js.map +1 -1
  88. package/dist/skills/bundled/jupiter/SKILL.md +163 -0
  89. package/dist/skills/bundled/kamino/SKILL.md +69 -0
  90. package/dist/skills/bundled/ledger/SKILL.md +20 -0
  91. package/dist/skills/bundled/lighter/SKILL.md +83 -0
  92. package/dist/skills/bundled/lighter/index.d.ts +0 -3
  93. package/dist/skills/bundled/lighter/index.js +0 -1
  94. package/dist/skills/bundled/lighter/index.js.map +1 -1
  95. package/dist/skills/bundled/marginfi/SKILL.md +62 -0
  96. package/dist/skills/bundled/market-index/SKILL.md +242 -0
  97. package/dist/skills/bundled/market-index/index.js +1 -3
  98. package/dist/skills/bundled/market-index/index.js.map +1 -1
  99. package/dist/skills/bundled/markets/SKILL.md +49 -0
  100. package/dist/skills/bundled/mcp/SKILL.md +235 -0
  101. package/dist/skills/bundled/mcp/index.js +1 -3
  102. package/dist/skills/bundled/mcp/index.js.map +1 -1
  103. package/dist/skills/bundled/memory/SKILL.md +209 -0
  104. package/dist/skills/bundled/metaculus/SKILL.md +62 -0
  105. package/dist/skills/bundled/meteora/SKILL.md +28 -0
  106. package/dist/skills/bundled/meteora-dbc/SKILL.md +25 -0
  107. package/dist/skills/bundled/metrics/SKILL.md +338 -0
  108. package/dist/skills/bundled/mev/SKILL.md +239 -0
  109. package/dist/skills/bundled/mev/index.js +2 -2
  110. package/dist/skills/bundled/mev/index.js.map +1 -1
  111. package/dist/skills/bundled/mexc-futures/SKILL.md +86 -0
  112. package/dist/skills/bundled/mexc-futures/index.d.ts +0 -3
  113. package/dist/skills/bundled/mexc-futures/index.js +0 -1
  114. package/dist/skills/bundled/mexc-futures/index.js.map +1 -1
  115. package/dist/skills/bundled/mm/SKILL.md +142 -0
  116. package/dist/skills/bundled/monitoring/SKILL.md +249 -0
  117. package/dist/skills/bundled/news/SKILL.md +95 -0
  118. package/dist/skills/bundled/onchainkit/SKILL.md +83 -0
  119. package/dist/skills/bundled/opinion/SKILL.md +87 -0
  120. package/dist/skills/bundled/opportunity/SKILL.md +308 -0
  121. package/dist/skills/bundled/orca/SKILL.md +28 -0
  122. package/dist/skills/bundled/pairing/SKILL.md +275 -0
  123. package/dist/skills/bundled/pancakeswap/SKILL.md +93 -0
  124. package/dist/skills/bundled/pancakeswap/index.d.ts +0 -3
  125. package/dist/skills/bundled/pancakeswap/index.js +0 -1
  126. package/dist/skills/bundled/pancakeswap/index.js.map +1 -1
  127. package/dist/skills/bundled/percolator/SKILL.md +22 -0
  128. package/dist/skills/bundled/permissions/SKILL.md +269 -0
  129. package/dist/skills/bundled/permissions/index.js +2 -2
  130. package/dist/skills/bundled/permissions/index.js.map +1 -1
  131. package/dist/skills/bundled/plugins/SKILL.md +263 -0
  132. package/dist/skills/bundled/plugins/index.js +2 -2
  133. package/dist/skills/bundled/plugins/index.js.map +1 -1
  134. package/dist/skills/bundled/portfolio/SKILL.md +161 -0
  135. package/dist/skills/bundled/portfolio/index.js +1 -1
  136. package/dist/skills/bundled/portfolio/index.js.map +1 -1
  137. package/dist/skills/bundled/portfolio-sync/SKILL.md +466 -0
  138. package/dist/skills/bundled/positions/SKILL.md +262 -0
  139. package/dist/skills/bundled/predictfun/SKILL.md +109 -0
  140. package/dist/skills/bundled/predictfun/index.js +1 -1
  141. package/dist/skills/bundled/predictfun/index.js.map +1 -1
  142. package/dist/skills/bundled/predictit/SKILL.md +66 -0
  143. package/dist/skills/bundled/presence/SKILL.md +217 -0
  144. package/dist/skills/bundled/presence/index.js +2 -2
  145. package/dist/skills/bundled/presence/index.js.map +1 -1
  146. package/dist/skills/bundled/processes/SKILL.md +254 -0
  147. package/dist/skills/bundled/pump-swarm/SKILL.md +309 -0
  148. package/dist/skills/bundled/pumpfun/SKILL.md +145 -0
  149. package/dist/skills/bundled/qmd/SKILL.md +129 -0
  150. package/dist/skills/bundled/qrcoin/SKILL.md +60 -0
  151. package/dist/skills/bundled/qrcoin/index.d.ts +0 -3
  152. package/dist/skills/bundled/qrcoin/index.js +0 -1
  153. package/dist/skills/bundled/qrcoin/index.js.map +1 -1
  154. package/dist/skills/bundled/raydium/SKILL.md +198 -0
  155. package/dist/skills/bundled/remote/SKILL.md +201 -0
  156. package/dist/skills/bundled/research/SKILL.md +83 -0
  157. package/dist/skills/bundled/research/index.js +2 -2
  158. package/dist/skills/bundled/research/index.js.map +1 -1
  159. package/dist/skills/bundled/risk/SKILL.md +323 -0
  160. package/dist/skills/bundled/router/SKILL.md +233 -0
  161. package/dist/skills/bundled/routing/SKILL.md +258 -0
  162. package/dist/skills/bundled/sandbox/SKILL.md +257 -0
  163. package/dist/skills/bundled/search-config/SKILL.md +257 -0
  164. package/dist/skills/bundled/search-config/index.js +2 -2
  165. package/dist/skills/bundled/search-config/index.js.map +1 -1
  166. package/dist/skills/bundled/sessions/SKILL.md +251 -0
  167. package/dist/skills/bundled/sessions/index.js +1 -1
  168. package/dist/skills/bundled/sessions/index.js.map +1 -1
  169. package/dist/skills/bundled/setup/SKILL.md +53 -0
  170. package/dist/skills/bundled/shield/SKILL.md +21 -0
  171. package/dist/skills/bundled/signals/SKILL.md +106 -0
  172. package/dist/skills/bundled/signals/index.d.ts +0 -3
  173. package/dist/skills/bundled/signals/index.js +3 -4
  174. package/dist/skills/bundled/signals/index.js.map +1 -1
  175. package/dist/skills/bundled/sizing/SKILL.md +238 -0
  176. package/dist/skills/bundled/slippage/SKILL.md +306 -0
  177. package/dist/skills/bundled/smarkets/SKILL.md +107 -0
  178. package/dist/skills/bundled/solend/SKILL.md +63 -0
  179. package/dist/skills/bundled/strategy/SKILL.md +266 -0
  180. package/dist/skills/bundled/streaming/SKILL.md +150 -0
  181. package/dist/skills/bundled/streaming/index.js +2 -2
  182. package/dist/skills/bundled/streaming/index.js.map +1 -1
  183. package/dist/skills/bundled/tailscale/SKILL.md +249 -0
  184. package/dist/skills/bundled/tailscale/index.js +2 -2
  185. package/dist/skills/bundled/tailscale/index.js.map +1 -1
  186. package/dist/skills/bundled/ticks/SKILL.md +61 -0
  187. package/dist/skills/bundled/token-security/SKILL.md +18 -0
  188. package/dist/skills/bundled/trading-evm/SKILL.md +329 -0
  189. package/dist/skills/bundled/trading-futures/SKILL.md +865 -0
  190. package/dist/skills/bundled/trading-kalshi/SKILL.md +629 -0
  191. package/dist/skills/bundled/trading-manifold/SKILL.md +387 -0
  192. package/dist/skills/bundled/trading-polymarket/SKILL.md +1080 -0
  193. package/dist/skills/bundled/trading-solana/SKILL.md +418 -0
  194. package/dist/skills/bundled/trading-system/SKILL.md +290 -0
  195. package/dist/skills/bundled/triggers/SKILL.md +433 -0
  196. package/dist/skills/bundled/tts/SKILL.md +220 -0
  197. package/dist/skills/bundled/tweet-ideas/SKILL.md +77 -0
  198. package/dist/skills/bundled/usage/SKILL.md +239 -0
  199. package/dist/skills/bundled/usage/index.js +2 -2
  200. package/dist/skills/bundled/usage/index.js.map +1 -1
  201. package/dist/skills/bundled/veil/SKILL.md +76 -0
  202. package/dist/skills/bundled/veil/index.d.ts +0 -3
  203. package/dist/skills/bundled/veil/index.js +0 -1
  204. package/dist/skills/bundled/veil/index.js.map +1 -1
  205. package/dist/skills/bundled/verify/SKILL.md +199 -0
  206. package/dist/skills/bundled/verify/index.d.ts +0 -3
  207. package/dist/skills/bundled/verify/index.js +0 -1
  208. package/dist/skills/bundled/verify/index.js.map +1 -1
  209. package/dist/skills/bundled/virtuals/SKILL.md +82 -0
  210. package/dist/skills/bundled/voice/SKILL.md +217 -0
  211. package/dist/skills/bundled/voice/index.js +2 -2
  212. package/dist/skills/bundled/voice/index.js.map +1 -1
  213. package/dist/skills/bundled/weather/SKILL.md +80 -0
  214. package/dist/skills/bundled/webhooks/SKILL.md +297 -0
  215. package/dist/skills/bundled/webhooks/index.js +2 -2
  216. package/dist/skills/bundled/webhooks/index.js.map +1 -1
  217. package/dist/skills/bundled/whale-tracking/SKILL.md +287 -0
  218. package/dist/skills/bundled/whale-tracking/index.js +2 -2
  219. package/dist/skills/bundled/whale-tracking/index.js.map +1 -1
  220. package/dist/skills/bundled/yoink/SKILL.md +54 -0
  221. package/dist/skills/bundled/yoink/index.d.ts +0 -3
  222. package/dist/skills/bundled/yoink/index.js +0 -1
  223. package/dist/skills/bundled/yoink/index.js.map +1 -1
  224. package/dist/skills/executor.js +5 -3
  225. package/dist/skills/executor.js.map +1 -1
  226. package/package.json +2 -2
@@ -0,0 +1,433 @@
1
+ ---
2
+ name: triggers
3
+ description: "Conditional orders that auto-execute when price thresholds are met"
4
+ emoji: "⚡"
5
+ ---
6
+
7
+ # Triggers - Complete API Reference
8
+
9
+ Set up conditional orders that automatically execute trades when price conditions are met. Works across prediction markets, futures, and crypto spot.
10
+
11
+ ---
12
+
13
+ ## Chat Commands
14
+
15
+ ### Create Trigger Orders
16
+
17
+ ```
18
+ /trigger buy poly "Trump 2028" YES below 0.40 size 100
19
+ /trigger buy poly "Fed rate" NO above 0.60 size 50
20
+ /trigger sell poly "Trump 2028" YES above 0.55 size all
21
+ ```
22
+
23
+ ### Futures Triggers
24
+
25
+ ```
26
+ /trigger long binance BTCUSDT below 95000 size 0.1 leverage 10x
27
+ /trigger short binance ETHUSDT above 4000 size 1 leverage 20x
28
+ /trigger close binance BTCUSDT above 105000
29
+ ```
30
+
31
+ ### Crypto Spot Triggers
32
+
33
+ ```
34
+ /trigger buy sol SOL below 180 size 100usdc
35
+ /trigger sell eth ETH above 4000 size 0.5
36
+ /trigger swap arb USDC to ARB below 1.50 size 500
37
+ ```
38
+
39
+ ### Manage Triggers
40
+
41
+ ```
42
+ /triggers List all active triggers
43
+ /triggers pending Show pending only
44
+ /triggers history Triggered order history
45
+ /trigger cancel <id> Cancel trigger
46
+ /trigger cancel all Cancel all triggers
47
+ ```
48
+
49
+ ### Stop-Loss & Take-Profit
50
+
51
+ ```
52
+ /sl poly "Trump" at 0.35 Stop-loss on position
53
+ /tp poly "Trump" at 0.65 Take-profit on position
54
+ /trailing-stop poly "Trump" 10% Trailing stop (% from high)
55
+ ```
56
+
57
+ ---
58
+
59
+ ## TypeScript API Reference
60
+
61
+ ### Create Trigger Service
62
+
63
+ ```typescript
64
+ import { createTriggerService } from 'clodds/triggers';
65
+
66
+ const triggers = createTriggerService({
67
+ // Price monitoring
68
+ checkIntervalMs: 5000, // Check every 5 seconds
69
+
70
+ // Execution
71
+ maxSlippagePercent: 2,
72
+ retryAttempts: 3,
73
+
74
+ // Storage
75
+ storage: 'sqlite',
76
+ dbPath: './triggers.db',
77
+ });
78
+
79
+ // Start monitoring
80
+ await triggers.start();
81
+ ```
82
+
83
+ ### Create Prediction Market Trigger
84
+
85
+ ```typescript
86
+ // Buy YES when price drops below threshold
87
+ const trigger = await triggers.create({
88
+ type: 'entry',
89
+ platform: 'polymarket',
90
+ market: 'will-trump-win-2028',
91
+ side: 'YES',
92
+ direction: 'below',
93
+ triggerPrice: 0.40,
94
+ size: 100, // $100
95
+ orderType: 'limit', // 'market' | 'limit'
96
+ limitPrice: 0.41, // Optional: max price for limit
97
+ });
98
+
99
+ console.log(`Trigger ID: ${trigger.id}`);
100
+ console.log(`Status: ${trigger.status}`); // 'pending'
101
+
102
+ // Sell when price rises above threshold
103
+ await triggers.create({
104
+ type: 'exit',
105
+ platform: 'polymarket',
106
+ market: 'will-trump-win-2028',
107
+ side: 'YES',
108
+ direction: 'above',
109
+ triggerPrice: 0.55,
110
+ size: 'all', // Sell entire position
111
+ });
112
+ ```
113
+
114
+ ### Create Futures Trigger
115
+
116
+ ```typescript
117
+ // Long entry when BTC drops below support
118
+ await triggers.create({
119
+ type: 'entry',
120
+ platform: 'binance',
121
+ symbol: 'BTCUSDT',
122
+ side: 'long',
123
+ direction: 'below',
124
+ triggerPrice: 95000,
125
+ size: 0.1,
126
+ leverage: 10,
127
+
128
+ // Auto-set SL/TP on fill
129
+ stopLoss: 93000,
130
+ takeProfit: 105000,
131
+ });
132
+
133
+ // Short entry when ETH breaks above resistance
134
+ await triggers.create({
135
+ type: 'entry',
136
+ platform: 'bybit',
137
+ symbol: 'ETHUSDT',
138
+ side: 'short',
139
+ direction: 'above',
140
+ triggerPrice: 4000,
141
+ size: 1,
142
+ leverage: 20,
143
+ });
144
+
145
+ // Close position when price target hit
146
+ await triggers.create({
147
+ type: 'exit',
148
+ platform: 'binance',
149
+ symbol: 'BTCUSDT',
150
+ direction: 'above',
151
+ triggerPrice: 105000,
152
+ size: 'all',
153
+ });
154
+ ```
155
+
156
+ ### Create Crypto Spot Trigger
157
+
158
+ ```typescript
159
+ // Buy SOL when price drops
160
+ await triggers.create({
161
+ type: 'entry',
162
+ platform: 'jupiter', // Solana DEX
163
+ tokenIn: 'USDC',
164
+ tokenOut: 'SOL',
165
+ direction: 'below',
166
+ triggerPrice: 180,
167
+ size: 100, // 100 USDC
168
+ slippagePercent: 1,
169
+ });
170
+
171
+ // Sell ETH when price rises
172
+ await triggers.create({
173
+ type: 'exit',
174
+ platform: 'uniswap', // EVM DEX
175
+ chain: 'ethereum',
176
+ tokenIn: 'ETH',
177
+ tokenOut: 'USDC',
178
+ direction: 'above',
179
+ triggerPrice: 4000,
180
+ size: 0.5,
181
+ });
182
+ ```
183
+
184
+ ### Stop-Loss & Take-Profit
185
+
186
+ ```typescript
187
+ // Set stop-loss on existing position
188
+ await triggers.setStopLoss({
189
+ platform: 'polymarket',
190
+ market: 'will-trump-win-2028',
191
+ side: 'YES',
192
+ triggerPrice: 0.35,
193
+ size: 'all',
194
+ });
195
+
196
+ // Set take-profit
197
+ await triggers.setTakeProfit({
198
+ platform: 'polymarket',
199
+ market: 'will-trump-win-2028',
200
+ side: 'YES',
201
+ triggerPrice: 0.65,
202
+ size: 'all',
203
+ });
204
+
205
+ // Trailing stop (follows price up, triggers on pullback)
206
+ await triggers.setTrailingStop({
207
+ platform: 'polymarket',
208
+ market: 'will-trump-win-2028',
209
+ side: 'YES',
210
+ trailPercent: 10, // Trigger if drops 10% from high
211
+ size: 'all',
212
+ });
213
+ ```
214
+
215
+ ### Multi-Condition Triggers
216
+
217
+ ```typescript
218
+ // Trigger only when multiple conditions met
219
+ await triggers.create({
220
+ type: 'entry',
221
+ platform: 'polymarket',
222
+ market: 'will-trump-win-2028',
223
+ side: 'YES',
224
+
225
+ conditions: [
226
+ { type: 'price', direction: 'below', value: 0.40 },
227
+ { type: 'volume24h', direction: 'above', value: 100000 },
228
+ { type: 'spread', direction: 'below', value: 0.02 },
229
+ ],
230
+
231
+ // All conditions must be true
232
+ conditionLogic: 'AND', // 'AND' | 'OR'
233
+
234
+ size: 100,
235
+ });
236
+ ```
237
+
238
+ ### One-Cancels-Other (OCO)
239
+
240
+ ```typescript
241
+ // OCO: Either SL or TP triggers, other cancels
242
+ const oco = await triggers.createOCO({
243
+ platform: 'binance',
244
+ symbol: 'BTCUSDT',
245
+
246
+ stopLoss: {
247
+ direction: 'below',
248
+ triggerPrice: 93000,
249
+ size: 'all',
250
+ },
251
+
252
+ takeProfit: {
253
+ direction: 'above',
254
+ triggerPrice: 105000,
255
+ size: 'all',
256
+ },
257
+ });
258
+ ```
259
+
260
+ ### List & Manage Triggers
261
+
262
+ ```typescript
263
+ // List all triggers
264
+ const all = await triggers.list();
265
+
266
+ for (const t of all) {
267
+ console.log(`${t.id}: ${t.platform} ${t.market || t.symbol}`);
268
+ console.log(` ${t.direction} ${t.triggerPrice}`);
269
+ console.log(` Status: ${t.status}`);
270
+ console.log(` Created: ${t.createdAt}`);
271
+ }
272
+
273
+ // Get pending only
274
+ const pending = await triggers.list({ status: 'pending' });
275
+
276
+ // Get history (triggered)
277
+ const history = await triggers.list({ status: 'triggered' });
278
+
279
+ // Cancel trigger
280
+ await triggers.cancel(triggerId);
281
+
282
+ // Cancel all
283
+ await triggers.cancelAll();
284
+ ```
285
+
286
+ ### Event Handlers
287
+
288
+ ```typescript
289
+ // Trigger activated
290
+ triggers.on('triggered', async (trigger, result) => {
291
+ console.log(`Trigger ${trigger.id} activated!`);
292
+ console.log(`Order: ${result.orderId}`);
293
+ console.log(`Fill price: ${result.fillPrice}`);
294
+ console.log(`Size: ${result.filledSize}`);
295
+ });
296
+
297
+ // Trigger failed
298
+ triggers.on('failed', (trigger, error) => {
299
+ console.error(`Trigger ${trigger.id} failed: ${error.message}`);
300
+ });
301
+
302
+ // Price approaching trigger
303
+ triggers.on('approaching', (trigger, currentPrice) => {
304
+ console.log(`Price ${currentPrice} approaching trigger at ${trigger.triggerPrice}`);
305
+ });
306
+ ```
307
+
308
+ ---
309
+
310
+ ## Supported Platforms
311
+
312
+ ### Prediction Markets
313
+
314
+ | Platform | Entry Triggers | Exit Triggers | SL/TP |
315
+ |----------|---------------|---------------|-------|
316
+ | **Polymarket** | ✓ | ✓ | ✓ |
317
+ | **Kalshi** | ✓ | ✓ | ✓ |
318
+ | **Manifold** | ✓ | ✓ | ✓ |
319
+
320
+ ### Futures
321
+
322
+ | Platform | Entry Triggers | Native Triggers | SL/TP |
323
+ |----------|---------------|-----------------|-------|
324
+ | **Binance** | ✓ | ✓ | ✓ |
325
+ | **Bybit** | ✓ | ✓ | ✓ |
326
+ | **MEXC** | ✓ | ✓ Native | ✓ |
327
+ | **Hyperliquid** | ✓ | ✓ | ✓ |
328
+
329
+ ### Crypto Spot
330
+
331
+ | Platform | Entry Triggers | Exit Triggers |
332
+ |----------|---------------|---------------|
333
+ | **Jupiter** (Solana) | ✓ | ✓ |
334
+ | **Raydium** | ✓ | ✓ |
335
+ | **Uniswap** (EVM) | ✓ | ✓ |
336
+ | **1inch** (EVM) | ✓ | ✓ |
337
+
338
+ ---
339
+
340
+ ## Trigger Types
341
+
342
+ | Type | Description |
343
+ |------|-------------|
344
+ | **entry** | Open new position when triggered |
345
+ | **exit** | Close position when triggered |
346
+ | **stop-loss** | Exit to limit losses |
347
+ | **take-profit** | Exit to lock in gains |
348
+ | **trailing-stop** | Dynamic stop that follows price |
349
+ | **oco** | One-cancels-other (SL + TP pair) |
350
+
351
+ ---
352
+
353
+ ## Price Sources
354
+
355
+ | Platform | Price Source |
356
+ |----------|-------------|
357
+ | Polymarket | WebSocket mid price |
358
+ | Kalshi | REST API best bid/ask |
359
+ | Binance | WebSocket mark price |
360
+ | Bybit | WebSocket last price |
361
+ | Jupiter | On-chain oracle |
362
+
363
+ ---
364
+
365
+ ## Examples
366
+
367
+ ### Prediction Market Strategy
368
+
369
+ ```typescript
370
+ // Buy the dip, sell the rip
371
+ await triggers.create({
372
+ platform: 'polymarket',
373
+ market: 'trump-2028',
374
+ side: 'YES',
375
+ direction: 'below',
376
+ triggerPrice: 0.40,
377
+ size: 200,
378
+ });
379
+
380
+ await triggers.create({
381
+ platform: 'polymarket',
382
+ market: 'trump-2028',
383
+ side: 'YES',
384
+ direction: 'above',
385
+ triggerPrice: 0.55,
386
+ size: 'all',
387
+ });
388
+ ```
389
+
390
+ ### Futures Breakout Strategy
391
+
392
+ ```typescript
393
+ // Enter long on breakout above resistance
394
+ await triggers.create({
395
+ platform: 'binance',
396
+ symbol: 'BTCUSDT',
397
+ side: 'long',
398
+ direction: 'above',
399
+ triggerPrice: 100000,
400
+ size: 0.5,
401
+ leverage: 10,
402
+ stopLoss: 98000,
403
+ takeProfit: 110000,
404
+ });
405
+ ```
406
+
407
+ ### DCA on Dips
408
+
409
+ ```typescript
410
+ // Buy more as price drops
411
+ const levels = [180, 170, 160, 150];
412
+ for (const price of levels) {
413
+ await triggers.create({
414
+ platform: 'jupiter',
415
+ tokenOut: 'SOL',
416
+ tokenIn: 'USDC',
417
+ direction: 'below',
418
+ triggerPrice: price,
419
+ size: 50, // $50 at each level
420
+ });
421
+ }
422
+ ```
423
+
424
+ ---
425
+
426
+ ## Best Practices
427
+
428
+ 1. **Use limit orders** — Avoid slippage on triggers
429
+ 2. **Set expiration** — Don't leave triggers forever
430
+ 3. **Monitor execution** — Check fill prices
431
+ 4. **Use OCO for exits** — SL + TP together
432
+ 5. **Test with small size** — Verify triggers work
433
+ 6. **Account for fees** — Include in trigger price
@@ -0,0 +1,220 @@
1
+ ---
2
+ name: tts
3
+ description: "Text-to-speech synthesis with ElevenLabs and system voices"
4
+ emoji: "🔊"
5
+ gates:
6
+ envs:
7
+ anyOf:
8
+ - ELEVENLABS_API_KEY
9
+ ---
10
+
11
+ # TTS (Text-to-Speech) - Complete API Reference
12
+
13
+ Convert text to natural-sounding speech using ElevenLabs, macOS say, or espeak.
14
+
15
+ ---
16
+
17
+ ## Chat Commands
18
+
19
+ ### Synthesize Speech
20
+
21
+ ```
22
+ /speak "Your order has been filled" Speak text aloud
23
+ /speak "Market alert" --voice rachel Use specific voice
24
+ /speak "Portfolio up 5%" --speed 1.2 Adjust speed
25
+ ```
26
+
27
+ ### Voice Management
28
+
29
+ ```
30
+ /voices List available voices
31
+ /voices preview rachel Preview a voice
32
+ /voice set rachel Set default voice
33
+ ```
34
+
35
+ ### Settings
36
+
37
+ ```
38
+ /tts status Check TTS status
39
+ /tts provider elevenlabs Set provider
40
+ /tts speed 1.0 Set default speed
41
+ /tts volume 0.8 Set volume (0-1)
42
+ ```
43
+
44
+ ---
45
+
46
+ ## TypeScript API Reference
47
+
48
+ ### Create TTS Service
49
+
50
+ ```typescript
51
+ import { createTTSService } from 'clodds/tts';
52
+
53
+ const tts = createTTSService({
54
+ provider: 'elevenlabs',
55
+ apiKey: process.env.ELEVENLABS_API_KEY,
56
+
57
+ // Defaults
58
+ defaultVoice: 'rachel',
59
+ defaultSpeed: 1.0,
60
+ defaultPitch: 1.0,
61
+ });
62
+ ```
63
+
64
+ ### Synthesize Speech
65
+
66
+ ```typescript
67
+ // Basic synthesis
68
+ const audio = await tts.synthesize('Hello, your trade was executed.');
69
+
70
+ // Play immediately
71
+ await tts.speak('Portfolio value is $10,000');
72
+
73
+ // With options
74
+ await tts.speak('Market alert: BTC crossed $100k', {
75
+ voice: 'josh',
76
+ speed: 1.2,
77
+ pitch: 1.0,
78
+ volume: 0.8,
79
+ });
80
+ ```
81
+
82
+ ### Streaming Synthesis
83
+
84
+ ```typescript
85
+ // Stream for long text (lower latency)
86
+ const stream = await tts.streamSynthesize(longText, {
87
+ voice: 'rachel',
88
+ });
89
+
90
+ stream.on('data', (chunk) => {
91
+ // Play audio chunks as they arrive
92
+ audioPlayer.write(chunk);
93
+ });
94
+
95
+ stream.on('end', () => {
96
+ console.log('Synthesis complete');
97
+ });
98
+ ```
99
+
100
+ ### List Voices
101
+
102
+ ```typescript
103
+ // Get available voices
104
+ const voices = await tts.listVoices();
105
+
106
+ for (const voice of voices) {
107
+ console.log(`${voice.id}: ${voice.name}`);
108
+ console.log(` Gender: ${voice.gender}`);
109
+ console.log(` Accent: ${voice.accent}`);
110
+ console.log(` Use case: ${voice.useCase}`);
111
+ }
112
+ ```
113
+
114
+ ### Voice Preview
115
+
116
+ ```typescript
117
+ // Preview a voice
118
+ await tts.preview('rachel', 'This is a preview of the Rachel voice.');
119
+ ```
120
+
121
+ ### Queue Management
122
+
123
+ ```typescript
124
+ // Queue multiple messages
125
+ tts.queue('First message');
126
+ tts.queue('Second message');
127
+ tts.queue('Third message');
128
+
129
+ // Messages play in order
130
+
131
+ // Clear queue
132
+ tts.clearQueue();
133
+
134
+ // Skip current
135
+ tts.skip();
136
+ ```
137
+
138
+ ---
139
+
140
+ ## ElevenLabs Voices
141
+
142
+ | Voice ID | Name | Gender | Accent | Best For |
143
+ |----------|------|--------|--------|----------|
144
+ | `rachel` | Rachel | F | American | Narration |
145
+ | `domi` | Domi | F | American | Conversational |
146
+ | `bella` | Bella | F | American | Soft, gentle |
147
+ | `antoni` | Antoni | M | American | Narration |
148
+ | `josh` | Josh | M | American | Deep, authoritative |
149
+ | `arnold` | Arnold | M | American | Gruff, character |
150
+ | `adam` | Adam | M | American | Deep, narration |
151
+ | `sam` | Sam | M | American | Raspy, character |
152
+
153
+ ---
154
+
155
+ ## Providers
156
+
157
+ | Provider | Quality | Latency | Cost | Setup |
158
+ |----------|---------|---------|------|-------|
159
+ | **ElevenLabs** | Premium | ~500ms | $5/100k chars | API key |
160
+ | **say** (macOS) | Good | ~100ms | Free | Built-in |
161
+ | **espeak** | Basic | ~50ms | Free | Install |
162
+
163
+ ### Provider Configuration
164
+
165
+ ```typescript
166
+ // ElevenLabs (best quality)
167
+ const tts = createTTSService({
168
+ provider: 'elevenlabs',
169
+ apiKey: process.env.ELEVENLABS_API_KEY,
170
+ });
171
+
172
+ // macOS say (free, local)
173
+ const tts = createTTSService({
174
+ provider: 'say',
175
+ defaultVoice: 'Samantha', // macOS voice
176
+ });
177
+
178
+ // espeak (cross-platform, free)
179
+ const tts = createTTSService({
180
+ provider: 'espeak',
181
+ defaultVoice: 'en-us',
182
+ });
183
+ ```
184
+
185
+ ---
186
+
187
+ ## Audio Output
188
+
189
+ ```typescript
190
+ // Set output device
191
+ tts.setOutputDevice('Built-in Speakers');
192
+
193
+ // Get available devices
194
+ const devices = await tts.listOutputDevices();
195
+ ```
196
+
197
+ ---
198
+
199
+ ## SSML Support (ElevenLabs)
200
+
201
+ ```typescript
202
+ // Use SSML for advanced control
203
+ await tts.speak(`
204
+ <speak>
205
+ <prosody rate="slow">Important alert:</prosody>
206
+ <break time="500ms"/>
207
+ Your stop loss was triggered.
208
+ </speak>
209
+ `, { ssml: true });
210
+ ```
211
+
212
+ ---
213
+
214
+ ## Best Practices
215
+
216
+ 1. **Use streaming** — For long text, reduces time to first audio
217
+ 2. **Cache common phrases** — "Order filled", "Alert triggered"
218
+ 3. **Adjust speed** — Faster for alerts, slower for details
219
+ 4. **Queue management** — Don't overlap important messages
220
+ 5. **Fallback provider** — Use say/espeak if ElevenLabs unavailable
@@ -0,0 +1,77 @@
1
+ ---
2
+ name: tweet-ideas
3
+ description: "Generate tweet ideas from trends and project updates"
4
+ command: tweets
5
+ emoji: "💭"
6
+ ---
7
+
8
+ # Tweet Ideas Generator
9
+
10
+ Generate tweet ideas from market trends OR your project's latest developments.
11
+
12
+ ## Commands
13
+
14
+ ```
15
+ /tweets generate [topic] Generate from trends/topic
16
+ /tweets spicy Contrarian/provocative takes
17
+ /tweets project <path> Generate about project updates
18
+ /tweets changelog <path> Announce latest changelog entries
19
+ /tweets feature <description> Announce a specific feature
20
+ /tweets launch <path> Generate launch thread
21
+ /tweets style <description> Set your voice/style
22
+ /tweets trends Show what's trending to riff on
23
+ /tweets drafts View saved ideas
24
+ /tweets save <id> Save to drafts
25
+ /tweets clear Clear drafts
26
+ ```
27
+
28
+ ## Examples
29
+
30
+ ### Set Your Style
31
+ ```
32
+ /tweets style "contrarian crypto takes, short punchy sentences, no emojis, slightly unhinged, call out hypocrisy"
33
+ /tweets style "builder sharing wins, technical but accessible, authentic not hype"
34
+ ```
35
+
36
+ ### Generate From Trends
37
+ ```
38
+ /tweets generate
39
+ /tweets generate "bitcoin etf"
40
+ /tweets spicy
41
+ ```
42
+
43
+ ### Project Announcements
44
+ ```
45
+ /tweets project /path/to/myproject
46
+ /tweets changelog /path/to/CHANGELOG.md
47
+ /tweets feature "Added SPL token escrow with Pyth oracle conditions"
48
+ /tweets launch /path/to/myproject
49
+ ```
50
+
51
+ ## How It Works
52
+
53
+ ### Trend Mode
54
+ - Pulls from crypto news feeds, market data, social signals
55
+ - Generates takes in your style
56
+ - `/tweets spicy` deliberately goes contrarian
57
+
58
+ ### Project Mode
59
+ - Reads CHANGELOG.md for latest updates
60
+ - Reads README.md for project description
61
+ - Reads package.json for name/version
62
+ - Generates announcement tweets in your style
63
+
64
+ ### Style Memory
65
+ Your style is saved and persists across sessions. Examples:
66
+ - "degen energy, lowercase, lots of slang"
67
+ - "thoughtful builder, focus on technical details"
68
+ - "provocative, question everything, short sentences"
69
+
70
+ ## Output
71
+
72
+ Returns 3-5 tweet ideas per generation. Each shows:
73
+ - The tweet text
74
+ - Character count
75
+ - Thread potential (if topic is big)
76
+
77
+ Save the ones you like with `/tweets save <id>`.