@mcp-z/client 1.0.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 (211) hide show
  1. package/AGENTS.md +159 -0
  2. package/LICENSE +21 -0
  3. package/README.md +90 -0
  4. package/dist/cjs/auth/capability-discovery.d.cts +25 -0
  5. package/dist/cjs/auth/capability-discovery.d.ts +25 -0
  6. package/dist/cjs/auth/capability-discovery.js +280 -0
  7. package/dist/cjs/auth/capability-discovery.js.map +1 -0
  8. package/dist/cjs/auth/index.d.cts +9 -0
  9. package/dist/cjs/auth/index.d.ts +9 -0
  10. package/dist/cjs/auth/index.js +28 -0
  11. package/dist/cjs/auth/index.js.map +1 -0
  12. package/dist/cjs/auth/interactive-oauth-flow.d.cts +58 -0
  13. package/dist/cjs/auth/interactive-oauth-flow.d.ts +58 -0
  14. package/dist/cjs/auth/interactive-oauth-flow.js +537 -0
  15. package/dist/cjs/auth/interactive-oauth-flow.js.map +1 -0
  16. package/dist/cjs/auth/oauth-callback-listener.d.cts +56 -0
  17. package/dist/cjs/auth/oauth-callback-listener.d.ts +56 -0
  18. package/dist/cjs/auth/oauth-callback-listener.js +333 -0
  19. package/dist/cjs/auth/oauth-callback-listener.js.map +1 -0
  20. package/dist/cjs/auth/pkce.d.cts +17 -0
  21. package/dist/cjs/auth/pkce.d.ts +17 -0
  22. package/dist/cjs/auth/pkce.js +192 -0
  23. package/dist/cjs/auth/pkce.js.map +1 -0
  24. package/dist/cjs/auth/rfc9728-discovery.d.cts +34 -0
  25. package/dist/cjs/auth/rfc9728-discovery.d.ts +34 -0
  26. package/dist/cjs/auth/rfc9728-discovery.js +436 -0
  27. package/dist/cjs/auth/rfc9728-discovery.js.map +1 -0
  28. package/dist/cjs/auth/types.d.cts +137 -0
  29. package/dist/cjs/auth/types.d.ts +137 -0
  30. package/dist/cjs/auth/types.js +9 -0
  31. package/dist/cjs/auth/types.js.map +1 -0
  32. package/dist/cjs/client-helpers.d.cts +55 -0
  33. package/dist/cjs/client-helpers.d.ts +55 -0
  34. package/dist/cjs/client-helpers.js +128 -0
  35. package/dist/cjs/client-helpers.js.map +1 -0
  36. package/dist/cjs/config/server-loader.d.cts +27 -0
  37. package/dist/cjs/config/server-loader.d.ts +27 -0
  38. package/dist/cjs/config/server-loader.js +111 -0
  39. package/dist/cjs/config/server-loader.js.map +1 -0
  40. package/dist/cjs/config/validate-config.d.cts +15 -0
  41. package/dist/cjs/config/validate-config.d.ts +15 -0
  42. package/dist/cjs/config/validate-config.js +128 -0
  43. package/dist/cjs/config/validate-config.js.map +1 -0
  44. package/dist/cjs/connection/connect-client.d.cts +59 -0
  45. package/dist/cjs/connection/connect-client.d.ts +59 -0
  46. package/dist/cjs/connection/connect-client.js +536 -0
  47. package/dist/cjs/connection/connect-client.js.map +1 -0
  48. package/dist/cjs/connection/existing-process-transport.d.cts +40 -0
  49. package/dist/cjs/connection/existing-process-transport.d.ts +40 -0
  50. package/dist/cjs/connection/existing-process-transport.js +274 -0
  51. package/dist/cjs/connection/existing-process-transport.js.map +1 -0
  52. package/dist/cjs/connection/types.d.cts +61 -0
  53. package/dist/cjs/connection/types.d.ts +61 -0
  54. package/dist/cjs/connection/types.js +53 -0
  55. package/dist/cjs/connection/types.js.map +1 -0
  56. package/dist/cjs/connection/wait-for-http-ready.d.cts +15 -0
  57. package/dist/cjs/connection/wait-for-http-ready.d.ts +15 -0
  58. package/dist/cjs/connection/wait-for-http-ready.js +232 -0
  59. package/dist/cjs/connection/wait-for-http-ready.js.map +1 -0
  60. package/dist/cjs/dcr/dcr-authenticator.d.cts +73 -0
  61. package/dist/cjs/dcr/dcr-authenticator.d.ts +73 -0
  62. package/dist/cjs/dcr/dcr-authenticator.js +655 -0
  63. package/dist/cjs/dcr/dcr-authenticator.js.map +1 -0
  64. package/dist/cjs/dcr/dynamic-client-registrar.d.cts +28 -0
  65. package/dist/cjs/dcr/dynamic-client-registrar.d.ts +28 -0
  66. package/dist/cjs/dcr/dynamic-client-registrar.js +245 -0
  67. package/dist/cjs/dcr/dynamic-client-registrar.js.map +1 -0
  68. package/dist/cjs/dcr/index.d.cts +8 -0
  69. package/dist/cjs/dcr/index.d.ts +8 -0
  70. package/dist/cjs/dcr/index.js +24 -0
  71. package/dist/cjs/dcr/index.js.map +1 -0
  72. package/dist/cjs/index.d.cts +21 -0
  73. package/dist/cjs/index.d.ts +21 -0
  74. package/dist/cjs/index.js +94 -0
  75. package/dist/cjs/index.js.map +1 -0
  76. package/dist/cjs/monkey-patches.d.cts +6 -0
  77. package/dist/cjs/monkey-patches.d.ts +6 -0
  78. package/dist/cjs/monkey-patches.js +236 -0
  79. package/dist/cjs/monkey-patches.js.map +1 -0
  80. package/dist/cjs/package.json +1 -0
  81. package/dist/cjs/response-wrappers.d.cts +41 -0
  82. package/dist/cjs/response-wrappers.d.ts +41 -0
  83. package/dist/cjs/response-wrappers.js +443 -0
  84. package/dist/cjs/response-wrappers.js.map +1 -0
  85. package/dist/cjs/search/index.d.cts +6 -0
  86. package/dist/cjs/search/index.d.ts +6 -0
  87. package/dist/cjs/search/index.js +25 -0
  88. package/dist/cjs/search/index.js.map +1 -0
  89. package/dist/cjs/search/search.d.cts +22 -0
  90. package/dist/cjs/search/search.d.ts +22 -0
  91. package/dist/cjs/search/search.js +630 -0
  92. package/dist/cjs/search/search.js.map +1 -0
  93. package/dist/cjs/search/types.d.cts +122 -0
  94. package/dist/cjs/search/types.d.ts +122 -0
  95. package/dist/cjs/search/types.js +10 -0
  96. package/dist/cjs/search/types.js.map +1 -0
  97. package/dist/cjs/spawn/spawn-server.d.cts +83 -0
  98. package/dist/cjs/spawn/spawn-server.d.ts +83 -0
  99. package/dist/cjs/spawn/spawn-server.js +410 -0
  100. package/dist/cjs/spawn/spawn-server.js.map +1 -0
  101. package/dist/cjs/spawn/spawn-servers.d.cts +151 -0
  102. package/dist/cjs/spawn/spawn-servers.d.ts +151 -0
  103. package/dist/cjs/spawn/spawn-servers.js +911 -0
  104. package/dist/cjs/spawn/spawn-servers.js.map +1 -0
  105. package/dist/cjs/types.d.cts +11 -0
  106. package/dist/cjs/types.d.ts +11 -0
  107. package/dist/cjs/types.js +10 -0
  108. package/dist/cjs/types.js.map +1 -0
  109. package/dist/cjs/utils/logger.d.cts +24 -0
  110. package/dist/cjs/utils/logger.d.ts +24 -0
  111. package/dist/cjs/utils/logger.js +80 -0
  112. package/dist/cjs/utils/logger.js.map +1 -0
  113. package/dist/cjs/utils/path-utils.d.cts +45 -0
  114. package/dist/cjs/utils/path-utils.d.ts +45 -0
  115. package/dist/cjs/utils/path-utils.js +158 -0
  116. package/dist/cjs/utils/path-utils.js.map +1 -0
  117. package/dist/cjs/utils/sanitizer.d.cts +30 -0
  118. package/dist/cjs/utils/sanitizer.d.ts +30 -0
  119. package/dist/cjs/utils/sanitizer.js +124 -0
  120. package/dist/cjs/utils/sanitizer.js.map +1 -0
  121. package/dist/esm/auth/capability-discovery.d.ts +25 -0
  122. package/dist/esm/auth/capability-discovery.js +110 -0
  123. package/dist/esm/auth/capability-discovery.js.map +1 -0
  124. package/dist/esm/auth/index.d.ts +9 -0
  125. package/dist/esm/auth/index.js +6 -0
  126. package/dist/esm/auth/index.js.map +1 -0
  127. package/dist/esm/auth/interactive-oauth-flow.d.ts +58 -0
  128. package/dist/esm/auth/interactive-oauth-flow.js +217 -0
  129. package/dist/esm/auth/interactive-oauth-flow.js.map +1 -0
  130. package/dist/esm/auth/oauth-callback-listener.d.ts +56 -0
  131. package/dist/esm/auth/oauth-callback-listener.js +166 -0
  132. package/dist/esm/auth/oauth-callback-listener.js.map +1 -0
  133. package/dist/esm/auth/pkce.d.ts +17 -0
  134. package/dist/esm/auth/pkce.js +41 -0
  135. package/dist/esm/auth/pkce.js.map +1 -0
  136. package/dist/esm/auth/rfc9728-discovery.d.ts +34 -0
  137. package/dist/esm/auth/rfc9728-discovery.js +157 -0
  138. package/dist/esm/auth/rfc9728-discovery.js.map +1 -0
  139. package/dist/esm/auth/types.d.ts +137 -0
  140. package/dist/esm/auth/types.js +7 -0
  141. package/dist/esm/auth/types.js.map +1 -0
  142. package/dist/esm/client-helpers.d.ts +55 -0
  143. package/dist/esm/client-helpers.js +81 -0
  144. package/dist/esm/client-helpers.js.map +1 -0
  145. package/dist/esm/config/server-loader.d.ts +27 -0
  146. package/dist/esm/config/server-loader.js +49 -0
  147. package/dist/esm/config/server-loader.js.map +1 -0
  148. package/dist/esm/config/validate-config.d.ts +15 -0
  149. package/dist/esm/config/validate-config.js +76 -0
  150. package/dist/esm/config/validate-config.js.map +1 -0
  151. package/dist/esm/connection/connect-client.d.ts +59 -0
  152. package/dist/esm/connection/connect-client.js +272 -0
  153. package/dist/esm/connection/connect-client.js.map +1 -0
  154. package/dist/esm/connection/existing-process-transport.d.ts +40 -0
  155. package/dist/esm/connection/existing-process-transport.js +103 -0
  156. package/dist/esm/connection/existing-process-transport.js.map +1 -0
  157. package/dist/esm/connection/types.d.ts +61 -0
  158. package/dist/esm/connection/types.js +34 -0
  159. package/dist/esm/connection/types.js.map +1 -0
  160. package/dist/esm/connection/wait-for-http-ready.d.ts +15 -0
  161. package/dist/esm/connection/wait-for-http-ready.js +43 -0
  162. package/dist/esm/connection/wait-for-http-ready.js.map +1 -0
  163. package/dist/esm/dcr/dcr-authenticator.d.ts +73 -0
  164. package/dist/esm/dcr/dcr-authenticator.js +235 -0
  165. package/dist/esm/dcr/dcr-authenticator.js.map +1 -0
  166. package/dist/esm/dcr/dynamic-client-registrar.d.ts +28 -0
  167. package/dist/esm/dcr/dynamic-client-registrar.js +66 -0
  168. package/dist/esm/dcr/dynamic-client-registrar.js.map +1 -0
  169. package/dist/esm/dcr/index.d.ts +8 -0
  170. package/dist/esm/dcr/index.js +5 -0
  171. package/dist/esm/dcr/index.js.map +1 -0
  172. package/dist/esm/index.d.ts +21 -0
  173. package/dist/esm/index.js +22 -0
  174. package/dist/esm/index.js.map +1 -0
  175. package/dist/esm/monkey-patches.d.ts +6 -0
  176. package/dist/esm/monkey-patches.js +32 -0
  177. package/dist/esm/monkey-patches.js.map +1 -0
  178. package/dist/esm/package.json +1 -0
  179. package/dist/esm/response-wrappers.d.ts +41 -0
  180. package/dist/esm/response-wrappers.js +201 -0
  181. package/dist/esm/response-wrappers.js.map +1 -0
  182. package/dist/esm/search/index.d.ts +6 -0
  183. package/dist/esm/search/index.js +3 -0
  184. package/dist/esm/search/index.js.map +1 -0
  185. package/dist/esm/search/search.d.ts +22 -0
  186. package/dist/esm/search/search.js +236 -0
  187. package/dist/esm/search/search.js.map +1 -0
  188. package/dist/esm/search/types.d.ts +122 -0
  189. package/dist/esm/search/types.js +8 -0
  190. package/dist/esm/search/types.js.map +1 -0
  191. package/dist/esm/spawn/spawn-server.d.ts +83 -0
  192. package/dist/esm/spawn/spawn-server.js +145 -0
  193. package/dist/esm/spawn/spawn-server.js.map +1 -0
  194. package/dist/esm/spawn/spawn-servers.d.ts +151 -0
  195. package/dist/esm/spawn/spawn-servers.js +406 -0
  196. package/dist/esm/spawn/spawn-servers.js.map +1 -0
  197. package/dist/esm/types.d.ts +11 -0
  198. package/dist/esm/types.js +9 -0
  199. package/dist/esm/types.js.map +1 -0
  200. package/dist/esm/utils/logger.d.ts +24 -0
  201. package/dist/esm/utils/logger.js +59 -0
  202. package/dist/esm/utils/logger.js.map +1 -0
  203. package/dist/esm/utils/path-utils.d.ts +45 -0
  204. package/dist/esm/utils/path-utils.js +89 -0
  205. package/dist/esm/utils/path-utils.js.map +1 -0
  206. package/dist/esm/utils/sanitizer.d.ts +30 -0
  207. package/dist/esm/utils/sanitizer.js +43 -0
  208. package/dist/esm/utils/sanitizer.js.map +1 -0
  209. package/package.json +92 -0
  210. package/schemas/servers.d.ts +90 -0
  211. package/schemas/servers.schema.json +104 -0
@@ -0,0 +1,443 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get PromptResponseError () {
13
+ return PromptResponseError;
14
+ },
15
+ get PromptResponseWrapper () {
16
+ return PromptResponseWrapper;
17
+ },
18
+ get ResourceResponseError () {
19
+ return ResourceResponseError;
20
+ },
21
+ get ResourceResponseWrapper () {
22
+ return ResourceResponseWrapper;
23
+ },
24
+ get ToolResponseError () {
25
+ return ToolResponseError;
26
+ },
27
+ get ToolResponseWrapper () {
28
+ return ToolResponseWrapper;
29
+ }
30
+ });
31
+ var _nodebuffer = require("node:buffer");
32
+ function _array_like_to_array(arr, len) {
33
+ if (len == null || len > arr.length) len = arr.length;
34
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
35
+ return arr2;
36
+ }
37
+ function _array_with_holes(arr) {
38
+ if (Array.isArray(arr)) return arr;
39
+ }
40
+ function _assert_this_initialized(self) {
41
+ if (self === void 0) {
42
+ throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
43
+ }
44
+ return self;
45
+ }
46
+ function _call_super(_this, derived, args) {
47
+ derived = _get_prototype_of(derived);
48
+ return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
49
+ }
50
+ function _class_call_check(instance, Constructor) {
51
+ if (!(instance instanceof Constructor)) {
52
+ throw new TypeError("Cannot call a class as a function");
53
+ }
54
+ }
55
+ function _construct(Parent, args, Class) {
56
+ if (_is_native_reflect_construct()) {
57
+ _construct = Reflect.construct;
58
+ } else {
59
+ _construct = function construct(Parent, args, Class) {
60
+ var a = [
61
+ null
62
+ ];
63
+ a.push.apply(a, args);
64
+ var Constructor = Function.bind.apply(Parent, a);
65
+ var instance = new Constructor();
66
+ if (Class) _set_prototype_of(instance, Class.prototype);
67
+ return instance;
68
+ };
69
+ }
70
+ return _construct.apply(null, arguments);
71
+ }
72
+ function _get_prototype_of(o) {
73
+ _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
74
+ return o.__proto__ || Object.getPrototypeOf(o);
75
+ };
76
+ return _get_prototype_of(o);
77
+ }
78
+ function _inherits(subClass, superClass) {
79
+ if (typeof superClass !== "function" && superClass !== null) {
80
+ throw new TypeError("Super expression must either be null or a function");
81
+ }
82
+ subClass.prototype = Object.create(superClass && superClass.prototype, {
83
+ constructor: {
84
+ value: subClass,
85
+ writable: true,
86
+ configurable: true
87
+ }
88
+ });
89
+ if (superClass) _set_prototype_of(subClass, superClass);
90
+ }
91
+ function _instanceof(left, right) {
92
+ if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
93
+ return !!right[Symbol.hasInstance](left);
94
+ } else {
95
+ return left instanceof right;
96
+ }
97
+ }
98
+ function _is_native_function(fn) {
99
+ return Function.toString.call(fn).indexOf("[native code]") !== -1;
100
+ }
101
+ function _iterable_to_array_limit(arr, i) {
102
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
103
+ if (_i == null) return;
104
+ var _arr = [];
105
+ var _n = true;
106
+ var _d = false;
107
+ var _s, _e;
108
+ try {
109
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
110
+ _arr.push(_s.value);
111
+ if (i && _arr.length === i) break;
112
+ }
113
+ } catch (err) {
114
+ _d = true;
115
+ _e = err;
116
+ } finally{
117
+ try {
118
+ if (!_n && _i["return"] != null) _i["return"]();
119
+ } finally{
120
+ if (_d) throw _e;
121
+ }
122
+ }
123
+ return _arr;
124
+ }
125
+ function _non_iterable_rest() {
126
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
127
+ }
128
+ function _possible_constructor_return(self, call) {
129
+ if (call && (_type_of(call) === "object" || typeof call === "function")) {
130
+ return call;
131
+ }
132
+ return _assert_this_initialized(self);
133
+ }
134
+ function _set_prototype_of(o, p) {
135
+ _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
136
+ o.__proto__ = p;
137
+ return o;
138
+ };
139
+ return _set_prototype_of(o, p);
140
+ }
141
+ function _sliced_to_array(arr, i) {
142
+ return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
143
+ }
144
+ function _type_of(obj) {
145
+ "@swc/helpers - typeof";
146
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
147
+ }
148
+ function _unsupported_iterable_to_array(o, minLen) {
149
+ if (!o) return;
150
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
151
+ var n = Object.prototype.toString.call(o).slice(8, -1);
152
+ if (n === "Object" && o.constructor) n = o.constructor.name;
153
+ if (n === "Map" || n === "Set") return Array.from(n);
154
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
155
+ }
156
+ function _wrap_native_super(Class) {
157
+ var _cache = typeof Map === "function" ? new Map() : undefined;
158
+ _wrap_native_super = function wrapNativeSuper(Class) {
159
+ if (Class === null || !_is_native_function(Class)) return Class;
160
+ if (typeof Class !== "function") {
161
+ throw new TypeError("Super expression must either be null or a function");
162
+ }
163
+ if (typeof _cache !== "undefined") {
164
+ if (_cache.has(Class)) return _cache.get(Class);
165
+ _cache.set(Class, Wrapper);
166
+ }
167
+ function Wrapper() {
168
+ return _construct(Class, arguments, _get_prototype_of(this).constructor);
169
+ }
170
+ Wrapper.prototype = Object.create(Class.prototype, {
171
+ constructor: {
172
+ value: Wrapper,
173
+ enumerable: false,
174
+ writable: true,
175
+ configurable: true
176
+ }
177
+ });
178
+ return _set_prototype_of(Wrapper, Class);
179
+ };
180
+ return _wrap_native_super(Class);
181
+ }
182
+ function _is_native_reflect_construct() {
183
+ try {
184
+ var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
185
+ } catch (_) {}
186
+ return (_is_native_reflect_construct = function() {
187
+ return !!result;
188
+ })();
189
+ }
190
+ var ToolResponseError = /*#__PURE__*/ function(Error1) {
191
+ "use strict";
192
+ _inherits(ToolResponseError, Error1);
193
+ function ToolResponseError(message, response) {
194
+ _class_call_check(this, ToolResponseError);
195
+ var _this;
196
+ _this = _call_super(this, ToolResponseError, [
197
+ message
198
+ ]);
199
+ _this.name = 'ToolResponseError';
200
+ _this.response = response;
201
+ return _this;
202
+ }
203
+ return ToolResponseError;
204
+ }(_wrap_native_super(Error));
205
+ var ToolResponseWrapper = /*#__PURE__*/ function() {
206
+ "use strict";
207
+ function ToolResponseWrapper(payload) {
208
+ _class_call_check(this, ToolResponseWrapper);
209
+ this.payload = payload;
210
+ }
211
+ var _proto = ToolResponseWrapper.prototype;
212
+ _proto.raw = function raw() {
213
+ return this.payload;
214
+ };
215
+ _proto.json = function json(validator) {
216
+ var value = this.resolveJsonPayload();
217
+ if (validator) {
218
+ validator(value);
219
+ }
220
+ return value;
221
+ };
222
+ _proto.text = function text() {
223
+ var _this_payload_content;
224
+ if (isCompatibilityResult(this.payload)) {
225
+ if (typeof this.payload.toolResult === 'string') {
226
+ return this.payload.toolResult;
227
+ }
228
+ throw new ToolResponseError('Compatibility tool result is not text', this.payload);
229
+ }
230
+ this.throwIfError();
231
+ var textBlock = findFirstTextBlock((_this_payload_content = this.payload.content) !== null && _this_payload_content !== void 0 ? _this_payload_content : []);
232
+ if (!textBlock) {
233
+ throw new ToolResponseError('Tool response did not include text content', this.payload);
234
+ }
235
+ return textBlock.text;
236
+ };
237
+ _proto.resolveJsonPayload = function resolveJsonPayload() {
238
+ var _this_payload_content;
239
+ if (isCompatibilityResult(this.payload)) {
240
+ return this.payload.toolResult;
241
+ }
242
+ this.throwIfError();
243
+ if (hasStructuredContent(this.payload)) {
244
+ return this.payload.structuredContent;
245
+ }
246
+ var textBlock = findFirstTextBlock((_this_payload_content = this.payload.content) !== null && _this_payload_content !== void 0 ? _this_payload_content : []);
247
+ if (!textBlock) {
248
+ throw new ToolResponseError('Tool response did not include structuredContent or text content', this.payload);
249
+ }
250
+ try {
251
+ return JSON.parse(textBlock.text);
252
+ } catch (error) {
253
+ var reason = formatErrorReason(error);
254
+ throw new ToolResponseError("Failed to parse tool text content as JSON: ".concat(reason), this.payload);
255
+ }
256
+ };
257
+ _proto.throwIfError = function throwIfError() {
258
+ if ('isError' in this.payload && this.payload.isError) {
259
+ var _this_payload_error_message;
260
+ var detail = _type_of(this.payload.error) === 'object' && this.payload.error && 'message' in this.payload.error ? String((_this_payload_error_message = this.payload.error.message) !== null && _this_payload_error_message !== void 0 ? _this_payload_error_message : '') : '';
261
+ if (!detail) {
262
+ var _this_payload_content;
263
+ var textBlock = findFirstTextBlock((_this_payload_content = this.payload.content) !== null && _this_payload_content !== void 0 ? _this_payload_content : []);
264
+ if (textBlock === null || textBlock === void 0 ? void 0 : textBlock.text) {
265
+ detail = textBlock.text;
266
+ }
267
+ }
268
+ var message = detail ? "Tool invocation returned an error result: ".concat(detail) : 'Tool invocation returned an error result';
269
+ throw new ToolResponseError(message, this.payload);
270
+ }
271
+ };
272
+ return ToolResponseWrapper;
273
+ }();
274
+ var PromptResponseError = /*#__PURE__*/ function(Error1) {
275
+ "use strict";
276
+ _inherits(PromptResponseError, Error1);
277
+ function PromptResponseError(message, response) {
278
+ _class_call_check(this, PromptResponseError);
279
+ var _this;
280
+ _this = _call_super(this, PromptResponseError, [
281
+ message
282
+ ]);
283
+ _this.name = 'PromptResponseError';
284
+ _this.response = response;
285
+ return _this;
286
+ }
287
+ return PromptResponseError;
288
+ }(_wrap_native_super(Error));
289
+ var PromptResponseWrapper = /*#__PURE__*/ function() {
290
+ "use strict";
291
+ function PromptResponseWrapper(payload) {
292
+ _class_call_check(this, PromptResponseWrapper);
293
+ this.payload = payload;
294
+ }
295
+ var _proto = PromptResponseWrapper.prototype;
296
+ _proto.raw = function raw() {
297
+ return this.payload;
298
+ };
299
+ _proto.text = function text() {
300
+ var segments = collectPromptText(this.payload.messages);
301
+ if (!segments.length) {
302
+ throw new PromptResponseError('Prompt response did not include text content', this.payload);
303
+ }
304
+ return segments.join('\n\n');
305
+ };
306
+ _proto.json = function json(validator) {
307
+ var textValue = this.text();
308
+ try {
309
+ var parsed = JSON.parse(textValue);
310
+ if (validator) {
311
+ validator(parsed);
312
+ }
313
+ return parsed;
314
+ } catch (error) {
315
+ var reason = formatErrorReason(error);
316
+ throw new PromptResponseError("Failed to parse prompt text as JSON: ".concat(reason), this.payload);
317
+ }
318
+ };
319
+ return PromptResponseWrapper;
320
+ }();
321
+ var ResourceResponseError = /*#__PURE__*/ function(Error1) {
322
+ "use strict";
323
+ _inherits(ResourceResponseError, Error1);
324
+ function ResourceResponseError(message, response) {
325
+ _class_call_check(this, ResourceResponseError);
326
+ var _this;
327
+ _this = _call_super(this, ResourceResponseError, [
328
+ message
329
+ ]);
330
+ _this.name = 'ResourceResponseError';
331
+ _this.response = response;
332
+ return _this;
333
+ }
334
+ return ResourceResponseError;
335
+ }(_wrap_native_super(Error));
336
+ var ResourceResponseWrapper = /*#__PURE__*/ function() {
337
+ "use strict";
338
+ function ResourceResponseWrapper(payload) {
339
+ _class_call_check(this, ResourceResponseWrapper);
340
+ this.payload = payload;
341
+ }
342
+ var _proto = ResourceResponseWrapper.prototype;
343
+ _proto.raw = function raw() {
344
+ return this.payload;
345
+ };
346
+ _proto.text = function text() {
347
+ var entry = this.firstEntry();
348
+ if ('text' in entry && typeof entry.text === 'string') {
349
+ return entry.text;
350
+ }
351
+ if ('blob' in entry && typeof entry.blob === 'string') {
352
+ try {
353
+ return _nodebuffer.Buffer.from(entry.blob, 'base64').toString('utf8');
354
+ } catch (error) {
355
+ var reason = formatErrorReason(error);
356
+ throw new ResourceResponseError("Failed to decode resource blob as UTF-8 text: ".concat(reason), this.payload);
357
+ }
358
+ }
359
+ throw new ResourceResponseError('Resource content does not include text or blob data', this.payload);
360
+ };
361
+ _proto.json = function json(validator) {
362
+ var textValue = this.text();
363
+ try {
364
+ var parsed = JSON.parse(textValue);
365
+ if (validator) {
366
+ validator(parsed);
367
+ }
368
+ return parsed;
369
+ } catch (error) {
370
+ var reason = formatErrorReason(error);
371
+ throw new ResourceResponseError("Failed to parse resource text as JSON: ".concat(reason), this.payload);
372
+ }
373
+ };
374
+ _proto.firstEntry = function firstEntry() {
375
+ var _this_payload_contents;
376
+ var _ref = _sliced_to_array((_this_payload_contents = this.payload.contents) !== null && _this_payload_contents !== void 0 ? _this_payload_contents : [], 1), entry = _ref[0];
377
+ if (!entry) {
378
+ throw new ResourceResponseError('Resource response did not include any contents', this.payload);
379
+ }
380
+ return entry;
381
+ };
382
+ return ResourceResponseWrapper;
383
+ }();
384
+ function hasStructuredContent(response) {
385
+ return Boolean(response.structuredContent);
386
+ }
387
+ function isCompatibilityResult(response) {
388
+ return hasOwn(response, 'toolResult');
389
+ }
390
+ function findFirstTextBlock(blocks) {
391
+ if (!Array.isArray(blocks)) {
392
+ return undefined;
393
+ }
394
+ return blocks.find(isTextContent);
395
+ }
396
+ function collectPromptText(messages) {
397
+ var segments = [];
398
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
399
+ try {
400
+ for(var _iterator = messages[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
401
+ var message = _step.value;
402
+ var textBlock = isTextContent(message.content) ? message.content : undefined;
403
+ if (textBlock) {
404
+ segments.push(textBlock.text);
405
+ }
406
+ }
407
+ } catch (err) {
408
+ _didIteratorError = true;
409
+ _iteratorError = err;
410
+ } finally{
411
+ try {
412
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
413
+ _iterator.return();
414
+ }
415
+ } finally{
416
+ if (_didIteratorError) {
417
+ throw _iteratorError;
418
+ }
419
+ }
420
+ }
421
+ return segments;
422
+ }
423
+ function isTextContent(block) {
424
+ return Boolean(block) && (typeof block === "undefined" ? "undefined" : _type_of(block)) === 'object' && block.type === 'text';
425
+ }
426
+ var protoHasOwn = Object.prototype.hasOwnProperty;
427
+ function hasOwn(target, key) {
428
+ return protoHasOwn.call(target, key);
429
+ }
430
+ function formatErrorReason(error) {
431
+ if (_instanceof(error, Error) && typeof error.message === 'string') {
432
+ return error.message;
433
+ }
434
+ if (typeof error === 'string') {
435
+ return error;
436
+ }
437
+ try {
438
+ return JSON.stringify(error);
439
+ } catch (unused) {
440
+ return String(error);
441
+ }
442
+ }
443
+ /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/kevin/Dev/Projects/ai/mcp-z/libs/client/src/response-wrappers.ts"],"sourcesContent":["import { Buffer } from 'node:buffer';\nimport type { Client } from '@modelcontextprotocol/sdk/client/index.js';\nimport type { ContentBlock, PromptMessage, TextContent } from '@modelcontextprotocol/sdk/types.js';\n\nexport type NativeCallToolResponse = Awaited<ReturnType<Client['callTool']>>;\nexport type NativeGetPromptResponse = Awaited<ReturnType<Client['getPrompt']>>;\nexport type NativeReadResourceResponse = Awaited<ReturnType<Client['readResource']>>;\n\nexport type JsonValidator<T> = (value: unknown) => asserts value is T;\n\nexport class ToolResponseError extends Error {\n readonly response: NativeCallToolResponse;\n\n constructor(message: string, response: NativeCallToolResponse) {\n super(message);\n this.name = 'ToolResponseError';\n this.response = response;\n }\n}\n\nexport class ToolResponseWrapper {\n private readonly payload: NativeCallToolResponse;\n\n constructor(payload: NativeCallToolResponse) {\n this.payload = payload;\n }\n\n raw(): NativeCallToolResponse {\n return this.payload;\n }\n\n json<T = unknown>(validator?: JsonValidator<T>): T {\n const value = this.resolveJsonPayload();\n if (validator) {\n validator(value);\n }\n return value as T;\n }\n\n text(): string {\n if (isCompatibilityResult(this.payload)) {\n if (typeof this.payload.toolResult === 'string') {\n return this.payload.toolResult;\n }\n throw new ToolResponseError('Compatibility tool result is not text', this.payload);\n }\n\n this.throwIfError();\n\n const textBlock = findFirstTextBlock(this.payload.content ?? []);\n if (!textBlock) {\n throw new ToolResponseError('Tool response did not include text content', this.payload);\n }\n\n return textBlock.text;\n }\n\n private resolveJsonPayload(): unknown {\n if (isCompatibilityResult(this.payload)) {\n return this.payload.toolResult;\n }\n\n this.throwIfError();\n\n if (hasStructuredContent(this.payload)) {\n return this.payload.structuredContent;\n }\n\n const textBlock = findFirstTextBlock(this.payload.content ?? []);\n if (!textBlock) {\n throw new ToolResponseError('Tool response did not include structuredContent or text content', this.payload);\n }\n\n try {\n return JSON.parse(textBlock.text) as unknown;\n } catch (error) {\n const reason = formatErrorReason(error);\n throw new ToolResponseError(`Failed to parse tool text content as JSON: ${reason}`, this.payload);\n }\n }\n\n private throwIfError(): void {\n if ('isError' in this.payload && this.payload.isError) {\n let detail = typeof this.payload.error === 'object' && this.payload.error && 'message' in this.payload.error ? String((this.payload.error as { message?: unknown }).message ?? '') : '';\n if (!detail) {\n const textBlock = findFirstTextBlock((this.payload.content ?? []) as ContentBlock[]);\n if (textBlock?.text) {\n detail = textBlock.text;\n }\n }\n const message = detail ? `Tool invocation returned an error result: ${detail}` : 'Tool invocation returned an error result';\n throw new ToolResponseError(message, this.payload);\n }\n }\n}\n\nexport class PromptResponseError extends Error {\n readonly response: NativeGetPromptResponse;\n\n constructor(message: string, response: NativeGetPromptResponse) {\n super(message);\n this.name = 'PromptResponseError';\n this.response = response;\n }\n}\n\nexport class PromptResponseWrapper {\n private readonly payload: NativeGetPromptResponse;\n\n constructor(payload: NativeGetPromptResponse) {\n this.payload = payload;\n }\n\n raw(): NativeGetPromptResponse {\n return this.payload;\n }\n\n text(): string {\n const segments = collectPromptText(this.payload.messages);\n if (!segments.length) {\n throw new PromptResponseError('Prompt response did not include text content', this.payload);\n }\n return segments.join('\\n\\n');\n }\n\n json<T = unknown>(validator?: JsonValidator<T>): T {\n const textValue = this.text();\n try {\n const parsed = JSON.parse(textValue) as unknown;\n if (validator) {\n validator(parsed);\n }\n return parsed as T;\n } catch (error) {\n const reason = formatErrorReason(error);\n throw new PromptResponseError(`Failed to parse prompt text as JSON: ${reason}`, this.payload);\n }\n }\n}\n\nexport class ResourceResponseError extends Error {\n readonly response: NativeReadResourceResponse;\n\n constructor(message: string, response: NativeReadResourceResponse) {\n super(message);\n this.name = 'ResourceResponseError';\n this.response = response;\n }\n}\n\nexport class ResourceResponseWrapper {\n private readonly payload: NativeReadResourceResponse;\n\n constructor(payload: NativeReadResourceResponse) {\n this.payload = payload;\n }\n\n raw(): NativeReadResourceResponse {\n return this.payload;\n }\n\n text(): string {\n const entry = this.firstEntry();\n if ('text' in entry && typeof entry.text === 'string') {\n return entry.text;\n }\n if ('blob' in entry && typeof entry.blob === 'string') {\n try {\n return Buffer.from(entry.blob, 'base64').toString('utf8');\n } catch (error) {\n const reason = formatErrorReason(error);\n throw new ResourceResponseError(`Failed to decode resource blob as UTF-8 text: ${reason}`, this.payload);\n }\n }\n throw new ResourceResponseError('Resource content does not include text or blob data', this.payload);\n }\n\n json<T = unknown>(validator?: JsonValidator<T>): T {\n const textValue = this.text();\n try {\n const parsed = JSON.parse(textValue) as unknown;\n if (validator) {\n validator(parsed);\n }\n return parsed as T;\n } catch (error) {\n const reason = formatErrorReason(error);\n throw new ResourceResponseError(`Failed to parse resource text as JSON: ${reason}`, this.payload);\n }\n }\n\n private firstEntry(): NativeReadResourceResponse['contents'][number] {\n const [entry] = this.payload.contents ?? [];\n if (!entry) {\n throw new ResourceResponseError('Resource response did not include any contents', this.payload);\n }\n return entry;\n }\n}\n\nfunction hasStructuredContent(response: NativeCallToolResponse): response is NativeCallToolResponse & { structuredContent: Record<string, unknown> } {\n return Boolean((response as { structuredContent?: unknown }).structuredContent);\n}\n\nfunction isCompatibilityResult(response: NativeCallToolResponse): response is NativeCallToolResponse & { toolResult: unknown } {\n return hasOwn(response, 'toolResult');\n}\n\nfunction findFirstTextBlock(blocks: ContentBlock[] | undefined): TextContent | undefined {\n if (!Array.isArray(blocks)) {\n return undefined;\n }\n return blocks.find(isTextContent);\n}\n\nfunction collectPromptText(messages: PromptMessage[]): string[] {\n const segments: string[] = [];\n for (const message of messages) {\n const textBlock = isTextContent(message.content) ? message.content : undefined;\n if (textBlock) {\n segments.push(textBlock.text);\n }\n }\n return segments;\n}\n\nfunction isTextContent(block: unknown): block is TextContent {\n return Boolean(block) && typeof block === 'object' && (block as { type?: string }).type === 'text';\n}\n\nconst protoHasOwn = Object.prototype.hasOwnProperty;\n\nfunction hasOwn(target: object, key: PropertyKey): boolean {\n return protoHasOwn.call(target, key);\n}\n\nfunction formatErrorReason(error: unknown): string {\n if (error instanceof Error && typeof error.message === 'string') {\n return error.message;\n }\n if (typeof error === 'string') {\n return error;\n }\n try {\n return JSON.stringify(error);\n } catch {\n return String(error);\n }\n}\n"],"names":["PromptResponseError","PromptResponseWrapper","ResourceResponseError","ResourceResponseWrapper","ToolResponseError","ToolResponseWrapper","message","response","name","Error","payload","raw","json","validator","value","resolveJsonPayload","text","isCompatibilityResult","toolResult","throwIfError","textBlock","findFirstTextBlock","content","hasStructuredContent","structuredContent","JSON","parse","error","reason","formatErrorReason","isError","detail","String","segments","collectPromptText","messages","length","join","textValue","parsed","entry","firstEntry","blob","Buffer","from","toString","contents","Boolean","hasOwn","blocks","Array","isArray","undefined","find","isTextContent","push","block","type","protoHasOwn","Object","prototype","hasOwnProperty","target","key","call","stringify"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Search module for MCP capability discovery
3
+ */
4
+ export type { CapabilityClient } from './search.js';
5
+ export { buildCapabilityIndex, search, searchCapabilities } from './search.js';
6
+ export type { CapabilityIndex, CapabilityType, IndexedCapability, IndexedPrompt, IndexedResource, IndexedTool, SearchField, SearchOptions, SearchResponse, SearchResult, } from './types.js';
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Search module for MCP capability discovery
3
+ */
4
+ export type { CapabilityClient } from './search.js';
5
+ export { buildCapabilityIndex, search, searchCapabilities } from './search.js';
6
+ export type { CapabilityIndex, CapabilityType, IndexedCapability, IndexedPrompt, IndexedResource, IndexedTool, SearchField, SearchOptions, SearchResponse, SearchResult, } from './types.js';
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Search module for MCP capability discovery
3
+ */ "use strict";
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ function _export(target, all) {
8
+ for(var name in all)Object.defineProperty(target, name, {
9
+ enumerable: true,
10
+ get: Object.getOwnPropertyDescriptor(all, name).get
11
+ });
12
+ }
13
+ _export(exports, {
14
+ get buildCapabilityIndex () {
15
+ return _searchts.buildCapabilityIndex;
16
+ },
17
+ get search () {
18
+ return _searchts.search;
19
+ },
20
+ get searchCapabilities () {
21
+ return _searchts.searchCapabilities;
22
+ }
23
+ });
24
+ var _searchts = require("./search.js");
25
+ /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/kevin/Dev/Projects/ai/mcp-z/libs/client/src/search/index.ts"],"sourcesContent":["/**\n * Search module for MCP capability discovery\n */\n\nexport type { CapabilityClient } from './search.ts';\nexport { buildCapabilityIndex, search, searchCapabilities } from './search.ts';\nexport type {\n CapabilityIndex,\n CapabilityType,\n IndexedCapability,\n IndexedPrompt,\n IndexedResource,\n IndexedTool,\n SearchField,\n SearchOptions,\n SearchResponse,\n SearchResult,\n} from './types.ts';\n"],"names":["buildCapabilityIndex","search","searchCapabilities"],"mappings":"AAAA;;CAEC;;;;;;;;;;;QAGQA;eAAAA,8BAAoB;;QAAEC;eAAAA,gBAAM;;QAAEC;eAAAA,4BAAkB;;;wBAAQ"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Search implementation for MCP capability discovery
3
+ *
4
+ * Provides text-based search across tools, prompts, and resources
5
+ * from connected MCP servers.
6
+ */
7
+ import type { Client } from '@modelcontextprotocol/sdk/client/index.js';
8
+ import type { CapabilityIndex, SearchOptions, SearchResponse } from './types.js';
9
+ export type CapabilityClient = Pick<Client, 'listTools' | 'listPrompts' | 'listResources'>;
10
+ /**
11
+ * Build an index of capabilities from connected MCP clients
12
+ */
13
+ export declare function buildCapabilityIndex(clients: Map<string, CapabilityClient>): Promise<CapabilityIndex>;
14
+ /**
15
+ * Search for capabilities matching a query string
16
+ */
17
+ export declare function searchCapabilities(index: CapabilityIndex, query: string, options?: SearchOptions): SearchResponse;
18
+ /**
19
+ * Convenience function to search directly from connected clients
20
+ * Builds index and performs search in one call
21
+ */
22
+ export declare function search(clients: Map<string, CapabilityClient>, query: string, options?: SearchOptions): Promise<SearchResponse>;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Search implementation for MCP capability discovery
3
+ *
4
+ * Provides text-based search across tools, prompts, and resources
5
+ * from connected MCP servers.
6
+ */
7
+ import type { Client } from '@modelcontextprotocol/sdk/client/index.js';
8
+ import type { CapabilityIndex, SearchOptions, SearchResponse } from './types.js';
9
+ export type CapabilityClient = Pick<Client, 'listTools' | 'listPrompts' | 'listResources'>;
10
+ /**
11
+ * Build an index of capabilities from connected MCP clients
12
+ */
13
+ export declare function buildCapabilityIndex(clients: Map<string, CapabilityClient>): Promise<CapabilityIndex>;
14
+ /**
15
+ * Search for capabilities matching a query string
16
+ */
17
+ export declare function searchCapabilities(index: CapabilityIndex, query: string, options?: SearchOptions): SearchResponse;
18
+ /**
19
+ * Convenience function to search directly from connected clients
20
+ * Builds index and performs search in one call
21
+ */
22
+ export declare function search(clients: Map<string, CapabilityClient>, query: string, options?: SearchOptions): Promise<SearchResponse>;