@0xinsider/mcp 1.0.0 → 1.0.9

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 (54) hide show
  1. package/README.md +67 -7
  2. package/dist/cli-lib.d.ts +15 -0
  3. package/dist/cli-lib.d.ts.map +1 -1
  4. package/dist/cli-lib.js +231 -53
  5. package/dist/cli-lib.js.map +1 -1
  6. package/dist/client.d.ts +5 -0
  7. package/dist/client.d.ts.map +1 -1
  8. package/dist/client.js +30 -4
  9. package/dist/client.js.map +1 -1
  10. package/dist/constants.d.ts +2 -1
  11. package/dist/constants.d.ts.map +1 -1
  12. package/dist/constants.js +25 -1
  13. package/dist/constants.js.map +1 -1
  14. package/dist/prompts/index.js +3 -3
  15. package/dist/prompts/index.js.map +1 -1
  16. package/dist/server.d.ts.map +1 -1
  17. package/dist/server.js +32 -2
  18. package/dist/server.js.map +1 -1
  19. package/dist/tools/explore-markets.d.ts +36 -0
  20. package/dist/tools/explore-markets.d.ts.map +1 -0
  21. package/dist/tools/explore-markets.js +77 -0
  22. package/dist/tools/explore-markets.js.map +1 -0
  23. package/dist/tools/get-insider-radar.js +1 -1
  24. package/dist/tools/get-large-positions.d.ts +21 -0
  25. package/dist/tools/get-large-positions.d.ts.map +1 -0
  26. package/dist/tools/get-large-positions.js +68 -0
  27. package/dist/tools/get-large-positions.js.map +1 -0
  28. package/dist/tools/get-position-timeline.d.ts +24 -0
  29. package/dist/tools/get-position-timeline.d.ts.map +1 -0
  30. package/dist/tools/get-position-timeline.js +79 -0
  31. package/dist/tools/get-position-timeline.js.map +1 -0
  32. package/dist/tools/get-positions.d.ts +21 -0
  33. package/dist/tools/get-positions.d.ts.map +1 -0
  34. package/dist/tools/get-positions.js +68 -0
  35. package/dist/tools/get-positions.js.map +1 -0
  36. package/dist/tools/get-trader-pnl.d.ts +6 -0
  37. package/dist/tools/get-trader-pnl.d.ts.map +1 -0
  38. package/dist/tools/get-trader-pnl.js +39 -0
  39. package/dist/tools/get-trader-pnl.js.map +1 -0
  40. package/dist/tools/get-trader.d.ts +2 -0
  41. package/dist/tools/get-trader.d.ts.map +1 -1
  42. package/dist/tools/get-trader.js +13 -11
  43. package/dist/tools/get-trader.js.map +1 -1
  44. package/dist/tools/get-trending-wallets.d.ts +15 -0
  45. package/dist/tools/get-trending-wallets.d.ts.map +1 -0
  46. package/dist/tools/get-trending-wallets.js +56 -0
  47. package/dist/tools/get-trending-wallets.js.map +1 -0
  48. package/dist/tools/get-whale-trades.js +1 -1
  49. package/dist/tools/get-whale-trades.js.map +1 -1
  50. package/dist/tools/read-parity.d.ts +20 -0
  51. package/dist/tools/read-parity.d.ts.map +1 -0
  52. package/dist/tools/read-parity.js +493 -0
  53. package/dist/tools/read-parity.js.map +1 -0
  54. package/package.json +3 -1
@@ -0,0 +1,68 @@
1
+ import { z } from "zod";
2
+ import { ApiError } from "../client.js";
3
+ export const positionsParamsSchema = {
4
+ limit: z.number().int().min(1).max(100).default(20)
5
+ .describe("Max results (1-100, default 20)"),
6
+ cursor: z.string().optional()
7
+ .describe("Pagination cursor from previous response"),
8
+ min_size: z.number().min(0).default(100)
9
+ .describe("Minimum current position value in USD"),
10
+ category: z.string().optional()
11
+ .describe("Filter by provider-backed market category"),
12
+ min_grade: z.enum(["S", "A", "B", "C", "D", "F"]).optional()
13
+ .describe("Minimum trader grade"),
14
+ side: z.enum(["yes", "no"]).optional()
15
+ .describe("Filter by binary outcome side"),
16
+ };
17
+ export function buildPositionsParams(args) {
18
+ return {
19
+ limit: args.limit,
20
+ cursor: args.cursor,
21
+ min_size: args.min_size,
22
+ category: args.category,
23
+ min_grade: args.min_grade,
24
+ side: args.side,
25
+ };
26
+ }
27
+ export function registerGetPositions(server, client) {
28
+ server.registerTool("get_positions", {
29
+ title: "List Current Positions",
30
+ description: `List current prediction-market positions from the public positions-board feed. Returns trader, market, value, side, share, P&L, and freshness context. Cursor-paginated by current value descending.
31
+
32
+ Args:
33
+ - limit (number, 1-100, default 20): Max results per page
34
+ - cursor (string, optional): Pagination cursor from previous response
35
+ - min_size (number, default 100): Minimum current value in USD
36
+ - category (string, optional): Filter by provider-backed market category
37
+ - min_grade (string, optional): Minimum trader grade (S, A, B, C, D, F)
38
+ - side (string, optional): Filter by binary side: "yes" or "no"
39
+
40
+ Returns: List of current positions with pagination metadata.`,
41
+ inputSchema: positionsParamsSchema,
42
+ annotations: {
43
+ readOnlyHint: true,
44
+ destructiveHint: false,
45
+ idempotentHint: true,
46
+ openWorldHint: false,
47
+ },
48
+ }, async (args) => {
49
+ try {
50
+ const response = await client.request("/api/v1/positions", buildPositionsParams(args));
51
+ const result = {
52
+ data: response.data,
53
+ has_more: response.has_more,
54
+ next_cursor: response.next_cursor,
55
+ };
56
+ return {
57
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
58
+ };
59
+ }
60
+ catch (error) {
61
+ return {
62
+ isError: true,
63
+ content: [{ type: "text", text: error instanceof ApiError ? error.message : `Unexpected error: ${error}` }],
64
+ };
65
+ }
66
+ });
67
+ }
68
+ //# sourceMappingURL=get-positions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-positions.js","sourceRoot":"","sources":["../../src/tools/get-positions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAa,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;SAChD,QAAQ,CAAC,iCAAiC,CAAC;IAC9C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC1B,QAAQ,CAAC,0CAA0C,CAAC;IACvD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;SACrC,QAAQ,CAAC,uCAAuC,CAAC;IACpD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC5B,QAAQ,CAAC,2CAA2C,CAAC;IACxD,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE;SACzD,QAAQ,CAAC,sBAAsB,CAAC;IACnC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE;SACnC,QAAQ,CAAC,+BAA+B,CAAC;CAC7C,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAAC,IAOpC;IACC,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,MAAiB;IACvE,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE;;;;;;;;;;6DAU0C;QACvD,WAAW,EAAE,qBAAqB;QAClC,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CACnC,mBAAmB,EACnB,oBAAoB,CAAC,IAAI,CAAC,CAC3B,CAAC;YAEF,MAAM,MAAM,GAAG;gBACb,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,WAAW,EAAE,QAAQ,CAAC,WAAW;aAClC,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC5E,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,KAAK,EAAE,EAAE,CAAC;aACrH,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { z } from "zod";
3
+ import { ApiClient } from "../client.js";
4
+ export declare const traderPnlLookupSchema: z.ZodString;
5
+ export declare function registerGetTraderPnl(server: McpServer, client: ApiClient): void;
6
+ //# sourceMappingURL=get-trader-pnl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-trader-pnl.d.ts","sourceRoot":"","sources":["../../src/tools/get-trader-pnl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAY,MAAM,cAAc,CAAC;AAEnD,eAAO,MAAM,qBAAqB,aAAoC,CAAC;AAEvE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAwC/E"}
@@ -0,0 +1,39 @@
1
+ import { z } from "zod";
2
+ import { ApiError } from "../client.js";
3
+ export const traderPnlLookupSchema = z.string().trim().min(1).max(100);
4
+ export function registerGetTraderPnl(server, client) {
5
+ server.registerTool("get_trader_pnl", {
6
+ title: "Get Trader P&L Time Series",
7
+ description: `Get a trader's daily P&L time series and pre-derived stats from the precomputed daily_pnl read model: daily cumulative entries, period stats (all/90d/30d/7d), monthly aggregation, per-year totals, and the drawdown series. A resolved trader with no daily P&L returns an empty structured object; an unknown address returns an error.
8
+
9
+ Args:
10
+ - address (string, required): Ethereum wallet address (0x...), trader username, or trd_-prefixed trader id
11
+
12
+ Returns: Trader daily P&L time series with period stats, monthly aggregation, per-year totals, and drawdown series.`,
13
+ inputSchema: {
14
+ address: traderPnlLookupSchema
15
+ .describe("Ethereum wallet address (0x...), username, or trd_-prefixed trader id"),
16
+ },
17
+ annotations: {
18
+ readOnlyHint: true,
19
+ destructiveHint: false,
20
+ idempotentHint: true,
21
+ openWorldHint: false,
22
+ },
23
+ }, async ({ address }) => {
24
+ try {
25
+ const traderLookup = address.trim();
26
+ const response = await client.request(`/api/v1/trader/${encodeURIComponent(traderLookup)}/pnl`);
27
+ return {
28
+ content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }],
29
+ };
30
+ }
31
+ catch (error) {
32
+ return {
33
+ isError: true,
34
+ content: [{ type: "text", text: error instanceof ApiError ? error.message : `Unexpected error: ${error}` }],
35
+ };
36
+ }
37
+ });
38
+ }
39
+ //# sourceMappingURL=get-trader-pnl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-trader-pnl.js","sourceRoot":"","sources":["../../src/tools/get-trader-pnl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAa,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEvE,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,MAAiB;IACvE,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,4BAA4B;QACnC,WAAW,EAAE;;;;;oHAKiG;QAC9G,WAAW,EAAE;YACX,OAAO,EAAE,qBAAqB;iBAC3B,QAAQ,CAAC,uEAAuE,CAAC;SACrF;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACpB,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CACnC,kBAAkB,kBAAkB,CAAC,YAAY,CAAC,MAAM,CACzD,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACnF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,KAAK,EAAE,EAAE,CAAC;aACrH,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,4 +1,6 @@
1
1
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { z } from "zod";
2
3
  import { ApiClient } from "../client.js";
4
+ export declare const traderLookupSchema: z.ZodString;
3
5
  export declare function registerGetTrader(server: McpServer, client: ApiClient): void;
4
6
  //# sourceMappingURL=get-trader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-trader.d.ts","sourceRoot":"","sources":["../../src/tools/get-trader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,SAAS,EAAY,MAAM,cAAc,CAAC;AAEnD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAyD5E"}
1
+ {"version":3,"file":"get-trader.d.ts","sourceRoot":"","sources":["../../src/tools/get-trader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAY,MAAM,cAAc,CAAC;AAEnD,eAAO,MAAM,kBAAkB,aAAoC,CAAC;AAEpE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CA0D5E"}
@@ -1,27 +1,28 @@
1
1
  import { z } from "zod";
2
2
  import { ApiError } from "../client.js";
3
+ export const traderLookupSchema = z.string().trim().min(1).max(100);
3
4
  export function registerGetTrader(server, client) {
4
5
  server.registerTool("get_trader", {
5
6
  title: "Get Trader Intelligence",
6
- description: `Look up a prediction market trader by wallet address. Returns grade (S through F), P&L breakdown, win rate, and volume.
7
+ description: `Look up a prediction market trader by wallet address or username. Returns grade (S through F), P&L breakdown, win rate, and volume.
7
8
 
8
9
  Optional expand fields for heavier data:
9
10
  - strategy: Trading strategy classification
10
11
  - categories: Per-category performance breakdown
11
- - quant_metrics: Sharpe ratio, Sortino, max drawdown, profit factor, Kelly fraction
12
+ - quant_metrics: curated advanced metrics (copy_score and smart_score 0-100, sharpe_30d, sharpe_7d, profit_factor, edge_consistency, sharpe_percentile, pf_percentile, consistency_percentile); each value is a number or null
13
+ - trust: Per-field provenance (source, freshness, reconciliation, completeness) for grade, P&L, and stats
12
14
 
13
- Unknown addresses return sync_status "unknown" (not an error).
15
+ Unknown addresses or usernames return sync_status "unknown" (not an error).
14
16
 
15
17
  Args:
16
- - address (string, required): Ethereum wallet address (0x...)
17
- - expand (string[], optional): Heavy fields to include: "strategy", "categories", "quant_metrics"
18
+ - address (string, required): Ethereum wallet address (0x...) or trader username
19
+ - expand (string[], optional): Heavy fields to include: "strategy", "categories", "quant_metrics", "trust"
18
20
 
19
21
  Returns: Trader profile with grade, P&L, stats, and optional expanded fields.`,
20
22
  inputSchema: {
21
- address: z.string()
22
- .regex(/^0x[a-fA-F0-9]{40}$/, "Must be a valid Ethereum address (0x + 40 hex chars)")
23
- .describe("Ethereum wallet address (0x...)"),
24
- expand: z.array(z.enum(["strategy", "categories", "quant_metrics"]))
23
+ address: traderLookupSchema
24
+ .describe("Ethereum wallet address (0x...) or trader username"),
25
+ expand: z.array(z.enum(["strategy", "categories", "quant_metrics", "trust"]))
25
26
  .optional()
26
27
  .describe("Optional heavy fields to include"),
27
28
  },
@@ -33,10 +34,11 @@ Returns: Trader profile with grade, P&L, stats, and optional expanded fields.`,
33
34
  },
34
35
  }, async ({ address, expand }) => {
35
36
  try {
37
+ const traderLookup = address.trim();
36
38
  const repeatedParams = expand && expand.length > 0
37
- ? { "expand[]": expand }
39
+ ? { expand }
38
40
  : undefined;
39
- const response = await client.request(`/api/v1/trader/${encodeURIComponent(address)}`, undefined, repeatedParams);
41
+ const response = await client.request(`/api/v1/trader/${encodeURIComponent(traderLookup)}`, undefined, repeatedParams);
40
42
  return {
41
43
  content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }],
42
44
  };
@@ -1 +1 @@
1
- {"version":3,"file":"get-trader.js","sourceRoot":"","sources":["../../src/tools/get-trader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAa,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,MAAiB;IACpE,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,KAAK,EAAE,yBAAyB;QAChC,WAAW,EAAE;;;;;;;;;;;;;8EAa2D;QACxE,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;iBAChB,KAAK,CAAC,qBAAqB,EAAE,sDAAsD,CAAC;iBACpF,QAAQ,CAAC,iCAAiC,CAAC;YAC9C,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC;iBACjE,QAAQ,EAAE;iBACV,QAAQ,CAAC,kCAAkC,CAAC;SAChD;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;QAC5B,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;gBAChD,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE;gBACxB,CAAC,CAAC,SAAS,CAAC;YAEd,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CACnC,kBAAkB,kBAAkB,CAAC,OAAO,CAAC,EAAE,EAC/C,SAAS,EACT,cAAc,CACf,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACnF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,KAAK,EAAE,EAAE,CAAC;aACrH,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"get-trader.js","sourceRoot":"","sources":["../../src/tools/get-trader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAa,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEpE,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,MAAiB;IACpE,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,KAAK,EAAE,yBAAyB;QAChC,WAAW,EAAE;;;;;;;;;;;;;;8EAc2D;QACxE,WAAW,EAAE;YACX,OAAO,EAAE,kBAAkB;iBACxB,QAAQ,CAAC,oDAAoD,CAAC;YACjE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;iBAC1E,QAAQ,EAAE;iBACV,QAAQ,CAAC,kCAAkC,CAAC;SAChD;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;QAC5B,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YACpC,MAAM,cAAc,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;gBAChD,CAAC,CAAC,EAAE,MAAM,EAAE;gBACZ,CAAC,CAAC,SAAS,CAAC;YAEd,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CACnC,kBAAkB,kBAAkB,CAAC,YAAY,CAAC,EAAE,EACpD,SAAS,EACT,cAAc,CACf,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACnF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,KAAK,EAAE,EAAE,CAAC;aACrH,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { z } from "zod";
3
+ import { ApiClient } from "../client.js";
4
+ export declare const trendingWalletsParamsSchema: {
5
+ limit: z.ZodDefault<z.ZodNumber>;
6
+ cursor: z.ZodOptional<z.ZodString>;
7
+ window: z.ZodDefault<z.ZodEnum<["7d", "30d"]>>;
8
+ };
9
+ export declare function buildTrendingWalletsParams(args: {
10
+ limit?: number;
11
+ cursor?: string;
12
+ window?: "7d" | "30d";
13
+ }): Record<string, string | number | undefined>;
14
+ export declare function registerGetTrendingWallets(server: McpServer, client: ApiClient): void;
15
+ //# sourceMappingURL=get-trending-wallets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-trending-wallets.d.ts","sourceRoot":"","sources":["../../src/tools/get-trending-wallets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAY,MAAM,cAAc,CAAC;AAEnD,eAAO,MAAM,2BAA2B;;;;CAOvC,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,IAAI,EAAE;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC;CACvB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAM9C;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CA6CrF"}
@@ -0,0 +1,56 @@
1
+ import { z } from "zod";
2
+ import { ApiError } from "../client.js";
3
+ export const trendingWalletsParamsSchema = {
4
+ limit: z.number().int().min(1).max(100).default(20)
5
+ .describe("Max results (1-100, default 20)"),
6
+ cursor: z.string().optional()
7
+ .describe("Pagination cursor from previous response"),
8
+ window: z.enum(["7d", "30d"]).default("7d")
9
+ .describe("Trailing ranking window: 7d (default) or 30d"),
10
+ };
11
+ export function buildTrendingWalletsParams(args) {
12
+ return {
13
+ limit: args.limit,
14
+ cursor: args.cursor,
15
+ window: args.window,
16
+ };
17
+ }
18
+ export function registerGetTrendingWallets(server, client) {
19
+ server.registerTool("get_trending_wallets", {
20
+ title: "List Trending Wallets",
21
+ description: `List wallets ranked by trailing-window realized P&L (Polymarket-only discovery), with cursor pagination. Each row carries window P&L, volume, distinct markets, grade, hot-streak tier, and a zero-filled daily P&L series. A cold read model returns 503 (warming, retry-after), never a fabricated ranking.
22
+
23
+ Args:
24
+ - limit (number, 1-100, default 20): Max results per page
25
+ - cursor (string, optional): Pagination cursor from previous response
26
+ - window (string, optional): Trailing ranking window: "7d" (default) or "30d"
27
+
28
+ Returns: Ranked list of trending wallets with window stats and pagination metadata.`,
29
+ inputSchema: trendingWalletsParamsSchema,
30
+ annotations: {
31
+ readOnlyHint: true,
32
+ destructiveHint: false,
33
+ idempotentHint: true,
34
+ openWorldHint: false,
35
+ },
36
+ }, async (args) => {
37
+ try {
38
+ const response = await client.request("/api/v1/leaderboard/trending", buildTrendingWalletsParams(args));
39
+ const result = {
40
+ data: response.data,
41
+ has_more: response.has_more,
42
+ next_cursor: response.next_cursor,
43
+ };
44
+ return {
45
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
46
+ };
47
+ }
48
+ catch (error) {
49
+ return {
50
+ isError: true,
51
+ content: [{ type: "text", text: error instanceof ApiError ? error.message : `Unexpected error: ${error}` }],
52
+ };
53
+ }
54
+ });
55
+ }
56
+ //# sourceMappingURL=get-trending-wallets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-trending-wallets.js","sourceRoot":"","sources":["../../src/tools/get-trending-wallets.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAa,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;SAChD,QAAQ,CAAC,iCAAiC,CAAC;IAC9C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC1B,QAAQ,CAAC,0CAA0C,CAAC;IACvD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;SACxC,QAAQ,CAAC,8CAA8C,CAAC;CAC5D,CAAC;AAEF,MAAM,UAAU,0BAA0B,CAAC,IAI1C;IACC,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,MAAiB,EAAE,MAAiB;IAC7E,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE;;;;;;;oFAOiE;QAC9E,WAAW,EAAE,2BAA2B;QACxC,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CACnC,8BAA8B,EAC9B,0BAA0B,CAAC,IAAI,CAAC,CACjC,CAAC;YAEF,MAAM,MAAM,GAAG;gBACb,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,WAAW,EAAE,QAAQ,CAAC,WAAW;aAClC,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC5E,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,KAAK,EAAE,EAAE,CAAC;aACrH,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -12,7 +12,7 @@ Args:
12
12
  - category (string, optional): Filter by market category (case-insensitive)
13
13
  - min_grade (string, optional): Minimum trader grade (S, A, B, C, D, F)
14
14
 
15
- Returns: List of whale trades with trader info, market context, size, side, price, and signal score.`,
15
+ Returns: List of whale trades with trader info, market context, size, side, price, current signal_score, and optional recorded_signal_score. A null recorded score means the row predates score capture. If a trade is added later, its time-sensitive recorded score reflects that delay.`,
16
16
  inputSchema: {
17
17
  limit: z.number().int().min(1).max(100).default(20)
18
18
  .describe("Max results (1-100, default 20)"),
@@ -1 +1 @@
1
- {"version":3,"file":"get-whale-trades.js","sourceRoot":"","sources":["../../src/tools/get-whale-trades.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAa,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,UAAU,sBAAsB,CAAC,MAAiB,EAAE,MAAiB;IACzE,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE;;;;;;;;;qGASkF;QAC/F,WAAW,EAAE;YACX,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;iBAChD,QAAQ,CAAC,iCAAiC,CAAC;YAC9C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;iBAC1B,QAAQ,CAAC,0CAA0C,CAAC;YACvD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;iBACtC,QAAQ,CAAC,0CAA0C,CAAC;YACvD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;iBAC5B,QAAQ,CAAC,8CAA8C,CAAC;YAC3D,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE;iBACzD,QAAQ,CAAC,sBAAsB,CAAC;SACpC;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE;QACzD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE;gBAC5D,KAAK;gBACL,MAAM;gBACN,QAAQ;gBACR,QAAQ;gBACR,SAAS;aACV,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG;gBACb,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,WAAW,EAAE,QAAQ,CAAC,WAAW;aAClC,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC5E,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,KAAK,EAAE,EAAE,CAAC;aACrH,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"get-whale-trades.js","sourceRoot":"","sources":["../../src/tools/get-whale-trades.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAa,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,UAAU,sBAAsB,CAAC,MAAiB,EAAE,MAAiB;IACzE,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE;;;;;;;;;2RASwQ;QACrR,WAAW,EAAE;YACX,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;iBAChD,QAAQ,CAAC,iCAAiC,CAAC;YAC9C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;iBAC1B,QAAQ,CAAC,0CAA0C,CAAC;YACvD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;iBACtC,QAAQ,CAAC,0CAA0C,CAAC;YACvD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;iBAC5B,QAAQ,CAAC,8CAA8C,CAAC;YAC3D,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE;iBACzD,QAAQ,CAAC,sBAAsB,CAAC;SACpC;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE;QACzD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE;gBAC5D,KAAK;gBACL,MAAM;gBACN,QAAQ;gBACR,QAAQ;gBACR,SAAS;aACV,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG;gBACb,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,WAAW,EAAE,QAAQ,CAAC,WAAW;aAClC,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC5E,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,KAAK,EAAE,EAAE,CAAC;aACrH,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { ApiClient } from "../client.js";
3
+ export declare function registerBatchGetTraders(server: McpServer, client: ApiClient): void;
4
+ export declare function registerGetWhaleTradesHistory(server: McpServer, client: ApiClient): void;
5
+ export declare function registerGetWhaleTrade(server: McpServer, client: ApiClient): void;
6
+ export declare function registerBatchGetMarketIntel(server: McpServer, client: ApiClient): void;
7
+ export declare function registerGetSmartMoneyFlows(server: McpServer, client: ApiClient): void;
8
+ export declare function registerGetSharpMoneyFlows(server: McpServer, client: ApiClient): void;
9
+ export declare function registerGetMarketSnapshot(server: McpServer, client: ApiClient): void;
10
+ export declare function registerGetPositionTimelineById(server: McpServer, client: ApiClient): void;
11
+ export declare function registerGetInsiderRadarFlag(server: McpServer, client: ApiClient): void;
12
+ export declare function registerGetEventReplaySince(server: McpServer, client: ApiClient): void;
13
+ export declare function registerListWebhooks(server: McpServer, client: ApiClient): void;
14
+ export declare function registerGetWebhook(server: McpServer, client: ApiClient): void;
15
+ export declare function registerGetDailyReportSnapshot(server: McpServer, client: ApiClient): void;
16
+ export declare function registerGetWeeklyReportSnapshot(server: McpServer, client: ApiClient): void;
17
+ export declare function registerGetMonthlyReportSnapshot(server: McpServer, client: ApiClient): void;
18
+ export declare function registerGetTraderExportSnapshot(server: McpServer, client: ApiClient): void;
19
+ export declare function registerGetPlatforms(server: McpServer, client: ApiClient): void;
20
+ //# sourceMappingURL=read-parity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-parity.d.ts","sourceRoot":"","sources":["../../src/tools/read-parity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,SAAS,EAAY,MAAM,cAAc,CAAC;AA0DnD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CA6BlF;AAED,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CA0CxF;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CA2BhF;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CA2BtF;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAyCrF;AAKD,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAyCrF;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CA2BpF;AAED,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAkC1F;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CA2BtF;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CA2BtF;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAsB/E;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAyB7E;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAyBzF;AAED,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CA+B1F;AAED,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAyB3F;AAED,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CA2B1F;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAsB/E"}