@noya-ai/data-server-schemas 0.1.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 (85) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +25 -0
  3. package/dist/alternative/schemas.cjs +44 -0
  4. package/dist/alternative/schemas.d.cts +2 -0
  5. package/dist/alternative/schemas.d.ts +2 -0
  6. package/dist/alternative/schemas.js +11 -0
  7. package/dist/batch/schemas.cjs +73 -0
  8. package/dist/batch/schemas.d.cts +2 -0
  9. package/dist/batch/schemas.d.ts +2 -0
  10. package/dist/batch/schemas.js +17 -0
  11. package/dist/chunk-BWY4ZL7E.js +142 -0
  12. package/dist/chunk-C3YNWX7W.js +256 -0
  13. package/dist/chunk-DKMPZFSH.js +29 -0
  14. package/dist/chunk-KLRIACSR.js +162 -0
  15. package/dist/chunk-MECUVGQT.js +203 -0
  16. package/dist/chunk-MLKGABMK.js +9 -0
  17. package/dist/chunk-PHNEQDUP.js +89 -0
  18. package/dist/chunk-ROAH5BN3.js +58 -0
  19. package/dist/chunk-VK45O334.js +129 -0
  20. package/dist/chunk-W5SLY2ZT.js +134 -0
  21. package/dist/chunk-ZP2HSALI.js +150 -0
  22. package/dist/chunk-ZTOGXNAW.js +198 -0
  23. package/dist/coingecko/schemas.cjs +177 -0
  24. package/dist/coingecko/schemas.d.cts +2 -0
  25. package/dist/coingecko/schemas.d.ts +2 -0
  26. package/dist/coingecko/schemas.js +43 -0
  27. package/dist/coinglass/schemas.cjs +213 -0
  28. package/dist/coinglass/schemas.d.cts +2 -0
  29. package/dist/coinglass/schemas.d.ts +2 -0
  30. package/dist/coinglass/schemas.js +63 -0
  31. package/dist/composite/schemas.cjs +144 -0
  32. package/dist/composite/schemas.d.cts +2 -0
  33. package/dist/composite/schemas.d.ts +2 -0
  34. package/dist/composite/schemas.js +23 -0
  35. package/dist/cryptonews/schemas.cjs +104 -0
  36. package/dist/cryptonews/schemas.d.cts +2 -0
  37. package/dist/cryptonews/schemas.d.ts +2 -0
  38. package/dist/cryptonews/schemas.js +23 -0
  39. package/dist/defillama/schemas.cjs +157 -0
  40. package/dist/defillama/schemas.d.cts +2 -0
  41. package/dist/defillama/schemas.d.ts +2 -0
  42. package/dist/defillama/schemas.js +37 -0
  43. package/dist/geckoterminal/schemas.cjs +149 -0
  44. package/dist/geckoterminal/schemas.d.cts +2 -0
  45. package/dist/geckoterminal/schemas.d.ts +2 -0
  46. package/dist/geckoterminal/schemas.js +33 -0
  47. package/dist/index.cjs +1359 -0
  48. package/dist/index.d.cts +12 -0
  49. package/dist/index.d.ts +12 -0
  50. package/dist/index.js +47 -0
  51. package/dist/kaito/schemas.cjs +218 -0
  52. package/dist/kaito/schemas.d.cts +2 -0
  53. package/dist/kaito/schemas.d.ts +2 -0
  54. package/dist/kaito/schemas.js +45 -0
  55. package/dist/moralis/schemas.cjs +165 -0
  56. package/dist/moralis/schemas.d.cts +2 -0
  57. package/dist/moralis/schemas.d.ts +2 -0
  58. package/dist/moralis/schemas.js +29 -0
  59. package/dist/noya/schemas.cjs +271 -0
  60. package/dist/noya/schemas.d.cts +2 -0
  61. package/dist/noya/schemas.d.ts +2 -0
  62. package/dist/noya/schemas.js +57 -0
  63. package/dist/schemas-6ZorQZBC.d.cts +435 -0
  64. package/dist/schemas-6ZorQZBC.d.ts +435 -0
  65. package/dist/schemas-BMeKj9pe.d.cts +832 -0
  66. package/dist/schemas-BMeKj9pe.d.ts +832 -0
  67. package/dist/schemas-BYLoGYNO.d.cts +52 -0
  68. package/dist/schemas-BYLoGYNO.d.ts +52 -0
  69. package/dist/schemas-Bbz-itbI.d.cts +387 -0
  70. package/dist/schemas-Bbz-itbI.d.ts +387 -0
  71. package/dist/schemas-CAn6VbI-.d.cts +240 -0
  72. package/dist/schemas-CAn6VbI-.d.ts +240 -0
  73. package/dist/schemas-CNeb4DA4.d.cts +432 -0
  74. package/dist/schemas-CNeb4DA4.d.ts +432 -0
  75. package/dist/schemas-Cu7LkQN1.d.cts +466 -0
  76. package/dist/schemas-Cu7LkQN1.d.ts +466 -0
  77. package/dist/schemas-D4yPHF06.d.cts +481 -0
  78. package/dist/schemas-D4yPHF06.d.ts +481 -0
  79. package/dist/schemas-Doa7hG7U.d.cts +630 -0
  80. package/dist/schemas-Doa7hG7U.d.ts +630 -0
  81. package/dist/schemas-TYWQmRZI.d.cts +519 -0
  82. package/dist/schemas-TYWQmRZI.d.ts +519 -0
  83. package/dist/schemas-hrS1Vfcr.d.cts +255 -0
  84. package/dist/schemas-hrS1Vfcr.d.ts +255 -0
  85. package/package.json +93 -0
@@ -0,0 +1,162 @@
1
+ import {
2
+ __export
3
+ } from "./chunk-MLKGABMK.js";
4
+
5
+ // src/coingecko/schemas.ts
6
+ var schemas_exports = {};
7
+ __export(schemas_exports, {
8
+ ContractAddress: () => ContractAddress,
9
+ OhlcvBody: () => OhlcvBody,
10
+ OhlcvCandle: () => OhlcvCandle,
11
+ OhlcvResponse: () => OhlcvResponse,
12
+ PriceAtDateBody: () => PriceAtDateBody,
13
+ PriceBody: () => PriceBody,
14
+ PriceHistoryBody: () => PriceHistoryBody,
15
+ PriceHistoryResponse: () => PriceHistoryResponse,
16
+ PricePoint: () => PricePoint,
17
+ PriceResponse: () => PriceResponse,
18
+ PriceSnapshot: () => PriceSnapshot,
19
+ SearchBody: () => SearchBody,
20
+ SearchResponse: () => SearchResponse,
21
+ SearchResult: () => SearchResult,
22
+ TokenInfo: () => TokenInfo,
23
+ TokenInfoBody: () => TokenInfoBody,
24
+ TokenPrice: () => TokenPrice,
25
+ TrendingResponse: () => TrendingResponse,
26
+ TrendingToken: () => TrendingToken
27
+ });
28
+ import { z } from "zod";
29
+ var PriceBody = z.object({
30
+ tokenIds: z.array(z.string()).min(1).describe("CoinGecko token IDs to price (e.g. `bitcoin`, `ethereum`). At least one required."),
31
+ vsCurrencies: z.array(z.string()).optional().describe("Quote currencies (e.g. `usd`, `eur`, `btc`). Defaults to USD when omitted."),
32
+ include24hrChange: z.boolean().default(true).describe("Include 24-hour percentage price change in the response."),
33
+ includeMarketCap: z.boolean().default(true).describe("Include market cap in the response."),
34
+ include24hrVol: z.boolean().default(false).describe("Include 24-hour trading volume in the response.")
35
+ });
36
+ var TokenPrice = z.object({
37
+ id: z.string(),
38
+ price: z.number().nullable(),
39
+ change24h: z.number().nullable(),
40
+ marketCap: z.number().nullable(),
41
+ volume24h: z.number().nullable(),
42
+ currency: z.string()
43
+ });
44
+ var PriceResponse = z.array(TokenPrice);
45
+ var OhlcvBody = z.object({
46
+ tokenId: z.string().min(1).describe("CoinGecko token ID (e.g. `bitcoin`)."),
47
+ vsCurrency: z.string().default("usd").describe("Quote currency for the OHLCV candles."),
48
+ days: z.enum(["1", "7", "14", "30", "90", "180", "365", "max"]).default("7").describe("Lookback window. Use `max` for the full available history."),
49
+ interval: z.enum(["daily", "hourly"]).optional().describe("Candle resolution. CoinGecko picks a sensible default if omitted (hourly for short windows, daily for long).")
50
+ });
51
+ var OhlcvCandle = z.object({
52
+ timestamp: z.number(),
53
+ open: z.number(),
54
+ high: z.number(),
55
+ low: z.number(),
56
+ close: z.number()
57
+ });
58
+ var OhlcvResponse = z.array(OhlcvCandle);
59
+ var TokenInfoBody = z.object({
60
+ tokenId: z.string().min(1).describe("CoinGecko token ID to fetch metadata for.")
61
+ });
62
+ var ContractAddress = z.object({
63
+ chain: z.string(),
64
+ chainId: z.number().nullable(),
65
+ platformId: z.string(),
66
+ address: z.string()
67
+ });
68
+ var TokenInfo = z.object({
69
+ id: z.string(),
70
+ symbol: z.string(),
71
+ name: z.string(),
72
+ description: z.string(),
73
+ categories: z.array(z.string()),
74
+ links: z.object({
75
+ homepage: z.array(z.string()),
76
+ twitter: z.string().nullable(),
77
+ telegram: z.string().nullable(),
78
+ github: z.array(z.string()),
79
+ subreddit: z.string().nullable()
80
+ }),
81
+ contracts: z.array(ContractAddress),
82
+ genesisDate: z.string().nullable(),
83
+ image: z.string().nullable(),
84
+ marketCapRank: z.number().nullable()
85
+ });
86
+ var TrendingToken = z.object({
87
+ id: z.string(),
88
+ name: z.string(),
89
+ symbol: z.string(),
90
+ marketCapRank: z.number().nullable(),
91
+ priceBtc: z.number().nullable(),
92
+ priceUsd: z.number().nullable(),
93
+ change24h: z.number().nullable(),
94
+ thumb: z.string().nullable(),
95
+ score: z.number().nullable()
96
+ });
97
+ var TrendingResponse = z.array(TrendingToken);
98
+ var SearchBody = z.object({
99
+ query: z.string().min(1).describe("Free-text search query (token name, symbol, or partial match).")
100
+ });
101
+ var SearchResult = z.object({
102
+ id: z.string(),
103
+ name: z.string(),
104
+ symbol: z.string(),
105
+ marketCapRank: z.number().nullable(),
106
+ thumb: z.string().nullable()
107
+ });
108
+ var SearchResponse = z.array(SearchResult);
109
+ var PriceHistoryBody = z.object({
110
+ tokenId: z.string().min(1).describe("CoinGecko token ID."),
111
+ vsCurrency: z.string().default("usd").describe("Quote currency for the historical prices."),
112
+ days: z.string().optional().describe("Lookback window in days (e.g. `30`). Mutually exclusive with `from`/`to`."),
113
+ from: z.string().optional().describe("ISO 8601 start timestamp (UTC). Use with `to` instead of `days`."),
114
+ to: z.string().optional().describe("ISO 8601 end timestamp (UTC). Use with `from` instead of `days`."),
115
+ interval: z.enum(["5m", "hourly", "daily"]).optional().describe("Sampling interval. CoinGecko picks one based on the window when omitted.")
116
+ }).refine(
117
+ (d) => d.days || d.from && d.to,
118
+ "Provide either 'days' or both 'from' and 'to'"
119
+ );
120
+ var PricePoint = z.object({
121
+ timestamp: z.number(),
122
+ price: z.number(),
123
+ marketCap: z.number().nullable(),
124
+ volume: z.number().nullable()
125
+ });
126
+ var PriceHistoryResponse = z.array(PricePoint);
127
+ var PriceAtDateBody = z.object({
128
+ tokenId: z.string().min(1).describe("CoinGecko token ID."),
129
+ date: z.string().regex(/^\d{4}-\d{2}-\d{2}$/).describe("Snapshot date in `YYYY-MM-DD` format (UTC). CoinGecko returns the daily close + cap + volume.")
130
+ });
131
+ var PriceSnapshot = z.object({
132
+ id: z.string(),
133
+ name: z.string(),
134
+ symbol: z.string(),
135
+ date: z.string(),
136
+ price: z.record(z.string(), z.number()),
137
+ marketCap: z.record(z.string(), z.number()),
138
+ volume: z.record(z.string(), z.number())
139
+ });
140
+
141
+ export {
142
+ PriceBody,
143
+ TokenPrice,
144
+ PriceResponse,
145
+ OhlcvBody,
146
+ OhlcvCandle,
147
+ OhlcvResponse,
148
+ TokenInfoBody,
149
+ ContractAddress,
150
+ TokenInfo,
151
+ TrendingToken,
152
+ TrendingResponse,
153
+ SearchBody,
154
+ SearchResult,
155
+ SearchResponse,
156
+ PriceHistoryBody,
157
+ PricePoint,
158
+ PriceHistoryResponse,
159
+ PriceAtDateBody,
160
+ PriceSnapshot,
161
+ schemas_exports
162
+ };
@@ -0,0 +1,203 @@
1
+ import {
2
+ __export
3
+ } from "./chunk-MLKGABMK.js";
4
+
5
+ // src/kaito/schemas.ts
6
+ var schemas_exports = {};
7
+ __export(schemas_exports, {
8
+ AdvancedSearchBody: () => AdvancedSearchBody,
9
+ EngagementBody: () => EngagementBody,
10
+ EntitiesQuery: () => EntitiesQuery,
11
+ EventsBody: () => EventsBody,
12
+ FeedsBody: () => FeedsBody,
13
+ KaitoResponse: () => KaitoResponse,
14
+ KolMindshareBody: () => KolMindshareBody,
15
+ MarketSmartFollowingBody: () => MarketSmartFollowingBody,
16
+ MentionsBody: () => MentionsBody,
17
+ MindshareArenaBody: () => MindshareArenaBody,
18
+ MindshareBody: () => MindshareBody,
19
+ MindshareDeltaBody: () => MindshareDeltaBody,
20
+ MindshareNarrativeBody: () => MindshareNarrativeBody,
21
+ NarrativesQuery: () => NarrativesQuery,
22
+ SearchBody: () => SearchBody,
23
+ SentimentBody: () => SentimentBody,
24
+ SmartFollowersBody: () => SmartFollowersBody,
25
+ SmartFollowingBody: () => SmartFollowingBody,
26
+ TweetEngagementBody: () => TweetEngagementBody,
27
+ TwitterUserMetadataBody: () => TwitterUserMetadataBody
28
+ });
29
+ import { z } from "zod";
30
+ var dateString = (note) => z.string().optional().describe(note);
31
+ var sortOrder = z.enum(["asc", "desc"]).optional().describe("Sort direction for the result list.");
32
+ var EntitiesQuery = z.object({
33
+ query: z.string().optional().describe("Free-text filter for entity names. Omit to list all."),
34
+ limit: z.coerce.number().int().min(1).max(100).optional().describe("Max entities to return (1\u2013100).")
35
+ });
36
+ var NarrativesQuery = z.object({
37
+ query: z.string().optional().describe("Free-text filter for narrative names. Omit to list all."),
38
+ limit: z.coerce.number().int().min(1).max(100).optional().describe("Max narratives to return (1\u2013100).")
39
+ });
40
+ var SearchBody = z.object({
41
+ query: z.string().min(1).describe("Free-text search query across tweets, narratives, and entities."),
42
+ size: z.number().int().min(1).max(50).optional().describe("Result page size (1\u201350). Default 10.")
43
+ });
44
+ var AdvancedSearchBody = z.object({
45
+ tokens: z.string().optional().describe("Comma-separated token symbols to filter tweets to (e.g. `BTC,ETH`)."),
46
+ keyword: z.string().optional().describe("Keyword filter \u2014 substring-matched against tweet text."),
47
+ query: z.string().optional().describe("Semantic search query."),
48
+ usernames: z.string().optional().describe("Comma-separated Twitter usernames to filter to."),
49
+ sources: z.string().optional().describe("Comma-separated source filters."),
50
+ min_created_at: dateString("ISO 8601 \u2014 earliest tweet creation time."),
51
+ max_created_at: dateString("ISO 8601 \u2014 latest tweet creation time."),
52
+ from: z.number().optional().describe("Result offset for pagination."),
53
+ size: z.number().optional().describe("Page size."),
54
+ languages: z.string().optional().describe("Comma-separated language codes (e.g. `en,zh`)."),
55
+ sort_by: z.enum([
56
+ "relevance",
57
+ "created_at",
58
+ "engagement",
59
+ "smart_engagement",
60
+ "author",
61
+ "length",
62
+ "bookmark",
63
+ "sentiment",
64
+ "views"
65
+ ]).optional().describe("Field to sort by."),
66
+ sort_order: sortOrder,
67
+ tweet_length_type: z.enum(["short", "long", "thread", "article"]).optional().describe("Filter by tweet length category."),
68
+ tweet_type: z.enum(["tweet", "quote", "reply"]).optional().describe("Filter by tweet shape."),
69
+ sentiment_type: z.enum(["bullish", "bearish", "neutral"]).optional().describe("Filter by Kaito's sentiment classification."),
70
+ author_type: z.enum(["Organization", "Individual"]).optional().describe("Filter by author classification."),
71
+ min_bookmark_count: z.number().optional().describe("Minimum bookmark count threshold."),
72
+ max_bookmark_count: z.number().optional().describe("Maximum bookmark count threshold."),
73
+ min_view_count: z.number().optional().describe("Minimum view count threshold."),
74
+ max_view_count: z.number().optional().describe("Maximum view count threshold."),
75
+ min_smart_engagement_count: z.number().optional().describe("Minimum smart-follower engagement count."),
76
+ max_smart_engagement_count: z.number().optional().describe("Maximum smart-follower engagement count."),
77
+ min_like_count: z.number().optional().describe("Minimum like count threshold."),
78
+ max_like_count: z.number().optional().describe("Maximum like count threshold."),
79
+ min_reply_count: z.number().optional().describe("Minimum reply count threshold."),
80
+ max_reply_count: z.number().optional().describe("Maximum reply count threshold."),
81
+ min_retweet_count: z.number().optional().describe("Minimum retweet count threshold."),
82
+ max_retweet_count: z.number().optional().describe("Maximum retweet count threshold."),
83
+ min_quote_count: z.number().optional().describe("Minimum quote-tweet count threshold."),
84
+ max_quote_count: z.number().optional().describe("Maximum quote-tweet count threshold.")
85
+ });
86
+ var TweetEngagementBody = z.object({
87
+ tweet_id: z.string().min(1).describe("Twitter status ID (numeric, as a string).")
88
+ });
89
+ var FeedsBody = z.object({
90
+ token: z.string().optional().describe("Token symbol to filter feed to (e.g. `BTC`). Omit for all."),
91
+ min_created_at: dateString("ISO 8601 \u2014 earliest tweet creation time."),
92
+ max_created_at: dateString("ISO 8601 \u2014 latest tweet creation time."),
93
+ size: z.number().int().min(1).max(50).optional().describe("Page size (1\u201350).")
94
+ });
95
+ var SentimentBody = z.object({
96
+ token: z.string().min(1).describe("Token symbol to compute sentiment for (e.g. `BTC`)."),
97
+ start_date: dateString("ISO 8601 \u2014 earliest date in the analysis window."),
98
+ end_date: dateString("ISO 8601 \u2014 latest date in the analysis window."),
99
+ adjusted: z.boolean().optional().describe("Apply Kaito's bot/spam adjustment."),
100
+ average: z.boolean().optional().describe("Return rolling average vs raw daily values."),
101
+ gaussian: z.boolean().optional().describe("Apply Gaussian smoothing to the time series."),
102
+ language: z.enum(["all", "en", "zh", "ko", "others"]).optional().describe("Restrict source tweets to one language."),
103
+ version: z.enum(["2", "3"]).optional().describe("Sentiment model version. Default to v3 (latest).")
104
+ });
105
+ var EngagementBody = z.object({
106
+ token: z.string().optional().describe("Token symbol filter. Mutually exclusive with `keyword`."),
107
+ keyword: z.string().optional().describe("Keyword filter. Mutually exclusive with `token`."),
108
+ start_date: dateString("ISO 8601 \u2014 start date for the engagement window."),
109
+ end_date: dateString("ISO 8601 \u2014 end date for the engagement window.")
110
+ });
111
+ var MentionsBody = EngagementBody;
112
+ var MindshareBody = z.object({
113
+ token: z.string().min(1).describe("Token symbol to compute mindshare for."),
114
+ start_date: dateString("ISO 8601 \u2014 earliest date in the analysis window."),
115
+ end_date: dateString("ISO 8601 \u2014 latest date in the analysis window."),
116
+ scope: z.string().optional().describe("Optional scope filter (e.g. narrative or category).")
117
+ });
118
+ var MindshareArenaBody = z.object({
119
+ duration: z.enum(["all", "24h", "48h", "7d", "30d", "3m", "6m", "12m"]).optional().describe("Mindshare measurement window."),
120
+ language: z.enum(["all", "en", "zh", "ko", "others"]).optional().describe("Restrict tweets to one language."),
121
+ categories: z.enum(["EXCHANGE", "INFOMKT"]).optional().describe("Restrict to a single arena category."),
122
+ pre_tge: z.boolean().optional().describe("Include pre-TGE projects in the leaderboard."),
123
+ ex_official: z.boolean().optional().describe("Exclude tweets from official project accounts."),
124
+ weighted: z.boolean().optional().describe("Use Kaito's weighted-by-author-influence score."),
125
+ nft: z.boolean().optional().describe("Restrict to NFT projects.")
126
+ });
127
+ var MindshareDeltaBody = z.object({
128
+ duration: z.enum(["24h", "48h", "7d", "30d", "3m", "6m", "12m", "all"]).optional().describe("Window over which to compute the mindshare delta."),
129
+ sort_type: z.enum(["desc", "asc"]).optional().describe("Sort by largest delta first (`desc`) or smallest (`asc`)."),
130
+ limit: z.number().int().positive().optional().describe("Max projects to return.")
131
+ });
132
+ var MindshareNarrativeBody = z.object({
133
+ narrative: z.string().min(1).describe("Narrative slug (e.g. `RWA`, `AI`, `meme`)."),
134
+ start_date: dateString("ISO 8601 \u2014 earliest date in the analysis window."),
135
+ end_date: dateString("ISO 8601 \u2014 latest date in the analysis window.")
136
+ });
137
+ var KolMindshareBody = z.object({
138
+ token: z.string().min(1).describe("Token symbol to attribute KOL mindshare to."),
139
+ duration: z.enum(["24h", "48h", "7d", "30d", "3m", "6m", "12m", "all"]).optional().describe("KOL mindshare window."),
140
+ top_n: z.number().int().positive().optional().describe("Top N KOLs to return.")
141
+ });
142
+ var EventsBody = z.object({
143
+ token: z.string().min(1).describe("Token symbol to filter events for."),
144
+ start_date: dateString("ISO 8601 \u2014 earliest event date."),
145
+ end_date: dateString("ISO 8601 \u2014 latest event date."),
146
+ min_announcement_date: dateString("ISO 8601 \u2014 earliest announcement date."),
147
+ max_announcement_date: dateString("ISO 8601 \u2014 latest announcement date."),
148
+ event_types: z.string().optional().describe("Comma-separated event-type filters."),
149
+ sources: z.string().optional().describe("Comma-separated source filters."),
150
+ sort_by: z.enum(["event_date", "project_name", "market_cap", "announcement_date"]).optional().describe("Sort field."),
151
+ sort_order: sortOrder
152
+ });
153
+ var TwitterUserMetadataBody = z.object({
154
+ user_id: z.string().min(1).describe("Twitter user ID (numeric, as a string).")
155
+ });
156
+ var MarketSmartFollowingBody = z.object({
157
+ duration: z.enum(["24h", "48h", "7d", "30d", "all_dates"]).optional().describe("Window for the smart-following analysis."),
158
+ from: z.number().optional().describe("Result offset for pagination."),
159
+ sort_by: z.enum(["earliest_time", "smart_followers", "followers_change", "change_ratio"]).optional().describe("Sort field."),
160
+ sort_order: sortOrder,
161
+ filter_smart_followers_operator: z.enum(["gte", "lte"]).optional().describe("Comparison operator for `filter_smart_followers_value`."),
162
+ filter_smart_followers_value: z.number().optional().describe("Threshold for smart-follower count filter."),
163
+ user_status: z.enum(["new", "existing", "all"]).optional().describe("Filter to newly-tracked vs existing users."),
164
+ user_tag_individual_or_organization: z.enum(["Individual", "Organization", "all"]).optional().describe("Filter by author classification."),
165
+ user_type: z.enum(["kkol", "non_kkol", "all"]).optional().describe("Restrict to Kaito KOLs (`kkol`), non-KOLs, or both."),
166
+ user_web3_relevance: z.enum(["relevant", "irrelevant"]).optional().describe("Restrict to web3-relevant users.")
167
+ });
168
+ var SmartFollowersBody = z.object({
169
+ user_id: z.string().optional().describe("Twitter user ID (numeric, as a string). Provide this OR `username`."),
170
+ username: z.string().optional().describe("Twitter handle without the `@`. Provide this OR `user_id`."),
171
+ date: z.string().optional().describe("ISO 8601 date \u2014 pin the smart-follower snapshot."),
172
+ mode: z.enum(["count", "users"]).optional().describe("`count` returns just the number; `users` returns the full list of follower handles.")
173
+ }).refine((v) => !!(v.user_id || v.username), "user_id or username required");
174
+ var SmartFollowingBody = z.object({
175
+ user_id: z.string().optional().describe("Twitter user ID (numeric, as a string). Provide this OR `username`."),
176
+ username: z.string().optional().describe("Twitter handle without the `@`. Provide this OR `user_id`."),
177
+ category: z.enum(["ALL", "Organization", "Individual"]).optional().describe("Restrict the followed-by-smart-followers list to a category.")
178
+ }).refine((v) => !!(v.user_id || v.username), "user_id or username required");
179
+ var KaitoResponse = z.unknown();
180
+
181
+ export {
182
+ EntitiesQuery,
183
+ NarrativesQuery,
184
+ SearchBody,
185
+ AdvancedSearchBody,
186
+ TweetEngagementBody,
187
+ FeedsBody,
188
+ SentimentBody,
189
+ EngagementBody,
190
+ MentionsBody,
191
+ MindshareBody,
192
+ MindshareArenaBody,
193
+ MindshareDeltaBody,
194
+ MindshareNarrativeBody,
195
+ KolMindshareBody,
196
+ EventsBody,
197
+ TwitterUserMetadataBody,
198
+ MarketSmartFollowingBody,
199
+ SmartFollowersBody,
200
+ SmartFollowingBody,
201
+ KaitoResponse,
202
+ schemas_exports
203
+ };
@@ -0,0 +1,9 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __export = (target, all) => {
3
+ for (var name in all)
4
+ __defProp(target, name, { get: all[name], enumerable: true });
5
+ };
6
+
7
+ export {
8
+ __export
9
+ };
@@ -0,0 +1,89 @@
1
+ import {
2
+ __export
3
+ } from "./chunk-MLKGABMK.js";
4
+
5
+ // src/cryptonews/schemas.ts
6
+ var schemas_exports = {};
7
+ __export(schemas_exports, {
8
+ NewsArticle: () => NewsArticle,
9
+ NewsBody: () => NewsBody,
10
+ NewsResponse: () => NewsResponse,
11
+ SentimentBody: () => SentimentBody,
12
+ SentimentItem: () => SentimentItem,
13
+ SentimentResponse: () => SentimentResponse,
14
+ TrendingQuery: () => TrendingQuery,
15
+ TrendingResponse: () => TrendingResponse,
16
+ TrendingTicker: () => TrendingTicker
17
+ });
18
+ import { z } from "zod";
19
+ var NewsBody = z.object({
20
+ tickers: z.string().optional().describe("Comma-separated tickers to filter by (e.g. `BTC,ETH`). Omit for the full feed."),
21
+ items: z.number().int().min(1).max(100).optional().default(10).describe("Articles per page (1\u2013100)."),
22
+ page: z.number().int().min(1).optional().default(1).describe("1-based page number for pagination."),
23
+ sentiment: z.enum(["positive", "negative", "neutral"]).optional().describe("Filter to articles with this sentiment classification."),
24
+ topic: z.string().optional().describe("Filter by topic tag (e.g. `regulation`, `mining`, `defi`)."),
25
+ source: z.string().optional().describe("Filter by news outlet (e.g. `coindesk`, `cointelegraph`)."),
26
+ date: z.string().optional().describe(
27
+ "Date filter. Accepts presets (`today`, `last7days`, `last30days`) or `MMDDYYYY-MMDDYYYY` ranges."
28
+ ),
29
+ sort: z.enum(["rank", "date"]).optional().describe("Sort order \u2014 `rank` for relevance, `date` for newest first.")
30
+ });
31
+ var NewsArticle = z.object({
32
+ title: z.string(),
33
+ text: z.string(),
34
+ url: z.string(),
35
+ imageUrl: z.string().nullable(),
36
+ date: z.string(),
37
+ source: z.string(),
38
+ sentiment: z.string(),
39
+ tickers: z.array(z.string()),
40
+ topics: z.array(z.string()),
41
+ type: z.string()
42
+ });
43
+ var NewsResponse = z.object({
44
+ articles: z.array(NewsArticle),
45
+ totalPages: z.number().nullable()
46
+ });
47
+ var SentimentBody = z.object({
48
+ tickers: z.string().min(1).describe("Comma-separated tickers to score (e.g. `BTC,ETH,SOL`)."),
49
+ date: z.string().default("last30days").refine(
50
+ (v) => /^(today|yesterday|last7days|last30days|yeartodate)$/.test(v) || /^\d{8}-(\d{8}|today)$/.test(v)
51
+ ).describe(
52
+ "Date window. Presets: `today`, `yesterday`, `last7days`, `last30days`, `yeartodate`. Or a custom `MMDDYYYY-MMDDYYYY` range (or `MMDDYYYY-today`)."
53
+ )
54
+ });
55
+ var SentimentItem = z.object({
56
+ ticker: z.string(),
57
+ sentiment: z.string(),
58
+ sentimentScore: z.number().nullable(),
59
+ positive: z.number(),
60
+ negative: z.number(),
61
+ neutral: z.number()
62
+ });
63
+ var SentimentResponse = z.array(SentimentItem);
64
+ var TrendingQuery = z.object({
65
+ date: z.string().optional().describe("Date window \u2014 same format as the sentiment endpoint. Defaults to today.")
66
+ });
67
+ var TrendingTicker = z.object({
68
+ ticker: z.string(),
69
+ name: z.string(),
70
+ totalMentions: z.number(),
71
+ positiveMentions: z.number(),
72
+ negativeMentions: z.number(),
73
+ neutralMentions: z.number(),
74
+ sentimentScore: z.number().nullable()
75
+ });
76
+ var TrendingResponse = z.array(TrendingTicker);
77
+
78
+ export {
79
+ NewsBody,
80
+ NewsArticle,
81
+ NewsResponse,
82
+ SentimentBody,
83
+ SentimentItem,
84
+ SentimentResponse,
85
+ TrendingQuery,
86
+ TrendingTicker,
87
+ TrendingResponse,
88
+ schemas_exports
89
+ };
@@ -0,0 +1,58 @@
1
+ import {
2
+ __export
3
+ } from "./chunk-MLKGABMK.js";
4
+
5
+ // src/batch/schemas.ts
6
+ var schemas_exports = {};
7
+ __export(schemas_exports, {
8
+ BatchBody: () => BatchBody,
9
+ BatchFailure: () => BatchFailure,
10
+ BatchItem: () => BatchItem,
11
+ BatchResponse: () => BatchResponse,
12
+ BatchResult: () => BatchResult,
13
+ BatchSuccess: () => BatchSuccess
14
+ });
15
+ import { z } from "zod";
16
+ var BatchItem = z.object({
17
+ name: z.string().min(1).max(100).describe("Caller-chosen identifier for this sub-request \u2014 used to key the result in the response object. Must be unique within the batch."),
18
+ method: z.enum(["GET", "POST"]).describe("HTTP method for the sub-request."),
19
+ path: z.string().startsWith("/").min(2).describe("Server-relative path of the sub-request (e.g. `/coingecko/price`). Nested batch paths are forbidden."),
20
+ body: z.record(z.string(), z.unknown()).optional().describe("JSON body for POST sub-requests. Ignored for GET."),
21
+ query: z.record(z.string(), z.unknown()).optional().describe("Query-string parameters appended to the sub-request URL."),
22
+ timeoutMs: z.number().int().positive().max(6e4).optional().describe("Per-request timeout override in milliseconds. Falls back to the batch's `defaultTimeoutMs`.")
23
+ }).refine(
24
+ (item) => !(item.path === "/batch" || item.path.startsWith("/batch/")),
25
+ { message: "nested batch requests are not allowed" }
26
+ );
27
+ var BatchBody = z.object({
28
+ requests: z.array(BatchItem).min(1).max(20).describe("Array of sub-requests to dispatch in parallel (1\u201320 items)."),
29
+ defaultTimeoutMs: z.number().int().positive().max(6e4).optional().default(15e3).describe("Default timeout in milliseconds applied to any sub-request that doesn't set its own `timeoutMs`. Capped at 60s.")
30
+ }).refine(
31
+ (input) => new Set(input.requests.map((r) => r.name)).size === input.requests.length,
32
+ { message: "request names must be unique within a batch" }
33
+ );
34
+ var BatchSuccess = z.object({
35
+ ok: z.literal(true),
36
+ status: z.number(),
37
+ data: z.unknown(),
38
+ cache: z.enum(["HIT", "MISS"]).optional()
39
+ });
40
+ var BatchFailure = z.object({
41
+ ok: z.literal(false),
42
+ status: z.number(),
43
+ error: z.string()
44
+ });
45
+ var BatchResult = z.union([BatchSuccess, BatchFailure]);
46
+ var BatchResponse = z.object({
47
+ results: z.record(z.string(), BatchResult)
48
+ });
49
+
50
+ export {
51
+ BatchItem,
52
+ BatchBody,
53
+ BatchSuccess,
54
+ BatchFailure,
55
+ BatchResult,
56
+ BatchResponse,
57
+ schemas_exports
58
+ };
@@ -0,0 +1,129 @@
1
+ import {
2
+ __export
3
+ } from "./chunk-MLKGABMK.js";
4
+
5
+ // src/composite/schemas.ts
6
+ var schemas_exports = {};
7
+ __export(schemas_exports, {
8
+ AlphaRadarBody: () => AlphaRadarBody,
9
+ AlphaRadarComponent: () => AlphaRadarComponent,
10
+ AlphaRadarResponse: () => AlphaRadarResponse,
11
+ HealthResponse: () => HealthResponse,
12
+ MarketSnapshotBody: () => MarketSnapshotBody,
13
+ MarketSnapshotResponse: () => MarketSnapshotResponse,
14
+ SignalLabel: () => SignalLabel,
15
+ WalletXrayBody: () => WalletXrayBody,
16
+ WalletXrayResponse: () => WalletXrayResponse
17
+ });
18
+ import { z } from "zod";
19
+ var MarketSnapshotBody = z.object({
20
+ coingeckoId: z.string().min(1).describe("CoinGecko token ID for the price + market-cap component (e.g. `bitcoin`)."),
21
+ coinglassSymbol: z.string().min(1).describe("CoinGlass coin symbol for the funding + open-interest component (e.g. `BTC`).")
22
+ });
23
+ var MarketSnapshotResponse = z.object({
24
+ token: z.string(),
25
+ price: z.object({
26
+ usd: z.number().nullable(),
27
+ change24h: z.number().nullable(),
28
+ marketCap: z.number().nullable(),
29
+ volume24h: z.number().nullable()
30
+ }),
31
+ fearGreed: z.object({
32
+ value: z.number().nullable(),
33
+ classification: z.string().nullable()
34
+ }),
35
+ funding: z.object({
36
+ rates: z.array(z.object({ exchange: z.string(), rate: z.number().nullable() }))
37
+ }).nullable(),
38
+ openInterest: z.object({
39
+ totalUsd: z.number().nullable(),
40
+ byExchange: z.array(z.object({ exchange: z.string(), usd: z.number().nullable() }))
41
+ }).nullable()
42
+ });
43
+ var AlphaRadarBody = z.object({
44
+ symbol: z.string().min(1).describe("Coin symbol to score across the alpha-radar signal components (e.g. `BTC`).")
45
+ });
46
+ var SignalLabel = z.enum([
47
+ "very_bearish",
48
+ "bearish",
49
+ "neutral",
50
+ "bullish",
51
+ "very_bullish"
52
+ ]);
53
+ var AlphaRadarComponent = z.object({
54
+ score: z.number(),
55
+ weight: z.number(),
56
+ signal: SignalLabel
57
+ }).catchall(z.unknown());
58
+ var AlphaRadarResponse = z.object({
59
+ symbol: z.string(),
60
+ timestamp: z.string(),
61
+ score: z.number(),
62
+ signal: SignalLabel,
63
+ componentsUsed: z.number(),
64
+ components: z.record(z.string(), AlphaRadarComponent),
65
+ errors: z.record(z.string(), z.string()).optional()
66
+ });
67
+ var WalletXrayBody = z.object({
68
+ address: z.string().min(1).describe("Wallet address to analyze (EVM `0x\u2026` or chain-native format)."),
69
+ chain: z.string().optional().describe("Chain name to scope the analysis (e.g. `eth`, `base`, `polygon`). Defaults to Ethereum mainnet.")
70
+ });
71
+ var WalletXrayResponse = z.object({
72
+ address: z.string(),
73
+ chain: z.string(),
74
+ profile: z.object({
75
+ tag: z.string(),
76
+ netWorthUsd: z.number(),
77
+ tokenCount: z.number(),
78
+ nftCount: z.number(),
79
+ defiPositionCount: z.number(),
80
+ recentTransferCount: z.number()
81
+ }),
82
+ topHoldings: z.array(z.unknown()),
83
+ recentActivity: z.object({
84
+ totalTransfers: z.number(),
85
+ inflows: z.number(),
86
+ outflows: z.number(),
87
+ recentInflows: z.array(z.unknown()),
88
+ recentOutflows: z.array(z.unknown())
89
+ }),
90
+ defiPositions: z.array(z.unknown()),
91
+ nftSummary: z.object({
92
+ total: z.number(),
93
+ topCollections: z.array(z.object({ name: z.string(), count: z.number() }))
94
+ }),
95
+ errors: z.record(z.string(), z.string().nullable())
96
+ });
97
+ var HealthResponse = z.object({
98
+ status: z.enum(["ok", "degraded"]),
99
+ uptime: z.number(),
100
+ redis: z.boolean(),
101
+ rateLimit: z.object({
102
+ limit: z.number(),
103
+ windowMs: z.number(),
104
+ used: z.number(),
105
+ remaining: z.number(),
106
+ clientIp: z.string()
107
+ }),
108
+ services: z.array(
109
+ z.object({
110
+ name: z.string(),
111
+ status: z.enum(["ok", "error"]),
112
+ latencyMs: z.number(),
113
+ error: z.string().optional()
114
+ })
115
+ )
116
+ });
117
+
118
+ export {
119
+ MarketSnapshotBody,
120
+ MarketSnapshotResponse,
121
+ AlphaRadarBody,
122
+ SignalLabel,
123
+ AlphaRadarComponent,
124
+ AlphaRadarResponse,
125
+ WalletXrayBody,
126
+ WalletXrayResponse,
127
+ HealthResponse,
128
+ schemas_exports
129
+ };