@compass-labs/api-sdk 0.1.5 → 0.1.7

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 (174) hide show
  1. package/README.md +7 -0
  2. package/bin/mcp-server.js +735 -308
  3. package/bin/mcp-server.js.map +21 -12
  4. package/dist/commonjs/funcs/pendleMarket.d.ts +18 -0
  5. package/dist/commonjs/funcs/pendleMarket.d.ts.map +1 -0
  6. package/dist/commonjs/funcs/pendleMarket.js +122 -0
  7. package/dist/commonjs/funcs/pendleMarket.js.map +1 -0
  8. package/dist/commonjs/funcs/pendlePosition.d.ts +18 -0
  9. package/dist/commonjs/funcs/pendlePosition.d.ts.map +1 -0
  10. package/dist/commonjs/funcs/pendlePosition.js +122 -0
  11. package/dist/commonjs/funcs/pendlePosition.js.map +1 -0
  12. package/dist/commonjs/lib/config.d.ts +2 -2
  13. package/dist/commonjs/lib/config.js +2 -2
  14. package/dist/commonjs/mcp-server/mcp-server.js +1 -1
  15. package/dist/commonjs/mcp-server/server.d.ts.map +1 -1
  16. package/dist/commonjs/mcp-server/server.js +5 -1
  17. package/dist/commonjs/mcp-server/server.js.map +1 -1
  18. package/dist/commonjs/mcp-server/tools/pendleMarket.d.ts +8 -0
  19. package/dist/commonjs/mcp-server/tools/pendleMarket.d.ts.map +1 -0
  20. package/dist/commonjs/mcp-server/tools/pendleMarket.js +64 -0
  21. package/dist/commonjs/mcp-server/tools/pendleMarket.js.map +1 -0
  22. package/dist/commonjs/mcp-server/tools/pendlePosition.d.ts +8 -0
  23. package/dist/commonjs/mcp-server/tools/pendlePosition.d.ts.map +1 -0
  24. package/dist/commonjs/mcp-server/tools/pendlePosition.js +64 -0
  25. package/dist/commonjs/mcp-server/tools/pendlePosition.js.map +1 -0
  26. package/dist/commonjs/models/components/contractname.d.ts +12 -0
  27. package/dist/commonjs/models/components/contractname.d.ts.map +1 -1
  28. package/dist/commonjs/models/components/contractname.js +4 -0
  29. package/dist/commonjs/models/components/contractname.js.map +1 -1
  30. package/dist/commonjs/models/components/erc20data.d.ts +33 -0
  31. package/dist/commonjs/models/components/erc20data.d.ts.map +1 -0
  32. package/dist/commonjs/models/components/erc20data.js +73 -0
  33. package/dist/commonjs/models/components/erc20data.js.map +1 -0
  34. package/dist/commonjs/models/components/increaseallowanceparams.d.ts +3 -0
  35. package/dist/commonjs/models/components/increaseallowanceparams.d.ts.map +1 -1
  36. package/dist/commonjs/models/components/increaseallowanceparams.js +1 -0
  37. package/dist/commonjs/models/components/increaseallowanceparams.js.map +1 -1
  38. package/dist/commonjs/models/components/increaseallowancerequest.d.ts +3 -0
  39. package/dist/commonjs/models/components/increaseallowancerequest.d.ts.map +1 -1
  40. package/dist/commonjs/models/components/increaseallowancerequest.js +1 -0
  41. package/dist/commonjs/models/components/increaseallowancerequest.js.map +1 -1
  42. package/dist/commonjs/models/components/index.d.ts +3 -0
  43. package/dist/commonjs/models/components/index.d.ts.map +1 -1
  44. package/dist/commonjs/models/components/index.js +3 -0
  45. package/dist/commonjs/models/components/index.js.map +1 -1
  46. package/dist/commonjs/models/components/pendlegetmarketresponse.d.ts +46 -0
  47. package/dist/commonjs/models/components/pendlegetmarketresponse.d.ts.map +1 -0
  48. package/dist/commonjs/models/components/pendlegetmarketresponse.js +93 -0
  49. package/dist/commonjs/models/components/pendlegetmarketresponse.js.map +1 -0
  50. package/dist/commonjs/models/components/pendlegetuserpositionresponse.d.ts +67 -0
  51. package/dist/commonjs/models/components/pendlegetuserpositionresponse.d.ts.map +1 -0
  52. package/dist/commonjs/models/components/pendlegetuserpositionresponse.js +106 -0
  53. package/dist/commonjs/models/components/pendlegetuserpositionresponse.js.map +1 -0
  54. package/dist/commonjs/models/operations/genericallowance.d.ts +3 -0
  55. package/dist/commonjs/models/operations/genericallowance.d.ts.map +1 -1
  56. package/dist/commonjs/models/operations/genericallowance.js +1 -0
  57. package/dist/commonjs/models/operations/genericallowance.js.map +1 -1
  58. package/dist/commonjs/models/operations/index.d.ts +2 -0
  59. package/dist/commonjs/models/operations/index.d.ts.map +1 -1
  60. package/dist/commonjs/models/operations/index.js +2 -0
  61. package/dist/commonjs/models/operations/index.js.map +1 -1
  62. package/dist/commonjs/models/operations/pendlemarket.d.ts +77 -0
  63. package/dist/commonjs/models/operations/pendlemarket.d.ts.map +1 -0
  64. package/dist/commonjs/models/operations/pendlemarket.js +107 -0
  65. package/dist/commonjs/models/operations/pendlemarket.js.map +1 -0
  66. package/dist/commonjs/models/operations/pendleposition.d.ts +77 -0
  67. package/dist/commonjs/models/operations/pendleposition.d.ts.map +1 -0
  68. package/dist/commonjs/models/operations/pendleposition.js +107 -0
  69. package/dist/commonjs/models/operations/pendleposition.js.map +1 -0
  70. package/dist/commonjs/sdk/pendle.d.ts +20 -0
  71. package/dist/commonjs/sdk/pendle.d.ts.map +1 -0
  72. package/dist/commonjs/sdk/pendle.js +32 -0
  73. package/dist/commonjs/sdk/pendle.js.map +1 -0
  74. package/dist/commonjs/sdk/sdk.d.ts +3 -0
  75. package/dist/commonjs/sdk/sdk.d.ts.map +1 -1
  76. package/dist/commonjs/sdk/sdk.js +4 -0
  77. package/dist/commonjs/sdk/sdk.js.map +1 -1
  78. package/dist/esm/funcs/pendleMarket.d.ts +18 -0
  79. package/dist/esm/funcs/pendleMarket.d.ts.map +1 -0
  80. package/dist/esm/funcs/pendleMarket.js +86 -0
  81. package/dist/esm/funcs/pendleMarket.js.map +1 -0
  82. package/dist/esm/funcs/pendlePosition.d.ts +18 -0
  83. package/dist/esm/funcs/pendlePosition.d.ts.map +1 -0
  84. package/dist/esm/funcs/pendlePosition.js +86 -0
  85. package/dist/esm/funcs/pendlePosition.js.map +1 -0
  86. package/dist/esm/lib/config.d.ts +2 -2
  87. package/dist/esm/lib/config.js +2 -2
  88. package/dist/esm/mcp-server/mcp-server.js +1 -1
  89. package/dist/esm/mcp-server/server.d.ts.map +1 -1
  90. package/dist/esm/mcp-server/server.js +5 -1
  91. package/dist/esm/mcp-server/server.js.map +1 -1
  92. package/dist/esm/mcp-server/tools/pendleMarket.d.ts +8 -0
  93. package/dist/esm/mcp-server/tools/pendleMarket.d.ts.map +1 -0
  94. package/dist/esm/mcp-server/tools/pendleMarket.js +28 -0
  95. package/dist/esm/mcp-server/tools/pendleMarket.js.map +1 -0
  96. package/dist/esm/mcp-server/tools/pendlePosition.d.ts +8 -0
  97. package/dist/esm/mcp-server/tools/pendlePosition.d.ts.map +1 -0
  98. package/dist/esm/mcp-server/tools/pendlePosition.js +28 -0
  99. package/dist/esm/mcp-server/tools/pendlePosition.js.map +1 -0
  100. package/dist/esm/models/components/contractname.d.ts +12 -0
  101. package/dist/esm/models/components/contractname.d.ts.map +1 -1
  102. package/dist/esm/models/components/contractname.js +4 -0
  103. package/dist/esm/models/components/contractname.js.map +1 -1
  104. package/dist/esm/models/components/erc20data.d.ts +33 -0
  105. package/dist/esm/models/components/erc20data.d.ts.map +1 -0
  106. package/dist/esm/models/components/erc20data.js +35 -0
  107. package/dist/esm/models/components/erc20data.js.map +1 -0
  108. package/dist/esm/models/components/increaseallowanceparams.d.ts +3 -0
  109. package/dist/esm/models/components/increaseallowanceparams.d.ts.map +1 -1
  110. package/dist/esm/models/components/increaseallowanceparams.js +1 -0
  111. package/dist/esm/models/components/increaseallowanceparams.js.map +1 -1
  112. package/dist/esm/models/components/increaseallowancerequest.d.ts +3 -0
  113. package/dist/esm/models/components/increaseallowancerequest.d.ts.map +1 -1
  114. package/dist/esm/models/components/increaseallowancerequest.js +1 -0
  115. package/dist/esm/models/components/increaseallowancerequest.js.map +1 -1
  116. package/dist/esm/models/components/index.d.ts +3 -0
  117. package/dist/esm/models/components/index.d.ts.map +1 -1
  118. package/dist/esm/models/components/index.js +3 -0
  119. package/dist/esm/models/components/index.js.map +1 -1
  120. package/dist/esm/models/components/pendlegetmarketresponse.d.ts +46 -0
  121. package/dist/esm/models/components/pendlegetmarketresponse.d.ts.map +1 -0
  122. package/dist/esm/models/components/pendlegetmarketresponse.js +55 -0
  123. package/dist/esm/models/components/pendlegetmarketresponse.js.map +1 -0
  124. package/dist/esm/models/components/pendlegetuserpositionresponse.d.ts +67 -0
  125. package/dist/esm/models/components/pendlegetuserpositionresponse.d.ts.map +1 -0
  126. package/dist/esm/models/components/pendlegetuserpositionresponse.js +68 -0
  127. package/dist/esm/models/components/pendlegetuserpositionresponse.js.map +1 -0
  128. package/dist/esm/models/operations/genericallowance.d.ts +3 -0
  129. package/dist/esm/models/operations/genericallowance.d.ts.map +1 -1
  130. package/dist/esm/models/operations/genericallowance.js +1 -0
  131. package/dist/esm/models/operations/genericallowance.js.map +1 -1
  132. package/dist/esm/models/operations/index.d.ts +2 -0
  133. package/dist/esm/models/operations/index.d.ts.map +1 -1
  134. package/dist/esm/models/operations/index.js +2 -0
  135. package/dist/esm/models/operations/index.js.map +1 -1
  136. package/dist/esm/models/operations/pendlemarket.d.ts +77 -0
  137. package/dist/esm/models/operations/pendlemarket.d.ts.map +1 -0
  138. package/dist/esm/models/operations/pendlemarket.js +69 -0
  139. package/dist/esm/models/operations/pendlemarket.js.map +1 -0
  140. package/dist/esm/models/operations/pendleposition.d.ts +77 -0
  141. package/dist/esm/models/operations/pendleposition.d.ts.map +1 -0
  142. package/dist/esm/models/operations/pendleposition.js +69 -0
  143. package/dist/esm/models/operations/pendleposition.js.map +1 -0
  144. package/dist/esm/sdk/pendle.d.ts +20 -0
  145. package/dist/esm/sdk/pendle.d.ts.map +1 -0
  146. package/dist/esm/sdk/pendle.js +28 -0
  147. package/dist/esm/sdk/pendle.js.map +1 -0
  148. package/dist/esm/sdk/sdk.d.ts +3 -0
  149. package/dist/esm/sdk/sdk.d.ts.map +1 -1
  150. package/dist/esm/sdk/sdk.js +4 -0
  151. package/dist/esm/sdk/sdk.js.map +1 -1
  152. package/docs/sdks/pendle/README.md +171 -0
  153. package/jsr.json +1 -1
  154. package/package.json +1 -1
  155. package/src/funcs/pendleMarket.ts +170 -0
  156. package/src/funcs/pendlePosition.ts +170 -0
  157. package/src/lib/config.ts +2 -2
  158. package/src/mcp-server/mcp-server.ts +1 -1
  159. package/src/mcp-server/server.ts +5 -1
  160. package/src/mcp-server/tools/pendleMarket.ts +37 -0
  161. package/src/mcp-server/tools/pendlePosition.ts +37 -0
  162. package/src/models/components/contractname.ts +4 -0
  163. package/src/models/components/erc20data.ts +70 -0
  164. package/src/models/components/increaseallowanceparams.ts +1 -0
  165. package/src/models/components/increaseallowancerequest.ts +1 -0
  166. package/src/models/components/index.ts +3 -0
  167. package/src/models/components/pendlegetmarketresponse.ts +113 -0
  168. package/src/models/components/pendlegetuserpositionresponse.ts +145 -0
  169. package/src/models/operations/genericallowance.ts +1 -0
  170. package/src/models/operations/index.ts +2 -0
  171. package/src/models/operations/pendlemarket.ts +135 -0
  172. package/src/models/operations/pendleposition.ts +135 -0
  173. package/src/sdk/pendle.ts +46 -0
  174. package/src/sdk/sdk.ts +6 -0
@@ -0,0 +1,170 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { CompassApiSDKCore } from "../core.js";
6
+ import { encodeFormQuery } from "../lib/encodings.js";
7
+ import * as M from "../lib/matchers.js";
8
+ import { compactMap } from "../lib/primitives.js";
9
+ import { safeParse } from "../lib/schemas.js";
10
+ import { RequestOptions } from "../lib/sdks.js";
11
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
12
+ import { pathToFunc } from "../lib/url.js";
13
+ import * as components from "../models/components/index.js";
14
+ import { APIError } from "../models/errors/apierror.js";
15
+ import {
16
+ ConnectionError,
17
+ InvalidRequestError,
18
+ RequestAbortedError,
19
+ RequestTimeoutError,
20
+ UnexpectedClientError,
21
+ } from "../models/errors/httpclienterrors.js";
22
+ import * as errors from "../models/errors/index.js";
23
+ import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
24
+ import * as operations from "../models/operations/index.js";
25
+ import { APICall, APIPromise } from "../types/async.js";
26
+ import { Result } from "../types/fp.js";
27
+
28
+ /**
29
+ * Get Market Data
30
+ *
31
+ * @remarks
32
+ * Get market data.
33
+ */
34
+ export function pendleMarket(
35
+ client: CompassApiSDKCore,
36
+ request: operations.PendleMarketRequest,
37
+ options?: RequestOptions,
38
+ ): APIPromise<
39
+ Result<
40
+ components.PendleGetMarketResponse,
41
+ | errors.HTTPValidationError
42
+ | APIError
43
+ | SDKValidationError
44
+ | UnexpectedClientError
45
+ | InvalidRequestError
46
+ | RequestAbortedError
47
+ | RequestTimeoutError
48
+ | ConnectionError
49
+ >
50
+ > {
51
+ return new APIPromise($do(
52
+ client,
53
+ request,
54
+ options,
55
+ ));
56
+ }
57
+
58
+ async function $do(
59
+ client: CompassApiSDKCore,
60
+ request: operations.PendleMarketRequest,
61
+ options?: RequestOptions,
62
+ ): Promise<
63
+ [
64
+ Result<
65
+ components.PendleGetMarketResponse,
66
+ | errors.HTTPValidationError
67
+ | APIError
68
+ | SDKValidationError
69
+ | UnexpectedClientError
70
+ | InvalidRequestError
71
+ | RequestAbortedError
72
+ | RequestTimeoutError
73
+ | ConnectionError
74
+ >,
75
+ APICall,
76
+ ]
77
+ > {
78
+ const parsed = safeParse(
79
+ request,
80
+ (value) => operations.PendleMarketRequest$outboundSchema.parse(value),
81
+ "Input validation failed",
82
+ );
83
+ if (!parsed.ok) {
84
+ return [parsed, { status: "invalid" }];
85
+ }
86
+ const payload = parsed.value;
87
+ const body = null;
88
+
89
+ const path = pathToFunc("/v0/pendle/market")();
90
+
91
+ const query = encodeFormQuery({
92
+ "chain": payload.chain,
93
+ "market_address": payload.market_address,
94
+ "user_address": payload.user_address,
95
+ });
96
+
97
+ const headers = new Headers(compactMap({
98
+ Accept: "application/json",
99
+ }));
100
+
101
+ const secConfig = await extractSecurity(client._options.apiKeyAuth);
102
+ const securityInput = secConfig == null ? {} : { apiKeyAuth: secConfig };
103
+ const requestSecurity = resolveGlobalSecurity(securityInput);
104
+
105
+ const context = {
106
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
107
+ operationID: "pendle_market",
108
+ oAuth2Scopes: [],
109
+
110
+ resolvedSecurity: requestSecurity,
111
+
112
+ securitySource: client._options.apiKeyAuth,
113
+ retryConfig: options?.retries
114
+ || client._options.retryConfig
115
+ || { strategy: "none" },
116
+ retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"],
117
+ };
118
+
119
+ const requestRes = client._createRequest(context, {
120
+ security: requestSecurity,
121
+ method: "GET",
122
+ baseURL: options?.serverURL,
123
+ path: path,
124
+ headers: headers,
125
+ query: query,
126
+ body: body,
127
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
128
+ }, options);
129
+ if (!requestRes.ok) {
130
+ return [requestRes, { status: "invalid" }];
131
+ }
132
+ const req = requestRes.value;
133
+
134
+ const doResult = await client._do(req, {
135
+ context,
136
+ errorCodes: ["422", "4XX", "5XX"],
137
+ retryConfig: context.retryConfig,
138
+ retryCodes: context.retryCodes,
139
+ });
140
+ if (!doResult.ok) {
141
+ return [doResult, { status: "request-error", request: req }];
142
+ }
143
+ const response = doResult.value;
144
+
145
+ const responseFields = {
146
+ HttpMeta: { Response: response, Request: req },
147
+ };
148
+
149
+ const [result] = await M.match<
150
+ components.PendleGetMarketResponse,
151
+ | errors.HTTPValidationError
152
+ | APIError
153
+ | SDKValidationError
154
+ | UnexpectedClientError
155
+ | InvalidRequestError
156
+ | RequestAbortedError
157
+ | RequestTimeoutError
158
+ | ConnectionError
159
+ >(
160
+ M.json(200, components.PendleGetMarketResponse$inboundSchema),
161
+ M.jsonErr(422, errors.HTTPValidationError$inboundSchema),
162
+ M.fail("4XX"),
163
+ M.fail("5XX"),
164
+ )(response, { extraFields: responseFields });
165
+ if (!result.ok) {
166
+ return [result, { status: "complete", request: req, response }];
167
+ }
168
+
169
+ return [result, { status: "complete", request: req, response }];
170
+ }
@@ -0,0 +1,170 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { CompassApiSDKCore } from "../core.js";
6
+ import { encodeFormQuery } from "../lib/encodings.js";
7
+ import * as M from "../lib/matchers.js";
8
+ import { compactMap } from "../lib/primitives.js";
9
+ import { safeParse } from "../lib/schemas.js";
10
+ import { RequestOptions } from "../lib/sdks.js";
11
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
12
+ import { pathToFunc } from "../lib/url.js";
13
+ import * as components from "../models/components/index.js";
14
+ import { APIError } from "../models/errors/apierror.js";
15
+ import {
16
+ ConnectionError,
17
+ InvalidRequestError,
18
+ RequestAbortedError,
19
+ RequestTimeoutError,
20
+ UnexpectedClientError,
21
+ } from "../models/errors/httpclienterrors.js";
22
+ import * as errors from "../models/errors/index.js";
23
+ import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
24
+ import * as operations from "../models/operations/index.js";
25
+ import { APICall, APIPromise } from "../types/async.js";
26
+ import { Result } from "../types/fp.js";
27
+
28
+ /**
29
+ * Check User's Market Position
30
+ *
31
+ * @remarks
32
+ * Check the SY, PT, and YT positions for a given market.
33
+ */
34
+ export function pendlePosition(
35
+ client: CompassApiSDKCore,
36
+ request: operations.PendlePositionRequest,
37
+ options?: RequestOptions,
38
+ ): APIPromise<
39
+ Result<
40
+ components.PendleGetUserPositionResponse,
41
+ | errors.HTTPValidationError
42
+ | APIError
43
+ | SDKValidationError
44
+ | UnexpectedClientError
45
+ | InvalidRequestError
46
+ | RequestAbortedError
47
+ | RequestTimeoutError
48
+ | ConnectionError
49
+ >
50
+ > {
51
+ return new APIPromise($do(
52
+ client,
53
+ request,
54
+ options,
55
+ ));
56
+ }
57
+
58
+ async function $do(
59
+ client: CompassApiSDKCore,
60
+ request: operations.PendlePositionRequest,
61
+ options?: RequestOptions,
62
+ ): Promise<
63
+ [
64
+ Result<
65
+ components.PendleGetUserPositionResponse,
66
+ | errors.HTTPValidationError
67
+ | APIError
68
+ | SDKValidationError
69
+ | UnexpectedClientError
70
+ | InvalidRequestError
71
+ | RequestAbortedError
72
+ | RequestTimeoutError
73
+ | ConnectionError
74
+ >,
75
+ APICall,
76
+ ]
77
+ > {
78
+ const parsed = safeParse(
79
+ request,
80
+ (value) => operations.PendlePositionRequest$outboundSchema.parse(value),
81
+ "Input validation failed",
82
+ );
83
+ if (!parsed.ok) {
84
+ return [parsed, { status: "invalid" }];
85
+ }
86
+ const payload = parsed.value;
87
+ const body = null;
88
+
89
+ const path = pathToFunc("/v0/pendle/position")();
90
+
91
+ const query = encodeFormQuery({
92
+ "chain": payload.chain,
93
+ "market_address": payload.market_address,
94
+ "user_address": payload.user_address,
95
+ });
96
+
97
+ const headers = new Headers(compactMap({
98
+ Accept: "application/json",
99
+ }));
100
+
101
+ const secConfig = await extractSecurity(client._options.apiKeyAuth);
102
+ const securityInput = secConfig == null ? {} : { apiKeyAuth: secConfig };
103
+ const requestSecurity = resolveGlobalSecurity(securityInput);
104
+
105
+ const context = {
106
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
107
+ operationID: "pendle_position",
108
+ oAuth2Scopes: [],
109
+
110
+ resolvedSecurity: requestSecurity,
111
+
112
+ securitySource: client._options.apiKeyAuth,
113
+ retryConfig: options?.retries
114
+ || client._options.retryConfig
115
+ || { strategy: "none" },
116
+ retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"],
117
+ };
118
+
119
+ const requestRes = client._createRequest(context, {
120
+ security: requestSecurity,
121
+ method: "GET",
122
+ baseURL: options?.serverURL,
123
+ path: path,
124
+ headers: headers,
125
+ query: query,
126
+ body: body,
127
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
128
+ }, options);
129
+ if (!requestRes.ok) {
130
+ return [requestRes, { status: "invalid" }];
131
+ }
132
+ const req = requestRes.value;
133
+
134
+ const doResult = await client._do(req, {
135
+ context,
136
+ errorCodes: ["422", "4XX", "5XX"],
137
+ retryConfig: context.retryConfig,
138
+ retryCodes: context.retryCodes,
139
+ });
140
+ if (!doResult.ok) {
141
+ return [doResult, { status: "request-error", request: req }];
142
+ }
143
+ const response = doResult.value;
144
+
145
+ const responseFields = {
146
+ HttpMeta: { Response: response, Request: req },
147
+ };
148
+
149
+ const [result] = await M.match<
150
+ components.PendleGetUserPositionResponse,
151
+ | errors.HTTPValidationError
152
+ | APIError
153
+ | SDKValidationError
154
+ | UnexpectedClientError
155
+ | InvalidRequestError
156
+ | RequestAbortedError
157
+ | RequestTimeoutError
158
+ | ConnectionError
159
+ >(
160
+ M.json(200, components.PendleGetUserPositionResponse$inboundSchema),
161
+ M.jsonErr(422, errors.HTTPValidationError$inboundSchema),
162
+ M.fail("4XX"),
163
+ M.fail("5XX"),
164
+ )(response, { extraFields: responseFields });
165
+ if (!result.ok) {
166
+ return [result, { status: "complete", request: req, response }];
167
+ }
168
+
169
+ return [result, { status: "complete", request: req, response }];
170
+ }
package/src/lib/config.ts CHANGED
@@ -57,8 +57,8 @@ export function serverURLFromOptions(options: SDKOptions): URL | null {
57
57
  export const SDK_METADATA = {
58
58
  language: "typescript",
59
59
  openapiDocVersion: "0.0.1",
60
- sdkVersion: "0.1.5",
60
+ sdkVersion: "0.1.7",
61
61
  genVersion: "2.610.0",
62
62
  userAgent:
63
- "speakeasy-sdk/typescript 0.1.5 2.610.0 0.0.1 @compass-labs/api-sdk",
63
+ "speakeasy-sdk/typescript 0.1.7 2.610.0 0.0.1 @compass-labs/api-sdk",
64
64
  } as const;
@@ -19,7 +19,7 @@ const routes = buildRouteMap({
19
19
  export const app = buildApplication(routes, {
20
20
  name: "mcp",
21
21
  versionInfo: {
22
- currentVersion: "0.1.5",
22
+ currentVersion: "0.1.7",
23
23
  },
24
24
  });
25
25
 
@@ -47,6 +47,8 @@ import { tool$morphoVaultPosition } from "./tools/morphoVaultPosition.js";
47
47
  import { tool$morphoVaults } from "./tools/morphoVaults.js";
48
48
  import { tool$morphoWithdraw } from "./tools/morphoWithdraw.js";
49
49
  import { tool$morphoWithdrawCollateral } from "./tools/morphoWithdrawCollateral.js";
50
+ import { tool$pendleMarket } from "./tools/pendleMarket.js";
51
+ import { tool$pendlePosition } from "./tools/pendlePosition.js";
50
52
  import { tool$skyBuy } from "./tools/skyBuy.js";
51
53
  import { tool$skyDeposit } from "./tools/skyDeposit.js";
52
54
  import { tool$skyPosition } from "./tools/skyPosition.js";
@@ -89,7 +91,7 @@ export function createMCPServer(deps: {
89
91
  }) {
90
92
  const server = new McpServer({
91
93
  name: "CompassApiSDK",
92
- version: "0.1.5",
94
+ version: "0.1.7",
93
95
  });
94
96
 
95
97
  const client = new CompassApiSDKCore({
@@ -180,6 +182,8 @@ export function createMCPServer(deps: {
180
182
  tool(tool$universalWrapEth);
181
183
  tool(tool$universalUnwrapWeth);
182
184
  tool(tool$universalAllowanceSet);
185
+ tool(tool$pendlePosition);
186
+ tool(tool$pendleMarket);
183
187
  tool(tool$transactionBatchingAuthorization);
184
188
  tool(tool$transactionBatchingExecute);
185
189
  tool(tool$transactionBatchingAaveLoop);
@@ -0,0 +1,37 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { pendleMarket } from "../../funcs/pendleMarket.js";
6
+ import * as operations from "../../models/operations/index.js";
7
+ import { formatResult, ToolDefinition } from "../tools.js";
8
+
9
+ const args = {
10
+ request: operations.PendleMarketRequest$inboundSchema,
11
+ };
12
+
13
+ export const tool$pendleMarket: ToolDefinition<typeof args> = {
14
+ name: "pendle-market",
15
+ description: `Get Market Data
16
+
17
+ Get market data.`,
18
+ args,
19
+ tool: async (client, args, ctx) => {
20
+ const [result, apiCall] = await pendleMarket(
21
+ client,
22
+ args.request,
23
+ { fetchOptions: { signal: ctx.signal } },
24
+ ).$inspect();
25
+
26
+ if (!result.ok) {
27
+ return {
28
+ content: [{ type: "text", text: result.error.message }],
29
+ isError: true,
30
+ };
31
+ }
32
+
33
+ const value = result.value;
34
+
35
+ return formatResult(value, apiCall);
36
+ },
37
+ };
@@ -0,0 +1,37 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { pendlePosition } from "../../funcs/pendlePosition.js";
6
+ import * as operations from "../../models/operations/index.js";
7
+ import { formatResult, ToolDefinition } from "../tools.js";
8
+
9
+ const args = {
10
+ request: operations.PendlePositionRequest$inboundSchema,
11
+ };
12
+
13
+ export const tool$pendlePosition: ToolDefinition<typeof args> = {
14
+ name: "pendle-position",
15
+ description: `Check User's Market Position
16
+
17
+ Check the SY, PT, and YT positions for a given market.`,
18
+ args,
19
+ tool: async (client, args, ctx) => {
20
+ const [result, apiCall] = await pendlePosition(
21
+ client,
22
+ args.request,
23
+ { fetchOptions: { signal: ctx.signal } },
24
+ ).$inspect();
25
+
26
+ if (!result.ok) {
27
+ return {
28
+ content: [{ type: "text", text: result.error.message }],
29
+ isError: true,
30
+ };
31
+ }
32
+
33
+ const value = result.value;
34
+
35
+ return formatResult(value, apiCall);
36
+ },
37
+ };
@@ -36,6 +36,10 @@ export const ContractName = {
36
36
  SkyDaiUsdsConverter: "SkyDaiUsdsConverter",
37
37
  SkyUsdcUsdsConverter: "SkyUsdcUsdsConverter",
38
38
  SkyUsdsVault: "SkyUsdsVault",
39
+ PendleRouter: "PendleRouter",
40
+ PendleMarket: "PendleMarket",
41
+ PendleSy: "PendleSy",
42
+ PendleYt: "PendleYt",
39
43
  Multicall: "Multicall",
40
44
  } as const;
41
45
  /**
@@ -0,0 +1,70 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod";
6
+ import { safeParse } from "../../lib/schemas.js";
7
+ import { Result as SafeParseResult } from "../../types/fp.js";
8
+ import { SDKValidationError } from "../errors/sdkvalidationerror.js";
9
+
10
+ export type Erc20Data = {
11
+ address: string;
12
+ symbol: string;
13
+ name: string;
14
+ };
15
+
16
+ /** @internal */
17
+ export const Erc20Data$inboundSchema: z.ZodType<
18
+ Erc20Data,
19
+ z.ZodTypeDef,
20
+ unknown
21
+ > = z.object({
22
+ address: z.string(),
23
+ symbol: z.string(),
24
+ name: z.string(),
25
+ });
26
+
27
+ /** @internal */
28
+ export type Erc20Data$Outbound = {
29
+ address: string;
30
+ symbol: string;
31
+ name: string;
32
+ };
33
+
34
+ /** @internal */
35
+ export const Erc20Data$outboundSchema: z.ZodType<
36
+ Erc20Data$Outbound,
37
+ z.ZodTypeDef,
38
+ Erc20Data
39
+ > = z.object({
40
+ address: z.string(),
41
+ symbol: z.string(),
42
+ name: z.string(),
43
+ });
44
+
45
+ /**
46
+ * @internal
47
+ * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
48
+ */
49
+ export namespace Erc20Data$ {
50
+ /** @deprecated use `Erc20Data$inboundSchema` instead. */
51
+ export const inboundSchema = Erc20Data$inboundSchema;
52
+ /** @deprecated use `Erc20Data$outboundSchema` instead. */
53
+ export const outboundSchema = Erc20Data$outboundSchema;
54
+ /** @deprecated use `Erc20Data$Outbound` instead. */
55
+ export type Outbound = Erc20Data$Outbound;
56
+ }
57
+
58
+ export function erc20DataToJSON(erc20Data: Erc20Data): string {
59
+ return JSON.stringify(Erc20Data$outboundSchema.parse(erc20Data));
60
+ }
61
+
62
+ export function erc20DataFromJSON(
63
+ jsonString: string,
64
+ ): SafeParseResult<Erc20Data, SDKValidationError> {
65
+ return safeParse(
66
+ jsonString,
67
+ (x) => Erc20Data$inboundSchema.parse(JSON.parse(x)),
68
+ `Failed to parse 'Erc20Data' from JSON`,
69
+ );
70
+ }
@@ -29,6 +29,7 @@ export const IncreaseAllowanceParamsContractName = {
29
29
  SkyDaiUsdsConverter: "SkyDaiUsdsConverter",
30
30
  SkyUsdcUsdsConverter: "SkyUsdcUsdsConverter",
31
31
  SkyUsdsVault: "SkyUsdsVault",
32
+ PendleRouter: "PendleRouter",
32
33
  } as const;
33
34
  /**
34
35
  * The name of the contract to increase allowance for.
@@ -30,6 +30,7 @@ export const IncreaseAllowanceRequestContractName = {
30
30
  SkyDaiUsdsConverter: "SkyDaiUsdsConverter",
31
31
  SkyUsdcUsdsConverter: "SkyUsdcUsdsConverter",
32
32
  SkyUsdsVault: "SkyUsdsVault",
33
+ PendleRouter: "PendleRouter",
33
34
  } as const;
34
35
  /**
35
36
  * The name of the contract to increase allowance for.
@@ -55,6 +55,7 @@ export * from "./compassapibackendmodelsmorphoreadresponsegetvaultvaultstate.js"
55
55
  export * from "./contractname.js";
56
56
  export * from "./curator.js";
57
57
  export * from "./ensnameinforesponse.js";
58
+ export * from "./erc20data.js";
58
59
  export * from "./feeenum.js";
59
60
  export * from "./image.js";
60
61
  export * from "./increaseallowanceanyparams.js";
@@ -93,6 +94,8 @@ export * from "./multicallactiontype.js";
93
94
  export * from "./multicallauthorizationrequest.js";
94
95
  export * from "./multicallauthorizationresponse.js";
95
96
  export * from "./multicallexecuterequest.js";
97
+ export * from "./pendlegetmarketresponse.js";
98
+ export * from "./pendlegetuserpositionresponse.js";
96
99
  export * from "./portfolio.js";
97
100
  export * from "./redeemunderlying.js";
98
101
  export * from "./repay.js";
@@ -0,0 +1,113 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod";
6
+ import { remap as remap$ } from "../../lib/primitives.js";
7
+ import { safeParse } from "../../lib/schemas.js";
8
+ import { Result as SafeParseResult } from "../../types/fp.js";
9
+ import { SDKValidationError } from "../errors/sdkvalidationerror.js";
10
+ import {
11
+ Erc20Data,
12
+ Erc20Data$inboundSchema,
13
+ Erc20Data$Outbound,
14
+ Erc20Data$outboundSchema,
15
+ } from "./erc20data.js";
16
+
17
+ export type PendleGetMarketResponse = {
18
+ /**
19
+ * The implied APY of the market.
20
+ */
21
+ impliedApy: string;
22
+ /**
23
+ * The maturity date of the market. ISO 8601 format. UTC timezone.
24
+ */
25
+ maturityDate: Date;
26
+ underlyingToken: Erc20Data;
27
+ sy: Erc20Data;
28
+ pt: Erc20Data;
29
+ yt: Erc20Data;
30
+ };
31
+
32
+ /** @internal */
33
+ export const PendleGetMarketResponse$inboundSchema: z.ZodType<
34
+ PendleGetMarketResponse,
35
+ z.ZodTypeDef,
36
+ unknown
37
+ > = z.object({
38
+ implied_apy: z.string(),
39
+ maturity_date: z.string().datetime({ offset: true }).transform(v =>
40
+ new Date(v)
41
+ ),
42
+ underlying_token: Erc20Data$inboundSchema,
43
+ sy: Erc20Data$inboundSchema,
44
+ pt: Erc20Data$inboundSchema,
45
+ yt: Erc20Data$inboundSchema,
46
+ }).transform((v) => {
47
+ return remap$(v, {
48
+ "implied_apy": "impliedApy",
49
+ "maturity_date": "maturityDate",
50
+ "underlying_token": "underlyingToken",
51
+ });
52
+ });
53
+
54
+ /** @internal */
55
+ export type PendleGetMarketResponse$Outbound = {
56
+ implied_apy: string;
57
+ maturity_date: string;
58
+ underlying_token: Erc20Data$Outbound;
59
+ sy: Erc20Data$Outbound;
60
+ pt: Erc20Data$Outbound;
61
+ yt: Erc20Data$Outbound;
62
+ };
63
+
64
+ /** @internal */
65
+ export const PendleGetMarketResponse$outboundSchema: z.ZodType<
66
+ PendleGetMarketResponse$Outbound,
67
+ z.ZodTypeDef,
68
+ PendleGetMarketResponse
69
+ > = z.object({
70
+ impliedApy: z.string(),
71
+ maturityDate: z.date().transform(v => v.toISOString()),
72
+ underlyingToken: Erc20Data$outboundSchema,
73
+ sy: Erc20Data$outboundSchema,
74
+ pt: Erc20Data$outboundSchema,
75
+ yt: Erc20Data$outboundSchema,
76
+ }).transform((v) => {
77
+ return remap$(v, {
78
+ impliedApy: "implied_apy",
79
+ maturityDate: "maturity_date",
80
+ underlyingToken: "underlying_token",
81
+ });
82
+ });
83
+
84
+ /**
85
+ * @internal
86
+ * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
87
+ */
88
+ export namespace PendleGetMarketResponse$ {
89
+ /** @deprecated use `PendleGetMarketResponse$inboundSchema` instead. */
90
+ export const inboundSchema = PendleGetMarketResponse$inboundSchema;
91
+ /** @deprecated use `PendleGetMarketResponse$outboundSchema` instead. */
92
+ export const outboundSchema = PendleGetMarketResponse$outboundSchema;
93
+ /** @deprecated use `PendleGetMarketResponse$Outbound` instead. */
94
+ export type Outbound = PendleGetMarketResponse$Outbound;
95
+ }
96
+
97
+ export function pendleGetMarketResponseToJSON(
98
+ pendleGetMarketResponse: PendleGetMarketResponse,
99
+ ): string {
100
+ return JSON.stringify(
101
+ PendleGetMarketResponse$outboundSchema.parse(pendleGetMarketResponse),
102
+ );
103
+ }
104
+
105
+ export function pendleGetMarketResponseFromJSON(
106
+ jsonString: string,
107
+ ): SafeParseResult<PendleGetMarketResponse, SDKValidationError> {
108
+ return safeParse(
109
+ jsonString,
110
+ (x) => PendleGetMarketResponse$inboundSchema.parse(JSON.parse(x)),
111
+ `Failed to parse 'PendleGetMarketResponse' from JSON`,
112
+ );
113
+ }