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,285 @@
1
+ ---
2
+ name: auto-reply
3
+ description: "Automatic response rules, patterns, and scheduled messages"
4
+ emoji: "🤖"
5
+ ---
6
+
7
+ # Auto-Reply - Complete API Reference
8
+
9
+ Create rules for automatic responses based on patterns, keywords, and conditions.
10
+
11
+ ---
12
+
13
+ ## Chat Commands
14
+
15
+ ### List Rules
16
+
17
+ ```
18
+ /auto-reply List all rules
19
+ /auto-reply active Show active rules only
20
+ /auto-reply stats Rule trigger statistics
21
+ ```
22
+
23
+ ### Create Rules
24
+
25
+ ```
26
+ /auto-reply add "hello" "Hi there!" Simple keyword match
27
+ /auto-reply add /price.*btc/i "BTC: $X" Regex pattern
28
+ /auto-reply add --exact "!help" "..." Exact match only
29
+ ```
30
+
31
+ ### Manage Rules
32
+
33
+ ```
34
+ /auto-reply enable <id> Enable rule
35
+ /auto-reply disable <id> Disable rule
36
+ /auto-reply delete <id> Remove rule
37
+ /auto-reply edit <id> response "new text" Update response
38
+ ```
39
+
40
+ ### Testing
41
+
42
+ ```
43
+ /auto-reply test "hello world" Test which rules match
44
+ /auto-reply simulate "price btc" Preview response
45
+ ```
46
+
47
+ ### Advanced
48
+
49
+ ```
50
+ /auto-reply cooldown <id> 60 Set 60s cooldown
51
+ /auto-reply schedule <id> 9-17 Active 9am-5pm only
52
+ /auto-reply priority <id> 10 Set priority (higher first)
53
+ /auto-reply channel <id> telegram Limit to channel
54
+ ```
55
+
56
+ ---
57
+
58
+ ## TypeScript API Reference
59
+
60
+ ### Create Auto-Reply Manager
61
+
62
+ ```typescript
63
+ import { createAutoReplyManager } from 'clodds/auto-reply';
64
+
65
+ const autoReply = createAutoReplyManager({
66
+ // Storage
67
+ storage: 'sqlite',
68
+ dbPath: './auto-reply.db',
69
+
70
+ // Defaults
71
+ defaultCooldownMs: 0,
72
+ defaultPriority: 0,
73
+
74
+ // Limits
75
+ maxRulesPerUser: 100,
76
+ maxResponseLength: 2000,
77
+ });
78
+ ```
79
+
80
+ ### Add Simple Rule
81
+
82
+ ```typescript
83
+ // Keyword match
84
+ await autoReply.addRule({
85
+ name: 'greeting',
86
+ pattern: {
87
+ type: 'keyword',
88
+ value: 'hello',
89
+ caseSensitive: false,
90
+ },
91
+ response: 'Hi there! How can I help?',
92
+ });
93
+ ```
94
+
95
+ ### Add Regex Rule
96
+
97
+ ```typescript
98
+ // Regex pattern
99
+ await autoReply.addRule({
100
+ name: 'price-query',
101
+ pattern: {
102
+ type: 'regex',
103
+ value: /price\s+(btc|eth|sol)/i,
104
+ },
105
+ response: async (match, ctx) => {
106
+ const symbol = match[1].toUpperCase();
107
+ const price = await getPrice(symbol);
108
+ return `${symbol} price: $${price}`;
109
+ },
110
+ });
111
+ ```
112
+
113
+ ### Add Conditional Rule
114
+
115
+ ```typescript
116
+ // With conditions
117
+ await autoReply.addRule({
118
+ name: 'trading-hours',
119
+ pattern: {
120
+ type: 'keyword',
121
+ value: 'trade',
122
+ },
123
+ conditions: [
124
+ // Only during market hours
125
+ {
126
+ type: 'time',
127
+ start: '09:30',
128
+ end: '16:00',
129
+ timezone: 'America/New_York',
130
+ },
131
+ // Only on weekdays
132
+ {
133
+ type: 'day',
134
+ days: ['mon', 'tue', 'wed', 'thu', 'fri'],
135
+ },
136
+ // Only for certain users
137
+ {
138
+ type: 'user',
139
+ userIds: ['user-123', 'user-456'],
140
+ },
141
+ ],
142
+ response: 'Markets are open! What would you like to trade?',
143
+ elseResponse: 'Markets are closed. Try again during trading hours.',
144
+ });
145
+ ```
146
+
147
+ ### Add Cooldown
148
+
149
+ ```typescript
150
+ // Prevent spam
151
+ await autoReply.addRule({
152
+ name: 'faq',
153
+ pattern: {
154
+ type: 'keyword',
155
+ value: 'faq',
156
+ },
157
+ response: 'Check our FAQ at https://...',
158
+ cooldown: {
159
+ perUser: 60000, // 60s per user
160
+ perChannel: 10000, // 10s per channel
161
+ global: 5000, // 5s global
162
+ },
163
+ });
164
+ ```
165
+
166
+ ### Dynamic Responses
167
+
168
+ ```typescript
169
+ // Response with variables
170
+ await autoReply.addRule({
171
+ name: 'welcome',
172
+ pattern: {
173
+ type: 'exact',
174
+ value: '!welcome',
175
+ },
176
+ response: 'Welcome {{user.name}}! You joined {{user.joinDate}}.',
177
+ variables: {
178
+ 'user.name': (ctx) => ctx.user.displayName,
179
+ 'user.joinDate': (ctx) => ctx.user.createdAt.toDateString(),
180
+ },
181
+ });
182
+
183
+ // Response with API call
184
+ await autoReply.addRule({
185
+ name: 'portfolio',
186
+ pattern: {
187
+ type: 'keyword',
188
+ value: 'portfolio',
189
+ },
190
+ response: async (match, ctx) => {
191
+ const portfolio = await getPortfolio(ctx.user.id);
192
+ return `Your portfolio: $${portfolio.totalValue.toFixed(2)}`;
193
+ },
194
+ });
195
+ ```
196
+
197
+ ### List Rules
198
+
199
+ ```typescript
200
+ const rules = await autoReply.listRules();
201
+
202
+ for (const rule of rules) {
203
+ console.log(`${rule.id}: ${rule.name}`);
204
+ console.log(` Pattern: ${rule.pattern.value}`);
205
+ console.log(` Enabled: ${rule.enabled}`);
206
+ console.log(` Triggers: ${rule.triggerCount}`);
207
+ }
208
+ ```
209
+
210
+ ### Test Rule
211
+
212
+ ```typescript
213
+ // Test which rules would match
214
+ const matches = await autoReply.test('hello world', {
215
+ userId: 'user-123',
216
+ channelId: 'telegram-456',
217
+ });
218
+
219
+ for (const match of matches) {
220
+ console.log(`Rule: ${match.rule.name}`);
221
+ console.log(`Response: ${match.response}`);
222
+ }
223
+ ```
224
+
225
+ ### Enable/Disable
226
+
227
+ ```typescript
228
+ await autoReply.enable('rule-id');
229
+ await autoReply.disable('rule-id');
230
+ ```
231
+
232
+ ### Delete Rule
233
+
234
+ ```typescript
235
+ await autoReply.deleteRule('rule-id');
236
+ ```
237
+
238
+ ---
239
+
240
+ ## Pattern Types
241
+
242
+ | Type | Example | Description |
243
+ |------|---------|-------------|
244
+ | `keyword` | `hello` | Contains keyword |
245
+ | `exact` | `!help` | Exact match only |
246
+ | `regex` | `/price\s+\w+/i` | Regular expression |
247
+ | `startsWith` | `!` | Starts with prefix |
248
+ | `endsWith` | `?` | Ends with suffix |
249
+
250
+ ---
251
+
252
+ ## Condition Types
253
+
254
+ | Type | Description |
255
+ |------|-------------|
256
+ | `time` | Active during time window |
257
+ | `day` | Active on specific days |
258
+ | `user` | Only for specific users |
259
+ | `channel` | Only in specific channels |
260
+ | `role` | Only for users with role |
261
+ | `custom` | Custom function |
262
+
263
+ ---
264
+
265
+ ## Response Variables
266
+
267
+ | Variable | Description |
268
+ |----------|-------------|
269
+ | `{{user.name}}` | User display name |
270
+ | `{{user.id}}` | User ID |
271
+ | `{{channel.name}}` | Channel name |
272
+ | `{{match[0]}}` | Full regex match |
273
+ | `{{match[1]}}` | First capture group |
274
+ | `{{date}}` | Current date |
275
+ | `{{time}}` | Current time |
276
+
277
+ ---
278
+
279
+ ## Best Practices
280
+
281
+ 1. **Use priorities** — Important rules first
282
+ 2. **Set cooldowns** — Prevent spam
283
+ 3. **Test patterns** — Verify before enabling
284
+ 4. **Use conditions** — Context-aware responses
285
+ 5. **Monitor triggers** — Check rule effectiveness
@@ -186,8 +186,8 @@ async function execute(args) {
186
186
  return helpText();
187
187
  }
188
188
  }
189
- catch {
190
- return helpText();
189
+ catch (error) {
190
+ return `Error: ${error instanceof Error ? error.message : String(error)}`;
191
191
  }
192
192
  }
193
193
  function helpText() {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/skills/bundled/auto-reply/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/skills/bundled/auto-reply/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,242 @@
1
+ ---
2
+ name: automation
3
+ description: "Schedule cron jobs, manage webhooks, and automate recurring tasks"
4
+ emoji: "⏰"
5
+ ---
6
+
7
+ # Automation - Complete API Reference
8
+
9
+ Schedule recurring tasks with cron expressions, manage incoming webhooks, and automate workflows.
10
+
11
+ ---
12
+
13
+ ## Chat Commands
14
+
15
+ ### Cron Jobs
16
+
17
+ ```
18
+ /cron list # List all scheduled jobs
19
+ /cron add "0 9 * * *" "scan for arbs" # Add daily 9am job
20
+ /cron add "*/30 * * * *" "check prices" # Every 30 minutes
21
+ /cron remove <job-id> # Remove job
22
+ /cron enable <job-id> # Enable job
23
+ /cron disable <job-id> # Disable job
24
+ /cron run <job-id> # Run job now
25
+ /cron history <job-id> # View run history
26
+ ```
27
+
28
+ ### Webhooks
29
+
30
+ ```
31
+ /webhook list # List webhooks
32
+ /webhook add <name> <url> # Add webhook endpoint
33
+ /webhook remove <name> # Remove webhook
34
+ /webhook test <name> # Send test payload
35
+ /webhook logs <name> # View webhook logs
36
+ ```
37
+
38
+ ### Heartbeat
39
+
40
+ ```
41
+ /heartbeat config --interval 60 # Set heartbeat interval
42
+ /heartbeat status # View heartbeat status
43
+ /heartbeat enable # Enable heartbeats
44
+ /heartbeat disable # Disable heartbeats
45
+ ```
46
+
47
+ ---
48
+
49
+ ## TypeScript API Reference
50
+
51
+ ### Cron Scheduler
52
+
53
+ ```typescript
54
+ import { createCronScheduler } from 'clodds/automation';
55
+
56
+ const cron = createCronScheduler({
57
+ timezone: 'America/New_York',
58
+ autoStart: true,
59
+ });
60
+
61
+ // Add a job
62
+ const jobId = cron.addJob({
63
+ name: 'daily-arb-scan',
64
+ schedule: '0 9 * * *', // 9am daily
65
+ task: async () => {
66
+ console.log('Running arbitrage scan...');
67
+ // Your logic here
68
+ },
69
+ enabled: true,
70
+ });
71
+
72
+ // List jobs
73
+ const jobs = cron.listJobs();
74
+ for (const job of jobs) {
75
+ console.log(`${job.id}: ${job.name} (${job.schedule})`);
76
+ console.log(` Next run: ${job.nextRun}`);
77
+ console.log(` Enabled: ${job.enabled}`);
78
+ }
79
+
80
+ // Remove job
81
+ cron.removeJob(jobId);
82
+
83
+ // Enable/disable
84
+ cron.enableJob(jobId);
85
+ cron.disableJob(jobId);
86
+
87
+ // Run immediately
88
+ await cron.runJob(jobId);
89
+
90
+ // Get history
91
+ const history = cron.getHistory(jobId, { limit: 10 });
92
+ for (const run of history) {
93
+ console.log(`${run.timestamp}: ${run.status} (${run.duration}ms)`);
94
+ }
95
+ ```
96
+
97
+ ### Cron Expressions
98
+
99
+ | Expression | Description |
100
+ |------------|-------------|
101
+ | `* * * * *` | Every minute |
102
+ | `0 * * * *` | Every hour |
103
+ | `0 9 * * *` | Daily at 9am |
104
+ | `0 9 * * 1-5` | Weekdays at 9am |
105
+ | `*/15 * * * *` | Every 15 minutes |
106
+ | `0 0 1 * *` | First of month |
107
+
108
+ ### Webhook Manager
109
+
110
+ ```typescript
111
+ import { createWebhookManager } from 'clodds/automation';
112
+
113
+ const webhooks = createWebhookManager({
114
+ secret: process.env.WEBHOOK_SECRET,
115
+ validateSignatures: true,
116
+ });
117
+
118
+ // Register webhook endpoint
119
+ webhooks.register({
120
+ name: 'trade-alerts',
121
+ handler: async (payload) => {
122
+ console.log('Received:', payload);
123
+ // Process webhook
124
+ return { status: 'ok' };
125
+ },
126
+ validatePayload: (payload) => {
127
+ return payload.type && payload.data;
128
+ },
129
+ });
130
+
131
+ // Get webhook URL
132
+ const url = webhooks.getUrl('trade-alerts');
133
+ console.log(`Webhook URL: ${url}`);
134
+
135
+ // Send test
136
+ await webhooks.test('trade-alerts', {
137
+ type: 'test',
138
+ data: { message: 'Hello' },
139
+ });
140
+
141
+ // View logs
142
+ const logs = webhooks.getLogs('trade-alerts', { limit: 10 });
143
+ for (const log of logs) {
144
+ console.log(`${log.timestamp}: ${log.status}`);
145
+ console.log(` Payload: ${JSON.stringify(log.payload)}`);
146
+ }
147
+
148
+ // Remove webhook
149
+ webhooks.remove('trade-alerts');
150
+ ```
151
+
152
+ ### Heartbeat Service
153
+
154
+ ```typescript
155
+ import { createHeartbeatService } from 'clodds/automation';
156
+
157
+ const heartbeat = createHeartbeatService({
158
+ intervalMs: 60000, // 1 minute
159
+ endpoint: 'https://healthcheck.example.com/ping',
160
+ onFailure: (error) => {
161
+ console.error('Heartbeat failed:', error);
162
+ },
163
+ });
164
+
165
+ // Start
166
+ heartbeat.start();
167
+
168
+ // Get status
169
+ const status = heartbeat.getStatus();
170
+ console.log(`Last ping: ${status.lastPing}`);
171
+ console.log(`Failures: ${status.failures}`);
172
+ console.log(`Uptime: ${status.uptime}%`);
173
+
174
+ // Stop
175
+ heartbeat.stop();
176
+ ```
177
+
178
+ ---
179
+
180
+ ## Example Automations
181
+
182
+ ### Daily Arbitrage Scan
183
+
184
+ ```typescript
185
+ cron.addJob({
186
+ name: 'daily-arb',
187
+ schedule: '0 9,12,15,18 * * *', // 9am, 12pm, 3pm, 6pm
188
+ task: async () => {
189
+ const opportunities = await opportunityFinder.scan();
190
+ if (opportunities.length > 0) {
191
+ await notify(`Found ${opportunities.length} arbitrage opportunities`);
192
+ }
193
+ },
194
+ });
195
+ ```
196
+
197
+ ### Portfolio Snapshot
198
+
199
+ ```typescript
200
+ cron.addJob({
201
+ name: 'portfolio-snapshot',
202
+ schedule: '0 0 * * *', // Midnight daily
203
+ task: async () => {
204
+ const portfolio = await trading.getPortfolio();
205
+ await database.saveSnapshot({
206
+ timestamp: Date.now(),
207
+ value: portfolio.totalValue,
208
+ positions: portfolio.positions.length,
209
+ });
210
+ },
211
+ });
212
+ ```
213
+
214
+ ### Webhook for External Signals
215
+
216
+ ```typescript
217
+ webhooks.register({
218
+ name: 'external-signals',
219
+ handler: async (payload) => {
220
+ if (payload.signal === 'buy') {
221
+ await executor.marketBuy({
222
+ platform: 'polymarket',
223
+ marketId: payload.marketId,
224
+ side: 'YES',
225
+ size: 100,
226
+ });
227
+ }
228
+ return { executed: true };
229
+ },
230
+ });
231
+ ```
232
+
233
+ ---
234
+
235
+ ## Best Practices
236
+
237
+ 1. **Use meaningful job names** - Easy to identify later
238
+ 2. **Set appropriate intervals** - Don't spam APIs
239
+ 3. **Handle failures gracefully** - Add retry logic
240
+ 4. **Monitor job history** - Check for failures
241
+ 5. **Validate webhook payloads** - Prevent bad data
242
+ 6. **Use heartbeats** - Know when system is down
@@ -134,8 +134,8 @@ async function execute(args) {
134
134
  return helpText();
135
135
  }
136
136
  }
137
- catch {
138
- return helpText();
137
+ catch (error) {
138
+ return `Error: ${error instanceof Error ? error.message : String(error)}`;
139
139
  }
140
140
  }
141
141
  function helpText() {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/skills/bundled/automation/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/skills/bundled/automation/index.ts"],"names":[],"mappings":"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"}