agentx-sdk 0.5.3 → 0.6.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 (69) hide show
  1. package/dist/agent.d.ts.map +1 -1
  2. package/dist/agent.js +10 -2
  3. package/dist/agent.js.map +1 -1
  4. package/dist/core/streaming-tool-executor.d.ts.map +1 -1
  5. package/dist/core/streaming-tool-executor.js +30 -14
  6. package/dist/core/streaming-tool-executor.js.map +1 -1
  7. package/dist/knowledge/sqlite-vector-store.d.ts.map +1 -1
  8. package/dist/knowledge/sqlite-vector-store.js +3 -1
  9. package/dist/knowledge/sqlite-vector-store.js.map +1 -1
  10. package/dist/llm/llm-client.d.ts +2 -0
  11. package/dist/llm/llm-client.d.ts.map +1 -1
  12. package/dist/llm/llm-client.js +33 -15
  13. package/dist/llm/llm-client.js.map +1 -1
  14. package/dist/memory/memory-extractor.d.ts.map +1 -1
  15. package/dist/memory/memory-extractor.js +6 -2
  16. package/dist/memory/memory-extractor.js.map +1 -1
  17. package/dist/storage/sqlite-conversation-store.d.ts +3 -1
  18. package/dist/storage/sqlite-conversation-store.d.ts.map +1 -1
  19. package/dist/storage/sqlite-conversation-store.js +15 -6
  20. package/dist/storage/sqlite-conversation-store.js.map +1 -1
  21. package/dist/tools/builtin/bash.d.ts +7 -1
  22. package/dist/tools/builtin/bash.d.ts.map +1 -1
  23. package/dist/tools/builtin/bash.js +22 -1
  24. package/dist/tools/builtin/bash.js.map +1 -1
  25. package/dist/tools/builtin/file-edit.d.ts +1 -1
  26. package/dist/tools/builtin/file-edit.d.ts.map +1 -1
  27. package/dist/tools/builtin/file-edit.js +10 -1
  28. package/dist/tools/builtin/file-edit.js.map +1 -1
  29. package/dist/tools/builtin/file-read.d.ts +1 -1
  30. package/dist/tools/builtin/file-read.d.ts.map +1 -1
  31. package/dist/tools/builtin/file-read.js +10 -1
  32. package/dist/tools/builtin/file-read.js.map +1 -1
  33. package/dist/tools/builtin/file-write.d.ts +1 -1
  34. package/dist/tools/builtin/file-write.d.ts.map +1 -1
  35. package/dist/tools/builtin/file-write.js +10 -1
  36. package/dist/tools/builtin/file-write.js.map +1 -1
  37. package/dist/tools/builtin/glob.d.ts +1 -1
  38. package/dist/tools/builtin/glob.d.ts.map +1 -1
  39. package/dist/tools/builtin/glob.js +11 -2
  40. package/dist/tools/builtin/glob.js.map +1 -1
  41. package/dist/tools/builtin/grep.d.ts +1 -1
  42. package/dist/tools/builtin/grep.d.ts.map +1 -1
  43. package/dist/tools/builtin/grep.js +14 -4
  44. package/dist/tools/builtin/grep.js.map +1 -1
  45. package/dist/tools/builtin/index.d.ts +2 -2
  46. package/dist/tools/builtin/index.d.ts.map +1 -1
  47. package/dist/tools/builtin/index.js +6 -6
  48. package/dist/tools/builtin/index.js.map +1 -1
  49. package/dist/tools/builtin/path-guard.d.ts +6 -0
  50. package/dist/tools/builtin/path-guard.d.ts.map +1 -0
  51. package/dist/tools/builtin/path-guard.js +32 -0
  52. package/dist/tools/builtin/path-guard.js.map +1 -0
  53. package/dist/tools/builtin/web-fetch.d.ts +8 -1
  54. package/dist/tools/builtin/web-fetch.d.ts.map +1 -1
  55. package/dist/tools/builtin/web-fetch.js +170 -8
  56. package/dist/tools/builtin/web-fetch.js.map +1 -1
  57. package/dist/tools/json-schema-to-zod.d.ts.map +1 -1
  58. package/dist/tools/json-schema-to-zod.js +10 -3
  59. package/dist/tools/json-schema-to-zod.js.map +1 -1
  60. package/dist/tools/mcp-adapter.d.ts.map +1 -1
  61. package/dist/tools/mcp-adapter.js +98 -34
  62. package/dist/tools/mcp-adapter.js.map +1 -1
  63. package/dist/tools/sql/sql-tool-factory.d.ts.map +1 -1
  64. package/dist/tools/sql/sql-tool-factory.js +13 -4
  65. package/dist/tools/sql/sql-tool-factory.js.map +1 -1
  66. package/dist/tools/tool-executor.d.ts.map +1 -1
  67. package/dist/tools/tool-executor.js +4 -1
  68. package/dist/tools/tool-executor.js.map +1 -1
  69. package/package.json +7 -1
@@ -1,5 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  const DEFAULT_MAX_CHARS = 50_000;
3
+ const MAX_REDIRECT_HOPS = 5;
4
+ const MAX_BODY_BYTES = 10 * 1024 * 1024; // 10 MB hard limit — prevents OOM via large responses
3
5
  /** Validate URL against SSRF attack vectors. Returns null if safe, error message if blocked. */
4
6
  function validateFetchUrl(rawUrl) {
5
7
  let parsed;
@@ -34,6 +36,81 @@ function validateFetchUrl(rawUrl) {
34
36
  if (a === 0)
35
37
  return 'Blocked 0.0.0.0/8';
36
38
  }
39
+ // IPv6 checks — strip brackets for pattern matching
40
+ const ipv6Bare = host.startsWith('[') && host.endsWith(']') ? host.slice(1, -1) : host;
41
+ // Link-local: fe80::/10 (fe80 – febf)
42
+ if (/^fe[89ab]/i.test(ipv6Bare))
43
+ return 'Blocked IPv6 link-local address (fe80::/10)';
44
+ // ULA (unique local): fc00::/7 (fc and fd prefixes)
45
+ if (/^f[cd]/i.test(ipv6Bare))
46
+ return 'Blocked IPv6 private range (fc00::/7)';
47
+ // IPv4-mapped: ::ffff:a.b.c.d — re-validate the embedded IPv4 address
48
+ const ipv4MappedMatch = ipv6Bare.match(/^::ffff:(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/i);
49
+ if (ipv4MappedMatch) {
50
+ const embeddedResult = validateFetchUrl(`http://${ipv4MappedMatch[1]}/`);
51
+ if (embeddedResult)
52
+ return `Blocked IPv4-mapped IPv6: ${embeddedResult}`;
53
+ }
54
+ // IPv4-mapped (compact hex form): ::ffff:HHHH:HHHH — Node.js' URL parser
55
+ // canonicalises ::ffff:10.0.0.1 to ::ffff:a00:1, so a dot-notation regex
56
+ // alone leaves the SSRF guard wide open. Decode the two hex groups back
57
+ // into the IPv4 octets and re-validate.
58
+ const ipv4MappedHex = ipv6Bare.match(/^::ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/i);
59
+ if (ipv4MappedHex) {
60
+ const high = parseInt(ipv4MappedHex[1], 16);
61
+ const low = parseInt(ipv4MappedHex[2], 16);
62
+ const a = (high >> 8) & 0xff;
63
+ const b = high & 0xff;
64
+ const c = (low >> 8) & 0xff;
65
+ const d = low & 0xff;
66
+ const embeddedResult = validateFetchUrl(`http://${a}.${b}.${c}.${d}/`);
67
+ if (embeddedResult)
68
+ return `Blocked IPv4-mapped IPv6 (compact form): ${embeddedResult}`;
69
+ }
70
+ return null;
71
+ }
72
+ /** IPv4/IPv6 literal patterns — already validated by validateFetchUrl. */
73
+ const IPV4_RE = /^\d{1,3}(\.\d{1,3}){3}$/;
74
+ async function defaultDnsResolver() {
75
+ const mod = await import('node:dns/promises');
76
+ return { resolve4: mod.resolve4, resolve6: mod.resolve6 };
77
+ }
78
+ /**
79
+ * Pre-resolve DNS and validate each resolved IP against the SSRF blocklist.
80
+ * Mitigates DNS rebinding: an attacker domain switches from a public IP to a
81
+ * private IP after the static check but before the actual fetch.
82
+ * Fails open: DNS errors allow the fetch to proceed (preserves availability).
83
+ */
84
+ async function checkDnsRebinding(rawUrl, resolver) {
85
+ let hostname;
86
+ try {
87
+ hostname = new URL(rawUrl).hostname.toLowerCase();
88
+ }
89
+ catch {
90
+ return null;
91
+ }
92
+ // IP literals are already validated statically by validateFetchUrl
93
+ if (IPV4_RE.test(hostname) || hostname.startsWith('[') || hostname.includes(':'))
94
+ return null;
95
+ try {
96
+ const [v4Result, v6Result] = await Promise.allSettled([
97
+ resolver.resolve4(hostname),
98
+ resolver.resolve6(hostname),
99
+ ]);
100
+ const addresses = [
101
+ ...(v4Result.status === 'fulfilled' ? v4Result.value : []),
102
+ ...(v6Result.status === 'fulfilled' ? v6Result.value : []),
103
+ ];
104
+ for (const addr of addresses) {
105
+ const fakeUrl = `http://${addr.includes(':') ? `[${addr}]` : addr}/`;
106
+ const err = validateFetchUrl(fakeUrl);
107
+ if (err)
108
+ return `DNS rebinding blocked: ${hostname} resolved to ${addr} — ${err}`;
109
+ }
110
+ }
111
+ catch {
112
+ // DNS failure → fail-open
113
+ }
37
114
  return null;
38
115
  }
39
116
  const WebFetchParams = z.object({
@@ -54,7 +131,56 @@ function stripHtml(html) {
54
131
  .replace(/\s+/g, ' ')
55
132
  .trim();
56
133
  }
57
- export function createWebFetchTool() {
134
+ /**
135
+ * Read the response body via a streaming reader, stopping at MAX_BODY_BYTES.
136
+ * This prevents OOM when a server returns a very large or infinite body.
137
+ */
138
+ async function readBodyWithLimit(response) {
139
+ if (!response.body) {
140
+ return { text: '', truncatedByBytes: false };
141
+ }
142
+ const reader = response.body.getReader();
143
+ const decoder = new TextDecoder();
144
+ let text = '';
145
+ let bytesRead = 0;
146
+ let truncatedByBytes = false;
147
+ let lastChunkSize = 0;
148
+ try {
149
+ while (true) {
150
+ // Preemptive guard: a ReadableStream with HWM=1 (default) calls pull()
151
+ // synchronously after each read to refill the queue. If we wait until
152
+ // bytesRead >= MAX before cancelling, one extra chunk has already been
153
+ // pre-buffered by the source. Stop one chunk early — using lastChunkSize
154
+ // as the slack — so total bytes consumed by the source stay within MAX.
155
+ if (bytesRead + lastChunkSize >= MAX_BODY_BYTES) {
156
+ void reader.cancel();
157
+ truncatedByBytes = true;
158
+ break;
159
+ }
160
+ const { done, value } = await reader.read();
161
+ if (done)
162
+ break;
163
+ lastChunkSize = value.byteLength;
164
+ bytesRead += value.byteLength;
165
+ text += decoder.decode(value, { stream: true });
166
+ }
167
+ // Flush any remaining bytes in the decoder
168
+ text += decoder.decode();
169
+ }
170
+ catch {
171
+ // Partial read is acceptable; return what we have
172
+ }
173
+ return { text, truncatedByBytes };
174
+ }
175
+ export function createWebFetchTool(options) {
176
+ let resolverPromise = null;
177
+ const getResolver = () => {
178
+ if (options?.dnsResolver)
179
+ return Promise.resolve(options.dnsResolver);
180
+ if (!resolverPromise)
181
+ resolverPromise = defaultDnsResolver();
182
+ return resolverPromise;
183
+ };
58
184
  return {
59
185
  name: 'WebFetch',
60
186
  description: 'Fetch content from a URL. Returns text content (HTML is stripped to plain text).',
@@ -67,21 +193,57 @@ export function createWebFetchTool() {
67
193
  const blocked = validateFetchUrl(url);
68
194
  if (blocked)
69
195
  return { content: blocked, isError: true };
196
+ const resolver = await getResolver();
197
+ const dnsBlocked = await checkDnsRebinding(url, resolver);
198
+ if (dnsBlocked)
199
+ return { content: dnsBlocked, isError: true };
70
200
  try {
71
- const response = await fetch(url, {
72
- signal,
73
- headers: { 'User-Agent': 'AgentX-SDK/1.0' },
74
- redirect: 'follow',
75
- });
201
+ // Follow redirects manually so each hop is validated against SSRF rules.
202
+ let currentUrl = url;
203
+ let response;
204
+ for (let hop = 0; hop <= MAX_REDIRECT_HOPS; hop++) {
205
+ if (hop === MAX_REDIRECT_HOPS) {
206
+ return { content: `SSRF check: too many redirects (>${MAX_REDIRECT_HOPS})`, isError: true };
207
+ }
208
+ response = await fetch(currentUrl, {
209
+ signal,
210
+ headers: { 'User-Agent': 'AgentX-SDK/1.0' },
211
+ redirect: 'manual',
212
+ });
213
+ if (response.status >= 300 && response.status < 400) {
214
+ const location = response.headers.get('location');
215
+ if (!location) {
216
+ return { content: 'Redirect without Location header', isError: true };
217
+ }
218
+ let nextUrl;
219
+ try {
220
+ nextUrl = new URL(location, currentUrl).href;
221
+ }
222
+ catch {
223
+ return { content: `Redirect blocked: invalid URL ${location}`, isError: true };
224
+ }
225
+ const redirectBlocked = validateFetchUrl(nextUrl);
226
+ if (redirectBlocked) {
227
+ return { content: `Redirect blocked: ${redirectBlocked}`, isError: true };
228
+ }
229
+ currentUrl = nextUrl;
230
+ continue;
231
+ }
232
+ break;
233
+ }
76
234
  if (!response.ok) {
77
235
  return { content: `HTTP ${response.status}: ${response.statusText}`, isError: true };
78
236
  }
79
237
  const contentType = response.headers.get('content-type') ?? '';
80
- let text = await response.text();
238
+ const { text: rawText, truncatedByBytes } = await readBodyWithLimit(response);
239
+ let text = rawText;
81
240
  if (contentType.includes('text/html')) {
82
241
  text = stripHtml(text);
83
242
  }
84
- if (text.length > maxChars) {
243
+ if (truncatedByBytes) {
244
+ text = text.slice(0, maxChars) + `\n\n[truncated — body size limit reached]`;
245
+ }
246
+ else if (text.length > maxChars) {
85
247
  text = text.slice(0, maxChars) + `\n\n[truncated — ${text.length - maxChars} characters omitted]`;
86
248
  }
87
249
  return text || '(empty response)';
@@ -1 +1 @@
1
- {"version":3,"file":"web-fetch.js","sourceRoot":"","sources":["../../../src/tools/builtin/web-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAEjC,gGAAgG;AAChG,SAAS,gBAAgB,CAAC,MAAc;IACtC,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAChE,OAAO,mBAAmB,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC9C,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAE3C,kCAAkC;IAClC,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QACtG,OAAO,qBAAqB,IAAI,EAAE,CAAC;IACrC,CAAC;IAED,sEAAsE;IACtE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACxE,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAqC,CAAC;QAC7E,IAAI,CAAC,KAAK,GAAG;YAAE,OAAO,0BAA0B,CAAC;QACjD,IAAI,CAAC,KAAK,EAAE;YAAE,OAAO,kCAAkC,CAAC;QACxD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG;YAAE,OAAO,sCAAsC,CAAC;QAC1E,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;YAAE,OAAO,qCAAqC,CAAC;QAClF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG;YAAE,OAAO,2CAA2C,CAAC;QAC/E,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,mBAAmB,CAAC;IAC1C,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;IACxC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;CACvF,CAAC,CAAC;AAEH,+CAA+C;AAC/C,SAAS,SAAS,CAAC,IAAY;IAC7B,OAAO,IAAI;SACR,OAAO,CAAC,6BAA6B,EAAE,EAAE,CAAC;SAC1C,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC;SACxC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;SACxB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,kFAAkF;QAC/F,UAAU,EAAE,cAAc;QAC1B,iBAAiB,EAAE,IAAI;QACvB,UAAU,EAAE,IAAI;QAEhB,KAAK,CAAC,OAAO,CAAC,OAAgB,EAAE,MAAmB;YACjD,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,OAAyC,CAAC;YACrE,MAAM,QAAQ,GAAG,SAAS,IAAI,iBAAiB,CAAC;YAEhD,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAExD,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;oBAChC,MAAM;oBACN,OAAO,EAAE,EAAE,YAAY,EAAE,gBAAgB,EAAE;oBAC3C,QAAQ,EAAE,QAAQ;iBACnB,CAAC,CAAC;gBAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,OAAO,EAAE,OAAO,EAAE,QAAQ,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBACvF,CAAC;gBAED,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;gBAC/D,IAAI,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAEjC,IAAI,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;oBACtC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;gBACzB,CAAC;gBAED,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;oBAC3B,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,oBAAoB,IAAI,CAAC,MAAM,GAAG,QAAQ,sBAAsB,CAAC;gBACpG,CAAC;gBAED,OAAO,IAAI,IAAI,kBAAkB,CAAC;YACpC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,EAAE,OAAO,EAAE,iBAAkB,KAAe,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACjF,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"web-fetch.js","sourceRoot":"","sources":["../../../src/tools/builtin/web-fetch.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"json-schema-to-zod.d.ts","sourceRoot":"","sources":["../../src/tools/json-schema-to-zod.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,KAAK,UAAU,GAAG;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI,EAAE,KAAK,SAAI,GAAG,CAAC,CAAC,UAAU,CA2DnF"}
1
+ {"version":3,"file":"json-schema-to-zod.d.ts","sourceRoot":"","sources":["../../src/tools/json-schema-to-zod.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,KAAK,UAAU,GAAG;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI,EAAE,KAAK,SAAI,GAAG,CAAC,CAAC,UAAU,CA2DnF"}
@@ -9,6 +9,9 @@
9
9
  */
10
10
  import { z } from 'zod';
11
11
  const MAX_DEPTH = 10;
12
+ /** Hard caps against DoS via malicious MCP schemas with huge property counts. */
13
+ const MAX_PROPERTIES = 500;
14
+ const MAX_UNION_MEMBERS = 50;
12
15
  /**
13
16
  * Convert a JSON Schema to a Zod schema.
14
17
  * Returns `z.object({}).passthrough()` for undefined/empty input.
@@ -73,9 +76,11 @@ export function jsonSchemaToZod(schema, depth = 0) {
73
76
  function buildObject(schema, depth) {
74
77
  if (!schema.properties)
75
78
  return z.object({}).passthrough();
76
- const required = new Set(schema.required ?? []);
79
+ // Limit entries and required set to prevent DoS via malicious MCP schemas.
80
+ const entries = Object.entries(schema.properties).slice(0, MAX_PROPERTIES);
81
+ const required = new Set((schema.required ?? []).slice(0, MAX_PROPERTIES));
77
82
  const shape = {};
78
- for (const [key, propSchema] of Object.entries(schema.properties)) {
83
+ for (const [key, propSchema] of entries) {
79
84
  let field = jsonSchemaToZod(propSchema, depth + 1);
80
85
  if (!required.has(key)) {
81
86
  field = field.optional();
@@ -112,7 +117,9 @@ function buildEnum(values, nullable) {
112
117
  return z.unknown();
113
118
  }
114
119
  function buildUnion(schemas, depth) {
115
- const members = schemas.map(s => jsonSchemaToZod(s, depth + 1));
120
+ // Limit members to prevent DoS via malicious MCP schemas with huge anyOf/oneOf arrays.
121
+ const limited = schemas.slice(0, MAX_UNION_MEMBERS);
122
+ const members = limited.map(s => jsonSchemaToZod(s, depth + 1));
116
123
  if (members.length >= 2) {
117
124
  return z.union(members);
118
125
  }
@@ -1 +1 @@
1
- {"version":3,"file":"json-schema-to-zod.js","sourceRoot":"","sources":["../../src/tools/json-schema-to-zod.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,SAAS,GAAG,EAAE,CAAC;AAgBrB;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,MAA0B,EAAE,KAAK,GAAG,CAAC;IACnE,IAAI,CAAC,MAAM,IAAI,KAAK,GAAG,SAAS;QAAE,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;IAErD,iCAAiC;IACjC,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,OAAO,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,OAAO,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,cAAc;IACd,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAEzB,yBAAyB;IACzB,IAAI,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACtD,OAAO,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,QAAQ;IACR,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK;YACxB,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAChB,IAAI,GAAG,GAAiB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,MAAM,CAAC,QAAQ;YAAE,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC1C,IAAI,MAAM,CAAC,WAAW;YAAE,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC/D,OAAO,GAAG,CAAC;IACb,CAAC;IAED,aAAa;IACb,IAAI,KAAmB,CAAC;IACxB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ;YACX,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM;QACR,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS;YACZ,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM;QACR,KAAK,SAAS;YACZ,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM;QACR,KAAK,MAAM;YACT,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YACjB,MAAM;QACR;YACE,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM;IACV,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ;QAAE,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC9C,IAAI,MAAM,CAAC,WAAW;QAAE,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAEnE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,MAAkB,EAAE,KAAa;IACpD,IAAI,CAAC,MAAM,CAAC,UAAU;QAAE,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAE1D,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IAChD,MAAM,KAAK,GAAiC,EAAE,CAAC;IAE/C,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QAClE,IAAI,KAAK,GAAG,eAAe,CAAC,UAAU,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC3B,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,IAAI,GAAG,GAAiB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IACtD,IAAI,MAAM,CAAC,QAAQ;QAAE,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;IAC1C,IAAI,MAAM,CAAC,WAAW;QAAE,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC/D,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,SAAS,CAAC,MAAiB,EAAE,QAAkB;IACtD,sEAAsE;IACtE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;IACzE,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,GAAiB,CAAC,CAAC,IAAI,CAAC,OAAgC,CAAC,CAAC;QAC/D,IAAI,QAAQ;YAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC/B,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC,GAAiB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC;QAC7C,IAAI,QAAQ;YAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC/B,OAAO,CAAC,CAAC;IACX,CAAC;IACD,+CAA+C;IAC/C,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAgB,CAAC,CAAC,CAAC;IAC9D,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,CAAC,KAAK,CAAC,QAAsE,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;AACrB,CAAC;AAED,SAAS,UAAU,CAAC,OAAqB,EAAE,KAAa;IACtD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;IAChE,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC,KAAK,CAAC,OAA0D,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC,CAAC,CAAE,CAAC;IAC7C,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"json-schema-to-zod.js","sourceRoot":"","sources":["../../src/tools/json-schema-to-zod.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-adapter.d.ts","sourceRoot":"","sources":["../../src/tools/mcp-adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAErE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAcvD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,WAAW,GAAG,cAAc,GAAG,OAAO,GAAG,cAAc,CAAC;QAChE,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;CACJ;AAwCD;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoC;IAChE,0CAA0C;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoC;gBAEnD,QAAQ,EAAE,YAAY;IAIlC;;;;OAIG;IACG,OAAO,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IA6ChE;;OAEG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB7C;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAOpC;;OAEG;IACH,SAAS,IAAI,eAAe;IAY5B,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIlC,mEAAmE;IACnE,cAAc,IAAI,iBAAiB,EAAE;IASrC,sCAAsC;IACtC,UAAU,IAAI,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC;IAIxC,8CAA8C;IACxC,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAe/D,8CAA8C;IACxC,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAcpE,qEAAqE;IAC/D,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA6BvF,OAAO,CAAC,WAAW;IAiFnB;;;;OAIG;YACW,mBAAmB;YA4CnB,WAAW;YAiBX,gBAAgB;CA6B/B"}
1
+ {"version":3,"file":"mcp-adapter.d.ts","sourceRoot":"","sources":["../../src/tools/mcp-adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAErE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA6DvD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,WAAW,GAAG,cAAc,GAAG,OAAO,GAAG,cAAc,CAAC;QAChE,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;CACJ;AAwCD;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoC;IAChE,0CAA0C;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoC;gBAEnD,QAAQ,EAAE,YAAY;IAIlC;;;;OAIG;IACG,OAAO,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IA6ChE;;OAEG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB7C;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAOpC;;OAEG;IACH,SAAS,IAAI,eAAe;IAY5B,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIlC,mEAAmE;IACnE,cAAc,IAAI,iBAAiB,EAAE;IASrC,sCAAsC;IACtC,UAAU,IAAI,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC;IAIxC,8CAA8C;IACxC,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAgB/D,8CAA8C;IACxC,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqBpE,qEAAqE;IAC/D,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiCvF,OAAO,CAAC,WAAW;IAiFnB;;;;OAIG;YACW,mBAAmB;YA4CnB,WAAW;IAkBzB,OAAO,CAAC,gBAAgB;CAoCzB"}
@@ -1,5 +1,48 @@
1
- import { z } from 'zod';
1
+ import { z, ZodError } from 'zod';
2
2
  import { jsonSchemaToZod } from './json-schema-to-zod.js';
3
+ /**
4
+ * Subclass of ZodError that exposes a human-readable, prefixed message while
5
+ * preserving the original `.issues` and the `instanceof ZodError` contract.
6
+ * Used when an MCP server returns a payload that fails Zod validation —
7
+ * callers can either inspect the structured issues or match a message prefix
8
+ * (`invalid resource shape …`, `invalid prompt shape …`).
9
+ */
10
+ class MCPInvalidShapeError extends ZodError {
11
+ _customMessage;
12
+ constructor(issues, customMessage) {
13
+ super(issues);
14
+ this._customMessage = customMessage;
15
+ }
16
+ get message() {
17
+ return this._customMessage;
18
+ }
19
+ }
20
+ /** Validated shape of listResources server response. */
21
+ const ListResourcesResultSchema = z.object({
22
+ resources: z.array(z.object({
23
+ uri: z.string(),
24
+ name: z.string(),
25
+ mimeType: z.string().optional(),
26
+ description: z.string().optional(),
27
+ }).passthrough()),
28
+ });
29
+ /** Validated shape of readResource server response. */
30
+ const ReadResourceResultSchema = z.object({
31
+ contents: z.array(z.object({
32
+ text: z.string().optional(),
33
+ uri: z.string(),
34
+ }).passthrough()),
35
+ });
36
+ /** Validated shape of getPrompt server response. */
37
+ const GetPromptResultSchema = z.object({
38
+ messages: z.array(z.object({
39
+ role: z.string(),
40
+ content: z.union([
41
+ z.string(),
42
+ z.object({ type: z.string(), text: z.string().optional() }).passthrough(),
43
+ ]),
44
+ })),
45
+ });
3
46
  /** Shape of the content array returned from MCP server tool calls. */
4
47
  const MCPToolContentSchema = z.array(z.object({
5
48
  type: z.string(),
@@ -120,10 +163,11 @@ export class MCPAdapter {
120
163
  if (!conn || conn.status !== 'connected')
121
164
  return [];
122
165
  try {
123
- const result = await conn.client.listResources?.();
124
- if (!result)
166
+ const raw = await conn.client.listResources?.();
167
+ if (!raw)
125
168
  return [];
126
- return result.resources.map(r => ({ ...r, serverName }));
169
+ const parsed = ListResourcesResultSchema.parse(raw);
170
+ return parsed.resources.map(r => ({ ...r, serverName }));
127
171
  }
128
172
  catch {
129
173
  return [];
@@ -135,10 +179,14 @@ export class MCPAdapter {
135
179
  if (!conn || conn.status !== 'connected') {
136
180
  throw new Error(`MCP server "${serverName}" not connected`);
137
181
  }
138
- const result = await conn.client.readResource?.({ uri });
139
- if (!result)
182
+ const raw = await conn.client.readResource?.({ uri });
183
+ if (!raw)
140
184
  throw new Error('Server does not support resources');
141
- return result.contents.map(c => c.text ?? `[Binary: ${c.uri}]`).join('\n');
185
+ const result = ReadResourceResultSchema.safeParse(raw);
186
+ if (!result.success) {
187
+ throw new MCPInvalidShapeError(result.error.issues, `invalid resource shape from MCP server "${serverName}"`);
188
+ }
189
+ return result.data.contents.map(c => c.text ?? `[Binary: ${c.uri}]`).join('\n');
142
190
  }
143
191
  /** Fetch and return a prompt from a server (for skill getPrompt). */
144
192
  async getPrompt(serverName, promptName, args) {
@@ -148,17 +196,20 @@ export class MCPAdapter {
148
196
  }
149
197
  const parsedArgs = {};
150
198
  if (args) {
151
- // Simple key=value parsing from args string
152
199
  for (const part of args.split(/\s+/)) {
153
200
  const [k, ...v] = part.split('=');
154
201
  if (k && v.length > 0)
155
202
  parsedArgs[k] = v.join('=');
156
203
  }
157
204
  }
158
- const result = await conn.client.getPrompt?.({ name: promptName, arguments: parsedArgs });
159
- if (!result)
205
+ const raw = await conn.client.getPrompt?.({ name: promptName, arguments: parsedArgs });
206
+ if (!raw)
160
207
  throw new Error('Server does not support prompts');
161
- return result.messages.map(m => {
208
+ const result = GetPromptResultSchema.safeParse(raw);
209
+ if (!result.success) {
210
+ throw new MCPInvalidShapeError(result.error.issues, `invalid prompt shape from MCP server "${serverName}"`);
211
+ }
212
+ return result.data.messages.map(m => {
162
213
  const content = typeof m.content === 'string' ? m.content : m.content.text ?? '';
163
214
  return content;
164
215
  }).join('\n');
@@ -284,44 +335,57 @@ export class MCPAdapter {
284
335
  const conn = this.connections.get(name);
285
336
  if (!conn)
286
337
  return;
338
+ // Skip if a reconnect is already in progress — prevents concurrent reconnects.
339
+ if (conn.status === 'reconnecting')
340
+ return;
287
341
  try {
288
342
  await conn.client.listTools();
289
343
  conn.status = 'connected';
290
344
  conn.lastError = undefined;
291
345
  }
292
346
  catch (error) {
293
- conn.status = 'error';
347
+ // Set reconnecting BEFORE firing attemptReconnect to close the race window.
348
+ conn.status = 'reconnecting';
294
349
  conn.lastError = error instanceof Error ? error.message : String(error);
295
- // Attempt reconnection
296
350
  void this.attemptReconnect(name);
297
351
  }
298
352
  }
299
- async attemptReconnect(name) {
353
+ attemptReconnect(name, attempt = 0) {
300
354
  const conn = this.connections.get(name);
301
- if (!conn || conn.status === 'reconnecting')
355
+ if (!conn)
302
356
  return;
303
- conn.status = 'reconnecting';
357
+ // Status is already 'reconnecting' (set atomically in healthCheck).
304
358
  const maxRetries = conn.config.maxRetries ?? 3;
305
- for (let attempt = 0; attempt < maxRetries; attempt++) {
306
- try {
307
- const delay = Math.min(1000 * 2 ** attempt, 30_000);
308
- await new Promise(r => setTimeout(r, delay));
309
- const transport = await createTransport(conn.config);
310
- await conn.client.connect(transport);
311
- conn.transport = transport;
312
- conn.status = 'connected';
313
- conn.lastError = undefined;
314
- return;
315
- }
316
- catch (error) {
317
- conn.lastError = error instanceof Error ? error.message : String(error);
359
+ if (attempt >= maxRetries) {
360
+ // Failed all retries — remove tools
361
+ conn.status = 'disconnected';
362
+ for (const toolName of conn.toolNames) {
363
+ this.executor.unregister(toolName);
318
364
  }
365
+ return;
319
366
  }
320
- // Failed all retries remove tools
321
- conn.status = 'disconnected';
322
- for (const toolName of conn.toolNames) {
323
- this.executor.unregister(toolName);
324
- }
367
+ const delay = Math.min(1000 * 2 ** attempt, 30_000);
368
+ // setTimeout is scheduled synchronously here; fake-timer-based tests can
369
+ // advance through it deterministically without racing against awaited
370
+ // dynamic imports between iterations.
371
+ setTimeout(() => {
372
+ void (async () => {
373
+ const c = this.connections.get(name);
374
+ if (!c)
375
+ return;
376
+ try {
377
+ const transport = await createTransport(c.config);
378
+ await c.client.connect(transport);
379
+ c.transport = transport;
380
+ c.status = 'connected';
381
+ c.lastError = undefined;
382
+ }
383
+ catch (error) {
384
+ c.lastError = error instanceof Error ? error.message : String(error);
385
+ this.attemptReconnect(name, attempt + 1);
386
+ }
387
+ })();
388
+ }, delay);
325
389
  }
326
390
  }
327
391
  // --- SDK Loading ---
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-adapter.js","sourceRoot":"","sources":["../../src/tools/mcp-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-adapter.js","sourceRoot":"","sources":["../../src/tools/mcp-adapter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sql-tool-factory.d.ts","sourceRoot":"","sources":["../../../src/tools/sql/sql-tool-factory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAiBtD,+EAA+E;AAC/E,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;KAAE,CAAC,CAAC;CACtF;AAED,MAAM,WAAW,qBAAqB;IACpC,2DAA2D;IAC3D,IAAI,EAAE,cAAc,CAAC;IAErB,oCAAoC;IACpC,OAAO,EAAE,WAAW,EAAE,CAAC;IAEvB,yEAAyE;IACzE,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,wDAAwD;IACxD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,kDAAkD;IAClD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,SAAS,EAAE,CAwI1E"}
1
+ {"version":3,"file":"sql-tool-factory.d.ts","sourceRoot":"","sources":["../../../src/tools/sql/sql-tool-factory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAiBtD,+EAA+E;AAC/E,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;KAAE,CAAC,CAAC;CACtF;AAED,MAAM,WAAW,qBAAqB;IACpC,2DAA2D;IAC3D,IAAI,EAAE,cAAc,CAAC;IAErB,oCAAoC;IACpC,OAAO,EAAE,WAAW,EAAE,CAAC;IAEvB,yEAAyE;IACzE,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,wDAAwD;IACxD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,kDAAkD;IAClD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAKD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,SAAS,EAAE,CAgJ1E"}
@@ -17,6 +17,8 @@ function unwrapZodType(schema) {
17
17
  return 'enum';
18
18
  return 'unknown';
19
19
  }
20
+ /** SQL statements that mutate state — used to derive isReadOnly/isConcurrencySafe flags. */
21
+ const SQL_WRITE_PATTERN = /^\s*(INSERT|UPDATE|DELETE|CREATE|DROP|ALTER|TRUNCATE|MERGE)\b/i;
20
22
  /**
21
23
  * Creates two meta-tools (`search_queries` + `run_query`) from a catalog of SQL queries.
22
24
  *
@@ -83,6 +85,9 @@ export function createSqlTools(options) {
83
85
  .join('; ');
84
86
  return `- ${q.name}: ${q.description} Params: { ${paramList} }`;
85
87
  }).join('\n');
88
+ // Derive flags from the catalog — write queries must not run concurrently or be
89
+ // reported as read-only, as that would cause race conditions in ToolExecutor.
90
+ const hasWriteQueries = queries.some(q => SQL_WRITE_PATTERN.test(q.sql));
86
91
  const runTool = {
87
92
  name: `${toolNamePrefix}run_query`,
88
93
  description: `Execute a SQL query by name. Pass params as key-value pairs. Use null for optional/nullable params you don't need.\n\nAvailable queries:\n${catalog}`,
@@ -92,8 +97,8 @@ export function createSqlTools(options) {
92
97
  .record(z.unknown())
93
98
  .describe('Parameters as key-value pairs. Use null for nullable params you want to skip'),
94
99
  }),
95
- isConcurrencySafe: true,
96
- isReadOnly: true,
100
+ isConcurrencySafe: !hasWriteQueries,
101
+ isReadOnly: !hasWriteQueries,
97
102
  maxResultChars,
98
103
  timeoutMs: defaultTimeoutMs,
99
104
  async execute(rawArgs) {
@@ -126,8 +131,12 @@ export function createSqlTools(options) {
126
131
  return JSON.stringify(result.rows, null, 2);
127
132
  }
128
133
  catch (err) {
129
- const message = err instanceof Error ? err.message : String(err);
130
- return { content: `Query execution failed: ${message}`, isError: true };
134
+ const pgCode = err.code;
135
+ const genericMessage = pgCode
136
+ ? `Query execution failed (error code: ${pgCode})`
137
+ : 'Query execution failed';
138
+ console.error('[SqlTool] query execution error:', err);
139
+ return { content: genericMessage, isError: true };
131
140
  }
132
141
  },
133
142
  };