@lagoon-protocol/lagoon-mcp 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 (335) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +618 -0
  3. package/dist/cache/index.d.ts +97 -0
  4. package/dist/cache/index.d.ts.map +1 -0
  5. package/dist/cache/index.js +106 -0
  6. package/dist/cache/index.js.map +1 -0
  7. package/dist/config.d.ts +34 -0
  8. package/dist/config.d.ts.map +1 -0
  9. package/dist/config.js +40 -0
  10. package/dist/config.js.map +1 -0
  11. package/dist/core/cache-adapter.d.ts +73 -0
  12. package/dist/core/cache-adapter.d.ts.map +1 -0
  13. package/dist/core/cache-adapter.js +47 -0
  14. package/dist/core/cache-adapter.js.map +1 -0
  15. package/dist/core/cache-invalidation.d.ts +72 -0
  16. package/dist/core/cache-invalidation.d.ts.map +1 -0
  17. package/dist/core/cache-invalidation.js +114 -0
  18. package/dist/core/cache-invalidation.js.map +1 -0
  19. package/dist/core/container.d.ts +34 -0
  20. package/dist/core/container.d.ts.map +1 -0
  21. package/dist/core/container.js +75 -0
  22. package/dist/core/container.js.map +1 -0
  23. package/dist/graphql/client.d.ts +32 -0
  24. package/dist/graphql/client.d.ts.map +1 -0
  25. package/dist/graphql/client.js +49 -0
  26. package/dist/graphql/client.js.map +1 -0
  27. package/dist/graphql/fragments/apr-breakdown.fragment.d.ts +64 -0
  28. package/dist/graphql/fragments/apr-breakdown.fragment.d.ts.map +1 -0
  29. package/dist/graphql/fragments/apr-breakdown.fragment.js +62 -0
  30. package/dist/graphql/fragments/apr-breakdown.fragment.js.map +1 -0
  31. package/dist/graphql/fragments/asset-info.fragment.d.ts +18 -0
  32. package/dist/graphql/fragments/asset-info.fragment.d.ts.map +1 -0
  33. package/dist/graphql/fragments/asset-info.fragment.js +36 -0
  34. package/dist/graphql/fragments/asset-info.fragment.js.map +1 -0
  35. package/dist/graphql/fragments/chain-info.fragment.d.ts +18 -0
  36. package/dist/graphql/fragments/chain-info.fragment.d.ts.map +1 -0
  37. package/dist/graphql/fragments/chain-info.fragment.js +32 -0
  38. package/dist/graphql/fragments/chain-info.fragment.js.map +1 -0
  39. package/dist/graphql/fragments/index.d.ts +15 -0
  40. package/dist/graphql/fragments/index.d.ts.map +1 -0
  41. package/dist/graphql/fragments/index.js +21 -0
  42. package/dist/graphql/fragments/index.js.map +1 -0
  43. package/dist/graphql/fragments/pageinfo.fragment.d.ts +33 -0
  44. package/dist/graphql/fragments/pageinfo.fragment.d.ts.map +1 -0
  45. package/dist/graphql/fragments/pageinfo.fragment.js +47 -0
  46. package/dist/graphql/fragments/pageinfo.fragment.js.map +1 -0
  47. package/dist/graphql/fragments/transaction-base.fragment.d.ts +19 -0
  48. package/dist/graphql/fragments/transaction-base.fragment.d.ts.map +1 -0
  49. package/dist/graphql/fragments/transaction-base.fragment.js +32 -0
  50. package/dist/graphql/fragments/transaction-base.fragment.js.map +1 -0
  51. package/dist/graphql/fragments/vault-list.fragment.d.ts +53 -0
  52. package/dist/graphql/fragments/vault-list.fragment.d.ts.map +1 -0
  53. package/dist/graphql/fragments/vault-list.fragment.js +51 -0
  54. package/dist/graphql/fragments/vault-list.fragment.js.map +1 -0
  55. package/dist/graphql/fragments/vault-summary.fragment.d.ts +68 -0
  56. package/dist/graphql/fragments/vault-summary.fragment.d.ts.map +1 -0
  57. package/dist/graphql/fragments/vault-summary.fragment.js +66 -0
  58. package/dist/graphql/fragments/vault-summary.fragment.js.map +1 -0
  59. package/dist/graphql/fragments/vault.fragment.d.ts +133 -0
  60. package/dist/graphql/fragments/vault.fragment.d.ts.map +1 -0
  61. package/dist/graphql/fragments/vault.fragment.js +119 -0
  62. package/dist/graphql/fragments/vault.fragment.js.map +1 -0
  63. package/dist/graphql/fragments.d.ts +183 -0
  64. package/dist/graphql/fragments.d.ts.map +1 -0
  65. package/dist/graphql/fragments.js +297 -0
  66. package/dist/graphql/fragments.js.map +1 -0
  67. package/dist/graphql/queries/export.queries.d.ts +72 -0
  68. package/dist/graphql/queries/export.queries.d.ts.map +1 -0
  69. package/dist/graphql/queries/export.queries.js +202 -0
  70. package/dist/graphql/queries/export.queries.js.map +1 -0
  71. package/dist/graphql/queries/index.d.ts +15 -0
  72. package/dist/graphql/queries/index.d.ts.map +1 -0
  73. package/dist/graphql/queries/index.js +23 -0
  74. package/dist/graphql/queries/index.js.map +1 -0
  75. package/dist/graphql/queries/performance.queries.d.ts +63 -0
  76. package/dist/graphql/queries/performance.queries.d.ts.map +1 -0
  77. package/dist/graphql/queries/performance.queries.js +133 -0
  78. package/dist/graphql/queries/performance.queries.js.map +1 -0
  79. package/dist/graphql/queries/period-summaries.d.ts +15 -0
  80. package/dist/graphql/queries/period-summaries.d.ts.map +1 -0
  81. package/dist/graphql/queries/period-summaries.js +24 -0
  82. package/dist/graphql/queries/period-summaries.js.map +1 -0
  83. package/dist/graphql/queries/portfolio.queries.d.ts +78 -0
  84. package/dist/graphql/queries/portfolio.queries.d.ts.map +1 -0
  85. package/dist/graphql/queries/portfolio.queries.js +198 -0
  86. package/dist/graphql/queries/portfolio.queries.js.map +1 -0
  87. package/dist/graphql/queries/prediction.queries.d.ts +38 -0
  88. package/dist/graphql/queries/prediction.queries.d.ts.map +1 -0
  89. package/dist/graphql/queries/prediction.queries.js +100 -0
  90. package/dist/graphql/queries/prediction.queries.js.map +1 -0
  91. package/dist/graphql/queries/risk.queries.d.ts +37 -0
  92. package/dist/graphql/queries/risk.queries.d.ts.map +1 -0
  93. package/dist/graphql/queries/risk.queries.js +90 -0
  94. package/dist/graphql/queries/risk.queries.js.map +1 -0
  95. package/dist/graphql/queries/search.queries.d.ts +61 -0
  96. package/dist/graphql/queries/search.queries.d.ts.map +1 -0
  97. package/dist/graphql/queries/search.queries.js +103 -0
  98. package/dist/graphql/queries/search.queries.js.map +1 -0
  99. package/dist/graphql/queries/transaction.queries.d.ts +60 -0
  100. package/dist/graphql/queries/transaction.queries.d.ts.map +1 -0
  101. package/dist/graphql/queries/transaction.queries.js +252 -0
  102. package/dist/graphql/queries/transaction.queries.js.map +1 -0
  103. package/dist/graphql/queries/vault.queries.d.ts +54 -0
  104. package/dist/graphql/queries/vault.queries.d.ts.map +1 -0
  105. package/dist/graphql/queries/vault.queries.js +78 -0
  106. package/dist/graphql/queries/vault.queries.js.map +1 -0
  107. package/dist/index.d.ts +12 -0
  108. package/dist/index.d.ts.map +1 -0
  109. package/dist/index.js +32 -0
  110. package/dist/index.js.map +1 -0
  111. package/dist/prompts/competitor-comparison.d.ts +8 -0
  112. package/dist/prompts/competitor-comparison.d.ts.map +1 -0
  113. package/dist/prompts/competitor-comparison.js +432 -0
  114. package/dist/prompts/competitor-comparison.js.map +1 -0
  115. package/dist/prompts/curator-performance.d.ts +8 -0
  116. package/dist/prompts/curator-performance.d.ts.map +1 -0
  117. package/dist/prompts/curator-performance.js +383 -0
  118. package/dist/prompts/curator-performance.js.map +1 -0
  119. package/dist/prompts/financial-analysis.d.ts +8 -0
  120. package/dist/prompts/financial-analysis.d.ts.map +1 -0
  121. package/dist/prompts/financial-analysis.js +480 -0
  122. package/dist/prompts/financial-analysis.js.map +1 -0
  123. package/dist/prompts/index.d.ts +21 -0
  124. package/dist/prompts/index.d.ts.map +1 -0
  125. package/dist/prompts/index.js +50 -0
  126. package/dist/prompts/index.js.map +1 -0
  127. package/dist/prompts/onboarding-first-vault.d.ts +8 -0
  128. package/dist/prompts/onboarding-first-vault.d.ts.map +1 -0
  129. package/dist/prompts/onboarding-first-vault.js +317 -0
  130. package/dist/prompts/onboarding-first-vault.js.map +1 -0
  131. package/dist/prompts/portfolio-optimization.d.ts +8 -0
  132. package/dist/prompts/portfolio-optimization.d.ts.map +1 -0
  133. package/dist/prompts/portfolio-optimization.js +412 -0
  134. package/dist/prompts/portfolio-optimization.js.map +1 -0
  135. package/dist/prompts/protocol-overview.d.ts +8 -0
  136. package/dist/prompts/protocol-overview.d.ts.map +1 -0
  137. package/dist/prompts/protocol-overview.js +398 -0
  138. package/dist/prompts/protocol-overview.js.map +1 -0
  139. package/dist/prompts/shared/disclaimers.d.ts +54 -0
  140. package/dist/prompts/shared/disclaimers.d.ts.map +1 -0
  141. package/dist/prompts/shared/disclaimers.js +400 -0
  142. package/dist/prompts/shared/disclaimers.js.map +1 -0
  143. package/dist/resources/glossary.d.ts +8 -0
  144. package/dist/resources/glossary.d.ts.map +1 -0
  145. package/dist/resources/glossary.js +407 -0
  146. package/dist/resources/glossary.js.map +1 -0
  147. package/dist/resources/index.d.ts +18 -0
  148. package/dist/resources/index.d.ts.map +1 -0
  149. package/dist/resources/index.js +29 -0
  150. package/dist/resources/index.js.map +1 -0
  151. package/dist/resources/schema.d.ts +22 -0
  152. package/dist/resources/schema.d.ts.map +1 -0
  153. package/dist/resources/schema.js +67 -0
  154. package/dist/resources/schema.js.map +1 -0
  155. package/dist/schemas/config.schema.d.ts +46 -0
  156. package/dist/schemas/config.schema.d.ts.map +1 -0
  157. package/dist/schemas/config.schema.js +48 -0
  158. package/dist/schemas/config.schema.js.map +1 -0
  159. package/dist/sdk/__tests__/apr-service.test.d.ts +7 -0
  160. package/dist/sdk/__tests__/apr-service.test.d.ts.map +1 -0
  161. package/dist/sdk/__tests__/apr-service.test.js +385 -0
  162. package/dist/sdk/__tests__/apr-service.test.js.map +1 -0
  163. package/dist/sdk/__tests__/math-utils.test.d.ts +7 -0
  164. package/dist/sdk/__tests__/math-utils.test.d.ts.map +1 -0
  165. package/dist/sdk/__tests__/math-utils.test.js +185 -0
  166. package/dist/sdk/__tests__/math-utils.test.js.map +1 -0
  167. package/dist/sdk/__tests__/simulation-service.test.d.ts +5 -0
  168. package/dist/sdk/__tests__/simulation-service.test.d.ts.map +1 -0
  169. package/dist/sdk/__tests__/simulation-service.test.js +397 -0
  170. package/dist/sdk/__tests__/simulation-service.test.js.map +1 -0
  171. package/dist/sdk/__tests__/vault-utils.test.d.ts +7 -0
  172. package/dist/sdk/__tests__/vault-utils.test.d.ts.map +1 -0
  173. package/dist/sdk/__tests__/vault-utils.test.js +189 -0
  174. package/dist/sdk/__tests__/vault-utils.test.js.map +1 -0
  175. package/dist/sdk/apr-service.d.ts +101 -0
  176. package/dist/sdk/apr-service.d.ts.map +1 -0
  177. package/dist/sdk/apr-service.js +175 -0
  178. package/dist/sdk/apr-service.js.map +1 -0
  179. package/dist/sdk/math-utils.d.ts +138 -0
  180. package/dist/sdk/math-utils.d.ts.map +1 -0
  181. package/dist/sdk/math-utils.js +218 -0
  182. package/dist/sdk/math-utils.js.map +1 -0
  183. package/dist/sdk/simulation-service.d.ts +106 -0
  184. package/dist/sdk/simulation-service.d.ts.map +1 -0
  185. package/dist/sdk/simulation-service.js +143 -0
  186. package/dist/sdk/simulation-service.js.map +1 -0
  187. package/dist/sdk/vault-utils.d.ts +125 -0
  188. package/dist/sdk/vault-utils.d.ts.map +1 -0
  189. package/dist/sdk/vault-utils.js +165 -0
  190. package/dist/sdk/vault-utils.js.map +1 -0
  191. package/dist/server.d.ts +21 -0
  192. package/dist/server.d.ts.map +1 -0
  193. package/dist/server.js +225 -0
  194. package/dist/server.js.map +1 -0
  195. package/dist/services/analytics/protocol-overview.service.d.ts +61 -0
  196. package/dist/services/analytics/protocol-overview.service.d.ts.map +1 -0
  197. package/dist/services/analytics/protocol-overview.service.js +182 -0
  198. package/dist/services/analytics/protocol-overview.service.js.map +1 -0
  199. package/dist/services/analytics/risk.service.d.ts +92 -0
  200. package/dist/services/analytics/risk.service.d.ts.map +1 -0
  201. package/dist/services/analytics/risk.service.js +423 -0
  202. package/dist/services/analytics/risk.service.js.map +1 -0
  203. package/dist/services/base.service.d.ts +39 -0
  204. package/dist/services/base.service.d.ts.map +1 -0
  205. package/dist/services/base.service.js +37 -0
  206. package/dist/services/base.service.js.map +1 -0
  207. package/dist/services/index.d.ts +30 -0
  208. package/dist/services/index.d.ts.map +1 -0
  209. package/dist/services/index.js +101 -0
  210. package/dist/services/index.js.map +1 -0
  211. package/dist/tools/__tests__/simulate-vault.test.d.ts +5 -0
  212. package/dist/tools/__tests__/simulate-vault.test.d.ts.map +1 -0
  213. package/dist/tools/__tests__/simulate-vault.test.js +363 -0
  214. package/dist/tools/__tests__/simulate-vault.test.js.map +1 -0
  215. package/dist/tools/analyze-risk.d.ts +34 -0
  216. package/dist/tools/analyze-risk.d.ts.map +1 -0
  217. package/dist/tools/analyze-risk.js +100 -0
  218. package/dist/tools/analyze-risk.js.map +1 -0
  219. package/dist/tools/compare-vaults.d.ts +29 -0
  220. package/dist/tools/compare-vaults.d.ts.map +1 -0
  221. package/dist/tools/compare-vaults.js +285 -0
  222. package/dist/tools/compare-vaults.js.map +1 -0
  223. package/dist/tools/export-data.d.ts +34 -0
  224. package/dist/tools/export-data.d.ts.map +1 -0
  225. package/dist/tools/export-data.js +309 -0
  226. package/dist/tools/export-data.js.map +1 -0
  227. package/dist/tools/get-price-history.d.ts +29 -0
  228. package/dist/tools/get-price-history.d.ts.map +1 -0
  229. package/dist/tools/get-price-history.js +236 -0
  230. package/dist/tools/get-price-history.js.map +1 -0
  231. package/dist/tools/get-transactions.d.ts +29 -0
  232. package/dist/tools/get-transactions.d.ts.map +1 -0
  233. package/dist/tools/get-transactions.js +181 -0
  234. package/dist/tools/get-transactions.js.map +1 -0
  235. package/dist/tools/index.d.ts +26 -0
  236. package/dist/tools/index.d.ts.map +1 -0
  237. package/dist/tools/index.js +32 -0
  238. package/dist/tools/index.js.map +1 -0
  239. package/dist/tools/optimize-portfolio.d.ts +37 -0
  240. package/dist/tools/optimize-portfolio.d.ts.map +1 -0
  241. package/dist/tools/optimize-portfolio.js +459 -0
  242. package/dist/tools/optimize-portfolio.js.map +1 -0
  243. package/dist/tools/predict-yield.d.ts +30 -0
  244. package/dist/tools/predict-yield.d.ts.map +1 -0
  245. package/dist/tools/predict-yield.js +248 -0
  246. package/dist/tools/predict-yield.js.map +1 -0
  247. package/dist/tools/query-graphql.d.ts +35 -0
  248. package/dist/tools/query-graphql.d.ts.map +1 -0
  249. package/dist/tools/query-graphql.js +54 -0
  250. package/dist/tools/query-graphql.js.map +1 -0
  251. package/dist/tools/registry.d.ts +42 -0
  252. package/dist/tools/registry.d.ts.map +1 -0
  253. package/dist/tools/registry.js +231 -0
  254. package/dist/tools/registry.js.map +1 -0
  255. package/dist/tools/search-vaults.d.ts +40 -0
  256. package/dist/tools/search-vaults.d.ts.map +1 -0
  257. package/dist/tools/search-vaults.js +184 -0
  258. package/dist/tools/search-vaults.js.map +1 -0
  259. package/dist/tools/simulate-vault.d.ts +80 -0
  260. package/dist/tools/simulate-vault.d.ts.map +1 -0
  261. package/dist/tools/simulate-vault.js +281 -0
  262. package/dist/tools/simulate-vault.js.map +1 -0
  263. package/dist/tools/user-portfolio.d.ts +30 -0
  264. package/dist/tools/user-portfolio.d.ts.map +1 -0
  265. package/dist/tools/user-portfolio.js +142 -0
  266. package/dist/tools/user-portfolio.js.map +1 -0
  267. package/dist/tools/vault-data.d.ts +23 -0
  268. package/dist/tools/vault-data.d.ts.map +1 -0
  269. package/dist/tools/vault-data.js +68 -0
  270. package/dist/tools/vault-data.js.map +1 -0
  271. package/dist/tools/vault-performance.d.ts +30 -0
  272. package/dist/tools/vault-performance.d.ts.map +1 -0
  273. package/dist/tools/vault-performance.js +275 -0
  274. package/dist/tools/vault-performance.js.map +1 -0
  275. package/dist/types/generated.d.ts +1109 -0
  276. package/dist/types/generated.d.ts.map +1 -0
  277. package/dist/types/generated.js +2 -0
  278. package/dist/types/generated.js.map +1 -0
  279. package/dist/types/index.d.ts +46 -0
  280. package/dist/types/index.d.ts.map +1 -0
  281. package/dist/types/index.js +8 -0
  282. package/dist/types/index.js.map +1 -0
  283. package/dist/utils/comparison-metrics.d.ts +120 -0
  284. package/dist/utils/comparison-metrics.d.ts.map +1 -0
  285. package/dist/utils/comparison-metrics.js +215 -0
  286. package/dist/utils/comparison-metrics.js.map +1 -0
  287. package/dist/utils/config-loader.d.ts +17 -0
  288. package/dist/utils/config-loader.d.ts.map +1 -0
  289. package/dist/utils/config-loader.js +45 -0
  290. package/dist/utils/config-loader.js.map +1 -0
  291. package/dist/utils/csv-generator.d.ts +89 -0
  292. package/dist/utils/csv-generator.d.ts.map +1 -0
  293. package/dist/utils/csv-generator.js +97 -0
  294. package/dist/utils/csv-generator.js.map +1 -0
  295. package/dist/utils/disclaimers.d.ts +70 -0
  296. package/dist/utils/disclaimers.d.ts.map +1 -0
  297. package/dist/utils/disclaimers.js +161 -0
  298. package/dist/utils/disclaimers.js.map +1 -0
  299. package/dist/utils/errors.d.ts +66 -0
  300. package/dist/utils/errors.d.ts.map +1 -0
  301. package/dist/utils/errors.js +86 -0
  302. package/dist/utils/errors.js.map +1 -0
  303. package/dist/utils/execute-tool-with-cache.d.ts +97 -0
  304. package/dist/utils/execute-tool-with-cache.d.ts.map +1 -0
  305. package/dist/utils/execute-tool-with-cache.js +105 -0
  306. package/dist/utils/execute-tool-with-cache.js.map +1 -0
  307. package/dist/utils/portfolio-optimization.d.ts +100 -0
  308. package/dist/utils/portfolio-optimization.d.ts.map +1 -0
  309. package/dist/utils/portfolio-optimization.js +283 -0
  310. package/dist/utils/portfolio-optimization.js.map +1 -0
  311. package/dist/utils/risk-scoring.d.ts +226 -0
  312. package/dist/utils/risk-scoring.d.ts.map +1 -0
  313. package/dist/utils/risk-scoring.js +523 -0
  314. package/dist/utils/risk-scoring.js.map +1 -0
  315. package/dist/utils/tool-error-handler.d.ts +16 -0
  316. package/dist/utils/tool-error-handler.d.ts.map +1 -0
  317. package/dist/utils/tool-error-handler.js +43 -0
  318. package/dist/utils/tool-error-handler.js.map +1 -0
  319. package/dist/utils/tool-handler.d.ts +33 -0
  320. package/dist/utils/tool-handler.d.ts.map +1 -0
  321. package/dist/utils/tool-handler.js +59 -0
  322. package/dist/utils/tool-handler.js.map +1 -0
  323. package/dist/utils/tool-response.d.ts +16 -0
  324. package/dist/utils/tool-response.d.ts.map +1 -0
  325. package/dist/utils/tool-response.js +25 -0
  326. package/dist/utils/tool-response.js.map +1 -0
  327. package/dist/utils/validators.d.ts +359 -0
  328. package/dist/utils/validators.d.ts.map +1 -0
  329. package/dist/utils/validators.js +233 -0
  330. package/dist/utils/validators.js.map +1 -0
  331. package/dist/utils/yield-prediction.d.ts +69 -0
  332. package/dist/utils/yield-prediction.d.ts.map +1 -0
  333. package/dist/utils/yield-prediction.js +290 -0
  334. package/dist/utils/yield-prediction.js.map +1 -0
  335. package/package.json +83 -0
@@ -0,0 +1,89 @@
1
+ /**
2
+ * CSV Generator Utility
3
+ *
4
+ * Provides CSV formatting and generation for vault data export.
5
+ * Handles proper escaping, quoting, and formatting for CSV compliance.
6
+ */
7
+ /**
8
+ * Escape CSV field value
9
+ * Handles quotes, commas, newlines according to RFC 4180
10
+ */
11
+ export declare function escapeCSVField(value: unknown): string;
12
+ /**
13
+ * Generate CSV header row from column names
14
+ */
15
+ export declare function generateCSVHeader(columns: string[]): string;
16
+ /**
17
+ * Generate CSV row from data object
18
+ */
19
+ export declare function generateCSVRow(data: Record<string, unknown>, columns: string[]): string;
20
+ /**
21
+ * Generate complete CSV from array of objects
22
+ */
23
+ export declare function generateCSV(data: Record<string, unknown>[], columns: string[]): string;
24
+ /**
25
+ * Format vault data for CSV export
26
+ */
27
+ export interface VaultCSVData extends Record<string, unknown> {
28
+ address: string;
29
+ name: string;
30
+ symbol: string;
31
+ chainId: number;
32
+ tvl: number;
33
+ apr: number;
34
+ pricePerShare: number;
35
+ totalAssets: string;
36
+ totalShares: string;
37
+ assetSymbol: string;
38
+ assetAddress: string;
39
+ }
40
+ /**
41
+ * Generate CSV for vault data
42
+ */
43
+ export declare function generateVaultCSV(vaults: VaultCSVData[]): string;
44
+ /**
45
+ * Format transaction data for CSV export
46
+ */
47
+ export interface TransactionCSVData extends Record<string, unknown> {
48
+ id: string;
49
+ type: string;
50
+ timestamp: string;
51
+ blockNumber: string;
52
+ vaultAddress: string;
53
+ userAddress?: string;
54
+ amount?: string;
55
+ shares?: string;
56
+ assets?: string;
57
+ }
58
+ /**
59
+ * Generate CSV for transaction data
60
+ */
61
+ export declare function generateTransactionCSV(transactions: TransactionCSVData[]): string;
62
+ /**
63
+ * Format price history data for CSV export
64
+ */
65
+ export interface PriceHistoryCSVData extends Record<string, unknown> {
66
+ date: string;
67
+ open: number;
68
+ high: number;
69
+ low: number;
70
+ close: number;
71
+ volume: number;
72
+ }
73
+ /**
74
+ * Generate CSV for price history data
75
+ */
76
+ export declare function generatePriceHistoryCSV(priceData: PriceHistoryCSVData[]): string;
77
+ /**
78
+ * Format performance metrics for CSV export
79
+ */
80
+ export interface PerformanceCSVData extends Record<string, unknown> {
81
+ timestamp: string;
82
+ totalAssetsUsd: number;
83
+ blockNumber: string;
84
+ }
85
+ /**
86
+ * Generate CSV for performance metrics
87
+ */
88
+ export declare function generatePerformanceCSV(metrics: PerformanceCSVData[]): string;
89
+ //# sourceMappingURL=csv-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csv-generator.d.ts","sourceRoot":"","sources":["../../src/utils/csv-generator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAgBrD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAE3D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAEvF;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAStF;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAgB/D;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACjE,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAcjF;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,mBAAmB,EAAE,GAAG,MAAM,CAIhF;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAI5E"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * CSV Generator Utility
3
+ *
4
+ * Provides CSV formatting and generation for vault data export.
5
+ * Handles proper escaping, quoting, and formatting for CSV compliance.
6
+ */
7
+ /**
8
+ * Escape CSV field value
9
+ * Handles quotes, commas, newlines according to RFC 4180
10
+ */
11
+ export function escapeCSVField(value) {
12
+ if (value === null || value === undefined) {
13
+ return '';
14
+ }
15
+ const strValue = String(value);
16
+ // Check if field needs quoting (contains comma, quote, or newline)
17
+ const needsQuoting = /[",\n\r]/.test(strValue);
18
+ if (needsQuoting) {
19
+ // Escape quotes by doubling them and wrap in quotes
20
+ return `"${strValue.replace(/"/g, '""')}"`;
21
+ }
22
+ return strValue;
23
+ }
24
+ /**
25
+ * Generate CSV header row from column names
26
+ */
27
+ export function generateCSVHeader(columns) {
28
+ return columns.map(escapeCSVField).join(',');
29
+ }
30
+ /**
31
+ * Generate CSV row from data object
32
+ */
33
+ export function generateCSVRow(data, columns) {
34
+ return columns.map((col) => escapeCSVField(data[col])).join(',');
35
+ }
36
+ /**
37
+ * Generate complete CSV from array of objects
38
+ */
39
+ export function generateCSV(data, columns) {
40
+ if (data.length === 0) {
41
+ return generateCSVHeader(columns);
42
+ }
43
+ const header = generateCSVHeader(columns);
44
+ const rows = data.map((row) => generateCSVRow(row, columns));
45
+ return [header, ...rows].join('\n');
46
+ }
47
+ /**
48
+ * Generate CSV for vault data
49
+ */
50
+ export function generateVaultCSV(vaults) {
51
+ const columns = [
52
+ 'address',
53
+ 'name',
54
+ 'symbol',
55
+ 'chainId',
56
+ 'tvl',
57
+ 'apr',
58
+ 'pricePerShare',
59
+ 'totalAssets',
60
+ 'totalShares',
61
+ 'assetSymbol',
62
+ 'assetAddress',
63
+ ];
64
+ return generateCSV(vaults, columns);
65
+ }
66
+ /**
67
+ * Generate CSV for transaction data
68
+ */
69
+ export function generateTransactionCSV(transactions) {
70
+ const columns = [
71
+ 'id',
72
+ 'type',
73
+ 'timestamp',
74
+ 'blockNumber',
75
+ 'vaultAddress',
76
+ 'userAddress',
77
+ 'amount',
78
+ 'shares',
79
+ 'assets',
80
+ ];
81
+ return generateCSV(transactions, columns);
82
+ }
83
+ /**
84
+ * Generate CSV for price history data
85
+ */
86
+ export function generatePriceHistoryCSV(priceData) {
87
+ const columns = ['date', 'open', 'high', 'low', 'close', 'volume'];
88
+ return generateCSV(priceData, columns);
89
+ }
90
+ /**
91
+ * Generate CSV for performance metrics
92
+ */
93
+ export function generatePerformanceCSV(metrics) {
94
+ const columns = ['timestamp', 'totalAssetsUsd', 'blockNumber'];
95
+ return generateCSV(metrics, columns);
96
+ }
97
+ //# sourceMappingURL=csv-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csv-generator.js","sourceRoot":"","sources":["../../src/utils/csv-generator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAE/B,mEAAmE;IACnE,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE/C,IAAI,YAAY,EAAE,CAAC;QACjB,oDAAoD;QACpD,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;IAC7C,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAiB;IACjD,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAA6B,EAAE,OAAiB;IAC7E,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAA+B,EAAE,OAAiB;IAC5E,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAE7D,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AAmBD;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAsB;IACrD,MAAM,OAAO,GAAG;QACd,SAAS;QACT,MAAM;QACN,QAAQ;QACR,SAAS;QACT,KAAK;QACL,KAAK;QACL,eAAe;QACf,aAAa;QACb,aAAa;QACb,aAAa;QACb,cAAc;KACf,CAAC;IAEF,OAAO,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACtC,CAAC;AAiBD;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,YAAkC;IACvE,MAAM,OAAO,GAAG;QACd,IAAI;QACJ,MAAM;QACN,WAAW;QACX,aAAa;QACb,cAAc;QACd,aAAa;QACb,QAAQ;QACR,QAAQ;QACR,QAAQ;KACT,CAAC;IAEF,OAAO,WAAW,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAcD;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,SAAgC;IACtE,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAEnE,OAAO,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC;AAWD;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAA6B;IAClE,MAAM,OAAO,GAAG,CAAC,WAAW,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC;IAE/D,OAAO,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACvC,CAAC"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Legal Disclaimers for Financial Analysis Tools
3
+ *
4
+ * Provides legally protective disclaimer text for all financial analysis outputs.
5
+ * Compliant with SEC/FINRA guidelines for financial information disclosure.
6
+ *
7
+ * @module disclaimers
8
+ */
9
+ export type DisclaimerMode = 'full' | 'compact' | 'minimal';
10
+ export interface DisclaimerConfig {
11
+ mode: DisclaimerMode;
12
+ toolName: string;
13
+ includeTimestamp?: boolean;
14
+ }
15
+ /**
16
+ * Full disclaimer for high-risk financial analysis tools
17
+ * Use for: analyze_risk, predict_yield, optimize_portfolio, compare_vaults
18
+ *
19
+ * Includes:
20
+ * - Not financial advice statement
21
+ * - Risk warnings
22
+ * - Liability limitation
23
+ * - Professional consultation recommendation
24
+ * - Data accuracy limitations
25
+ *
26
+ * @param toolName - Name of the tool generating the output
27
+ * @returns Full legal disclaimer text
28
+ */
29
+ export declare function getFullFinancialDisclaimer(toolName: string): string;
30
+ /**
31
+ * Compact disclaimer for medium-risk tools
32
+ * Use for: search_vaults, vault_performance, get_price_history, get_transactions
33
+ *
34
+ * Provides essential legal protection while maintaining readability for data-focused tools.
35
+ *
36
+ * @param toolName - Name of the tool generating the output
37
+ * @returns Compact legal disclaimer text
38
+ */
39
+ export declare function getCompactFinancialDisclaimer(toolName: string): string;
40
+ /**
41
+ * Minimal disclaimer for data retrieval tools
42
+ * Use for: get_vault_data, user_portfolio, export_data, query_graphql, simulate_vault
43
+ *
44
+ * Provides basic legal protection for pure data retrieval operations.
45
+ *
46
+ * @param toolName - Name of the tool generating the output
47
+ * @returns Minimal legal disclaimer text
48
+ */
49
+ export declare function getMinimalFinancialDisclaimer(_toolName: string): string;
50
+ /**
51
+ * Get appropriate disclaimer based on tool risk level
52
+ *
53
+ * Automatically determines the appropriate disclaimer level based on tool name
54
+ * if mode is not explicitly specified.
55
+ *
56
+ * @param toolName - Name of the tool (snake_case)
57
+ * @param mode - Optional override for disclaimer mode
58
+ * @returns Appropriate disclaimer text for the tool
59
+ *
60
+ * @example
61
+ * ```typescript
62
+ * const disclaimer = getToolDisclaimer('analyze_risk');
63
+ * // Returns full disclaimer
64
+ *
65
+ * const customDisclaimer = getToolDisclaimer('search_vaults', 'minimal');
66
+ * // Returns minimal disclaimer (overriding auto-detection)
67
+ * ```
68
+ */
69
+ export declare function getToolDisclaimer(toolName: string, mode?: DisclaimerMode): string;
70
+ //# sourceMappingURL=disclaimers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disclaimers.d.ts","sourceRoot":"","sources":["../../src/utils/disclaimers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AAE5D,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAmCnE;AAED;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAStE;AAED;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAKvE;AA4BD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,MAAM,CAyBjF"}
@@ -0,0 +1,161 @@
1
+ /**
2
+ * Legal Disclaimers for Financial Analysis Tools
3
+ *
4
+ * Provides legally protective disclaimer text for all financial analysis outputs.
5
+ * Compliant with SEC/FINRA guidelines for financial information disclosure.
6
+ *
7
+ * @module disclaimers
8
+ */
9
+ /**
10
+ * Full disclaimer for high-risk financial analysis tools
11
+ * Use for: analyze_risk, predict_yield, optimize_portfolio, compare_vaults
12
+ *
13
+ * Includes:
14
+ * - Not financial advice statement
15
+ * - Risk warnings
16
+ * - Liability limitation
17
+ * - Professional consultation recommendation
18
+ * - Data accuracy limitations
19
+ *
20
+ * @param toolName - Name of the tool generating the output
21
+ * @returns Full legal disclaimer text
22
+ */
23
+ export function getFullFinancialDisclaimer(toolName) {
24
+ const timestamp = new Date().toISOString();
25
+ return `
26
+
27
+ ---
28
+
29
+ ⚠️ **IMPORTANT DISCLAIMER - NOT FINANCIAL ADVICE**
30
+
31
+ This analysis is provided for **informational and educational purposes only** and does NOT constitute financial, investment, legal, or tax advice. The information presented by the ${toolName} tool:
32
+
33
+ - Is based on historical data and algorithmic analysis that may contain errors or inaccuracies
34
+ - Should NOT be relied upon as the sole basis for any investment decision
35
+ - Does NOT consider your individual financial situation, risk tolerance, or investment objectives
36
+ - Is NOT a recommendation to buy, sell, hold, or trade any digital asset or financial instrument
37
+
38
+ **Cryptocurrency and DeFi investments carry substantial risk**, including but not limited to:
39
+ - Complete loss of invested capital
40
+ - Smart contract vulnerabilities and exploits
41
+ - Market volatility and illiquidity
42
+ - Regulatory changes and enforcement actions
43
+ - Platform failures and operational risks
44
+
45
+ **BEFORE MAKING ANY INVESTMENT DECISIONS**:
46
+ 1. Conduct your own thorough due diligence and research
47
+ 2. Consult with qualified financial, legal, and tax professionals
48
+ 3. Only invest capital you can afford to lose completely
49
+ 4. Understand the specific risks associated with each vault and protocol
50
+
51
+ **NO LIABILITY**: We accept no liability whatsoever for any loss, damage, or adverse outcome arising from your use of this information. Past performance does not guarantee future results.
52
+
53
+ **Data Currency**: Analysis generated at ${timestamp}. Market conditions change rapidly.
54
+
55
+ ---
56
+ `;
57
+ }
58
+ /**
59
+ * Compact disclaimer for medium-risk tools
60
+ * Use for: search_vaults, vault_performance, get_price_history, get_transactions
61
+ *
62
+ * Provides essential legal protection while maintaining readability for data-focused tools.
63
+ *
64
+ * @param toolName - Name of the tool generating the output
65
+ * @returns Compact legal disclaimer text
66
+ */
67
+ export function getCompactFinancialDisclaimer(toolName) {
68
+ return `
69
+
70
+ ---
71
+
72
+ ⚠️ **DISCLAIMER**: This ${toolName} output is for informational purposes only and is NOT financial advice. Cryptocurrency investments carry substantial risk including complete loss of capital. Conduct your own research and consult qualified professionals before making investment decisions. We accept no liability for losses arising from use of this information.
73
+
74
+ ---
75
+ `;
76
+ }
77
+ /**
78
+ * Minimal disclaimer for data retrieval tools
79
+ * Use for: get_vault_data, user_portfolio, export_data, query_graphql, simulate_vault
80
+ *
81
+ * Provides basic legal protection for pure data retrieval operations.
82
+ *
83
+ * @param toolName - Name of the tool generating the output
84
+ * @returns Minimal legal disclaimer text
85
+ */
86
+ export function getMinimalFinancialDisclaimer(_toolName) {
87
+ return `
88
+
89
+ *Disclaimer: For informational purposes only. Not financial advice. DYOR and consult professionals before investing.*
90
+ `;
91
+ }
92
+ /**
93
+ * High-risk financial analysis tools requiring full disclaimers
94
+ */
95
+ const HIGH_RISK_TOOLS = ['analyze_risk', 'predict_yield', 'optimize_portfolio', 'compare_vaults'];
96
+ /**
97
+ * Medium-risk tools requiring compact disclaimers
98
+ */
99
+ const MEDIUM_RISK_TOOLS = [
100
+ 'search_vaults',
101
+ 'vault_performance',
102
+ 'price_history',
103
+ 'get_transactions',
104
+ ];
105
+ /**
106
+ * Low-risk data retrieval tools requiring minimal disclaimers
107
+ */
108
+ const LOW_RISK_TOOLS = [
109
+ 'vault_data',
110
+ 'user_portfolio',
111
+ 'export_data',
112
+ 'query_graphql',
113
+ 'simulate_vault',
114
+ ];
115
+ /**
116
+ * Get appropriate disclaimer based on tool risk level
117
+ *
118
+ * Automatically determines the appropriate disclaimer level based on tool name
119
+ * if mode is not explicitly specified.
120
+ *
121
+ * @param toolName - Name of the tool (snake_case)
122
+ * @param mode - Optional override for disclaimer mode
123
+ * @returns Appropriate disclaimer text for the tool
124
+ *
125
+ * @example
126
+ * ```typescript
127
+ * const disclaimer = getToolDisclaimer('analyze_risk');
128
+ * // Returns full disclaimer
129
+ *
130
+ * const customDisclaimer = getToolDisclaimer('search_vaults', 'minimal');
131
+ * // Returns minimal disclaimer (overriding auto-detection)
132
+ * ```
133
+ */
134
+ export function getToolDisclaimer(toolName, mode) {
135
+ // Auto-determine mode based on tool name if not specified
136
+ let disclaimerMode = mode;
137
+ if (!disclaimerMode) {
138
+ if (HIGH_RISK_TOOLS.includes(toolName)) {
139
+ disclaimerMode = 'full';
140
+ }
141
+ else if (MEDIUM_RISK_TOOLS.includes(toolName)) {
142
+ disclaimerMode = 'compact';
143
+ }
144
+ else if (LOW_RISK_TOOLS.includes(toolName)) {
145
+ disclaimerMode = 'minimal';
146
+ }
147
+ else {
148
+ // Default to compact for unknown tools
149
+ disclaimerMode = 'compact';
150
+ }
151
+ }
152
+ switch (disclaimerMode) {
153
+ case 'full':
154
+ return getFullFinancialDisclaimer(toolName);
155
+ case 'compact':
156
+ return getCompactFinancialDisclaimer(toolName);
157
+ case 'minimal':
158
+ return getMinimalFinancialDisclaimer(toolName);
159
+ }
160
+ }
161
+ //# sourceMappingURL=disclaimers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disclaimers.js","sourceRoot":"","sources":["../../src/utils/disclaimers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAUH;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,0BAA0B,CAAC,QAAgB;IACzD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAE3C,OAAO;;;;;;sLAM6K,QAAQ;;;;;;;;;;;;;;;;;;;;;;2CAsBnJ,SAAS;;;CAGnD,CAAC;AACF,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,6BAA6B,CAAC,QAAgB;IAC5D,OAAO;;;;0BAIiB,QAAQ;;;CAGjC,CAAC;AACF,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,6BAA6B,CAAC,SAAiB;IAC7D,OAAO;;;CAGR,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,eAAe,GAAG,CAAC,cAAc,EAAE,eAAe,EAAE,oBAAoB,EAAE,gBAAgB,CAAC,CAAC;AAElG;;GAEG;AACH,MAAM,iBAAiB,GAAG;IACxB,eAAe;IACf,mBAAmB;IACnB,eAAe;IACf,kBAAkB;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,cAAc,GAAG;IACrB,YAAY;IACZ,gBAAgB;IAChB,aAAa;IACb,eAAe;IACf,gBAAgB;CACjB,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,IAAqB;IACvE,0DAA0D;IAC1D,IAAI,cAAc,GAAG,IAAI,CAAC;IAE1B,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,IAAI,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvC,cAAc,GAAG,MAAM,CAAC;QAC1B,CAAC;aAAM,IAAI,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChD,cAAc,GAAG,SAAS,CAAC;QAC7B,CAAC;aAAM,IAAI,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7C,cAAc,GAAG,SAAS,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,uCAAuC;YACvC,cAAc,GAAG,SAAS,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,QAAQ,cAAc,EAAE,CAAC;QACvB,KAAK,MAAM;YACT,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QAC9C,KAAK,SAAS;YACZ,OAAO,6BAA6B,CAAC,QAAQ,CAAC,CAAC;QACjD,KAAK,SAAS;YACZ,OAAO,6BAA6B,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC;AACH,CAAC"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Error Handling Utilities
3
+ *
4
+ * Custom error types and formatting for consistent error handling
5
+ */
6
+ /**
7
+ * GraphQL error detail structure
8
+ */
9
+ type GraphQLErrorDetail = {
10
+ message: string;
11
+ locations?: Array<{
12
+ line: number;
13
+ column: number;
14
+ }>;
15
+ path?: Array<string | number>;
16
+ extensions?: Record<string, unknown>;
17
+ };
18
+ /**
19
+ * GraphQL-specific error with response details
20
+ */
21
+ export declare class GraphQLError extends Error {
22
+ errors: GraphQLErrorDetail[];
23
+ constructor(message: string, errors: GraphQLErrorDetail[]);
24
+ }
25
+ /**
26
+ * Input validation error
27
+ */
28
+ export declare class ValidationError extends Error {
29
+ constructor(message: string);
30
+ }
31
+ /**
32
+ * Cache operation error
33
+ */
34
+ export declare class CacheError extends Error {
35
+ constructor(message: string);
36
+ }
37
+ /**
38
+ * Network/connection error
39
+ */
40
+ export declare class NetworkError extends Error {
41
+ constructor(message: string);
42
+ }
43
+ /**
44
+ * Format error for user-facing display
45
+ */
46
+ export declare function formatError(error: unknown): string;
47
+ /**
48
+ * MCP error response type
49
+ */
50
+ type MCPErrorResponse = {
51
+ content: Array<{
52
+ type: 'text';
53
+ text: string;
54
+ }>;
55
+ isError: true;
56
+ };
57
+ /**
58
+ * Standard error response for MCP tools
59
+ */
60
+ export declare function errorResponse(error: unknown): MCPErrorResponse;
61
+ /**
62
+ * Log error to stderr (Claude Code captures this)
63
+ */
64
+ export declare function logError(error: unknown, context?: string): void;
65
+ export {};
66
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,KAAK,kBAAkB,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpD,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC,CAAC;AAEF;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;IAG5B,MAAM,EAAE,kBAAkB,EAAE;gBADnC,OAAO,EAAE,MAAM,EACR,MAAM,EAAE,kBAAkB,EAAE;CAKtC;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,KAAK;gBACvB,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;gBACzB,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAsBlD;AAED;;GAEG;AACH,KAAK,gBAAgB,GAAG;IACtB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,EAAE,IAAI,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAU9D;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAG/D"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Error Handling Utilities
3
+ *
4
+ * Custom error types and formatting for consistent error handling
5
+ */
6
+ /**
7
+ * GraphQL-specific error with response details
8
+ */
9
+ export class GraphQLError extends Error {
10
+ errors;
11
+ constructor(message, errors) {
12
+ super(message);
13
+ this.errors = errors;
14
+ this.name = 'GraphQLError';
15
+ }
16
+ }
17
+ /**
18
+ * Input validation error
19
+ */
20
+ export class ValidationError extends Error {
21
+ constructor(message) {
22
+ super(message);
23
+ this.name = 'ValidationError';
24
+ }
25
+ }
26
+ /**
27
+ * Cache operation error
28
+ */
29
+ export class CacheError extends Error {
30
+ constructor(message) {
31
+ super(message);
32
+ this.name = 'CacheError';
33
+ }
34
+ }
35
+ /**
36
+ * Network/connection error
37
+ */
38
+ export class NetworkError extends Error {
39
+ constructor(message) {
40
+ super(message);
41
+ this.name = 'NetworkError';
42
+ }
43
+ }
44
+ /**
45
+ * Format error for user-facing display
46
+ */
47
+ export function formatError(error) {
48
+ if (error instanceof GraphQLError) {
49
+ return `GraphQL Error: ${error.message}\n${JSON.stringify(error.errors, null, 2)}`;
50
+ }
51
+ if (error instanceof ValidationError) {
52
+ return `Validation Error: ${error.message}`;
53
+ }
54
+ if (error instanceof CacheError) {
55
+ return `Cache Error: ${error.message}`;
56
+ }
57
+ if (error instanceof NetworkError) {
58
+ return `Network Error: ${error.message}`;
59
+ }
60
+ if (error instanceof Error) {
61
+ return `Error: ${error.message}`;
62
+ }
63
+ return `Unknown Error: ${String(error)}`;
64
+ }
65
+ /**
66
+ * Standard error response for MCP tools
67
+ */
68
+ export function errorResponse(error) {
69
+ return {
70
+ content: [
71
+ {
72
+ type: 'text',
73
+ text: formatError(error),
74
+ },
75
+ ],
76
+ isError: true,
77
+ };
78
+ }
79
+ /**
80
+ * Log error to stderr (Claude Code captures this)
81
+ */
82
+ export function logError(error, context) {
83
+ const prefix = context ? `[${context}]` : '';
84
+ console.error(`${prefix} ${formatError(error)}`);
85
+ }
86
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAYH;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,KAAK;IAG5B;IAFT,YACE,OAAe,EACR,MAA4B;QAEnC,KAAK,CAAC,OAAO,CAAC,CAAC;QAFR,WAAM,GAAN,MAAM,CAAsB;QAGnC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,KAAK;IACnC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,KAAK;IACrC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;QAClC,OAAO,kBAAkB,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;IACrF,CAAC;IAED,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;QACrC,OAAO,qBAAqB,KAAK,CAAC,OAAO,EAAE,CAAC;IAC9C,CAAC;IAED,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;QAChC,OAAO,gBAAgB,KAAK,CAAC,OAAO,EAAE,CAAC;IACzC,CAAC;IAED,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;QAClC,OAAO,kBAAkB,KAAK,CAAC,OAAO,EAAE,CAAC;IAC3C,CAAC;IAED,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;IAED,OAAO,kBAAkB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AAC3C,CAAC;AAUD;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC;aACzB;SACF;QACD,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc,EAAE,OAAgB;IACvD,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7C,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACnD,CAAC"}