@catalyst-team/poly-mcp 0.1.0 → 0.1.2

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 (114) hide show
  1. package/README.md +384 -221
  2. package/dist/errors.d.ts +11 -0
  3. package/dist/errors.d.ts.map +1 -1
  4. package/dist/errors.js +13 -2
  5. package/dist/errors.js.map +1 -1
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +98 -5
  8. package/dist/index.js.map +1 -1
  9. package/dist/sdk-instance.d.ts +27 -0
  10. package/dist/sdk-instance.d.ts.map +1 -0
  11. package/dist/sdk-instance.js +64 -0
  12. package/dist/sdk-instance.js.map +1 -0
  13. package/dist/server.d.ts +13 -1
  14. package/dist/server.d.ts.map +1 -1
  15. package/dist/server.js +29 -27
  16. package/dist/server.js.map +1 -1
  17. package/dist/tools/guide.d.ts.map +1 -1
  18. package/dist/tools/guide.js +159 -1
  19. package/dist/tools/guide.js.map +1 -1
  20. package/dist/tools/index.d.ts +8 -4
  21. package/dist/tools/index.d.ts.map +1 -1
  22. package/dist/tools/index.js +20 -4
  23. package/dist/tools/index.js.map +1 -1
  24. package/dist/tools/insider-detection.d.ts +175 -0
  25. package/dist/tools/insider-detection.d.ts.map +1 -0
  26. package/dist/tools/insider-detection.js +654 -0
  27. package/dist/tools/insider-detection.js.map +1 -0
  28. package/dist/tools/insider-signals.d.ts +56 -0
  29. package/dist/tools/insider-signals.d.ts.map +1 -0
  30. package/dist/tools/insider-signals.js +170 -0
  31. package/dist/tools/insider-signals.js.map +1 -0
  32. package/dist/tools/market.d.ts +25 -1
  33. package/dist/tools/market.d.ts.map +1 -1
  34. package/dist/tools/market.js +504 -12
  35. package/dist/tools/market.js.map +1 -1
  36. package/dist/tools/onchain.d.ts +240 -0
  37. package/dist/tools/onchain.d.ts.map +1 -0
  38. package/dist/tools/onchain.js +610 -0
  39. package/dist/tools/onchain.js.map +1 -0
  40. package/dist/tools/order.d.ts.map +1 -1
  41. package/dist/tools/order.js +13 -6
  42. package/dist/tools/order.js.map +1 -1
  43. package/dist/tools/trade.d.ts +15 -0
  44. package/dist/tools/trade.d.ts.map +1 -1
  45. package/dist/tools/trade.js +216 -39
  46. package/dist/tools/trade.js.map +1 -1
  47. package/dist/tools/trader.d.ts +4 -1
  48. package/dist/tools/trader.d.ts.map +1 -1
  49. package/dist/tools/trader.js +316 -4
  50. package/dist/tools/trader.js.map +1 -1
  51. package/dist/tools/wallet-classification.d.ts +166 -0
  52. package/dist/tools/wallet-classification.d.ts.map +1 -0
  53. package/dist/tools/wallet-classification.js +455 -0
  54. package/dist/tools/wallet-classification.js.map +1 -0
  55. package/dist/tools/wallet.d.ts +56 -7
  56. package/dist/tools/wallet.d.ts.map +1 -1
  57. package/dist/tools/wallet.js +141 -20
  58. package/dist/tools/wallet.js.map +1 -1
  59. package/dist/types.d.ts +269 -10
  60. package/dist/types.d.ts.map +1 -1
  61. package/dist/wallet-manager.d.ts +67 -0
  62. package/dist/wallet-manager.d.ts.map +1 -0
  63. package/dist/wallet-manager.js +180 -0
  64. package/dist/wallet-manager.js.map +1 -0
  65. package/docs/01-mcp.md +554 -32
  66. package/docs/02-wallet-deep-research.md +344 -0
  67. package/docs/e2e/01-trader-tools.md +159 -0
  68. package/docs/e2e/02-market-tools.md +180 -0
  69. package/docs/e2e/03-order-tools.md +166 -0
  70. package/docs/e2e/04-wallet-tools.md +224 -0
  71. package/docs/e2e/05-trading-tools.md +327 -0
  72. package/docs/e2e/06-integration-scenarios.md +481 -0
  73. package/docs/e2e/coordinator.md +376 -0
  74. package/docs/e2e-02/00-gap-analysis.md +211 -0
  75. package/docs/e2e-02/01-test-scenarios.md +530 -0
  76. package/docs/e2e-02/02-implementation-plan.md +190 -0
  77. package/docs/e2e-02/README.md +102 -0
  78. package/docs/reports/simonbanza-strategy-analysis-2025-12-25.md +420 -0
  79. package/docs/reports/smart-money-analysis-2025-12-23-cn.md +840 -0
  80. package/docs/reports/smart-money-trading-strategies-2025-12-25.md +440 -0
  81. package/docs/reports/weekly/01-v2.5.md +352 -0
  82. package/docs/reports/weekly/01.md +402 -0
  83. package/docs/reports/weekly/02-deep.md +558 -0
  84. package/docs/reports/weekly/02.md +505 -0
  85. package/docs/reports/weekly/03.md +437 -0
  86. package/docs/reports/weekly/04.md +418 -0
  87. package/docs/reports/weekly/05.md +485 -0
  88. package/docs/reports/weekly/06.md +436 -0
  89. package/docs/reports/weekly/07.md +381 -0
  90. package/docs/reports/weekly/08.md +502 -0
  91. package/docs/reports/weekly/09.md +441 -0
  92. package/docs/reports/weekly/10.md +511 -0
  93. package/docs/reports/weekly/README.md +188 -0
  94. package/docs/reports/weekly/prompt-v2.5.md +1019 -0
  95. package/docs/reports/weekly/prompt-v3.md +432 -0
  96. package/docs/reports/weekly/prompt.md +841 -0
  97. package/package.json +3 -2
  98. package/src/errors.ts +13 -2
  99. package/src/index.ts +286 -1
  100. package/src/sdk-instance.ts +78 -0
  101. package/src/server.ts +30 -28
  102. package/src/tools/guide.ts +160 -1
  103. package/src/tools/index.ts +65 -0
  104. package/src/tools/insider-detection.ts +899 -0
  105. package/src/tools/insider-signals.ts +213 -0
  106. package/src/tools/market.ts +569 -12
  107. package/src/tools/onchain.ts +738 -0
  108. package/src/tools/order.ts +25 -12
  109. package/src/tools/trade.ts +265 -53
  110. package/src/tools/trader.ts +350 -4
  111. package/src/tools/wallet-classification.ts +587 -0
  112. package/src/tools/wallet.ts +172 -23
  113. package/src/types.ts +294 -11
  114. package/src/wallet-manager.ts +209 -0
@@ -5,7 +5,7 @@ import { validateAddress, wrapError } from '../errors.js';
5
5
  export const traderToolDefinitions = [
6
6
  {
7
7
  name: 'get_trader_positions',
8
- description: 'Get all positions held by a trader with PnL breakdown',
8
+ description: 'Get open positions held by a trader with PnL breakdown. Supports pagination for wallets with many positions.',
9
9
  inputSchema: {
10
10
  type: 'object',
11
11
  properties: {
@@ -13,6 +13,28 @@ export const traderToolDefinitions = [
13
13
  type: 'string',
14
14
  description: 'Trader wallet address (0x...)',
15
15
  },
16
+ limit: {
17
+ type: 'number',
18
+ description: 'Maximum positions to return (max 500, default 100)',
19
+ default: 100,
20
+ },
21
+ offset: {
22
+ type: 'number',
23
+ description: 'Pagination offset (0-10000). Use with limit for paginating through many positions.',
24
+ default: 0,
25
+ },
26
+ sortBy: {
27
+ type: 'string',
28
+ enum: ['CASHPNL', 'PERCENTPNL', 'CURRENT', 'INITIAL', 'TOKENS', 'TITLE', 'PRICE', 'AVGPRICE'],
29
+ description: 'Sort field (default: CASHPNL for unrealized PnL)',
30
+ default: 'CASHPNL',
31
+ },
32
+ sortDirection: {
33
+ type: 'string',
34
+ enum: ['ASC', 'DESC'],
35
+ description: 'Sort direction',
36
+ default: 'DESC',
37
+ },
16
38
  },
17
39
  required: ['address'],
18
40
  },
@@ -41,6 +63,62 @@ export const traderToolDefinitions = [
41
63
  required: ['address'],
42
64
  },
43
65
  },
66
+ {
67
+ name: 'get_trader_activity',
68
+ description: 'Get complete activity history for a trader including TRADE, SPLIT, MERGE, REDEEM, REWARD, CONVERSION. Supports pagination, time filtering, and fetchAll mode for complete history.',
69
+ inputSchema: {
70
+ type: 'object',
71
+ properties: {
72
+ address: {
73
+ type: 'string',
74
+ description: 'Trader wallet address (0x...)',
75
+ },
76
+ limit: {
77
+ type: 'number',
78
+ description: 'Maximum number of activities to return per page (max 500). Ignored when fetchAll=true.',
79
+ default: 100,
80
+ },
81
+ offset: {
82
+ type: 'number',
83
+ description: 'Pagination offset (0-10000). Use with limit for paginating through complete history. Ignored when fetchAll=true.',
84
+ default: 0,
85
+ },
86
+ start: {
87
+ type: 'number',
88
+ description: 'Start timestamp (Unix seconds). Filter activities after this time.',
89
+ },
90
+ end: {
91
+ type: 'number',
92
+ description: 'End timestamp (Unix seconds). Filter activities before this time.',
93
+ },
94
+ type: {
95
+ type: 'string',
96
+ enum: ['TRADE', 'SPLIT', 'MERGE', 'REDEEM', 'REWARD', 'CONVERSION'],
97
+ description: 'Filter by activity type',
98
+ },
99
+ side: {
100
+ type: 'string',
101
+ enum: ['BUY', 'SELL'],
102
+ description: 'Filter by trade side',
103
+ },
104
+ market: {
105
+ type: 'string',
106
+ description: 'Filter by market conditionId',
107
+ },
108
+ fetchAll: {
109
+ type: 'boolean',
110
+ description: 'Fetch ALL activities with auto-pagination (up to maxItems). Use for complete history analysis.',
111
+ default: false,
112
+ },
113
+ maxItems: {
114
+ type: 'number',
115
+ description: 'Maximum items to fetch when fetchAll=true (default 10000, max 10000)',
116
+ default: 10000,
117
+ },
118
+ },
119
+ required: ['address'],
120
+ },
121
+ },
44
122
  {
45
123
  name: 'get_trader_profile',
46
124
  description: 'Get comprehensive trader profile with performance metrics',
@@ -57,7 +135,7 @@ export const traderToolDefinitions = [
57
135
  },
58
136
  {
59
137
  name: 'get_leaderboard',
60
- description: 'Get top traders by PnL',
138
+ description: 'Get top traders by PnL. Supports filtering by time period (day/week/month).',
61
139
  inputSchema: {
62
140
  type: 'object',
63
141
  properties: {
@@ -71,14 +149,86 @@ export const traderToolDefinitions = [
71
149
  description: 'Pagination offset',
72
150
  default: 0,
73
151
  },
152
+ period: {
153
+ type: 'string',
154
+ enum: ['day', 'week', 'month', 'all'],
155
+ description: 'Time period filter: day (24h), week (7d), month (30d), or all (all-time)',
156
+ default: 'all',
157
+ },
158
+ sortBy: {
159
+ type: 'string',
160
+ enum: ['pnl', 'volume'],
161
+ description: 'Sort by PnL or volume',
162
+ default: 'pnl',
163
+ },
164
+ },
165
+ },
166
+ },
167
+ {
168
+ name: 'get_trader_closed_positions',
169
+ description: 'Get closed/settled positions for a trader with realized PnL. Supports pagination for complete history analysis.',
170
+ inputSchema: {
171
+ type: 'object',
172
+ properties: {
173
+ address: {
174
+ type: 'string',
175
+ description: 'Trader wallet address (0x...)',
176
+ },
177
+ limit: {
178
+ type: 'number',
179
+ description: 'Maximum positions to return (max 50)',
180
+ default: 50,
181
+ },
182
+ offset: {
183
+ type: 'number',
184
+ description: 'Pagination offset (0-100000). Use with limit for paginating through complete history.',
185
+ default: 0,
186
+ },
187
+ sortBy: {
188
+ type: 'string',
189
+ enum: ['REALIZEDPNL', 'TIMESTAMP', 'TITLE', 'PRICE', 'AVGPRICE'],
190
+ description: 'Sort by field',
191
+ default: 'REALIZEDPNL',
192
+ },
193
+ sortDirection: {
194
+ type: 'string',
195
+ enum: ['ASC', 'DESC'],
196
+ description: 'Sort direction (DESC for highest PnL first, ASC for lowest first)',
197
+ default: 'DESC',
198
+ },
74
199
  },
200
+ required: ['address'],
201
+ },
202
+ },
203
+ {
204
+ name: 'get_account_value',
205
+ description: 'Get total value of a user\'s positions',
206
+ inputSchema: {
207
+ type: 'object',
208
+ properties: {
209
+ address: {
210
+ type: 'string',
211
+ description: 'User wallet address (0x...)',
212
+ },
213
+ market: {
214
+ type: 'array',
215
+ items: { type: 'string' },
216
+ description: 'Optional: filter by specific market conditionIds',
217
+ },
218
+ },
219
+ required: ['address'],
75
220
  },
76
221
  },
77
222
  ];
78
223
  export async function handleGetTraderPositions(sdk, input) {
79
224
  validateAddress(input.address);
80
225
  try {
81
- const positions = await sdk.wallets.getWalletPositions(input.address);
226
+ const positions = await sdk.dataApi.getPositions(input.address, {
227
+ limit: input.limit,
228
+ offset: input.offset,
229
+ sortBy: input.sortBy,
230
+ sortDirection: input.sortDirection,
231
+ });
82
232
  const totalUnrealizedPnl = positions.reduce((sum, p) => sum + (p.cashPnl || 0), 0);
83
233
  const totalRealizedPnl = positions.reduce((sum, p) => sum + (p.realizedPnl || 0), 0);
84
234
  const winningPositions = positions.filter((p) => (p.cashPnl || 0) > 0).length;
@@ -172,6 +322,81 @@ export async function handleGetTraderTrades(sdk, input) {
172
322
  throw wrapError(err);
173
323
  }
174
324
  }
325
+ export async function handleGetTraderActivity(sdk, input) {
326
+ validateAddress(input.address);
327
+ try {
328
+ let activities;
329
+ if (input.fetchAll) {
330
+ // Use getAllActivity for complete history with auto-pagination
331
+ const maxItems = Math.min(input.maxItems || 10000, 10000);
332
+ activities = await sdk.dataApi.getAllActivity(input.address, {
333
+ start: input.start,
334
+ end: input.end,
335
+ type: input.type,
336
+ side: input.side,
337
+ market: input.market ? [input.market] : undefined,
338
+ }, maxItems);
339
+ }
340
+ else {
341
+ // Use getActivity for single page with pagination
342
+ activities = await sdk.dataApi.getActivity(input.address, {
343
+ limit: input.limit || 100,
344
+ offset: input.offset,
345
+ start: input.start,
346
+ end: input.end,
347
+ type: input.type,
348
+ side: input.side,
349
+ market: input.market ? [input.market] : undefined,
350
+ });
351
+ }
352
+ // Count by type
353
+ const byType = {};
354
+ for (const a of activities) {
355
+ byType[a.type] = (byType[a.type] || 0) + 1;
356
+ }
357
+ const totalVolume = activities.reduce((sum, a) => sum + (a.usdcSize || a.size * (a.price || 0)), 0);
358
+ // Time range analysis (if we have activities)
359
+ let timeRange;
360
+ if (activities.length > 0) {
361
+ const timestamps = activities.map((a) => a.timestamp);
362
+ timeRange = {
363
+ earliest: new Date(Math.min(...timestamps)).toISOString(),
364
+ latest: new Date(Math.max(...timestamps)).toISOString(),
365
+ };
366
+ }
367
+ return {
368
+ trader: {
369
+ address: input.address,
370
+ displayName: null,
371
+ },
372
+ activities: activities.map((a) => ({
373
+ type: a.type,
374
+ side: a.side,
375
+ market: {
376
+ conditionId: a.conditionId,
377
+ title: a.title || '',
378
+ slug: a.slug,
379
+ },
380
+ outcome: a.outcome,
381
+ size: a.size,
382
+ price: a.price,
383
+ usdcValue: a.usdcSize || a.size * (a.price || 0),
384
+ timestamp: new Date(a.timestamp).toISOString(),
385
+ txHash: a.transactionHash,
386
+ })),
387
+ summary: {
388
+ total: activities.length,
389
+ byType,
390
+ totalVolume,
391
+ ...(input.fetchAll && { fetchedAll: true, maxItems: input.maxItems || 10000 }),
392
+ ...(timeRange && { timeRange }),
393
+ },
394
+ };
395
+ }
396
+ catch (err) {
397
+ throw wrapError(err);
398
+ }
399
+ }
175
400
  export async function handleGetTraderProfile(sdk, input) {
176
401
  validateAddress(input.address);
177
402
  try {
@@ -248,7 +473,31 @@ export async function handleGetTraderProfile(sdk, input) {
248
473
  export async function handleGetLeaderboard(sdk, input) {
249
474
  const limit = input.limit || 10;
250
475
  const offset = input.offset || 0;
476
+ const period = input.period || 'all';
477
+ const sortBy = input.sortBy || 'pnl';
251
478
  try {
479
+ // Use period-based leaderboard if period is specified
480
+ if (period !== 'all' || sortBy !== 'pnl') {
481
+ const entries = await sdk.wallets.getLeaderboardByPeriod(period, limit, sortBy);
482
+ return {
483
+ traders: entries.map((e) => ({
484
+ rank: e.rank,
485
+ address: e.address,
486
+ displayName: e.userName || null,
487
+ pnl: e.pnl,
488
+ volume: e.volume,
489
+ verified: false,
490
+ })),
491
+ pagination: {
492
+ total: entries.length,
493
+ offset: 0,
494
+ limit,
495
+ },
496
+ period,
497
+ sortBy,
498
+ };
499
+ }
500
+ // Default: all-time leaderboard with pagination
252
501
  const page = Math.floor(offset / 50);
253
502
  const leaderboard = await sdk.wallets.getLeaderboard(page, 50);
254
503
  // Apply offset and limit within the page
@@ -264,10 +513,73 @@ export async function handleGetLeaderboard(sdk, input) {
264
513
  verified: e.verifiedBadge || false,
265
514
  })),
266
515
  pagination: {
267
- total: leaderboard.total,
516
+ // No total from API, estimate based on hasMore
517
+ total: leaderboard.hasMore ? offset + limit + 1 : offset + entries.length,
268
518
  offset,
269
519
  limit,
270
520
  },
521
+ period: 'all',
522
+ sortBy: 'pnl',
523
+ };
524
+ }
525
+ catch (err) {
526
+ throw wrapError(err);
527
+ }
528
+ }
529
+ export async function handleGetClosedPositions(sdk, input) {
530
+ validateAddress(input.address);
531
+ try {
532
+ const closedPositions = await sdk.dataApi.getClosedPositions(input.address, {
533
+ limit: input.limit || 50,
534
+ offset: input.offset,
535
+ sortBy: input.sortBy || 'REALIZEDPNL',
536
+ sortDirection: input.sortDirection || 'DESC',
537
+ });
538
+ const totalRealizedPnl = closedPositions.reduce((sum, p) => sum + (p.realizedPnl || 0), 0);
539
+ const winningPositions = closedPositions.filter((p) => (p.realizedPnl || 0) > 0).length;
540
+ const losingPositions = closedPositions.filter((p) => (p.realizedPnl || 0) < 0).length;
541
+ return {
542
+ trader: {
543
+ address: input.address,
544
+ displayName: null,
545
+ },
546
+ closedPositions: closedPositions.map((p) => ({
547
+ market: {
548
+ conditionId: p.conditionId,
549
+ title: p.title,
550
+ slug: p.slug,
551
+ },
552
+ holding: {
553
+ outcome: p.outcome,
554
+ avgPrice: p.avgPrice,
555
+ settlementPrice: p.curPrice, // curPrice is settlement price for closed positions
556
+ },
557
+ pnl: {
558
+ realized: p.realizedPnl,
559
+ totalBought: p.totalBought,
560
+ },
561
+ settledAt: new Date(p.timestamp).toISOString(),
562
+ })),
563
+ summary: {
564
+ totalClosed: closedPositions.length,
565
+ totalRealizedPnl,
566
+ winningPositions,
567
+ losingPositions,
568
+ },
569
+ };
570
+ }
571
+ catch (err) {
572
+ throw wrapError(err);
573
+ }
574
+ }
575
+ export async function handleGetAccountValue(sdk, input) {
576
+ validateAddress(input.address);
577
+ try {
578
+ const result = await sdk.dataApi.getAccountValue(input.address, input.market);
579
+ return {
580
+ address: result.user,
581
+ value: result.value,
582
+ currency: 'USDC',
271
583
  };
272
584
  }
273
585
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"trader.js","sourceRoot":"","sources":["../../src/tools/trader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trader.js","sourceRoot":"","sources":["../../src/tools/trader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,166 @@
1
+ /**
2
+ * Wallet Classification Tools - MCP tools for system-level wallet tagging
3
+ *
4
+ * These tools enable Agent to classify wallets with tags based on analysis.
5
+ * Uses WalletClassificationService from @catalyst-team/smart-money package.
6
+ *
7
+ * Key features:
8
+ * - System-level classification (not user-personal like StarList)
9
+ * - 22 predefined tags across 7 categories
10
+ * - Agent can dynamically add new tag definitions
11
+ * - Persistent storage in ~/.polymarket/wallet-classifications.json
12
+ */
13
+ import type { PolymarketSDK } from '@catalyst-team/poly-sdk';
14
+ import { type TagCategory, type ClassificationMetrics } from '@catalyst-team/smart-money';
15
+ import type { ToolDefinition } from '../types.js';
16
+ export declare const walletClassificationToolDefinitions: ToolDefinition[];
17
+ interface GetTagDefinitionsInput {
18
+ category?: TagCategory;
19
+ }
20
+ interface AddTagDefinitionInput {
21
+ id: string;
22
+ name: string;
23
+ description: string;
24
+ category: TagCategory;
25
+ criteria?: string;
26
+ }
27
+ interface GetWalletClassificationInput {
28
+ address: string;
29
+ }
30
+ interface ClassifyWalletInput {
31
+ address: string;
32
+ tags: string[];
33
+ confidence?: number;
34
+ metrics?: ClassificationMetrics;
35
+ notes?: string;
36
+ }
37
+ interface GetWalletsByTagInput {
38
+ tagId: string;
39
+ limit?: number;
40
+ sortBy?: 'confidence' | 'analyzedAt';
41
+ sortOrder?: 'asc' | 'desc';
42
+ }
43
+ interface RemoveWalletTagInput {
44
+ address: string;
45
+ tagId: string;
46
+ }
47
+ /**
48
+ * Get all tag definitions
49
+ */
50
+ export declare function handleGetTagDefinitions(_sdk: PolymarketSDK, input: GetTagDefinitionsInput): Promise<{
51
+ tags: {
52
+ id: string;
53
+ name: string;
54
+ description: string;
55
+ category: TagCategory;
56
+ criteria: string | undefined;
57
+ createdBy: "system" | "agent";
58
+ }[];
59
+ totalCount: number;
60
+ byCategory: {
61
+ category: string;
62
+ count: number;
63
+ tags: string[];
64
+ }[];
65
+ categories: string[];
66
+ }>;
67
+ /**
68
+ * Add a new tag definition
69
+ */
70
+ export declare function handleAddTagDefinition(_sdk: PolymarketSDK, input: AddTagDefinitionInput): Promise<{
71
+ success: boolean;
72
+ tag: {
73
+ id: string;
74
+ name: string;
75
+ description: string;
76
+ category: TagCategory;
77
+ criteria: string | undefined;
78
+ createdBy: "system" | "agent";
79
+ createdAt: string;
80
+ };
81
+ message: string;
82
+ }>;
83
+ /**
84
+ * Get wallet classification
85
+ */
86
+ export declare function handleGetWalletClassification(_sdk: PolymarketSDK, input: GetWalletClassificationInput): Promise<{
87
+ found: boolean;
88
+ address: string;
89
+ message: string;
90
+ tags?: undefined;
91
+ tagIds?: undefined;
92
+ confidence?: undefined;
93
+ analyzedAt?: undefined;
94
+ analyzedBy?: undefined;
95
+ metrics?: undefined;
96
+ notes?: undefined;
97
+ } | {
98
+ found: boolean;
99
+ address: string;
100
+ tags: {
101
+ id: string;
102
+ name: string;
103
+ category: string;
104
+ }[];
105
+ tagIds: string[];
106
+ confidence: number;
107
+ analyzedAt: string;
108
+ analyzedBy: "agent" | "scheduler" | "manual";
109
+ metrics: ClassificationMetrics | null;
110
+ notes: string | null;
111
+ message?: undefined;
112
+ }>;
113
+ /**
114
+ * Classify a wallet with tags
115
+ */
116
+ export declare function handleClassifyWallet(_sdk: PolymarketSDK, input: ClassifyWalletInput): Promise<{
117
+ success: boolean;
118
+ address: string;
119
+ tags: {
120
+ id: string;
121
+ name: string;
122
+ category: string;
123
+ }[];
124
+ confidence: number;
125
+ analyzedAt: string;
126
+ analyzedBy: "agent" | "scheduler" | "manual";
127
+ metrics: ClassificationMetrics | null;
128
+ notes: string | null;
129
+ message: string;
130
+ }>;
131
+ /**
132
+ * Get wallets by tag
133
+ */
134
+ export declare function handleGetWalletsByTag(_sdk: PolymarketSDK, input: GetWalletsByTagInput): Promise<{
135
+ tag: {
136
+ id: string;
137
+ name: string;
138
+ description: string;
139
+ category: TagCategory;
140
+ };
141
+ wallets: {
142
+ address: string;
143
+ allTags: string[];
144
+ confidence: number;
145
+ analyzedAt: string;
146
+ analyzedBy: "agent" | "scheduler" | "manual";
147
+ metrics: ClassificationMetrics | null;
148
+ }[];
149
+ totalCount: number;
150
+ }>;
151
+ /**
152
+ * Remove a tag from a wallet
153
+ */
154
+ export declare function handleRemoveWalletTag(_sdk: PolymarketSDK, input: RemoveWalletTagInput): Promise<{
155
+ success: boolean;
156
+ address: string;
157
+ message: string;
158
+ remainingTags?: undefined;
159
+ } | {
160
+ success: boolean;
161
+ address: string;
162
+ remainingTags: string[];
163
+ message: string;
164
+ }>;
165
+ export {};
166
+ //# sourceMappingURL=wallet-classification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet-classification.d.ts","sourceRoot":"","sources":["../../src/tools/wallet-classification.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAEL,KAAK,WAAW,EAKhB,KAAK,qBAAqB,EAC3B,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAiBlD,eAAO,MAAM,mCAAmC,EAAE,cAAc,EA2L/D,CAAC;AAIF,UAAU,sBAAsB;IAC9B,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,UAAU,qBAAqB;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,WAAW,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,4BAA4B;IACpC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,mBAAmB;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,oBAAoB;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC;IACrC,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAC5B;AAED,UAAU,oBAAoB;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAID;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,aAAa,EACnB,KAAK,EAAE,sBAAsB;;;;;;;;;;;;;;;;GA2C9B;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,aAAa,EACnB,KAAK,EAAE,qBAAqB;;;;;;;;;;;;GA8C7B;AAID;;GAEG;AACH,wBAAsB,6BAA6B,CACjD,IAAI,EAAE,aAAa,EACnB,KAAK,EAAE,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CpC;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,aAAa,EACnB,KAAK,EAAE,mBAAmB;;;;;;;;;;;;;;GAuE3B;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,aAAa,EACnB,KAAK,EAAE,oBAAoB;;;;;;;;;;;;;;;;GAsC5B;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,aAAa,EACnB,KAAK,EAAE,oBAAoB;;;;;;;;;;GA+B5B"}