@oobe-protocol-labs/sap-mcp-server 0.9.37 → 0.9.50

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 (191) hide show
  1. package/.env.example +14 -0
  2. package/CHANGELOG.md +85 -0
  3. package/README.md +3 -3
  4. package/USER_DOCS/01_HOSTED_REMOTE_MCP.md +1 -1
  5. package/USER_DOCS/04_CLIENT_CONFIGS.md +3 -3
  6. package/USER_DOCS/06_DESKTOP_GUI_WIZARD.md +5 -5
  7. package/dist/config/env.d.ts +51 -0
  8. package/dist/config/env.d.ts.map +1 -1
  9. package/dist/config/env.js +32 -2
  10. package/dist/config/env.js.map +1 -1
  11. package/dist/core/constants.d.ts +1 -1
  12. package/dist/core/constants.js +1 -1
  13. package/dist/core/logger.js +1 -1
  14. package/dist/payments/monetization-gate.d.ts +5 -0
  15. package/dist/payments/monetization-gate.d.ts.map +1 -1
  16. package/dist/payments/monetization-gate.js +39 -2
  17. package/dist/payments/monetization-gate.js.map +1 -1
  18. package/dist/payments/prepaid-credit-store.d.ts +111 -0
  19. package/dist/payments/prepaid-credit-store.d.ts.map +1 -0
  20. package/dist/payments/prepaid-credit-store.js +230 -0
  21. package/dist/payments/prepaid-credit-store.js.map +1 -0
  22. package/dist/payments/pricing.d.ts.map +1 -1
  23. package/dist/payments/pricing.js +40 -1
  24. package/dist/payments/pricing.js.map +1 -1
  25. package/dist/payments/schema-validation.d.ts +52 -0
  26. package/dist/payments/schema-validation.d.ts.map +1 -0
  27. package/dist/payments/schema-validation.js +112 -0
  28. package/dist/payments/schema-validation.js.map +1 -0
  29. package/dist/payments/x402-paid-call.d.ts +21 -0
  30. package/dist/payments/x402-paid-call.d.ts.map +1 -1
  31. package/dist/payments/x402-paid-call.js +108 -3
  32. package/dist/payments/x402-paid-call.js.map +1 -1
  33. package/dist/perps/adrena/adrena-builder-commodity.d.ts +63 -0
  34. package/dist/perps/adrena/adrena-builder-commodity.d.ts.map +1 -0
  35. package/dist/perps/adrena/adrena-builder-commodity.js +200 -0
  36. package/dist/perps/adrena/adrena-builder-commodity.js.map +1 -0
  37. package/dist/perps/adrena/adrena-builder-core.d.ts +319 -0
  38. package/dist/perps/adrena/adrena-builder-core.d.ts.map +1 -0
  39. package/dist/perps/adrena/adrena-builder-core.js +517 -0
  40. package/dist/perps/adrena/adrena-builder-core.js.map +1 -0
  41. package/dist/perps/adrena/adrena-builder-liquidity.d.ts +50 -0
  42. package/dist/perps/adrena/adrena-builder-liquidity.d.ts.map +1 -0
  43. package/dist/perps/adrena/adrena-builder-liquidity.js +196 -0
  44. package/dist/perps/adrena/adrena-builder-liquidity.js.map +1 -0
  45. package/dist/perps/adrena/adrena-builder-staking.d.ts +57 -0
  46. package/dist/perps/adrena/adrena-builder-staking.d.ts.map +1 -0
  47. package/dist/perps/adrena/adrena-builder-staking.js +368 -0
  48. package/dist/perps/adrena/adrena-builder-staking.js.map +1 -0
  49. package/dist/perps/adrena/adrena-builder-trading.d.ts +160 -0
  50. package/dist/perps/adrena/adrena-builder-trading.d.ts.map +1 -0
  51. package/dist/perps/adrena/adrena-builder-trading.js +835 -0
  52. package/dist/perps/adrena/adrena-builder-trading.js.map +1 -0
  53. package/dist/perps/adrena/adrena-builder.d.ts +22 -0
  54. package/dist/perps/adrena/adrena-builder.d.ts.map +1 -0
  55. package/dist/perps/adrena/adrena-builder.js +22 -0
  56. package/dist/perps/adrena/adrena-builder.js.map +1 -0
  57. package/dist/perps/adrena/adrena-constants.d.ts +163 -0
  58. package/dist/perps/adrena/adrena-constants.d.ts.map +1 -0
  59. package/dist/perps/adrena/adrena-constants.js +122 -0
  60. package/dist/perps/adrena/adrena-constants.js.map +1 -0
  61. package/dist/perps/adrena/adrena-data-api.d.ts +180 -0
  62. package/dist/perps/adrena/adrena-data-api.d.ts.map +1 -0
  63. package/dist/perps/adrena/adrena-data-api.js +169 -0
  64. package/dist/perps/adrena/adrena-data-api.js.map +1 -0
  65. package/dist/perps/adrena/adrena-idl.d.ts +15084 -0
  66. package/dist/perps/adrena/adrena-idl.d.ts.map +1 -0
  67. package/dist/perps/adrena/adrena-idl.js +29903 -0
  68. package/dist/perps/adrena/adrena-idl.js.map +1 -0
  69. package/dist/perps/adrena/adrena-pda.d.ts +147 -0
  70. package/dist/perps/adrena/adrena-pda.d.ts.map +1 -0
  71. package/dist/perps/adrena/adrena-pda.js +211 -0
  72. package/dist/perps/adrena/adrena-pda.js.map +1 -0
  73. package/dist/perps/adrena/index.d.ts +12 -0
  74. package/dist/perps/adrena/index.d.ts.map +1 -0
  75. package/dist/perps/adrena/index.js +12 -0
  76. package/dist/perps/adrena/index.js.map +1 -0
  77. package/dist/perps/chart-indicators.d.ts +27 -0
  78. package/dist/perps/chart-indicators.d.ts.map +1 -0
  79. package/dist/perps/chart-indicators.js +345 -0
  80. package/dist/perps/chart-indicators.js.map +1 -0
  81. package/dist/perps/chart-tools.d.ts +45 -0
  82. package/dist/perps/chart-tools.d.ts.map +1 -0
  83. package/dist/perps/chart-tools.js +341 -0
  84. package/dist/perps/chart-tools.js.map +1 -0
  85. package/dist/perps/perp-analytics-tools.d.ts +20 -0
  86. package/dist/perps/perp-analytics-tools.d.ts.map +1 -0
  87. package/dist/perps/perp-analytics-tools.js +868 -0
  88. package/dist/perps/perp-analytics-tools.js.map +1 -0
  89. package/dist/perps/perp-constants.d.ts +362 -0
  90. package/dist/perps/perp-constants.d.ts.map +1 -0
  91. package/dist/perps/perp-constants.js +210 -0
  92. package/dist/perps/perp-constants.js.map +1 -0
  93. package/dist/perps/perp-decoders.d.ts +47 -0
  94. package/dist/perps/perp-decoders.d.ts.map +1 -0
  95. package/dist/perps/perp-decoders.js +332 -0
  96. package/dist/perps/perp-decoders.js.map +1 -0
  97. package/dist/policy/policy-engine.d.ts +42 -0
  98. package/dist/policy/policy-engine.d.ts.map +1 -1
  99. package/dist/policy/policy-engine.js +43 -0
  100. package/dist/policy/policy-engine.js.map +1 -1
  101. package/dist/premium/activation-manager.d.ts.map +1 -1
  102. package/dist/premium/activation-manager.js +20 -2
  103. package/dist/premium/activation-manager.js.map +1 -1
  104. package/dist/prompts/context/sap-agent-context.prompt.js +15 -1
  105. package/dist/prompts/context/sap-agent-context.prompt.js.map +1 -1
  106. package/dist/server/server-metadata.d.ts +15 -0
  107. package/dist/server/server-metadata.d.ts.map +1 -1
  108. package/dist/server/server-metadata.js +16 -1
  109. package/dist/server/server-metadata.js.map +1 -1
  110. package/dist/solana/ata-utils.d.ts +39 -0
  111. package/dist/solana/ata-utils.d.ts.map +1 -0
  112. package/dist/solana/ata-utils.js +49 -0
  113. package/dist/solana/ata-utils.js.map +1 -0
  114. package/dist/strategies/trade-journal.d.ts +78 -0
  115. package/dist/strategies/trade-journal.d.ts.map +1 -0
  116. package/dist/strategies/trade-journal.js +92 -0
  117. package/dist/strategies/trade-journal.js.map +1 -0
  118. package/dist/tools/adrena/adrena-commodity-tools.d.ts +15 -0
  119. package/dist/tools/adrena/adrena-commodity-tools.d.ts.map +1 -0
  120. package/dist/tools/adrena/adrena-commodity-tools.js +137 -0
  121. package/dist/tools/adrena/adrena-commodity-tools.js.map +1 -0
  122. package/dist/tools/adrena/adrena-data-tools.d.ts +23 -0
  123. package/dist/tools/adrena/adrena-data-tools.d.ts.map +1 -0
  124. package/dist/tools/adrena/adrena-data-tools.js +437 -0
  125. package/dist/tools/adrena/adrena-data-tools.js.map +1 -0
  126. package/dist/tools/adrena/adrena-helpers.d.ts +46 -0
  127. package/dist/tools/adrena/adrena-helpers.d.ts.map +1 -0
  128. package/dist/tools/adrena/adrena-helpers.js +41 -0
  129. package/dist/tools/adrena/adrena-helpers.js.map +1 -0
  130. package/dist/tools/adrena/adrena-index.d.ts +20 -0
  131. package/dist/tools/adrena/adrena-index.d.ts.map +1 -0
  132. package/dist/tools/adrena/adrena-index.js +75 -0
  133. package/dist/tools/adrena/adrena-index.js.map +1 -0
  134. package/dist/tools/adrena/adrena-limit-order-tools.d.ts +22 -0
  135. package/dist/tools/adrena/adrena-limit-order-tools.d.ts.map +1 -0
  136. package/dist/tools/adrena/adrena-limit-order-tools.js +91 -0
  137. package/dist/tools/adrena/adrena-limit-order-tools.js.map +1 -0
  138. package/dist/tools/adrena/adrena-liquidity-tools.d.ts +15 -0
  139. package/dist/tools/adrena/adrena-liquidity-tools.d.ts.map +1 -0
  140. package/dist/tools/adrena/adrena-liquidity-tools.js +108 -0
  141. package/dist/tools/adrena/adrena-liquidity-tools.js.map +1 -0
  142. package/dist/tools/adrena/adrena-snapshot-tools.d.ts +42 -0
  143. package/dist/tools/adrena/adrena-snapshot-tools.d.ts.map +1 -0
  144. package/dist/tools/adrena/adrena-snapshot-tools.js +124 -0
  145. package/dist/tools/adrena/adrena-snapshot-tools.js.map +1 -0
  146. package/dist/tools/adrena/adrena-staking-tools.d.ts +15 -0
  147. package/dist/tools/adrena/adrena-staking-tools.d.ts.map +1 -0
  148. package/dist/tools/adrena/adrena-staking-tools.js +139 -0
  149. package/dist/tools/adrena/adrena-staking-tools.js.map +1 -0
  150. package/dist/tools/adrena/adrena-trading-tools.d.ts +78 -0
  151. package/dist/tools/adrena/adrena-trading-tools.d.ts.map +1 -0
  152. package/dist/tools/adrena/adrena-trading-tools.js +556 -0
  153. package/dist/tools/adrena/adrena-trading-tools.js.map +1 -0
  154. package/dist/tools/adrena-tools.d.ts +2 -0
  155. package/dist/tools/adrena-tools.d.ts.map +1 -0
  156. package/dist/tools/adrena-tools.js +2 -0
  157. package/dist/tools/adrena-tools.js.map +1 -0
  158. package/dist/tools/client-sdk-tools.d.ts +8 -0
  159. package/dist/tools/client-sdk-tools.d.ts.map +1 -1
  160. package/dist/tools/client-sdk-tools.js +32 -7
  161. package/dist/tools/client-sdk-tools.js.map +1 -1
  162. package/dist/tools/memory-tools.d.ts.map +1 -1
  163. package/dist/tools/memory-tools.js +170 -0
  164. package/dist/tools/memory-tools.js.map +1 -1
  165. package/dist/tools/perp-tools.d.ts +6 -31
  166. package/dist/tools/perp-tools.d.ts.map +1 -1
  167. package/dist/tools/perp-tools.js +6 -1141
  168. package/dist/tools/perp-tools.js.map +1 -1
  169. package/dist/tools/premium-tools.d.ts.map +1 -1
  170. package/dist/tools/premium-tools.js +123 -5
  171. package/dist/tools/premium-tools.js.map +1 -1
  172. package/dist/tools/quick-context-tool.js +1 -0
  173. package/dist/tools/quick-context-tool.js.map +1 -1
  174. package/dist/tools/register-tools.d.ts.map +1 -1
  175. package/dist/tools/register-tools.js +4 -0
  176. package/dist/tools/register-tools.js.map +1 -1
  177. package/dist/tools/transaction-tools.d.ts +21 -1
  178. package/dist/tools/transaction-tools.d.ts.map +1 -1
  179. package/dist/tools/transaction-tools.js +114 -30
  180. package/dist/tools/transaction-tools.js.map +1 -1
  181. package/dist/tools/x402-paid-call-tool.d.ts.map +1 -1
  182. package/dist/tools/x402-paid-call-tool.js +288 -0
  183. package/dist/tools/x402-paid-call-tool.js.map +1 -1
  184. package/docs/07_ENDPOINTS_AND_CLIENTS.md +1 -1
  185. package/docs/10_OPERATIONS_RELEASE_AND_PM2.md +54 -6
  186. package/docs/14_DESKTOP_WIZARD_RELEASE.md +3 -3
  187. package/docs/BRANCH_AND_CI.md +2 -2
  188. package/package.json +3 -2
  189. package/server.json +3 -3
  190. package/skills/sap-defi/SKILL.md +93 -22
  191. package/skills/sap-mcp/TOOL_REFERENCE.md +39 -4
@@ -0,0 +1,169 @@
1
+ /**
2
+ * @name perps/adrena/adrena-data-api
3
+ * @description REST client for the Adrena Data API (datapi.adrena.trade).
4
+ *
5
+ * Provides off-chain analytics: position history, pool statistics, custody
6
+ * stats, trader leaderboards, mutagen points, and oracle prices.
7
+ *
8
+ * This is a pure REST client — no SDK runtime dependency required.
9
+ *
10
+ * @module perps/adrena/adrena-data-api
11
+ */
12
+ import { ADRENA_DATA_API_BASE_URL } from './adrena-constants.js';
13
+ /** Fetch timeout for Adrena Data API calls (ms). */
14
+ const DATA_API_TIMEOUT_MS = 10_000;
15
+ // ─── Client ──────────────────────────────────────────────────────────────────
16
+ /**
17
+ * Adrena Data API client.
18
+ * Wraps the REST endpoints at datapi.adrena.trade.
19
+ */
20
+ export class AdrenaDataApiClient {
21
+ baseUrl;
22
+ /**
23
+ * @param baseUrl — Base URL for the Adrena Data API. Defaults to datapi.adrena.trade.
24
+ */
25
+ constructor(baseUrl = ADRENA_DATA_API_BASE_URL) {
26
+ this.baseUrl = baseUrl.replace(/\/$/, '');
27
+ }
28
+ /**
29
+ * Fetch JSON from the Adrena Data API with timeout.
30
+ * @param path — API path (e.g. "/positions").
31
+ * @param params — Query parameters.
32
+ * @returns Parsed JSON response or null on error.
33
+ */
34
+ async fetchJson(path, params) {
35
+ try {
36
+ const url = new URL(this.baseUrl + path);
37
+ if (params) {
38
+ for (const [key, value] of Object.entries(params)) {
39
+ if (value)
40
+ url.searchParams.set(key, value);
41
+ }
42
+ }
43
+ const controller = new AbortController();
44
+ const timeout = setTimeout(() => controller.abort(), DATA_API_TIMEOUT_MS);
45
+ const response = await fetch(url.toString(), {
46
+ signal: controller.signal,
47
+ headers: { Accept: 'application/json' },
48
+ });
49
+ clearTimeout(timeout);
50
+ if (!response.ok)
51
+ return null;
52
+ return await response.json();
53
+ }
54
+ catch {
55
+ return null;
56
+ }
57
+ }
58
+ /**
59
+ * Get position history for a wallet.
60
+ * @param userWallet — Wallet public key.
61
+ * @returns Array of position records.
62
+ */
63
+ async getPositions(userWallet) {
64
+ return this.fetchJson('/positions', { userWallet });
65
+ }
66
+ /**
67
+ * Get latest pool statistics.
68
+ * @param poolName — Optional pool name filter.
69
+ * @returns Pool info object.
70
+ */
71
+ async getPoolInfo(poolName) {
72
+ return this.fetchJson('/pool-info', poolName ? { poolName } : undefined);
73
+ }
74
+ /**
75
+ * Get hourly pool statistics.
76
+ * @returns Array of hourly pool info.
77
+ */
78
+ async getHourlyPoolInfo() {
79
+ return this.fetchJson('/pool-info/hourly');
80
+ }
81
+ /**
82
+ * Get daily pool statistics.
83
+ * @returns Array of daily pool info.
84
+ */
85
+ async getDailyPoolInfo() {
86
+ return this.fetchJson('/pool-info/daily');
87
+ }
88
+ /**
89
+ * Get per-asset custody statistics.
90
+ * @param symbol — Optional symbol filter.
91
+ * @returns Array of custody info.
92
+ */
93
+ async getCustodyInfo(symbol) {
94
+ return this.fetchJson('/custody-info', symbol ? { symbol } : undefined);
95
+ }
96
+ /**
97
+ * Get hourly custody statistics.
98
+ * @returns Array of hourly custody info.
99
+ */
100
+ async getHourlyCustodyInfo() {
101
+ return this.fetchJson('/custody-info/hourly');
102
+ }
103
+ /**
104
+ * Get daily custody statistics.
105
+ * @returns Array of daily custody info.
106
+ */
107
+ async getDailyCustodyInfo() {
108
+ return this.fetchJson('/custody-info/daily');
109
+ }
110
+ /**
111
+ * Get trader info for a wallet.
112
+ * @param userPubkey — Trader wallet public key.
113
+ * @returns Trader info object.
114
+ */
115
+ async getTraderInfo(userPubkey) {
116
+ return this.fetchJson('/trader-info', { userPubkey });
117
+ }
118
+ /**
119
+ * Get trader leaderboard.
120
+ * @param limit — Optional limit.
121
+ * @returns Array of trader profiles.
122
+ */
123
+ async getTraderProfiles(limit) {
124
+ return this.fetchJson('/trader-profiles', limit ? { limit: String(limit) } : undefined);
125
+ }
126
+ /**
127
+ * Get trader volume history.
128
+ * @param userWallet — Trader wallet public key.
129
+ * @returns Volume data.
130
+ */
131
+ async getTraderVolume(userWallet) {
132
+ return this.fetchJson('/trader-volume', { userWallet });
133
+ }
134
+ /**
135
+ * Get mutagen points for a wallet.
136
+ * @param userWallet — Wallet public key.
137
+ * @returns Mutagen info.
138
+ */
139
+ async getMutagen(userWallet) {
140
+ return this.fetchJson('/mutagen', { userWallet });
141
+ }
142
+ /**
143
+ * Get mutagen leaderboard.
144
+ * @param limit — Optional limit.
145
+ * @returns Array of mutagen entries.
146
+ */
147
+ async getMutagenLeaderboard(limit) {
148
+ return this.fetchJson('/mutagen/leaderboard', limit ? { limit: String(limit) } : undefined);
149
+ }
150
+ /**
151
+ * Get ADX and ALP token prices.
152
+ * @returns Price info.
153
+ */
154
+ async getPrice() {
155
+ return this.fetchJson('/price');
156
+ }
157
+ /**
158
+ * Get latest oracle trading prices for all assets.
159
+ * @returns Array of trading prices.
160
+ */
161
+ async getLastTradingPrices() {
162
+ return this.fetchJson('/last-trading-prices');
163
+ }
164
+ }
165
+ /**
166
+ * Default Adrena Data API client instance.
167
+ */
168
+ export const adrenaDataApi = new AdrenaDataApiClient();
169
+ //# sourceMappingURL=adrena-data-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adrena-data-api.js","sourceRoot":"","sources":["../../../src/perps/adrena/adrena-data-api.ts"],"names":[],"mappings":"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"}