@hasna/connectors 1.4.1 → 1.4.2

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 (339) hide show
  1. package/bin/index.js +1272 -314
  2. package/bin/mcp.js +524 -211
  3. package/bin/serve.js +1208 -256
  4. package/connectors/adobe/package.json +1 -1
  5. package/connectors/aitableai/package.json +1 -1
  6. package/connectors/alchemy/package.json +1 -1
  7. package/connectors/alerty/package.json +1 -1
  8. package/connectors/alienvault/package.json +1 -1
  9. package/connectors/alphamoon/package.json +1 -1
  10. package/connectors/alttextai/package.json +1 -1
  11. package/connectors/amadeus/package.json +1 -1
  12. package/connectors/amadeus/src/api/client.ts +6 -6
  13. package/connectors/amadeus/src/cli/index.ts +6 -6
  14. package/connectors/amadeus/src/utils/output.ts +5 -5
  15. package/connectors/amazon/package.json +1 -1
  16. package/connectors/amilia/package.json +1 -1
  17. package/connectors/amqpsender/package.json +1 -1
  18. package/connectors/announcekit/package.json +1 -1
  19. package/connectors/anthropic/.env.example +1 -1
  20. package/connectors/anyscale/package.json +1 -1
  21. package/connectors/apiary/package.json +1 -1
  22. package/connectors/apiflash/package.json +1 -1
  23. package/connectors/apitemplateio/package.json +1 -1
  24. package/connectors/apptivegrid/package.json +1 -1
  25. package/connectors/assemblyai/package.json +1 -1
  26. package/connectors/autom/package.json +1 -1
  27. package/connectors/automizy/package.json +1 -1
  28. package/connectors/autopilot/package.json +1 -1
  29. package/connectors/awscognito/package.json +1 -1
  30. package/connectors/bamboohr/package.json +1 -1
  31. package/connectors/bannerbear/package.json +1 -1
  32. package/connectors/baseten/package.json +1 -1
  33. package/connectors/box/package.json +1 -1
  34. package/connectors/brevo/package.json +1 -1
  35. package/connectors/calendly/package.json +1 -1
  36. package/connectors/cerebras/package.json +1 -1
  37. package/connectors/chargebee/package.json +1 -1
  38. package/connectors/clearbit/package.json +1 -1
  39. package/connectors/cloudflare-workers/package.json +1 -1
  40. package/connectors/coda/package.json +1 -1
  41. package/connectors/coingecko/package.json +1 -1
  42. package/connectors/convertkit/package.json +1 -1
  43. package/connectors/customerio/package.json +1 -1
  44. package/connectors/databricks/package.json +1 -1
  45. package/connectors/datadog/package.json +1 -1
  46. package/connectors/datasoap/README.md +2 -2
  47. package/connectors/datasoap/package.json +1 -1
  48. package/connectors/datumbox/README.md +2 -2
  49. package/connectors/datumbox/package.json +1 -1
  50. package/connectors/dayschedule/README.md +2 -2
  51. package/connectors/dayschedule/package.json +1 -1
  52. package/connectors/deepgram/package.json +1 -1
  53. package/connectors/deepinfra/README.md +2 -2
  54. package/connectors/deepinfra/package.json +1 -1
  55. package/connectors/deepl/README.md +2 -2
  56. package/connectors/deepl/package.json +1 -1
  57. package/connectors/deepseek/package.json +1 -1
  58. package/connectors/demio/README.md +2 -2
  59. package/connectors/demio/package.json +1 -1
  60. package/connectors/descript/README.md +2 -2
  61. package/connectors/descript/package.json +1 -1
  62. package/connectors/detrack/README.md +2 -2
  63. package/connectors/detrack/package.json +1 -1
  64. package/connectors/devcycle/README.md +2 -2
  65. package/connectors/devcycle/package.json +1 -1
  66. package/connectors/dhl/README.md +2 -2
  67. package/connectors/dhl/package.json +1 -1
  68. package/connectors/docusign/package.json +1 -1
  69. package/connectors/dropbox/package.json +1 -1
  70. package/connectors/fal/package.json +1 -1
  71. package/connectors/fathom/package.json +1 -1
  72. package/connectors/fireworks/package.json +1 -1
  73. package/connectors/gitlab/package.json +1 -1
  74. package/connectors/googlechat/README.md +1 -2
  75. package/connectors/googledrive/src/api/client.ts +5 -5
  76. package/connectors/googledrive/src/api/files.ts +11 -11
  77. package/connectors/googledrive/src/api/folders.ts +2 -2
  78. package/connectors/googledrive/src/cli/index.ts +4 -4
  79. package/connectors/googledrive/src/utils/output.ts +3 -3
  80. package/connectors/googleforms/README.md +1 -2
  81. package/connectors/googleperspective/README.md +1 -2
  82. package/connectors/grafana/package.json +1 -1
  83. package/connectors/growbots/README.md +2 -2
  84. package/connectors/growbots/package.json +1 -1
  85. package/connectors/gumroad/package.json +1 -1
  86. package/connectors/gupshup/README.md +2 -2
  87. package/connectors/gupshup/package.json +1 -1
  88. package/connectors/guru/README.md +2 -2
  89. package/connectors/guru/package.json +1 -1
  90. package/connectors/hackernews/README.md +2 -2
  91. package/connectors/hackernews/package.json +1 -1
  92. package/connectors/halopsa/README.md +2 -2
  93. package/connectors/halopsa/package.json +1 -1
  94. package/connectors/handwrytten/README.md +2 -2
  95. package/connectors/handwrytten/package.json +1 -1
  96. package/connectors/hansei/README.md +2 -2
  97. package/connectors/hansei/package.json +1 -1
  98. package/connectors/harrypotterapi/README.md +2 -2
  99. package/connectors/harrypotterapi/package.json +1 -1
  100. package/connectors/harvest/README.md +2 -2
  101. package/connectors/harvest/package.json +1 -1
  102. package/connectors/headlesstesting/README.md +2 -2
  103. package/connectors/headlesstesting/package.json +1 -1
  104. package/connectors/homeassistant/package.json +1 -1
  105. package/connectors/klaviyo/package.json +1 -1
  106. package/connectors/lemonsqueezy/package.json +1 -1
  107. package/connectors/lighthouse/src/api/index.ts +1 -1
  108. package/connectors/linkedin/package.json +1 -1
  109. package/connectors/linkish/README.md +2 -2
  110. package/connectors/linkish/package.json +1 -1
  111. package/connectors/liveagent/README.md +2 -2
  112. package/connectors/liveagent/package.json +1 -1
  113. package/connectors/localazy/README.md +2 -2
  114. package/connectors/localazy/package.json +1 -1
  115. package/connectors/loginradius/README.md +2 -2
  116. package/connectors/loginradius/package.json +1 -1
  117. package/connectors/lokalise/README.md +2 -2
  118. package/connectors/lokalise/package.json +1 -1
  119. package/connectors/lonescale/README.md +2 -2
  120. package/connectors/lonescale/package.json +1 -1
  121. package/connectors/lucidchart/README.md +2 -2
  122. package/connectors/lucidchart/package.json +1 -1
  123. package/connectors/luma/package.json +1 -1
  124. package/connectors/magento2/README.md +2 -2
  125. package/connectors/magento2/package.json +1 -1
  126. package/connectors/mailcheck/README.md +2 -2
  127. package/connectors/mailcheck/package.json +1 -1
  128. package/connectors/mailchimp/package.json +1 -1
  129. package/connectors/mailerlite/README.md +2 -2
  130. package/connectors/mailerlite/package.json +1 -1
  131. package/connectors/mailersend/README.md +2 -2
  132. package/connectors/mailersend/package.json +1 -1
  133. package/connectors/mailify/README.md +2 -2
  134. package/connectors/mailify/package.json +1 -1
  135. package/connectors/mailjet/README.md +2 -2
  136. package/connectors/mailjet/package.json +1 -1
  137. package/connectors/mailmodo/README.md +2 -2
  138. package/connectors/mailmodo/package.json +1 -1
  139. package/connectors/malcore/README.md +2 -2
  140. package/connectors/malcore/package.json +1 -1
  141. package/connectors/mandrill/README.md +2 -2
  142. package/connectors/mandrill/package.json +1 -1
  143. package/connectors/marcomrobot/README.md +2 -2
  144. package/connectors/marcomrobot/package.json +1 -1
  145. package/connectors/marketingmasterio/README.md +2 -2
  146. package/connectors/marketingmasterio/package.json +1 -1
  147. package/connectors/marketplacer/README.md +2 -2
  148. package/connectors/marketplacer/package.json +1 -1
  149. package/connectors/marketstack/README.md +2 -2
  150. package/connectors/marketstack/package.json +1 -1
  151. package/connectors/matrix/README.md +1 -1
  152. package/connectors/matrix/package.json +1 -1
  153. package/connectors/mattermost/README.md +1 -1
  154. package/connectors/mattermost/package.json +1 -1
  155. package/connectors/mautic/README.md +1 -1
  156. package/connectors/mautic/package.json +1 -1
  157. package/connectors/mav/README.md +1 -1
  158. package/connectors/mav/package.json +1 -1
  159. package/connectors/maverick/README.md +1 -1
  160. package/connectors/maverick/package.json +1 -1
  161. package/connectors/mem/README.md +1 -1
  162. package/connectors/mem/package.json +1 -1
  163. package/connectors/messagebird/package.json +1 -1
  164. package/connectors/metabase/README.md +1 -1
  165. package/connectors/metabase/package.json +1 -1
  166. package/connectors/miro/package.json +1 -1
  167. package/connectors/mocean/package.json +1 -1
  168. package/connectors/modal/package.json +1 -1
  169. package/connectors/monday/package.json +1 -1
  170. package/connectors/monicacrm/package.json +1 -1
  171. package/connectors/moonclerk/package.json +1 -1
  172. package/connectors/moonmail/package.json +1 -1
  173. package/connectors/morph/package.json +1 -1
  174. package/connectors/mqtt/package.json +1 -1
  175. package/connectors/msg91/package.json +1 -1
  176. package/connectors/mubert/package.json +1 -1
  177. package/connectors/murf/package.json +1 -1
  178. package/connectors/mux/package.json +1 -1
  179. package/connectors/netlify/package.json +1 -1
  180. package/connectors/okta/package.json +1 -1
  181. package/connectors/paddle/package.json +1 -1
  182. package/connectors/perplexity/package.json +1 -1
  183. package/connectors/pinterest/package.json +1 -1
  184. package/connectors/pipedrive/package.json +1 -1
  185. package/connectors/plaid/package.json +1 -1
  186. package/connectors/quickchart/README.md +2 -2
  187. package/connectors/quintadb/README.md +2 -2
  188. package/connectors/rabbitmq/README.md +2 -2
  189. package/connectors/radar/README.md +2 -2
  190. package/connectors/raindrop/README.md +2 -2
  191. package/connectors/rapid7insightvm/README.md +2 -2
  192. package/connectors/raventools/README.md +2 -2
  193. package/connectors/rawgvideogamesdatabase/README.md +2 -2
  194. package/connectors/rdstationcrm/README.md +2 -2
  195. package/connectors/readai/README.md +2 -2
  196. package/connectors/roboflow/package.json +1 -1
  197. package/connectors/runway/package.json +1 -1
  198. package/connectors/sendgrid/package.json +1 -1
  199. package/connectors/shuffler/package.json +1 -1
  200. package/connectors/sierrainteractive/package.json +1 -1
  201. package/connectors/sifter/package.json +1 -1
  202. package/connectors/signaturit/package.json +1 -1
  203. package/connectors/signl4/package.json +1 -1
  204. package/connectors/simpleem/package.json +1 -1
  205. package/connectors/simplehash/package.json +1 -1
  206. package/connectors/simplekpi/package.json +1 -1
  207. package/connectors/simplelocalize/package.json +1 -1
  208. package/connectors/simplero/package.json +1 -1
  209. package/connectors/smartrecruiters/package.json +1 -1
  210. package/connectors/smtp2go/package.json +1 -1
  211. package/connectors/snowflake/package.json +1 -1
  212. package/connectors/sparkpost/package.json +1 -1
  213. package/connectors/split-io/package.json +1 -1
  214. package/connectors/split-io/src/api/client.test.ts +20 -0
  215. package/connectors/split-io/src/cli/index.ts +9 -9
  216. package/connectors/sprinklr/package.json +1 -1
  217. package/connectors/sprout-social/package.json +1 -1
  218. package/connectors/square/package.json +1 -1
  219. package/connectors/sse-trigger/package.json +1 -1
  220. package/connectors/stability-api-platform/AGENTS.md +1 -1
  221. package/connectors/standout/package.json +1 -1
  222. package/connectors/statuspage/package.json +1 -1
  223. package/connectors/stoplight/package.json +1 -1
  224. package/connectors/stoplight-api-platform/package.json +1 -1
  225. package/connectors/strand-ai/CLAUDE.md +1 -1
  226. package/connectors/stripe-financial-connections/package.json +1 -1
  227. package/connectors/stripe-terminal/package.json +1 -1
  228. package/connectors/stytch/package.json +1 -1
  229. package/connectors/sumo-logic/package.json +1 -1
  230. package/connectors/supabase/package.json +1 -1
  231. package/connectors/supabase-api-platform/package.json +1 -1
  232. package/connectors/sysdig/package.json +1 -1
  233. package/connectors/tableau/package.json +1 -1
  234. package/connectors/takecareos/README.md +2 -2
  235. package/connectors/takecareos/package.json +1 -1
  236. package/connectors/telegram/src/api/bot.ts +20 -0
  237. package/connectors/telegram/src/api/client.ts +32 -0
  238. package/connectors/telegram/src/api/files.test.ts +103 -0
  239. package/connectors/telegram/src/api/index.ts +1 -0
  240. package/connectors/telegram/src/api/messages.test.ts +8 -2
  241. package/connectors/telegram/src/cli/files.test.ts +40 -0
  242. package/connectors/telegram/src/cli/files.ts +38 -0
  243. package/connectors/telegram/src/cli/index.ts +27 -30
  244. package/connectors/telegram/src/cli/updates.test.ts +176 -0
  245. package/connectors/telegram/src/cli/updates.ts +95 -0
  246. package/connectors/telegram/src/index.ts +1 -0
  247. package/connectors/telegram/src/types/index.ts +13 -0
  248. package/connectors/terraform-cloud/package.json +1 -1
  249. package/connectors/textit/package.json +1 -1
  250. package/connectors/thousandeyes/package.json +1 -1
  251. package/connectors/ticket-tailor/package.json +1 -1
  252. package/connectors/ticketsource/package.json +1 -1
  253. package/connectors/tiktokads/README.md +1 -1
  254. package/connectors/time-saved/package.json +1 -1
  255. package/connectors/tipalti/package.json +1 -1
  256. package/connectors/tomtom/AGENTS.md +1 -1
  257. package/connectors/totp/package.json +1 -1
  258. package/connectors/traverse/package.json +1 -1
  259. package/connectors/travo-ai/package.json +1 -1
  260. package/connectors/trigger-dev/package.json +1 -1
  261. package/connectors/trigger-dev-api-platform/package.json +1 -1
  262. package/connectors/turbot-pipes/package.json +1 -1
  263. package/connectors/turso/package.json +1 -1
  264. package/connectors/turso-api-platform/package.json +1 -1
  265. package/connectors/tyk-api-platform/package.json +1 -1
  266. package/connectors/umami/package.json +1 -1
  267. package/connectors/unifold/package.json +1 -1
  268. package/connectors/unione/package.json +1 -1
  269. package/connectors/uniprot/README.md +1 -1
  270. package/connectors/uniswap-api/package.json +1 -1
  271. package/connectors/ups/package.json +1 -1
  272. package/connectors/usereframe/package.json +1 -1
  273. package/connectors/vanta/package.json +1 -1
  274. package/connectors/vela/package.json +1 -1
  275. package/connectors/velum-labs/package.json +1 -1
  276. package/connectors/vercel/package.json +1 -1
  277. package/connectors/vercel-blob/package.json +1 -1
  278. package/connectors/vercel-blob-platform/package.json +1 -1
  279. package/connectors/vercel-edge-config/package.json +1 -1
  280. package/connectors/vercel-edge-config-platform/package.json +1 -1
  281. package/connectors/vertex-ai/package.json +1 -1
  282. package/connectors/vidyard/package.json +1 -1
  283. package/connectors/vonage/package.json +1 -1
  284. package/connectors/voygr/package.json +1 -1
  285. package/connectors/wait/package.json +1 -1
  286. package/connectors/walmart-marketplace/package.json +1 -1
  287. package/connectors/wato/package.json +1 -1
  288. package/connectors/wave-accounting/package.json +1 -1
  289. package/connectors/wayco/package.json +1 -1
  290. package/connectors/webpagetest/package.json +1 -1
  291. package/connectors/weezevent/package.json +1 -1
  292. package/connectors/wikipedia/src/api/client.ts +1 -1
  293. package/connectors/wildcard/package.json +1 -1
  294. package/connectors/windmill/package.json +1 -1
  295. package/connectors/wise/package.json +1 -1
  296. package/connectors/withai/package.json +1 -1
  297. package/connectors/wiz/CLAUDE.md +1 -1
  298. package/connectors/wiz/package.json +1 -1
  299. package/connectors/wordfence/package.json +1 -1
  300. package/connectors/wordfence-api-platform/package.json +1 -1
  301. package/connectors/workos/package.json +1 -1
  302. package/connectors/write-binary-file/package.json +1 -1
  303. package/connectors/xai/.env.example +1 -1
  304. package/connectors/xai-api-platform/src/api/client.test.ts +1 -1
  305. package/connectors/xai-api-platform/src/cli/index.ts +1 -1
  306. package/connectors/xai-api-platform/src/utils/config.ts +1 -1
  307. package/connectors/xai-grok/.env.example +1 -1
  308. package/connectors/xai-grok/src/api/client.test.ts +3 -3
  309. package/connectors/xai-grok/src/cli/index.ts +1 -1
  310. package/connectors/xai-grok/src/utils/config.ts +1 -1
  311. package/connectors/ynab/package.json +1 -1
  312. package/connectors/you-com/README.md +2 -2
  313. package/connectors/you-com/package.json +1 -1
  314. package/connectors/yousign/package.json +1 -1
  315. package/connectors/zendesk/.env.example +4 -4
  316. package/connectors/zendesk/CLAUDE.md +1 -3
  317. package/connectors/zendesk/Makefile +18 -5
  318. package/connectors/zendesk/README.md +3 -8
  319. package/connectors/zendesk/SCAFFOLD.md +6 -5
  320. package/connectors/zerosettle/package.json +1 -1
  321. package/connectors/zoho-bigin/CLAUDE.md +1 -1
  322. package/connectors/zoho-campaigns/package.json +1 -1
  323. package/connectors/zoho-sign/package.json +1 -1
  324. package/connectors/zoho-subscriptions/CLAUDE.md +1 -1
  325. package/connectors/zohoprojects/CLAUDE.md +1 -1
  326. package/connectors/zolvo/package.json +1 -1
  327. package/connectors/zoom-api/package.json +1 -1
  328. package/connectors/zymbly/README.md +2 -2
  329. package/connectors/zymbly/package.json +1 -1
  330. package/dashboard/dist/assets/index-8uoGZF7B.js +280 -0
  331. package/dashboard/dist/index.html +1 -1
  332. package/dist/db/locks.d.ts +1 -1
  333. package/dist/index.js +17 -15
  334. package/dist/lib/connector-resolver.d.ts +1 -1
  335. package/dist/lib/llm.d.ts +1 -1
  336. package/dist/lib/open-browser.d.ts +18 -0
  337. package/dist/lib/open-browser.test.d.ts +1 -0
  338. package/package.json +6 -4
  339. package/dashboard/dist/assets/index-DlEljRrW.js +0 -285
package/bin/mcp.js CHANGED
@@ -167,7 +167,7 @@ var init_registry = __esm(() => {
167
167
  init_connector();
168
168
  });
169
169
 
170
- // node_modules/zod/v3/helpers/util.js
170
+ // ../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/helpers/util.js
171
171
  var util, objectUtil, ZodParsedType, getParsedType2 = (data) => {
172
172
  const t = typeof data;
173
173
  switch (t) {
@@ -298,7 +298,7 @@ var init_util = __esm(() => {
298
298
  ]);
299
299
  });
300
300
 
301
- // node_modules/zod/v3/ZodError.js
301
+ // ../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/ZodError.js
302
302
  var ZodIssueCode, quotelessJson = (obj) => {
303
303
  const json = JSON.stringify(obj, null, 2);
304
304
  return json.replace(/"([^"]+)":/g, "$1:");
@@ -419,7 +419,7 @@ var init_ZodError = __esm(() => {
419
419
  };
420
420
  });
421
421
 
422
- // node_modules/zod/v3/locales/en.js
422
+ // ../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/locales/en.js
423
423
  var errorMap = (issue2, _ctx) => {
424
424
  let message;
425
425
  switch (issue2.code) {
@@ -526,7 +526,7 @@ var init_en = __esm(() => {
526
526
  en_default2 = errorMap;
527
527
  });
528
528
 
529
- // node_modules/zod/v3/errors.js
529
+ // ../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/errors.js
530
530
  function setErrorMap(map) {
531
531
  overrideErrorMap = map;
532
532
  }
@@ -539,7 +539,7 @@ var init_errors2 = __esm(() => {
539
539
  overrideErrorMap = en_default2;
540
540
  });
541
541
 
542
- // node_modules/zod/v3/helpers/parseUtil.js
542
+ // ../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/helpers/parseUtil.js
543
543
  function addIssueToContext(ctx, issueData) {
544
544
  const overrideMap = getErrorMap();
545
545
  const issue2 = makeIssue({
@@ -644,10 +644,10 @@ var init_parseUtil = __esm(() => {
644
644
  });
645
645
  });
646
646
 
647
- // node_modules/zod/v3/helpers/typeAliases.js
647
+ // ../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/helpers/typeAliases.js
648
648
  var init_typeAliases = () => {};
649
649
 
650
- // node_modules/zod/v3/helpers/errorUtil.js
650
+ // ../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/helpers/errorUtil.js
651
651
  var errorUtil;
652
652
  var init_errorUtil = __esm(() => {
653
653
  (function(errorUtil2) {
@@ -656,7 +656,7 @@ var init_errorUtil = __esm(() => {
656
656
  })(errorUtil || (errorUtil = {}));
657
657
  });
658
658
 
659
- // node_modules/zod/v3/types.js
659
+ // ../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/types.js
660
660
  class ParseInputLazyPath {
661
661
  constructor(parent, value, path, key) {
662
662
  this._cachedPath = [];
@@ -4007,7 +4007,7 @@ var init_types = __esm(() => {
4007
4007
  NEVER2 = INVALID;
4008
4008
  });
4009
4009
 
4010
- // node_modules/zod/v3/external.js
4010
+ // ../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/external.js
4011
4011
  var exports_external = {};
4012
4012
  __export(exports_external, {
4013
4013
  void: () => voidType,
@@ -4127,7 +4127,7 @@ var init_external = __esm(() => {
4127
4127
  init_ZodError();
4128
4128
  });
4129
4129
 
4130
- // node_modules/zod/index.js
4130
+ // ../../node_modules/.bun/zod@3.25.76/node_modules/zod/index.js
4131
4131
  var init_zod = __esm(() => {
4132
4132
  init_external();
4133
4133
  init_external();
@@ -5804,7 +5804,7 @@ var package_default;
5804
5804
  var init_package = __esm(() => {
5805
5805
  package_default = {
5806
5806
  name: "@hasna/connectors",
5807
- version: "1.4.1",
5807
+ version: "1.4.2",
5808
5808
  description: "Open source connector library - Install API connectors with a single command",
5809
5809
  type: "module",
5810
5810
  bin: {
@@ -5846,10 +5846,11 @@ var init_package = __esm(() => {
5846
5846
  dev: "bun run ./src/cli/index.tsx",
5847
5847
  "check:package-secrets": "bun run scripts/check-package-secrets.ts",
5848
5848
  typecheck: "tsc --noEmit && tsc -p tsconfig.social.json --noEmit",
5849
- test: "bun test",
5849
+ test: "bun run build && bun test",
5850
5850
  "secrets:scan:npmrc": "bun run scripts/scan-npmrc-auth.mjs",
5851
5851
  "sdk:build": "cd sdk && bun run build",
5852
- prepublishOnly: "bun run secrets:scan:npmrc && bun run check:package-secrets && bun run build && bun test"
5852
+ prepublishOnly: "bun run secrets:scan:npmrc && bun run build && bun run check:package-secrets && bun test",
5853
+ prepack: "bun run build && bun run check:package-secrets"
5853
5854
  },
5854
5855
  keywords: [
5855
5856
  "connectors",
@@ -5870,7 +5871,8 @@ var init_package = __esm(() => {
5870
5871
  "@types/bun": "latest",
5871
5872
  "@types/react": "^18.2.0",
5872
5873
  "ink-testing-library": "^4.0.0",
5873
- typescript: "^5"
5874
+ typescript: "^5",
5875
+ "bun-types": "1.3.14"
5874
5876
  },
5875
5877
  dependencies: {
5876
5878
  "@hasna/events": "0.1.8",
@@ -7015,7 +7017,7 @@ var CONNECTOR_NAME = "imessage", COMMAND_SPECS, ROOT_HELP2, COMMAND_HELP2, COMMA
7015
7017
 
7016
7018
  ## Project Overview
7017
7019
 
7018
- connect-imessage is the bridge-first iMessage connector for the one-product open-connectors runtime. It intentionally targets a normalized HTTP bridge contract instead of native macOS automation so the same connector definition can run locally today and back future hosted channel adapters without rewriting the API surface.
7020
+ connect-imessage is the bridge-first iMessage connector for the one-product connectors runtime. It intentionally targets a normalized HTTP bridge contract instead of native macOS automation so the same connector definition can run locally today and back future hosted channel adapters without rewriting the API surface.
7019
7021
 
7020
7022
  The connector exposes profile/config management plus normalized health, conversation, and message operations. Inbound message consumption and outbound send/reply are all routed through the same internal connector definition and command runtime.
7021
7023
 
@@ -8231,7 +8233,7 @@ var init_builtins = __esm(() => {
8231
8233
  INTERNAL_CONNECTOR_REGISTRY = createConnectorDefinitionRegistry(INTERNAL_CONNECTOR_DEFINITIONS);
8232
8234
  });
8233
8235
 
8234
- // node_modules/ajv/dist/compile/codegen/code.js
8236
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/compile/codegen/code.js
8235
8237
  var require_code = __commonJS((exports) => {
8236
8238
  Object.defineProperty(exports, "__esModule", { value: true });
8237
8239
  exports.regexpCode = exports.getEsmExportName = exports.getProperty = exports.safeStringify = exports.stringify = exports.strConcat = exports.addCodeArg = exports.str = exports._ = exports.nil = exports._Code = exports.Name = exports.IDENTIFIER = exports._CodeOrName = undefined;
@@ -8385,7 +8387,7 @@ var require_code = __commonJS((exports) => {
8385
8387
  exports.regexpCode = regexpCode;
8386
8388
  });
8387
8389
 
8388
- // node_modules/ajv/dist/compile/codegen/scope.js
8390
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/compile/codegen/scope.js
8389
8391
  var require_scope = __commonJS((exports) => {
8390
8392
  Object.defineProperty(exports, "__esModule", { value: true });
8391
8393
  exports.ValueScope = exports.ValueScopeName = exports.Scope = exports.varKinds = exports.UsedValueState = undefined;
@@ -8531,7 +8533,7 @@ var require_scope = __commonJS((exports) => {
8531
8533
  exports.ValueScope = ValueScope;
8532
8534
  });
8533
8535
 
8534
- // node_modules/ajv/dist/compile/codegen/index.js
8536
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/compile/codegen/index.js
8535
8537
  var require_codegen = __commonJS((exports) => {
8536
8538
  Object.defineProperty(exports, "__esModule", { value: true });
8537
8539
  exports.or = exports.and = exports.not = exports.CodeGen = exports.operators = exports.varKinds = exports.ValueScopeName = exports.ValueScope = exports.Scope = exports.Name = exports.regexpCode = exports.stringify = exports.getProperty = exports.nil = exports.strConcat = exports.str = exports._ = undefined;
@@ -9241,7 +9243,7 @@ var require_codegen = __commonJS((exports) => {
9241
9243
  }
9242
9244
  });
9243
9245
 
9244
- // node_modules/ajv/dist/compile/util.js
9246
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/compile/util.js
9245
9247
  var require_util = __commonJS((exports) => {
9246
9248
  Object.defineProperty(exports, "__esModule", { value: true });
9247
9249
  exports.checkStrictMode = exports.getErrorPath = exports.Type = exports.useFunc = exports.setEvaluated = exports.evaluatedPropsToName = exports.mergeEvaluated = exports.eachItem = exports.unescapeJsonPointer = exports.escapeJsonPointer = exports.escapeFragment = exports.unescapeFragment = exports.schemaRefOrVal = exports.schemaHasRulesButRef = exports.schemaHasRules = exports.checkUnknownRules = exports.alwaysValidSchema = exports.toHash = undefined;
@@ -9405,7 +9407,7 @@ var require_util = __commonJS((exports) => {
9405
9407
  exports.checkStrictMode = checkStrictMode;
9406
9408
  });
9407
9409
 
9408
- // node_modules/ajv/dist/compile/names.js
9410
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/compile/names.js
9409
9411
  var require_names = __commonJS((exports) => {
9410
9412
  Object.defineProperty(exports, "__esModule", { value: true });
9411
9413
  var codegen_1 = require_codegen();
@@ -9430,7 +9432,7 @@ var require_names = __commonJS((exports) => {
9430
9432
  exports.default = names;
9431
9433
  });
9432
9434
 
9433
- // node_modules/ajv/dist/compile/errors.js
9435
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/compile/errors.js
9434
9436
  var require_errors = __commonJS((exports) => {
9435
9437
  Object.defineProperty(exports, "__esModule", { value: true });
9436
9438
  exports.extendErrors = exports.resetErrorsCount = exports.reportExtraError = exports.reportError = exports.keyword$DataError = exports.keywordError = undefined;
@@ -9548,7 +9550,7 @@ var require_errors = __commonJS((exports) => {
9548
9550
  }
9549
9551
  });
9550
9552
 
9551
- // node_modules/ajv/dist/compile/validate/boolSchema.js
9553
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/compile/validate/boolSchema.js
9552
9554
  var require_boolSchema = __commonJS((exports) => {
9553
9555
  Object.defineProperty(exports, "__esModule", { value: true });
9554
9556
  exports.boolOrEmptySchema = exports.topBoolOrEmptySchema = undefined;
@@ -9596,7 +9598,7 @@ var require_boolSchema = __commonJS((exports) => {
9596
9598
  }
9597
9599
  });
9598
9600
 
9599
- // node_modules/ajv/dist/compile/rules.js
9601
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/compile/rules.js
9600
9602
  var require_rules = __commonJS((exports) => {
9601
9603
  Object.defineProperty(exports, "__esModule", { value: true });
9602
9604
  exports.getRules = exports.isJSONType = undefined;
@@ -9624,7 +9626,7 @@ var require_rules = __commonJS((exports) => {
9624
9626
  exports.getRules = getRules;
9625
9627
  });
9626
9628
 
9627
- // node_modules/ajv/dist/compile/validate/applicability.js
9629
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/compile/validate/applicability.js
9628
9630
  var require_applicability = __commonJS((exports) => {
9629
9631
  Object.defineProperty(exports, "__esModule", { value: true });
9630
9632
  exports.shouldUseRule = exports.shouldUseGroup = exports.schemaHasRulesForType = undefined;
@@ -9644,7 +9646,7 @@ var require_applicability = __commonJS((exports) => {
9644
9646
  exports.shouldUseRule = shouldUseRule;
9645
9647
  });
9646
9648
 
9647
- // node_modules/ajv/dist/compile/validate/dataType.js
9649
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/compile/validate/dataType.js
9648
9650
  var require_dataType = __commonJS((exports) => {
9649
9651
  Object.defineProperty(exports, "__esModule", { value: true });
9650
9652
  exports.reportTypeError = exports.checkDataTypes = exports.checkDataType = exports.coerceAndCheckDataType = exports.getJSONTypes = exports.getSchemaTypes = exports.DataType = undefined;
@@ -9825,7 +9827,7 @@ var require_dataType = __commonJS((exports) => {
9825
9827
  }
9826
9828
  });
9827
9829
 
9828
- // node_modules/ajv/dist/compile/validate/defaults.js
9830
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/compile/validate/defaults.js
9829
9831
  var require_defaults = __commonJS((exports) => {
9830
9832
  Object.defineProperty(exports, "__esModule", { value: true });
9831
9833
  exports.assignDefaults = undefined;
@@ -9859,7 +9861,7 @@ var require_defaults = __commonJS((exports) => {
9859
9861
  }
9860
9862
  });
9861
9863
 
9862
- // node_modules/ajv/dist/vocabularies/code.js
9864
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/code.js
9863
9865
  var require_code2 = __commonJS((exports) => {
9864
9866
  Object.defineProperty(exports, "__esModule", { value: true });
9865
9867
  exports.validateUnion = exports.validateArray = exports.usePattern = exports.callValidateCode = exports.schemaProperties = exports.allSchemaProperties = exports.noPropertyInData = exports.propertyInData = exports.isOwnProperty = exports.hasPropFunc = exports.reportMissingProp = exports.checkMissingProp = exports.checkReportMissingProp = undefined;
@@ -9988,7 +9990,7 @@ var require_code2 = __commonJS((exports) => {
9988
9990
  exports.validateUnion = validateUnion;
9989
9991
  });
9990
9992
 
9991
- // node_modules/ajv/dist/compile/validate/keyword.js
9993
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/compile/validate/keyword.js
9992
9994
  var require_keyword = __commonJS((exports) => {
9993
9995
  Object.defineProperty(exports, "__esModule", { value: true });
9994
9996
  exports.validateKeywordUsage = exports.validSchemaType = exports.funcKeywordCode = exports.macroKeywordCode = undefined;
@@ -10103,7 +10105,7 @@ var require_keyword = __commonJS((exports) => {
10103
10105
  exports.validateKeywordUsage = validateKeywordUsage;
10104
10106
  });
10105
10107
 
10106
- // node_modules/ajv/dist/compile/validate/subschema.js
10108
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/compile/validate/subschema.js
10107
10109
  var require_subschema = __commonJS((exports) => {
10108
10110
  Object.defineProperty(exports, "__esModule", { value: true });
10109
10111
  exports.extendSubschemaMode = exports.extendSubschemaData = exports.getSubschema = undefined;
@@ -10183,7 +10185,7 @@ var require_subschema = __commonJS((exports) => {
10183
10185
  exports.extendSubschemaMode = extendSubschemaMode;
10184
10186
  });
10185
10187
 
10186
- // node_modules/fast-deep-equal/index.js
10188
+ // ../../node_modules/.bun/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js
10187
10189
  var require_fast_deep_equal = __commonJS((exports, module) => {
10188
10190
  module.exports = function equal(a, b) {
10189
10191
  if (a === b)
@@ -10225,7 +10227,7 @@ var require_fast_deep_equal = __commonJS((exports, module) => {
10225
10227
  };
10226
10228
  });
10227
10229
 
10228
- // node_modules/json-schema-traverse/index.js
10230
+ // ../../node_modules/.bun/json-schema-traverse@1.0.0/node_modules/json-schema-traverse/index.js
10229
10231
  var require_json_schema_traverse = __commonJS((exports, module) => {
10230
10232
  var traverse = module.exports = function(schema, opts, cb) {
10231
10233
  if (typeof opts == "function") {
@@ -10308,7 +10310,7 @@ var require_json_schema_traverse = __commonJS((exports, module) => {
10308
10310
  }
10309
10311
  });
10310
10312
 
10311
- // node_modules/ajv/dist/compile/resolve.js
10313
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/compile/resolve.js
10312
10314
  var require_resolve = __commonJS((exports) => {
10313
10315
  Object.defineProperty(exports, "__esModule", { value: true });
10314
10316
  exports.getSchemaRefs = exports.resolveUrl = exports.normalizeId = exports._getFullPath = exports.getFullPath = exports.inlineRef = undefined;
@@ -10461,7 +10463,7 @@ var require_resolve = __commonJS((exports) => {
10461
10463
  exports.getSchemaRefs = getSchemaRefs;
10462
10464
  });
10463
10465
 
10464
- // node_modules/ajv/dist/compile/validate/index.js
10466
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/compile/validate/index.js
10465
10467
  var require_validate = __commonJS((exports) => {
10466
10468
  Object.defineProperty(exports, "__esModule", { value: true });
10467
10469
  exports.getData = exports.KeywordCxt = exports.validateFunctionCode = undefined;
@@ -10966,7 +10968,7 @@ var require_validate = __commonJS((exports) => {
10966
10968
  exports.getData = getData;
10967
10969
  });
10968
10970
 
10969
- // node_modules/ajv/dist/runtime/validation_error.js
10971
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/runtime/validation_error.js
10970
10972
  var require_validation_error = __commonJS((exports) => {
10971
10973
  Object.defineProperty(exports, "__esModule", { value: true });
10972
10974
 
@@ -10980,7 +10982,7 @@ var require_validation_error = __commonJS((exports) => {
10980
10982
  exports.default = ValidationError;
10981
10983
  });
10982
10984
 
10983
- // node_modules/ajv/dist/compile/ref_error.js
10985
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/compile/ref_error.js
10984
10986
  var require_ref_error = __commonJS((exports) => {
10985
10987
  Object.defineProperty(exports, "__esModule", { value: true });
10986
10988
  var resolve_1 = require_resolve();
@@ -10995,7 +10997,7 @@ var require_ref_error = __commonJS((exports) => {
10995
10997
  exports.default = MissingRefError;
10996
10998
  });
10997
10999
 
10998
- // node_modules/ajv/dist/compile/index.js
11000
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/compile/index.js
10999
11001
  var require_compile = __commonJS((exports) => {
11000
11002
  Object.defineProperty(exports, "__esModule", { value: true });
11001
11003
  exports.resolveSchema = exports.getCompilingSchema = exports.resolveRef = exports.compileSchema = exports.SchemaEnv = undefined;
@@ -11216,7 +11218,7 @@ var require_compile = __commonJS((exports) => {
11216
11218
  }
11217
11219
  });
11218
11220
 
11219
- // node_modules/ajv/dist/refs/data.json
11221
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/refs/data.json
11220
11222
  var require_data = __commonJS((exports, module) => {
11221
11223
  module.exports = {
11222
11224
  $id: "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",
@@ -11233,7 +11235,7 @@ var require_data = __commonJS((exports, module) => {
11233
11235
  };
11234
11236
  });
11235
11237
 
11236
- // node_modules/fast-uri/lib/utils.js
11238
+ // ../../node_modules/.bun/fast-uri@3.1.5/node_modules/fast-uri/lib/utils.js
11237
11239
  var require_utils = __commonJS((exports, module) => {
11238
11240
  var isUUID = RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu);
11239
11241
  var isIPv4 = RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u);
@@ -11544,7 +11546,7 @@ var require_utils = __commonJS((exports, module) => {
11544
11546
  };
11545
11547
  });
11546
11548
 
11547
- // node_modules/fast-uri/lib/schemes.js
11549
+ // ../../node_modules/.bun/fast-uri@3.1.5/node_modules/fast-uri/lib/schemes.js
11548
11550
  var require_schemes = __commonJS((exports, module) => {
11549
11551
  var { isUUID } = require_utils();
11550
11552
  var URN_REG = /([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu;
@@ -11718,7 +11720,7 @@ var require_schemes = __commonJS((exports, module) => {
11718
11720
  };
11719
11721
  });
11720
11722
 
11721
- // node_modules/fast-uri/index.js
11723
+ // ../../node_modules/.bun/fast-uri@3.1.5/node_modules/fast-uri/index.js
11722
11724
  var require_fast_uri = __commonJS((exports, module) => {
11723
11725
  var { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizePercentEncoding, normalizePathEncoding, escapePreservingEscapes, reescapeHostDelimiters, isIPv4, nonSimpleDomain } = require_utils();
11724
11726
  var { SCHEMES, getSchemeHandler } = require_schemes();
@@ -11732,7 +11734,12 @@ var require_fast_uri = __commonJS((exports, module) => {
11732
11734
  }
11733
11735
  function resolve(baseURI, relativeURI, options) {
11734
11736
  const schemelessOptions = options ? Object.assign({ scheme: "null" }, options) : { scheme: "null" };
11735
- const resolved = resolveComponent(parse6(baseURI, schemelessOptions), parse6(relativeURI, schemelessOptions), schemelessOptions, true);
11737
+ const { parsed: baseParsed, malformedAuthorityOrPort: baseMalformed } = parseWithStatus(baseURI, schemelessOptions);
11738
+ const { parsed: relativeParsed, malformedAuthorityOrPort: relativeMalformed } = parseWithStatus(relativeURI, schemelessOptions);
11739
+ if (baseMalformed || relativeMalformed) {
11740
+ throw new Error(baseParsed.error || relativeParsed.error || "URI is malformed.");
11741
+ }
11742
+ const resolved = resolveComponent(baseParsed, relativeParsed, schemelessOptions, true);
11736
11743
  schemelessOptions.skipEscape = true;
11737
11744
  return serialize(resolved, schemelessOptions);
11738
11745
  }
@@ -11859,6 +11866,7 @@ var require_fast_uri = __commonJS((exports, module) => {
11859
11866
  }
11860
11867
  var URI_PARSE = /^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;
11861
11868
  var AUTHORITY_PREFIX = /^(?:[^#/:?]+:)?\/\/([^/?#]*)/;
11869
+ var AUTHORITY_INTRODUCER_REGION = /^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;
11862
11870
  function getParseError(parsed, matches) {
11863
11871
  if (matches[2] !== undefined && parsed.path && parsed.path[0] !== "/") {
11864
11872
  return 'URI path must start with "/" when authority is present.';
@@ -11893,6 +11901,20 @@ var require_fast_uri = __commonJS((exports, module) => {
11893
11901
  parsed.error = "URI authority must not contain a literal backslash.";
11894
11902
  malformedAuthorityOrPort = true;
11895
11903
  }
11904
+ const introducerMatch = uri.match(AUTHORITY_INTRODUCER_REGION);
11905
+ if (introducerMatch !== null) {
11906
+ const region = introducerMatch[1];
11907
+ const normalizedRegion = region.replace(/[\t\n\r]/g, "");
11908
+ if (normalizedRegion.length >= 2) {
11909
+ if (normalizedRegion.slice(0, 2) !== "//") {
11910
+ parsed.error = parsed.error || "URI authority must not contain a literal backslash.";
11911
+ malformedAuthorityOrPort = true;
11912
+ } else if (region.length !== normalizedRegion.length) {
11913
+ parsed.error = parsed.error || "URI authority introducer must not contain whitespace.";
11914
+ malformedAuthorityOrPort = true;
11915
+ }
11916
+ }
11917
+ }
11896
11918
  const matches = uri.match(URI_PARSE);
11897
11919
  if (matches) {
11898
11920
  parsed.scheme = matches[1];
@@ -12006,7 +12028,7 @@ var require_fast_uri = __commonJS((exports, module) => {
12006
12028
  module.exports.fastUri = fastUri;
12007
12029
  });
12008
12030
 
12009
- // node_modules/ajv/dist/runtime/uri.js
12031
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/runtime/uri.js
12010
12032
  var require_uri = __commonJS((exports) => {
12011
12033
  Object.defineProperty(exports, "__esModule", { value: true });
12012
12034
  var uri = require_fast_uri();
@@ -12014,7 +12036,7 @@ var require_uri = __commonJS((exports) => {
12014
12036
  exports.default = uri;
12015
12037
  });
12016
12038
 
12017
- // node_modules/ajv/dist/core.js
12039
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/core.js
12018
12040
  var require_core = __commonJS((exports) => {
12019
12041
  Object.defineProperty(exports, "__esModule", { value: true });
12020
12042
  exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = undefined;
@@ -12607,7 +12629,7 @@ var require_core = __commonJS((exports) => {
12607
12629
  }
12608
12630
  });
12609
12631
 
12610
- // node_modules/ajv/dist/vocabularies/core/id.js
12632
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/core/id.js
12611
12633
  var require_id = __commonJS((exports) => {
12612
12634
  Object.defineProperty(exports, "__esModule", { value: true });
12613
12635
  var def = {
@@ -12619,7 +12641,7 @@ var require_id = __commonJS((exports) => {
12619
12641
  exports.default = def;
12620
12642
  });
12621
12643
 
12622
- // node_modules/ajv/dist/vocabularies/core/ref.js
12644
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/core/ref.js
12623
12645
  var require_ref = __commonJS((exports) => {
12624
12646
  Object.defineProperty(exports, "__esModule", { value: true });
12625
12647
  exports.callRef = exports.getValidate = undefined;
@@ -12738,7 +12760,7 @@ var require_ref = __commonJS((exports) => {
12738
12760
  exports.default = def;
12739
12761
  });
12740
12762
 
12741
- // node_modules/ajv/dist/vocabularies/core/index.js
12763
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/core/index.js
12742
12764
  var require_core2 = __commonJS((exports) => {
12743
12765
  Object.defineProperty(exports, "__esModule", { value: true });
12744
12766
  var id_1 = require_id();
@@ -12756,7 +12778,7 @@ var require_core2 = __commonJS((exports) => {
12756
12778
  exports.default = core2;
12757
12779
  });
12758
12780
 
12759
- // node_modules/ajv/dist/vocabularies/validation/limitNumber.js
12781
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/limitNumber.js
12760
12782
  var require_limitNumber = __commonJS((exports) => {
12761
12783
  Object.defineProperty(exports, "__esModule", { value: true });
12762
12784
  var codegen_1 = require_codegen();
@@ -12785,7 +12807,7 @@ var require_limitNumber = __commonJS((exports) => {
12785
12807
  exports.default = def;
12786
12808
  });
12787
12809
 
12788
- // node_modules/ajv/dist/vocabularies/validation/multipleOf.js
12810
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/multipleOf.js
12789
12811
  var require_multipleOf = __commonJS((exports) => {
12790
12812
  Object.defineProperty(exports, "__esModule", { value: true });
12791
12813
  var codegen_1 = require_codegen();
@@ -12810,7 +12832,7 @@ var require_multipleOf = __commonJS((exports) => {
12810
12832
  exports.default = def;
12811
12833
  });
12812
12834
 
12813
- // node_modules/ajv/dist/runtime/ucs2length.js
12835
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/runtime/ucs2length.js
12814
12836
  var require_ucs2length = __commonJS((exports) => {
12815
12837
  Object.defineProperty(exports, "__esModule", { value: true });
12816
12838
  function ucs2length(str) {
@@ -12833,7 +12855,7 @@ var require_ucs2length = __commonJS((exports) => {
12833
12855
  ucs2length.code = 'require("ajv/dist/runtime/ucs2length").default';
12834
12856
  });
12835
12857
 
12836
- // node_modules/ajv/dist/vocabularies/validation/limitLength.js
12858
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/limitLength.js
12837
12859
  var require_limitLength = __commonJS((exports) => {
12838
12860
  Object.defineProperty(exports, "__esModule", { value: true });
12839
12861
  var codegen_1 = require_codegen();
@@ -12862,7 +12884,7 @@ var require_limitLength = __commonJS((exports) => {
12862
12884
  exports.default = def;
12863
12885
  });
12864
12886
 
12865
- // node_modules/ajv/dist/vocabularies/validation/pattern.js
12887
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/pattern.js
12866
12888
  var require_pattern = __commonJS((exports) => {
12867
12889
  Object.defineProperty(exports, "__esModule", { value: true });
12868
12890
  var code_1 = require_code2();
@@ -12896,7 +12918,7 @@ var require_pattern = __commonJS((exports) => {
12896
12918
  exports.default = def;
12897
12919
  });
12898
12920
 
12899
- // node_modules/ajv/dist/vocabularies/validation/limitProperties.js
12921
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/limitProperties.js
12900
12922
  var require_limitProperties = __commonJS((exports) => {
12901
12923
  Object.defineProperty(exports, "__esModule", { value: true });
12902
12924
  var codegen_1 = require_codegen();
@@ -12922,7 +12944,7 @@ var require_limitProperties = __commonJS((exports) => {
12922
12944
  exports.default = def;
12923
12945
  });
12924
12946
 
12925
- // node_modules/ajv/dist/vocabularies/validation/required.js
12947
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/required.js
12926
12948
  var require_required = __commonJS((exports) => {
12927
12949
  Object.defineProperty(exports, "__esModule", { value: true });
12928
12950
  var code_1 = require_code2();
@@ -13001,7 +13023,7 @@ var require_required = __commonJS((exports) => {
13001
13023
  exports.default = def;
13002
13024
  });
13003
13025
 
13004
- // node_modules/ajv/dist/vocabularies/validation/limitItems.js
13026
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/limitItems.js
13005
13027
  var require_limitItems = __commonJS((exports) => {
13006
13028
  Object.defineProperty(exports, "__esModule", { value: true });
13007
13029
  var codegen_1 = require_codegen();
@@ -13027,7 +13049,7 @@ var require_limitItems = __commonJS((exports) => {
13027
13049
  exports.default = def;
13028
13050
  });
13029
13051
 
13030
- // node_modules/ajv/dist/runtime/equal.js
13052
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/runtime/equal.js
13031
13053
  var require_equal = __commonJS((exports) => {
13032
13054
  Object.defineProperty(exports, "__esModule", { value: true });
13033
13055
  var equal = require_fast_deep_equal();
@@ -13035,7 +13057,7 @@ var require_equal = __commonJS((exports) => {
13035
13057
  exports.default = equal;
13036
13058
  });
13037
13059
 
13038
- // node_modules/ajv/dist/vocabularies/validation/uniqueItems.js
13060
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js
13039
13061
  var require_uniqueItems = __commonJS((exports) => {
13040
13062
  Object.defineProperty(exports, "__esModule", { value: true });
13041
13063
  var dataType_1 = require_dataType();
@@ -13099,7 +13121,7 @@ var require_uniqueItems = __commonJS((exports) => {
13099
13121
  exports.default = def;
13100
13122
  });
13101
13123
 
13102
- // node_modules/ajv/dist/vocabularies/validation/const.js
13124
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/const.js
13103
13125
  var require_const = __commonJS((exports) => {
13104
13126
  Object.defineProperty(exports, "__esModule", { value: true });
13105
13127
  var codegen_1 = require_codegen();
@@ -13125,7 +13147,7 @@ var require_const = __commonJS((exports) => {
13125
13147
  exports.default = def;
13126
13148
  });
13127
13149
 
13128
- // node_modules/ajv/dist/vocabularies/validation/enum.js
13150
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/enum.js
13129
13151
  var require_enum = __commonJS((exports) => {
13130
13152
  Object.defineProperty(exports, "__esModule", { value: true });
13131
13153
  var codegen_1 = require_codegen();
@@ -13171,7 +13193,7 @@ var require_enum = __commonJS((exports) => {
13171
13193
  exports.default = def;
13172
13194
  });
13173
13195
 
13174
- // node_modules/ajv/dist/vocabularies/validation/index.js
13196
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/index.js
13175
13197
  var require_validation = __commonJS((exports) => {
13176
13198
  Object.defineProperty(exports, "__esModule", { value: true });
13177
13199
  var limitNumber_1 = require_limitNumber();
@@ -13201,7 +13223,7 @@ var require_validation = __commonJS((exports) => {
13201
13223
  exports.default = validation;
13202
13224
  });
13203
13225
 
13204
- // node_modules/ajv/dist/vocabularies/applicator/additionalItems.js
13226
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js
13205
13227
  var require_additionalItems = __commonJS((exports) => {
13206
13228
  Object.defineProperty(exports, "__esModule", { value: true });
13207
13229
  exports.validateAdditionalItems = undefined;
@@ -13251,7 +13273,7 @@ var require_additionalItems = __commonJS((exports) => {
13251
13273
  exports.default = def;
13252
13274
  });
13253
13275
 
13254
- // node_modules/ajv/dist/vocabularies/applicator/items.js
13276
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/items.js
13255
13277
  var require_items = __commonJS((exports) => {
13256
13278
  Object.defineProperty(exports, "__esModule", { value: true });
13257
13279
  exports.validateTuple = undefined;
@@ -13305,7 +13327,7 @@ var require_items = __commonJS((exports) => {
13305
13327
  exports.default = def;
13306
13328
  });
13307
13329
 
13308
- // node_modules/ajv/dist/vocabularies/applicator/prefixItems.js
13330
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js
13309
13331
  var require_prefixItems = __commonJS((exports) => {
13310
13332
  Object.defineProperty(exports, "__esModule", { value: true });
13311
13333
  var items_1 = require_items();
@@ -13319,7 +13341,7 @@ var require_prefixItems = __commonJS((exports) => {
13319
13341
  exports.default = def;
13320
13342
  });
13321
13343
 
13322
- // node_modules/ajv/dist/vocabularies/applicator/items2020.js
13344
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/items2020.js
13323
13345
  var require_items2020 = __commonJS((exports) => {
13324
13346
  Object.defineProperty(exports, "__esModule", { value: true });
13325
13347
  var codegen_1 = require_codegen();
@@ -13351,7 +13373,7 @@ var require_items2020 = __commonJS((exports) => {
13351
13373
  exports.default = def;
13352
13374
  });
13353
13375
 
13354
- // node_modules/ajv/dist/vocabularies/applicator/contains.js
13376
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/contains.js
13355
13377
  var require_contains = __commonJS((exports) => {
13356
13378
  Object.defineProperty(exports, "__esModule", { value: true });
13357
13379
  var codegen_1 = require_codegen();
@@ -13442,7 +13464,7 @@ var require_contains = __commonJS((exports) => {
13442
13464
  exports.default = def;
13443
13465
  });
13444
13466
 
13445
- // node_modules/ajv/dist/vocabularies/applicator/dependencies.js
13467
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/dependencies.js
13446
13468
  var require_dependencies = __commonJS((exports) => {
13447
13469
  Object.defineProperty(exports, "__esModule", { value: true });
13448
13470
  exports.validateSchemaDeps = exports.validatePropertyDeps = exports.error = undefined;
@@ -13527,7 +13549,7 @@ var require_dependencies = __commonJS((exports) => {
13527
13549
  exports.default = def;
13528
13550
  });
13529
13551
 
13530
- // node_modules/ajv/dist/vocabularies/applicator/propertyNames.js
13552
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js
13531
13553
  var require_propertyNames = __commonJS((exports) => {
13532
13554
  Object.defineProperty(exports, "__esModule", { value: true });
13533
13555
  var codegen_1 = require_codegen();
@@ -13567,7 +13589,7 @@ var require_propertyNames = __commonJS((exports) => {
13567
13589
  exports.default = def;
13568
13590
  });
13569
13591
 
13570
- // node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js
13592
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js
13571
13593
  var require_additionalProperties = __commonJS((exports) => {
13572
13594
  Object.defineProperty(exports, "__esModule", { value: true });
13573
13595
  var code_1 = require_code2();
@@ -13670,7 +13692,7 @@ var require_additionalProperties = __commonJS((exports) => {
13670
13692
  exports.default = def;
13671
13693
  });
13672
13694
 
13673
- // node_modules/ajv/dist/vocabularies/applicator/properties.js
13695
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/properties.js
13674
13696
  var require_properties = __commonJS((exports) => {
13675
13697
  Object.defineProperty(exports, "__esModule", { value: true });
13676
13698
  var validate_1 = require_validate();
@@ -13725,7 +13747,7 @@ var require_properties = __commonJS((exports) => {
13725
13747
  exports.default = def;
13726
13748
  });
13727
13749
 
13728
- // node_modules/ajv/dist/vocabularies/applicator/patternProperties.js
13750
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js
13729
13751
  var require_patternProperties = __commonJS((exports) => {
13730
13752
  Object.defineProperty(exports, "__esModule", { value: true });
13731
13753
  var code_1 = require_code2();
@@ -13796,7 +13818,7 @@ var require_patternProperties = __commonJS((exports) => {
13796
13818
  exports.default = def;
13797
13819
  });
13798
13820
 
13799
- // node_modules/ajv/dist/vocabularies/applicator/not.js
13821
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/not.js
13800
13822
  var require_not = __commonJS((exports) => {
13801
13823
  Object.defineProperty(exports, "__esModule", { value: true });
13802
13824
  var util_1 = require_util();
@@ -13824,7 +13846,7 @@ var require_not = __commonJS((exports) => {
13824
13846
  exports.default = def;
13825
13847
  });
13826
13848
 
13827
- // node_modules/ajv/dist/vocabularies/applicator/anyOf.js
13849
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/anyOf.js
13828
13850
  var require_anyOf = __commonJS((exports) => {
13829
13851
  Object.defineProperty(exports, "__esModule", { value: true });
13830
13852
  var code_1 = require_code2();
@@ -13838,7 +13860,7 @@ var require_anyOf = __commonJS((exports) => {
13838
13860
  exports.default = def;
13839
13861
  });
13840
13862
 
13841
- // node_modules/ajv/dist/vocabularies/applicator/oneOf.js
13863
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/oneOf.js
13842
13864
  var require_oneOf = __commonJS((exports) => {
13843
13865
  Object.defineProperty(exports, "__esModule", { value: true });
13844
13866
  var codegen_1 = require_codegen();
@@ -13893,7 +13915,7 @@ var require_oneOf = __commonJS((exports) => {
13893
13915
  exports.default = def;
13894
13916
  });
13895
13917
 
13896
- // node_modules/ajv/dist/vocabularies/applicator/allOf.js
13918
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/allOf.js
13897
13919
  var require_allOf = __commonJS((exports) => {
13898
13920
  Object.defineProperty(exports, "__esModule", { value: true });
13899
13921
  var util_1 = require_util();
@@ -13917,7 +13939,7 @@ var require_allOf = __commonJS((exports) => {
13917
13939
  exports.default = def;
13918
13940
  });
13919
13941
 
13920
- // node_modules/ajv/dist/vocabularies/applicator/if.js
13942
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/if.js
13921
13943
  var require_if = __commonJS((exports) => {
13922
13944
  Object.defineProperty(exports, "__esModule", { value: true });
13923
13945
  var codegen_1 = require_codegen();
@@ -13983,7 +14005,7 @@ var require_if = __commonJS((exports) => {
13983
14005
  exports.default = def;
13984
14006
  });
13985
14007
 
13986
- // node_modules/ajv/dist/vocabularies/applicator/thenElse.js
14008
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/thenElse.js
13987
14009
  var require_thenElse = __commonJS((exports) => {
13988
14010
  Object.defineProperty(exports, "__esModule", { value: true });
13989
14011
  var util_1 = require_util();
@@ -13998,7 +14020,7 @@ var require_thenElse = __commonJS((exports) => {
13998
14020
  exports.default = def;
13999
14021
  });
14000
14022
 
14001
- // node_modules/ajv/dist/vocabularies/applicator/index.js
14023
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/index.js
14002
14024
  var require_applicator = __commonJS((exports) => {
14003
14025
  Object.defineProperty(exports, "__esModule", { value: true });
14004
14026
  var additionalItems_1 = require_additionalItems();
@@ -14041,7 +14063,7 @@ var require_applicator = __commonJS((exports) => {
14041
14063
  exports.default = getApplicator;
14042
14064
  });
14043
14065
 
14044
- // node_modules/ajv/dist/vocabularies/format/format.js
14066
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/format/format.js
14045
14067
  var require_format = __commonJS((exports) => {
14046
14068
  Object.defineProperty(exports, "__esModule", { value: true });
14047
14069
  var codegen_1 = require_codegen();
@@ -14128,7 +14150,7 @@ var require_format = __commonJS((exports) => {
14128
14150
  exports.default = def;
14129
14151
  });
14130
14152
 
14131
- // node_modules/ajv/dist/vocabularies/format/index.js
14153
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/format/index.js
14132
14154
  var require_format2 = __commonJS((exports) => {
14133
14155
  Object.defineProperty(exports, "__esModule", { value: true });
14134
14156
  var format_1 = require_format();
@@ -14136,7 +14158,7 @@ var require_format2 = __commonJS((exports) => {
14136
14158
  exports.default = format;
14137
14159
  });
14138
14160
 
14139
- // node_modules/ajv/dist/vocabularies/metadata.js
14161
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/metadata.js
14140
14162
  var require_metadata = __commonJS((exports) => {
14141
14163
  Object.defineProperty(exports, "__esModule", { value: true });
14142
14164
  exports.contentVocabulary = exports.metadataVocabulary = undefined;
@@ -14156,7 +14178,7 @@ var require_metadata = __commonJS((exports) => {
14156
14178
  ];
14157
14179
  });
14158
14180
 
14159
- // node_modules/ajv/dist/vocabularies/draft7.js
14181
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/draft7.js
14160
14182
  var require_draft7 = __commonJS((exports) => {
14161
14183
  Object.defineProperty(exports, "__esModule", { value: true });
14162
14184
  var core_1 = require_core2();
@@ -14175,7 +14197,7 @@ var require_draft7 = __commonJS((exports) => {
14175
14197
  exports.default = draft7Vocabularies;
14176
14198
  });
14177
14199
 
14178
- // node_modules/ajv/dist/vocabularies/discriminator/types.js
14200
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/discriminator/types.js
14179
14201
  var require_types = __commonJS((exports) => {
14180
14202
  Object.defineProperty(exports, "__esModule", { value: true });
14181
14203
  exports.DiscrError = undefined;
@@ -14186,7 +14208,7 @@ var require_types = __commonJS((exports) => {
14186
14208
  })(DiscrError || (exports.DiscrError = DiscrError = {}));
14187
14209
  });
14188
14210
 
14189
- // node_modules/ajv/dist/vocabularies/discriminator/index.js
14211
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/vocabularies/discriminator/index.js
14190
14212
  var require_discriminator = __commonJS((exports) => {
14191
14213
  Object.defineProperty(exports, "__esModule", { value: true });
14192
14214
  var codegen_1 = require_codegen();
@@ -14288,7 +14310,7 @@ var require_discriminator = __commonJS((exports) => {
14288
14310
  exports.default = def;
14289
14311
  });
14290
14312
 
14291
- // node_modules/ajv/dist/refs/json-schema-draft-07.json
14313
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/refs/json-schema-draft-07.json
14292
14314
  var require_json_schema_draft_07 = __commonJS((exports, module) => {
14293
14315
  module.exports = {
14294
14316
  $schema: "http://json-schema.org/draft-07/schema#",
@@ -14443,7 +14465,7 @@ var require_json_schema_draft_07 = __commonJS((exports, module) => {
14443
14465
  };
14444
14466
  });
14445
14467
 
14446
- // node_modules/ajv/dist/ajv.js
14468
+ // ../../node_modules/.bun/ajv@8.20.0/node_modules/ajv/dist/ajv.js
14447
14469
  var require_ajv = __commonJS((exports, module) => {
14448
14470
  Object.defineProperty(exports, "__esModule", { value: true });
14449
14471
  exports.MissingRefError = exports.ValidationError = exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = exports.Ajv = undefined;
@@ -14511,7 +14533,7 @@ var require_ajv = __commonJS((exports, module) => {
14511
14533
  } });
14512
14534
  });
14513
14535
 
14514
- // node_modules/ajv-formats/dist/formats.js
14536
+ // ../../node_modules/.bun/ajv-formats@3.0.1/node_modules/ajv-formats/dist/formats.js
14515
14537
  var require_formats = __commonJS((exports) => {
14516
14538
  Object.defineProperty(exports, "__esModule", { value: true });
14517
14539
  exports.formatNames = exports.fastFormats = exports.fullFormats = undefined;
@@ -14688,7 +14710,7 @@ var require_formats = __commonJS((exports) => {
14688
14710
  }
14689
14711
  });
14690
14712
 
14691
- // node_modules/ajv-formats/dist/limit.js
14713
+ // ../../node_modules/.bun/ajv-formats@3.0.1/node_modules/ajv-formats/dist/limit.js
14692
14714
  var require_limit = __commonJS((exports) => {
14693
14715
  Object.defineProperty(exports, "__esModule", { value: true });
14694
14716
  exports.formatLimitDefinition = undefined;
@@ -14757,7 +14779,7 @@ var require_limit = __commonJS((exports) => {
14757
14779
  exports.default = formatLimitPlugin;
14758
14780
  });
14759
14781
 
14760
- // node_modules/ajv-formats/dist/index.js
14782
+ // ../../node_modules/.bun/ajv-formats@3.0.1/node_modules/ajv-formats/dist/index.js
14761
14783
  var require_dist = __commonJS((exports, module) => {
14762
14784
  Object.defineProperty(exports, "__esModule", { value: true });
14763
14785
  var formats_1 = require_formats();
@@ -15566,7 +15588,9 @@ function guessKeyField(name) {
15566
15588
  const keyVar = docs.envVars.find((v) => v.variable.includes("API_KEY") || v.variable.includes("API_SECRET") || v.variable.includes("TOKEN") || v.variable.includes("SECRET"));
15567
15589
  if (keyVar) {
15568
15590
  const parts = keyVar.variable.toLowerCase().split("_");
15569
- const withoutPrefix = parts.slice(1);
15591
+ const connectorParts = name.toLowerCase().split(/[-_]/);
15592
+ const prefixLength = connectorParts.every((part, index) => parts[index] === part) ? connectorParts.length : 1;
15593
+ const withoutPrefix = parts.slice(prefixLength);
15570
15594
  if (withoutPrefix.length > 0) {
15571
15595
  return withoutPrefix.map((p, i) => i === 0 ? p : p.charAt(0).toUpperCase() + p.slice(1)).join("");
15572
15596
  }
@@ -16095,10 +16119,116 @@ var init_runner = __esm(() => {
16095
16119
  };
16096
16120
  });
16097
16121
 
16098
- // node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
16122
+ // ../../node_modules/.bun/content-type@1.0.5/node_modules/content-type/index.js
16123
+ var require_content_type = __commonJS((exports) => {
16124
+ /*!
16125
+ * content-type
16126
+ * Copyright(c) 2015 Douglas Christopher Wilson
16127
+ * MIT Licensed
16128
+ */
16129
+ var PARAM_REGEXP = /; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g;
16130
+ var TEXT_REGEXP = /^[\u000b\u0020-\u007e\u0080-\u00ff]+$/;
16131
+ var TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;
16132
+ var QESC_REGEXP = /\\([\u000b\u0020-\u00ff])/g;
16133
+ var QUOTE_REGEXP = /([\\"])/g;
16134
+ var TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;
16135
+ exports.format = format;
16136
+ exports.parse = parse6;
16137
+ function format(obj) {
16138
+ if (!obj || typeof obj !== "object") {
16139
+ throw new TypeError("argument obj is required");
16140
+ }
16141
+ var parameters = obj.parameters;
16142
+ var type = obj.type;
16143
+ if (!type || !TYPE_REGEXP.test(type)) {
16144
+ throw new TypeError("invalid type");
16145
+ }
16146
+ var string4 = type;
16147
+ if (parameters && typeof parameters === "object") {
16148
+ var param;
16149
+ var params = Object.keys(parameters).sort();
16150
+ for (var i = 0;i < params.length; i++) {
16151
+ param = params[i];
16152
+ if (!TOKEN_REGEXP.test(param)) {
16153
+ throw new TypeError("invalid parameter name");
16154
+ }
16155
+ string4 += "; " + param + "=" + qstring(parameters[param]);
16156
+ }
16157
+ }
16158
+ return string4;
16159
+ }
16160
+ function parse6(string4) {
16161
+ if (!string4) {
16162
+ throw new TypeError("argument string is required");
16163
+ }
16164
+ var header = typeof string4 === "object" ? getcontenttype(string4) : string4;
16165
+ if (typeof header !== "string") {
16166
+ throw new TypeError("argument string is required to be a string");
16167
+ }
16168
+ var index = header.indexOf(";");
16169
+ var type = index !== -1 ? header.slice(0, index).trim() : header.trim();
16170
+ if (!TYPE_REGEXP.test(type)) {
16171
+ throw new TypeError("invalid media type");
16172
+ }
16173
+ var obj = new ContentType(type.toLowerCase());
16174
+ if (index !== -1) {
16175
+ var key;
16176
+ var match;
16177
+ var value;
16178
+ PARAM_REGEXP.lastIndex = index;
16179
+ while (match = PARAM_REGEXP.exec(header)) {
16180
+ if (match.index !== index) {
16181
+ throw new TypeError("invalid parameter format");
16182
+ }
16183
+ index += match[0].length;
16184
+ key = match[1].toLowerCase();
16185
+ value = match[2];
16186
+ if (value.charCodeAt(0) === 34) {
16187
+ value = value.slice(1, -1);
16188
+ if (value.indexOf("\\") !== -1) {
16189
+ value = value.replace(QESC_REGEXP, "$1");
16190
+ }
16191
+ }
16192
+ obj.parameters[key] = value;
16193
+ }
16194
+ if (index !== header.length) {
16195
+ throw new TypeError("invalid parameter format");
16196
+ }
16197
+ }
16198
+ return obj;
16199
+ }
16200
+ function getcontenttype(obj) {
16201
+ var header;
16202
+ if (typeof obj.getHeader === "function") {
16203
+ header = obj.getHeader("content-type");
16204
+ } else if (typeof obj.headers === "object") {
16205
+ header = obj.headers && obj.headers["content-type"];
16206
+ }
16207
+ if (typeof header !== "string") {
16208
+ throw new TypeError("content-type header is missing from object");
16209
+ }
16210
+ return header;
16211
+ }
16212
+ function qstring(val) {
16213
+ var str = String(val);
16214
+ if (TOKEN_REGEXP.test(str)) {
16215
+ return str;
16216
+ }
16217
+ if (str.length > 0 && !TEXT_REGEXP.test(str)) {
16218
+ throw new TypeError("invalid parameter value");
16219
+ }
16220
+ return '"' + str.replace(QUOTE_REGEXP, "\\$1") + '"';
16221
+ }
16222
+ function ContentType(type) {
16223
+ this.parameters = Object.create(null);
16224
+ this.type = type;
16225
+ }
16226
+ });
16227
+
16228
+ // ../../node_modules/.bun/@modelcontextprotocol+sdk@1.30.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
16099
16229
  import process2 from "process";
16100
16230
 
16101
- // node_modules/zod/v4/core/core.js
16231
+ // ../../node_modules/.bun/zod@3.25.76/node_modules/zod/v4/core/core.js
16102
16232
  var NEVER = Object.freeze({
16103
16233
  status: "aborted"
16104
16234
  });
@@ -16158,7 +16288,7 @@ function config(newConfig) {
16158
16288
  Object.assign(globalConfig, newConfig);
16159
16289
  return globalConfig;
16160
16290
  }
16161
- // node_modules/zod/v4/core/util.js
16291
+ // ../../node_modules/.bun/zod@3.25.76/node_modules/zod/v4/core/util.js
16162
16292
  var exports_util = {};
16163
16293
  __export(exports_util, {
16164
16294
  unwrapMessage: () => unwrapMessage,
@@ -16672,7 +16802,7 @@ class Class {
16672
16802
  constructor(..._args) {}
16673
16803
  }
16674
16804
 
16675
- // node_modules/zod/v4/core/errors.js
16805
+ // ../../node_modules/.bun/zod@3.25.76/node_modules/zod/v4/core/errors.js
16676
16806
  var initializer = (inst, def) => {
16677
16807
  inst.name = "$ZodError";
16678
16808
  Object.defineProperty(inst, "_zod", {
@@ -16746,7 +16876,7 @@ function formatError(error, _mapper) {
16746
16876
  return fieldErrors;
16747
16877
  }
16748
16878
 
16749
- // node_modules/zod/v4/core/parse.js
16879
+ // ../../node_modules/.bun/zod@3.25.76/node_modules/zod/v4/core/parse.js
16750
16880
  var _parse = (_Err) => (schema, value, _ctx, _params) => {
16751
16881
  const ctx = _ctx ? Object.assign(_ctx, { async: false }) : { async: false };
16752
16882
  const result = schema._zod.run({ value, issues: [] }, ctx);
@@ -16797,7 +16927,7 @@ var _safeParseAsync = (_Err) => async (schema, value, _ctx) => {
16797
16927
  } : { success: true, data: result.value };
16798
16928
  };
16799
16929
  var safeParseAsync = /* @__PURE__ */ _safeParseAsync($ZodRealError);
16800
- // node_modules/zod/v4/core/regexes.js
16930
+ // ../../node_modules/.bun/zod@3.25.76/node_modules/zod/v4/core/regexes.js
16801
16931
  var cuid = /^[cC][^\s-]{8,}$/;
16802
16932
  var cuid2 = /^[0-9a-z]+$/;
16803
16933
  var ulid = /^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/;
@@ -16855,7 +16985,7 @@ var _null = /null/i;
16855
16985
  var lowercase = /^[^A-Z]*$/;
16856
16986
  var uppercase = /^[^a-z]*$/;
16857
16987
 
16858
- // node_modules/zod/v4/core/checks.js
16988
+ // ../../node_modules/.bun/zod@3.25.76/node_modules/zod/v4/core/checks.js
16859
16989
  var $ZodCheck = /* @__PURE__ */ $constructor("$ZodCheck", (inst, def) => {
16860
16990
  var _a;
16861
16991
  inst._zod ?? (inst._zod = {});
@@ -17239,7 +17369,7 @@ var $ZodCheckOverwrite = /* @__PURE__ */ $constructor("$ZodCheckOverwrite", (ins
17239
17369
  };
17240
17370
  });
17241
17371
 
17242
- // node_modules/zod/v4/core/doc.js
17372
+ // ../../node_modules/.bun/zod@3.25.76/node_modules/zod/v4/core/doc.js
17243
17373
  class Doc {
17244
17374
  constructor(args = []) {
17245
17375
  this.content = [];
@@ -17277,14 +17407,14 @@ class Doc {
17277
17407
  }
17278
17408
  }
17279
17409
 
17280
- // node_modules/zod/v4/core/versions.js
17410
+ // ../../node_modules/.bun/zod@3.25.76/node_modules/zod/v4/core/versions.js
17281
17411
  var version = {
17282
17412
  major: 4,
17283
17413
  minor: 0,
17284
17414
  patch: 0
17285
17415
  };
17286
17416
 
17287
- // node_modules/zod/v4/core/schemas.js
17417
+ // ../../node_modules/.bun/zod@3.25.76/node_modules/zod/v4/core/schemas.js
17288
17418
  var $ZodType = /* @__PURE__ */ $constructor("$ZodType", (inst, def) => {
17289
17419
  var _a;
17290
17420
  inst ?? (inst = {});
@@ -18515,7 +18645,7 @@ function handleRefineResult(result, payload, input, inst) {
18515
18645
  payload.issues.push(issue(_iss));
18516
18646
  }
18517
18647
  }
18518
- // node_modules/zod/v4/locales/en.js
18648
+ // ../../node_modules/.bun/zod@3.25.76/node_modules/zod/v4/locales/en.js
18519
18649
  var parsedType = (data) => {
18520
18650
  const t = typeof data;
18521
18651
  switch (t) {
@@ -18632,7 +18762,7 @@ function en_default() {
18632
18762
  localeError: error()
18633
18763
  };
18634
18764
  }
18635
- // node_modules/zod/v4/core/registries.js
18765
+ // ../../node_modules/.bun/zod@3.25.76/node_modules/zod/v4/core/registries.js
18636
18766
  var $output = Symbol("ZodOutput");
18637
18767
  var $input = Symbol("ZodInput");
18638
18768
 
@@ -18682,7 +18812,7 @@ function registry() {
18682
18812
  return new $ZodRegistry;
18683
18813
  }
18684
18814
  var globalRegistry = /* @__PURE__ */ registry();
18685
- // node_modules/zod/v4/core/api.js
18815
+ // ../../node_modules/.bun/zod@3.25.76/node_modules/zod/v4/core/api.js
18686
18816
  function _string(Class2, params) {
18687
18817
  return new Class2({
18688
18818
  type: "string",
@@ -19117,7 +19247,7 @@ function _refine(Class2, fn, _params) {
19117
19247
  });
19118
19248
  return schema;
19119
19249
  }
19120
- // node_modules/zod/v4/core/to-json-schema.js
19250
+ // ../../node_modules/.bun/zod@3.25.76/node_modules/zod/v4/core/to-json-schema.js
19121
19251
  class JSONSchemaGenerator {
19122
19252
  constructor(params) {
19123
19253
  this.counter = 0;
@@ -19869,7 +19999,7 @@ function isTransforming(_schema, _ctx) {
19869
19999
  }
19870
20000
  throw new Error(`Unknown schema type: ${def.type}`);
19871
20001
  }
19872
- // node_modules/zod/v4/classic/iso.js
20002
+ // ../../node_modules/.bun/zod@3.25.76/node_modules/zod/v4/classic/iso.js
19873
20003
  var exports_iso = {};
19874
20004
  __export(exports_iso, {
19875
20005
  time: () => time2,
@@ -19910,7 +20040,7 @@ function duration2(params) {
19910
20040
  return _isoDuration(ZodISODuration, params);
19911
20041
  }
19912
20042
 
19913
- // node_modules/zod/v4/classic/errors.js
20043
+ // ../../node_modules/.bun/zod@3.25.76/node_modules/zod/v4/classic/errors.js
19914
20044
  var initializer2 = (inst, issues) => {
19915
20045
  $ZodError.init(inst, issues);
19916
20046
  inst.name = "ZodError";
@@ -19939,13 +20069,13 @@ var ZodRealError = $constructor("ZodError", initializer2, {
19939
20069
  Parent: Error
19940
20070
  });
19941
20071
 
19942
- // node_modules/zod/v4/classic/parse.js
20072
+ // ../../node_modules/.bun/zod@3.25.76/node_modules/zod/v4/classic/parse.js
19943
20073
  var parse3 = /* @__PURE__ */ _parse(ZodRealError);
19944
20074
  var parseAsync2 = /* @__PURE__ */ _parseAsync(ZodRealError);
19945
20075
  var safeParse2 = /* @__PURE__ */ _safeParse(ZodRealError);
19946
20076
  var safeParseAsync2 = /* @__PURE__ */ _safeParseAsync(ZodRealError);
19947
20077
 
19948
- // node_modules/zod/v4/classic/schemas.js
20078
+ // ../../node_modules/.bun/zod@3.25.76/node_modules/zod/v4/classic/schemas.js
19949
20079
  var ZodType = /* @__PURE__ */ $constructor("ZodType", (inst, def) => {
19950
20080
  $ZodType.init(inst, def);
19951
20081
  inst.def = def;
@@ -20550,10 +20680,10 @@ function superRefine(fn) {
20550
20680
  function preprocess(fn, schema) {
20551
20681
  return pipe(transform(fn), schema);
20552
20682
  }
20553
- // node_modules/zod/v4/classic/external.js
20683
+ // ../../node_modules/.bun/zod@3.25.76/node_modules/zod/v4/classic/external.js
20554
20684
  config(en_default());
20555
20685
 
20556
- // node_modules/@modelcontextprotocol/sdk/dist/esm/types.js
20686
+ // ../../node_modules/.bun/@modelcontextprotocol+sdk@1.30.0/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js
20557
20687
  var LATEST_PROTOCOL_VERSION = "2025-11-25";
20558
20688
  var DEFAULT_NEGOTIATED_PROTOCOL_VERSION = "2025-03-26";
20559
20689
  var SUPPORTED_PROTOCOL_VERSIONS = [LATEST_PROTOCOL_VERSION, "2025-06-18", "2025-03-26", "2024-11-05", "2024-10-07"];
@@ -21400,9 +21530,19 @@ class UrlElicitationRequiredError extends McpError {
21400
21530
  }
21401
21531
  }
21402
21532
 
21403
- // node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js
21533
+ // ../../node_modules/.bun/@modelcontextprotocol+sdk@1.30.0/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js
21534
+ var STDIO_DEFAULT_MAX_BUFFER_SIZE = 10 * 1024 * 1024;
21535
+
21404
21536
  class ReadBuffer {
21537
+ constructor(options) {
21538
+ this._maxBufferSize = options?.maxBufferSize ?? STDIO_DEFAULT_MAX_BUFFER_SIZE;
21539
+ }
21405
21540
  append(chunk) {
21541
+ const newSize = (this._buffer?.length ?? 0) + chunk.length;
21542
+ if (newSize > this._maxBufferSize) {
21543
+ this.clear();
21544
+ throw new Error(`ReadBuffer exceeded maximum size of ${this._maxBufferSize} bytes`);
21545
+ }
21406
21546
  this._buffer = this._buffer ? Buffer.concat([this._buffer, chunk]) : chunk;
21407
21547
  }
21408
21548
  readMessage() {
@@ -21430,20 +21570,25 @@ function serializeMessage(message) {
21430
21570
  `;
21431
21571
  }
21432
21572
 
21433
- // node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
21573
+ // ../../node_modules/.bun/@modelcontextprotocol+sdk@1.30.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
21434
21574
  class StdioServerTransport {
21435
- constructor(_stdin = process2.stdin, _stdout = process2.stdout) {
21575
+ constructor(_stdin = process2.stdin, _stdout = process2.stdout, options) {
21436
21576
  this._stdin = _stdin;
21437
21577
  this._stdout = _stdout;
21438
- this._readBuffer = new ReadBuffer;
21439
21578
  this._started = false;
21440
21579
  this._ondata = (chunk) => {
21441
- this._readBuffer.append(chunk);
21442
- this.processReadBuffer();
21580
+ try {
21581
+ this._readBuffer.append(chunk);
21582
+ this.processReadBuffer();
21583
+ } catch (error2) {
21584
+ this.onerror?.(error2);
21585
+ this.close().catch(() => {});
21586
+ }
21443
21587
  };
21444
21588
  this._onerror = (error2) => {
21445
21589
  this.onerror?.(error2);
21446
21590
  };
21591
+ this._readBuffer = new ReadBuffer({ maxBufferSize: options?.maxBufferSize });
21447
21592
  }
21448
21593
  async start() {
21449
21594
  if (this._started) {
@@ -21607,7 +21752,7 @@ var connectors = [
21607
21752
  tags: ["ai", "llm", "grok"]
21608
21753
  },
21609
21754
  {
21610
- name: "xai-api-platform",
21755
+ name: "xai" + "-api-platform",
21611
21756
  displayName: "Xai API Platform",
21612
21757
  description: "Xai API Platform REST API for items, events, and search",
21613
21758
  category: "AI & ML",
@@ -22832,7 +22977,7 @@ var connectors = [
22832
22977
  tags: ["ai", "asset-management", "research"]
22833
22978
  },
22834
22979
  {
22835
- name: "xai-grok",
22980
+ name: "xai" + "-grok",
22836
22981
  displayName: "xAI Grok",
22837
22982
  description: "Grok models, Responses API, embeddings, media, files, batches, and collections",
22838
22983
  category: "AI & ML",
@@ -29948,7 +30093,7 @@ function loadConnectorVersions() {
29948
30093
 
29949
30094
  // src/mcp/index.ts
29950
30095
  init_package();
29951
- // node_modules/zod/v4/mini/schemas.js
30096
+ // ../../node_modules/.bun/zod@3.25.76/node_modules/zod/v4/mini/schemas.js
29952
30097
  var ZodMiniType = /* @__PURE__ */ $constructor("ZodMiniType", (inst, def) => {
29953
30098
  if (!inst._zod)
29954
30099
  throw new Error("Uninitialized schema in ZodMiniType.");
@@ -29990,7 +30135,7 @@ function object2(shape, params) {
29990
30135
  };
29991
30136
  return new ZodMiniObject(def);
29992
30137
  }
29993
- // node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js
30138
+ // ../../node_modules/.bun/@modelcontextprotocol+sdk@1.30.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js
29994
30139
  function isZ4Schema(s) {
29995
30140
  const schema = s;
29996
30141
  return !!schema._zod;
@@ -30074,17 +30219,34 @@ function normalizeObjectSchema(schema) {
30074
30219
  }
30075
30220
  return;
30076
30221
  }
30222
+ function getDotPath(path) {
30223
+ if (path.length === 0) {
30224
+ return "object root";
30225
+ }
30226
+ return path.reduce((acc, seg, index) => {
30227
+ if (index === 0) {
30228
+ return String(seg);
30229
+ }
30230
+ if (typeof seg === "number") {
30231
+ return `${acc}[${seg}]`;
30232
+ }
30233
+ return `${acc}.${seg}`;
30234
+ }, "");
30235
+ }
30077
30236
  function getParseErrorMessage(error2) {
30078
30237
  if (error2 && typeof error2 === "object") {
30238
+ if ("issues" in error2 && Array.isArray(error2.issues) && error2.issues.length > 0) {
30239
+ return error2.issues.map((i) => {
30240
+ if (!i.path?.length) {
30241
+ return i.message;
30242
+ }
30243
+ return `${i.message} at ${getDotPath(i.path)}`;
30244
+ }).join(`
30245
+ `);
30246
+ }
30079
30247
  if ("message" in error2 && typeof error2.message === "string") {
30080
30248
  return error2.message;
30081
30249
  }
30082
- if ("issues" in error2 && Array.isArray(error2.issues) && error2.issues.length > 0) {
30083
- const firstIssue = error2.issues[0];
30084
- if (firstIssue && typeof firstIssue === "object" && "message" in firstIssue) {
30085
- return String(firstIssue.message);
30086
- }
30087
- }
30088
30250
  try {
30089
30251
  return JSON.stringify(error2);
30090
30252
  } catch {
@@ -30134,12 +30296,12 @@ function getLiteralValue(schema) {
30134
30296
  return;
30135
30297
  }
30136
30298
 
30137
- // node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js
30299
+ // ../../node_modules/.bun/@modelcontextprotocol+sdk@1.30.0/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js
30138
30300
  function isTerminal(status) {
30139
30301
  return status === "completed" || status === "failed" || status === "cancelled";
30140
30302
  }
30141
30303
 
30142
- // node_modules/zod-to-json-schema/dist/esm/Options.js
30304
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/Options.js
30143
30305
  var ignoreOverride = Symbol("Let zodToJsonSchema decide on which parser to use");
30144
30306
  var defaultOptions = {
30145
30307
  name: undefined,
@@ -30172,7 +30334,7 @@ var getDefaultOptions = (options) => typeof options === "string" ? {
30172
30334
  ...defaultOptions,
30173
30335
  ...options
30174
30336
  };
30175
- // node_modules/zod-to-json-schema/dist/esm/Refs.js
30337
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/Refs.js
30176
30338
  var getRefs = (options) => {
30177
30339
  const _options = getDefaultOptions(options);
30178
30340
  const currentPath = _options.name !== undefined ? [..._options.basePath, _options.definitionPath, _options.name] : _options.basePath;
@@ -30191,7 +30353,7 @@ var getRefs = (options) => {
30191
30353
  ]))
30192
30354
  };
30193
30355
  };
30194
- // node_modules/zod-to-json-schema/dist/esm/errorMessages.js
30356
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/errorMessages.js
30195
30357
  function addErrorMessage(res, key, errorMessage, refs) {
30196
30358
  if (!refs?.errorMessages)
30197
30359
  return;
@@ -30206,7 +30368,7 @@ function setResponseValueAndErrors(res, key, value, errorMessage, refs) {
30206
30368
  res[key] = value;
30207
30369
  addErrorMessage(res, key, errorMessage, refs);
30208
30370
  }
30209
- // node_modules/zod-to-json-schema/dist/esm/getRelativePath.js
30371
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js
30210
30372
  var getRelativePath = (pathA, pathB) => {
30211
30373
  let i = 0;
30212
30374
  for (;i < pathA.length && i < pathB.length; i++) {
@@ -30215,7 +30377,7 @@ var getRelativePath = (pathA, pathB) => {
30215
30377
  }
30216
30378
  return [(pathA.length - i).toString(), ...pathB.slice(i)].join("/");
30217
30379
  };
30218
- // node_modules/zod-to-json-schema/dist/esm/parsers/any.js
30380
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/parsers/any.js
30219
30381
  function parseAnyDef(refs) {
30220
30382
  if (refs.target !== "openAi") {
30221
30383
  return {};
@@ -30231,7 +30393,7 @@ function parseAnyDef(refs) {
30231
30393
  };
30232
30394
  }
30233
30395
 
30234
- // node_modules/zod-to-json-schema/dist/esm/parsers/array.js
30396
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/parsers/array.js
30235
30397
  function parseArrayDef(def, refs) {
30236
30398
  const res = {
30237
30399
  type: "array"
@@ -30255,7 +30417,7 @@ function parseArrayDef(def, refs) {
30255
30417
  return res;
30256
30418
  }
30257
30419
 
30258
- // node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js
30420
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js
30259
30421
  function parseBigintDef(def, refs) {
30260
30422
  const res = {
30261
30423
  type: "integer",
@@ -30301,24 +30463,24 @@ function parseBigintDef(def, refs) {
30301
30463
  return res;
30302
30464
  }
30303
30465
 
30304
- // node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js
30466
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js
30305
30467
  function parseBooleanDef() {
30306
30468
  return {
30307
30469
  type: "boolean"
30308
30470
  };
30309
30471
  }
30310
30472
 
30311
- // node_modules/zod-to-json-schema/dist/esm/parsers/branded.js
30473
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js
30312
30474
  function parseBrandedDef(_def, refs) {
30313
30475
  return parseDef(_def.type._def, refs);
30314
30476
  }
30315
30477
 
30316
- // node_modules/zod-to-json-schema/dist/esm/parsers/catch.js
30478
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js
30317
30479
  var parseCatchDef = (def, refs) => {
30318
30480
  return parseDef(def.innerType._def, refs);
30319
30481
  };
30320
30482
 
30321
- // node_modules/zod-to-json-schema/dist/esm/parsers/date.js
30483
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/parsers/date.js
30322
30484
  function parseDateDef(def, refs, overrideDateStrategy) {
30323
30485
  const strategy = overrideDateStrategy ?? refs.dateStrategy;
30324
30486
  if (Array.isArray(strategy)) {
@@ -30363,7 +30525,7 @@ var integerDateParser = (def, refs) => {
30363
30525
  return res;
30364
30526
  };
30365
30527
 
30366
- // node_modules/zod-to-json-schema/dist/esm/parsers/default.js
30528
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/parsers/default.js
30367
30529
  function parseDefaultDef(_def, refs) {
30368
30530
  return {
30369
30531
  ...parseDef(_def.innerType._def, refs),
@@ -30371,12 +30533,12 @@ function parseDefaultDef(_def, refs) {
30371
30533
  };
30372
30534
  }
30373
30535
 
30374
- // node_modules/zod-to-json-schema/dist/esm/parsers/effects.js
30536
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js
30375
30537
  function parseEffectsDef(_def, refs) {
30376
30538
  return refs.effectStrategy === "input" ? parseDef(_def.schema._def, refs) : parseAnyDef(refs);
30377
30539
  }
30378
30540
 
30379
- // node_modules/zod-to-json-schema/dist/esm/parsers/enum.js
30541
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js
30380
30542
  function parseEnumDef(def) {
30381
30543
  return {
30382
30544
  type: "string",
@@ -30384,7 +30546,7 @@ function parseEnumDef(def) {
30384
30546
  };
30385
30547
  }
30386
30548
 
30387
- // node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js
30549
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js
30388
30550
  var isJsonSchema7AllOfType = (type) => {
30389
30551
  if ("type" in type && type.type === "string")
30390
30552
  return false;
@@ -30426,7 +30588,7 @@ function parseIntersectionDef(def, refs) {
30426
30588
  } : undefined;
30427
30589
  }
30428
30590
 
30429
- // node_modules/zod-to-json-schema/dist/esm/parsers/literal.js
30591
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js
30430
30592
  function parseLiteralDef(def, refs) {
30431
30593
  const parsedType2 = typeof def.value;
30432
30594
  if (parsedType2 !== "bigint" && parsedType2 !== "number" && parsedType2 !== "boolean" && parsedType2 !== "string") {
@@ -30446,7 +30608,7 @@ function parseLiteralDef(def, refs) {
30446
30608
  };
30447
30609
  }
30448
30610
 
30449
- // node_modules/zod-to-json-schema/dist/esm/parsers/string.js
30611
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/parsers/string.js
30450
30612
  var emojiRegex2 = undefined;
30451
30613
  var zodPatterns = {
30452
30614
  cuid: /^[cC][^\s-]{8,}$/,
@@ -30743,7 +30905,7 @@ function stringifyRegExpWithFlags(regex, refs) {
30743
30905
  return pattern;
30744
30906
  }
30745
30907
 
30746
- // node_modules/zod-to-json-schema/dist/esm/parsers/record.js
30908
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/parsers/record.js
30747
30909
  function parseRecordDef(def, refs) {
30748
30910
  if (refs.target === "openAi") {
30749
30911
  console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead.");
@@ -30795,7 +30957,7 @@ function parseRecordDef(def, refs) {
30795
30957
  return schema;
30796
30958
  }
30797
30959
 
30798
- // node_modules/zod-to-json-schema/dist/esm/parsers/map.js
30960
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/parsers/map.js
30799
30961
  function parseMapDef(def, refs) {
30800
30962
  if (refs.mapStrategy === "record") {
30801
30963
  return parseRecordDef(def, refs);
@@ -30820,7 +30982,7 @@ function parseMapDef(def, refs) {
30820
30982
  };
30821
30983
  }
30822
30984
 
30823
- // node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js
30985
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js
30824
30986
  function parseNativeEnumDef(def) {
30825
30987
  const object3 = def.values;
30826
30988
  const actualKeys = Object.keys(def.values).filter((key) => {
@@ -30834,7 +30996,7 @@ function parseNativeEnumDef(def) {
30834
30996
  };
30835
30997
  }
30836
30998
 
30837
- // node_modules/zod-to-json-schema/dist/esm/parsers/never.js
30999
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/parsers/never.js
30838
31000
  function parseNeverDef(refs) {
30839
31001
  return refs.target === "openAi" ? undefined : {
30840
31002
  not: parseAnyDef({
@@ -30844,7 +31006,7 @@ function parseNeverDef(refs) {
30844
31006
  };
30845
31007
  }
30846
31008
 
30847
- // node_modules/zod-to-json-schema/dist/esm/parsers/null.js
31009
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/parsers/null.js
30848
31010
  function parseNullDef(refs) {
30849
31011
  return refs.target === "openApi3" ? {
30850
31012
  enum: ["null"],
@@ -30854,7 +31016,7 @@ function parseNullDef(refs) {
30854
31016
  };
30855
31017
  }
30856
31018
 
30857
- // node_modules/zod-to-json-schema/dist/esm/parsers/union.js
31019
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/parsers/union.js
30858
31020
  var primitiveMappings = {
30859
31021
  ZodString: "string",
30860
31022
  ZodNumber: "number",
@@ -30922,7 +31084,7 @@ var asAnyOf = (def, refs) => {
30922
31084
  return anyOf.length ? { anyOf } : undefined;
30923
31085
  };
30924
31086
 
30925
- // node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js
31087
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js
30926
31088
  function parseNullableDef(def, refs) {
30927
31089
  if (["ZodString", "ZodNumber", "ZodBigInt", "ZodBoolean", "ZodNull"].includes(def.innerType._def.typeName) && (!def.innerType._def.checks || !def.innerType._def.checks.length)) {
30928
31090
  if (refs.target === "openApi3") {
@@ -30954,7 +31116,7 @@ function parseNullableDef(def, refs) {
30954
31116
  return base && { anyOf: [base, { type: "null" }] };
30955
31117
  }
30956
31118
 
30957
- // node_modules/zod-to-json-schema/dist/esm/parsers/number.js
31119
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/parsers/number.js
30958
31120
  function parseNumberDef(def, refs) {
30959
31121
  const res = {
30960
31122
  type: "number"
@@ -31003,7 +31165,7 @@ function parseNumberDef(def, refs) {
31003
31165
  return res;
31004
31166
  }
31005
31167
 
31006
- // node_modules/zod-to-json-schema/dist/esm/parsers/object.js
31168
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/parsers/object.js
31007
31169
  function parseObjectDef(def, refs) {
31008
31170
  const forceOptionalIntoNullable = refs.target === "openAi";
31009
31171
  const result = {
@@ -31073,7 +31235,7 @@ function safeIsOptional(schema) {
31073
31235
  }
31074
31236
  }
31075
31237
 
31076
- // node_modules/zod-to-json-schema/dist/esm/parsers/optional.js
31238
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js
31077
31239
  var parseOptionalDef = (def, refs) => {
31078
31240
  if (refs.currentPath.toString() === refs.propertyPath?.toString()) {
31079
31241
  return parseDef(def.innerType._def, refs);
@@ -31092,7 +31254,7 @@ var parseOptionalDef = (def, refs) => {
31092
31254
  } : parseAnyDef(refs);
31093
31255
  };
31094
31256
 
31095
- // node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js
31257
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js
31096
31258
  var parsePipelineDef = (def, refs) => {
31097
31259
  if (refs.pipeStrategy === "input") {
31098
31260
  return parseDef(def.in._def, refs);
@@ -31112,12 +31274,12 @@ var parsePipelineDef = (def, refs) => {
31112
31274
  };
31113
31275
  };
31114
31276
 
31115
- // node_modules/zod-to-json-schema/dist/esm/parsers/promise.js
31277
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js
31116
31278
  function parsePromiseDef(def, refs) {
31117
31279
  return parseDef(def.type._def, refs);
31118
31280
  }
31119
31281
 
31120
- // node_modules/zod-to-json-schema/dist/esm/parsers/set.js
31282
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/parsers/set.js
31121
31283
  function parseSetDef(def, refs) {
31122
31284
  const items = parseDef(def.valueType._def, {
31123
31285
  ...refs,
@@ -31137,7 +31299,7 @@ function parseSetDef(def, refs) {
31137
31299
  return schema;
31138
31300
  }
31139
31301
 
31140
- // node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js
31302
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js
31141
31303
  function parseTupleDef(def, refs) {
31142
31304
  if (def.rest) {
31143
31305
  return {
@@ -31165,24 +31327,24 @@ function parseTupleDef(def, refs) {
31165
31327
  }
31166
31328
  }
31167
31329
 
31168
- // node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js
31330
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js
31169
31331
  function parseUndefinedDef(refs) {
31170
31332
  return {
31171
31333
  not: parseAnyDef(refs)
31172
31334
  };
31173
31335
  }
31174
31336
 
31175
- // node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js
31337
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js
31176
31338
  function parseUnknownDef(refs) {
31177
31339
  return parseAnyDef(refs);
31178
31340
  }
31179
31341
 
31180
- // node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js
31342
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js
31181
31343
  var parseReadonlyDef = (def, refs) => {
31182
31344
  return parseDef(def.innerType._def, refs);
31183
31345
  };
31184
31346
 
31185
- // node_modules/zod-to-json-schema/dist/esm/selectParser.js
31347
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/selectParser.js
31186
31348
  var selectParser = (def, typeName, refs) => {
31187
31349
  switch (typeName) {
31188
31350
  case ZodFirstPartyTypeKind.ZodString:
@@ -31260,7 +31422,7 @@ var selectParser = (def, typeName, refs) => {
31260
31422
  }
31261
31423
  };
31262
31424
 
31263
- // node_modules/zod-to-json-schema/dist/esm/parseDef.js
31425
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/parseDef.js
31264
31426
  function parseDef(def, refs, forceResolution = false) {
31265
31427
  const seenItem = refs.seen.get(def);
31266
31428
  if (refs.override) {
@@ -31315,7 +31477,7 @@ var addMeta = (def, refs, jsonSchema) => {
31315
31477
  }
31316
31478
  return jsonSchema;
31317
31479
  };
31318
- // node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js
31480
+ // ../../node_modules/.bun/zod-to-json-schema@3.25.2+27912429049419a2/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js
31319
31481
  var zodToJsonSchema = (schema, options) => {
31320
31482
  const refs = getRefs(options);
31321
31483
  let definitions = typeof options === "object" && options.definitions ? Object.entries(options.definitions).reduce((acc, [name2, schema2]) => ({
@@ -31375,7 +31537,7 @@ var zodToJsonSchema = (schema, options) => {
31375
31537
  }
31376
31538
  return combined;
31377
31539
  };
31378
- // node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js
31540
+ // ../../node_modules/.bun/@modelcontextprotocol+sdk@1.30.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js
31379
31541
  function mapMiniTarget(t) {
31380
31542
  if (!t)
31381
31543
  return "draft-7";
@@ -31417,7 +31579,7 @@ function parseWithCompat(schema, data) {
31417
31579
  return result.data;
31418
31580
  }
31419
31581
 
31420
- // node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js
31582
+ // ../../node_modules/.bun/@modelcontextprotocol+sdk@1.30.0/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js
31421
31583
  var DEFAULT_REQUEST_TIMEOUT_MSEC = 60000;
31422
31584
 
31423
31585
  class Protocol {
@@ -32258,7 +32420,7 @@ function mergeCapabilities(base, additional) {
32258
32420
  return result;
32259
32421
  }
32260
32422
 
32261
- // node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js
32423
+ // ../../node_modules/.bun/@modelcontextprotocol+sdk@1.30.0/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js
32262
32424
  var import_ajv = __toESM(require_ajv(), 1);
32263
32425
  var import_ajv_formats = __toESM(require_dist(), 1);
32264
32426
  function createDefaultAjvInstance() {
@@ -32298,7 +32460,7 @@ class AjvJsonSchemaValidator {
32298
32460
  }
32299
32461
  }
32300
32462
 
32301
- // node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.js
32463
+ // ../../node_modules/.bun/@modelcontextprotocol+sdk@1.30.0/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.js
32302
32464
  class ExperimentalServerTasks {
32303
32465
  constructor(_server) {
32304
32466
  this._server = _server;
@@ -32376,7 +32538,7 @@ class ExperimentalServerTasks {
32376
32538
  }
32377
32539
  }
32378
32540
 
32379
- // node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/helpers.js
32541
+ // ../../node_modules/.bun/@modelcontextprotocol+sdk@1.30.0/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/helpers.js
32380
32542
  function assertToolsCallTaskCapability(requests, method, entityName) {
32381
32543
  if (!requests) {
32382
32544
  throw new Error(`${entityName} does not support task creation (required for ${method})`);
@@ -32411,7 +32573,7 @@ function assertClientRequestTaskCapability(requests, method, entityName) {
32411
32573
  }
32412
32574
  }
32413
32575
 
32414
- // node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js
32576
+ // ../../node_modules/.bun/@modelcontextprotocol+sdk@1.30.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js
32415
32577
  class Server extends Protocol {
32416
32578
  constructor(_serverInfo, options) {
32417
32579
  super(options);
@@ -32459,16 +32621,7 @@ class Server extends Protocol {
32459
32621
  if (!methodSchema) {
32460
32622
  throw new Error("Schema is missing a method literal");
32461
32623
  }
32462
- let methodValue;
32463
- if (isZ4Schema(methodSchema)) {
32464
- const v4Schema = methodSchema;
32465
- const v4Def = v4Schema._zod?.def;
32466
- methodValue = v4Def?.value ?? v4Schema.value;
32467
- } else {
32468
- const v3Schema = methodSchema;
32469
- const legacyDef = v3Schema._def;
32470
- methodValue = legacyDef?.value ?? v3Schema.value;
32471
- }
32624
+ const methodValue = getLiteralValue(methodSchema);
32472
32625
  if (typeof methodValue !== "string") {
32473
32626
  throw new Error("Schema method literal must be a string");
32474
32627
  }
@@ -32744,7 +32897,7 @@ class Server extends Protocol {
32744
32897
  }
32745
32898
  }
32746
32899
 
32747
- // node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js
32900
+ // ../../node_modules/.bun/@modelcontextprotocol+sdk@1.30.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js
32748
32901
  var COMPLETABLE_SYMBOL = Symbol.for("mcp.completable");
32749
32902
  function isCompletable(schema) {
32750
32903
  return !!schema && typeof schema === "object" && COMPLETABLE_SYMBOL in schema;
@@ -32758,7 +32911,7 @@ var McpZodTypeKind;
32758
32911
  McpZodTypeKind2["Completable"] = "McpCompletable";
32759
32912
  })(McpZodTypeKind || (McpZodTypeKind = {}));
32760
32913
 
32761
- // node_modules/@modelcontextprotocol/sdk/dist/esm/shared/toolNameValidation.js
32914
+ // ../../node_modules/.bun/@modelcontextprotocol+sdk@1.30.0/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/toolNameValidation.js
32762
32915
  var TOOL_NAME_REGEX = /^[A-Za-z0-9._-]{1,128}$/;
32763
32916
  function validateToolName(name) {
32764
32917
  const warnings = [];
@@ -32816,7 +32969,7 @@ function validateAndWarnToolName(name) {
32816
32969
  return result.isValid;
32817
32970
  }
32818
32971
 
32819
- // node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/mcp-server.js
32972
+ // ../../node_modules/.bun/@modelcontextprotocol+sdk@1.30.0/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/mcp-server.js
32820
32973
  class ExperimentalMcpServerTasks {
32821
32974
  constructor(_mcpServer) {
32822
32975
  this._mcpServer = _mcpServer;
@@ -32831,7 +32984,7 @@ class ExperimentalMcpServerTasks {
32831
32984
  }
32832
32985
  }
32833
32986
 
32834
- // node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js
32987
+ // ../../node_modules/.bun/@modelcontextprotocol+sdk@1.30.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js
32835
32988
  init_zod();
32836
32989
 
32837
32990
  class McpServer {
@@ -35156,17 +35309,54 @@ function buildServer() {
35156
35309
  return server;
35157
35310
  }
35158
35311
 
35159
- // node_modules/@modelcontextprotocol/sdk/dist/esm/server/webStandardStreamableHttp.js
35312
+ // ../../node_modules/.bun/@modelcontextprotocol+sdk@1.30.0/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/mediaType.js
35313
+ var import_content_type = __toESM(require_content_type(), 1);
35314
+ function mediaTypeEssence(header) {
35315
+ if (!header) {
35316
+ return;
35317
+ }
35318
+ try {
35319
+ return import_content_type.default.parse(header).type;
35320
+ } catch {
35321
+ const essence = (header.split(";", 1)[0] ?? "").trim().toLowerCase();
35322
+ if (essence === "" || header.slice(essence.length).includes(",")) {
35323
+ return;
35324
+ }
35325
+ return essence;
35326
+ }
35327
+ }
35328
+ function isJsonContentType(header) {
35329
+ if (header === "application/json") {
35330
+ return true;
35331
+ }
35332
+ return mediaTypeEssence(header) === "application/json";
35333
+ }
35334
+
35335
+ // ../../node_modules/.bun/@modelcontextprotocol+sdk@1.30.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/sseKeepAlive.js
35336
+ var DEFAULT_SSE_KEEP_ALIVE_MS = 15000;
35337
+ var MAX_TIMER_DELAY_MS = 2 ** 31 - 1;
35338
+ function armSseKeepAlive(intervalMs, onTick) {
35339
+ if (!Number.isFinite(intervalMs) || intervalMs < 1) {
35340
+ return;
35341
+ }
35342
+ const timer = setInterval(onTick, Math.min(intervalMs, MAX_TIMER_DELAY_MS));
35343
+ timer.unref?.();
35344
+ return timer;
35345
+ }
35346
+
35347
+ // ../../node_modules/.bun/@modelcontextprotocol+sdk@1.30.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/webStandardStreamableHttp.js
35160
35348
  class WebStandardStreamableHTTPServerTransport {
35161
35349
  constructor(options = {}) {
35162
35350
  this._started = false;
35163
35351
  this._hasHandledRequest = false;
35164
35352
  this._streamMapping = new Map;
35165
35353
  this._requestToStreamMapping = new Map;
35354
+ this._resumableStreams = new Set;
35166
35355
  this._requestResponseMap = new Map;
35167
35356
  this._initialized = false;
35168
35357
  this._enableJsonResponse = false;
35169
35358
  this._standaloneSseStreamId = "_GET_stream";
35359
+ this._closed = false;
35170
35360
  this.sessionIdGenerator = options.sessionIdGenerator;
35171
35361
  this._enableJsonResponse = options.enableJsonResponse ?? false;
35172
35362
  this._eventStore = options.eventStore;
@@ -35176,6 +35366,22 @@ class WebStandardStreamableHTTPServerTransport {
35176
35366
  this._allowedOrigins = options.allowedOrigins;
35177
35367
  this._enableDnsRebindingProtection = options.enableDnsRebindingProtection ?? false;
35178
35368
  this._retryInterval = options.retryInterval;
35369
+ this._keepAliveMs = options.keepAliveMs ?? DEFAULT_SSE_KEEP_ALIVE_MS;
35370
+ }
35371
+ startKeepAlive(controller, encoder) {
35372
+ if (this._closed)
35373
+ return;
35374
+ const timer = armSseKeepAlive(this._keepAliveMs, () => {
35375
+ try {
35376
+ controller.enqueue(encoder.encode(`: keepalive
35377
+
35378
+ `));
35379
+ } catch {
35380
+ if (timer !== undefined)
35381
+ clearInterval(timer);
35382
+ }
35383
+ });
35384
+ return timer;
35179
35385
  }
35180
35386
  async start() {
35181
35387
  if (this._started) {
@@ -35223,6 +35429,9 @@ class WebStandardStreamableHTTPServerTransport {
35223
35429
  return;
35224
35430
  }
35225
35431
  async handleRequest(req, options) {
35432
+ if (this._closed) {
35433
+ return this.createJsonErrorResponse(404, -32001, "Session not found");
35434
+ }
35226
35435
  if (!this.sessionIdGenerator && this._hasHandledRequest) {
35227
35436
  throw new Error("Stateless transport cannot be reused across requests. Create a new transport per request.");
35228
35437
  }
@@ -35262,6 +35471,7 @@ data:
35262
35471
  `;
35263
35472
  }
35264
35473
  controller.enqueue(encoder.encode(primingEvent));
35474
+ this._resumableStreams.add(streamId);
35265
35475
  }
35266
35476
  async handleGetRequest(req) {
35267
35477
  const acceptHeader = req.headers.get("accept");
@@ -35289,18 +35499,25 @@ data:
35289
35499
  }
35290
35500
  const encoder = new TextEncoder;
35291
35501
  let streamController;
35502
+ let keepAliveTimer = undefined;
35292
35503
  const readable = new ReadableStream({
35293
35504
  start: (controller) => {
35294
35505
  streamController = controller;
35295
35506
  },
35296
35507
  cancel: () => {
35297
- this._streamMapping.delete(this._standaloneSseStreamId);
35508
+ if (keepAliveTimer !== undefined) {
35509
+ clearInterval(keepAliveTimer);
35510
+ }
35511
+ if (this._streamMapping.get(this._standaloneSseStreamId)?.controller === streamController) {
35512
+ this._streamMapping.delete(this._standaloneSseStreamId);
35513
+ }
35298
35514
  }
35299
35515
  });
35300
35516
  const headers = {
35301
35517
  "Content-Type": "text/event-stream",
35302
35518
  "Cache-Control": "no-cache, no-transform",
35303
- Connection: "keep-alive"
35519
+ Connection: "keep-alive",
35520
+ "X-Accel-Buffering": "no"
35304
35521
  };
35305
35522
  if (this.sessionId !== undefined) {
35306
35523
  headers["mcp-session-id"] = this.sessionId;
@@ -35309,12 +35526,16 @@ data:
35309
35526
  controller: streamController,
35310
35527
  encoder,
35311
35528
  cleanup: () => {
35529
+ if (keepAliveTimer !== undefined) {
35530
+ clearInterval(keepAliveTimer);
35531
+ }
35312
35532
  this._streamMapping.delete(this._standaloneSseStreamId);
35313
35533
  try {
35314
35534
  streamController.close();
35315
35535
  } catch {}
35316
35536
  }
35317
35537
  });
35538
+ keepAliveTimer = this.startKeepAlive(streamController, encoder);
35318
35539
  return new Response(readable, { headers });
35319
35540
  }
35320
35541
  async replayEvents(lastEventId) {
@@ -35338,20 +35559,33 @@ data:
35338
35559
  const headers = {
35339
35560
  "Content-Type": "text/event-stream",
35340
35561
  "Cache-Control": "no-cache, no-transform",
35341
- Connection: "keep-alive"
35562
+ Connection: "keep-alive",
35563
+ "X-Accel-Buffering": "no"
35342
35564
  };
35343
35565
  if (this.sessionId !== undefined) {
35344
35566
  headers["mcp-session-id"] = this.sessionId;
35345
35567
  }
35346
35568
  const encoder = new TextEncoder;
35347
35569
  let streamController;
35570
+ let keepAliveTimer = undefined;
35571
+ let replayedStreamId = undefined;
35572
+ let cancelled = false;
35348
35573
  const readable = new ReadableStream({
35349
35574
  start: (controller) => {
35350
35575
  streamController = controller;
35351
35576
  },
35352
- cancel: () => {}
35577
+ cancel: () => {
35578
+ cancelled = true;
35579
+ if (keepAliveTimer !== undefined) {
35580
+ clearInterval(keepAliveTimer);
35581
+ }
35582
+ if (replayedStreamId !== undefined && this._streamMapping.get(replayedStreamId)?.controller === streamController) {
35583
+ this._streamMapping.delete(replayedStreamId);
35584
+ }
35585
+ }
35353
35586
  });
35354
- const replayedStreamId = await this._eventStore.replayEventsAfter(lastEventId, {
35587
+ const replayedEventIds = new Set;
35588
+ replayedStreamId = await this._eventStore.replayEventsAfter(lastEventId, {
35355
35589
  send: async (eventId, message) => {
35356
35590
  const success3 = this.writeSSEEvent(streamController, encoder, message, eventId);
35357
35591
  if (!success3) {
@@ -35359,19 +35593,34 @@ data:
35359
35593
  try {
35360
35594
  streamController.close();
35361
35595
  } catch {}
35596
+ } else {
35597
+ replayedEventIds.add(eventId);
35362
35598
  }
35363
35599
  }
35364
35600
  });
35601
+ if (this._closed || cancelled) {
35602
+ try {
35603
+ streamController.close();
35604
+ } catch {}
35605
+ return this.createJsonErrorResponse(404, -32001, "Session not found");
35606
+ }
35607
+ this._streamMapping.get(replayedStreamId)?.cleanup();
35365
35608
  this._streamMapping.set(replayedStreamId, {
35366
35609
  controller: streamController,
35367
35610
  encoder,
35611
+ replayedEventIds,
35368
35612
  cleanup: () => {
35613
+ if (keepAliveTimer !== undefined) {
35614
+ clearInterval(keepAliveTimer);
35615
+ }
35369
35616
  this._streamMapping.delete(replayedStreamId);
35370
35617
  try {
35371
35618
  streamController.close();
35372
35619
  } catch {}
35373
35620
  }
35374
35621
  });
35622
+ this._resumableStreams.add(replayedStreamId);
35623
+ keepAliveTimer = this.startKeepAlive(streamController, encoder);
35375
35624
  return new Response(readable, { headers });
35376
35625
  } catch (error2) {
35377
35626
  this.onerror?.(error2);
@@ -35421,7 +35670,7 @@ data:
35421
35670
  return this.createJsonErrorResponse(406, -32000, "Not Acceptable: Client must accept both application/json and text/event-stream");
35422
35671
  }
35423
35672
  const ct = req.headers.get("content-type");
35424
- if (!ct || !ct.includes("application/json")) {
35673
+ if (!isJsonContentType(ct)) {
35425
35674
  this.onerror?.(new Error("Unsupported Media Type: Content-Type must be application/json"));
35426
35675
  return this.createJsonErrorResponse(415, -32000, "Unsupported Media Type: Content-Type must be application/json");
35427
35676
  }
@@ -35451,6 +35700,9 @@ data:
35451
35700
  this.onerror?.(new Error("Parse error: Invalid JSON-RPC message"));
35452
35701
  return this.createJsonErrorResponse(400, -32700, "Parse error: Invalid JSON-RPC message");
35453
35702
  }
35703
+ if (this._closed) {
35704
+ return this.createJsonErrorResponse(404, -32001, "Session not found");
35705
+ }
35454
35706
  const isInitializationRequest = messages.some(isInitializeRequest);
35455
35707
  if (isInitializationRequest) {
35456
35708
  if (this._initialized && this.sessionId !== undefined) {
@@ -35477,6 +35729,9 @@ data:
35477
35729
  return protocolError;
35478
35730
  }
35479
35731
  }
35732
+ if (this._closed) {
35733
+ return this.createJsonErrorResponse(404, -32001, "Session not found");
35734
+ }
35480
35735
  const hasRequests = messages.some(isJSONRPCRequest);
35481
35736
  if (!hasRequests) {
35482
35737
  for (const message of messages) {
@@ -35507,18 +35762,25 @@ data:
35507
35762
  }
35508
35763
  const encoder = new TextEncoder;
35509
35764
  let streamController;
35765
+ let keepAliveTimer = undefined;
35510
35766
  const readable = new ReadableStream({
35511
35767
  start: (controller) => {
35512
35768
  streamController = controller;
35513
35769
  },
35514
35770
  cancel: () => {
35515
- this._streamMapping.delete(streamId);
35771
+ if (keepAliveTimer !== undefined) {
35772
+ clearInterval(keepAliveTimer);
35773
+ }
35774
+ if (this._streamMapping.get(streamId)?.controller === streamController) {
35775
+ this._streamMapping.delete(streamId);
35776
+ }
35516
35777
  }
35517
35778
  });
35518
35779
  const headers = {
35519
35780
  "Content-Type": "text/event-stream",
35520
- "Cache-Control": "no-cache",
35521
- Connection: "keep-alive"
35781
+ "Cache-Control": "no-cache, no-transform",
35782
+ Connection: "keep-alive",
35783
+ "X-Accel-Buffering": "no"
35522
35784
  };
35523
35785
  if (this.sessionId !== undefined) {
35524
35786
  headers["mcp-session-id"] = this.sessionId;
@@ -35529,6 +35791,9 @@ data:
35529
35791
  controller: streamController,
35530
35792
  encoder,
35531
35793
  cleanup: () => {
35794
+ if (keepAliveTimer !== undefined) {
35795
+ clearInterval(keepAliveTimer);
35796
+ }
35532
35797
  this._streamMapping.delete(streamId);
35533
35798
  try {
35534
35799
  streamController.close();
@@ -35538,19 +35803,33 @@ data:
35538
35803
  this._requestToStreamMapping.set(message.id, streamId);
35539
35804
  }
35540
35805
  }
35541
- await this.writePrimingEvent(streamController, encoder, streamId, clientProtocolVersion);
35542
- for (const message of messages) {
35543
- let closeSSEStream;
35544
- let closeStandaloneSSEStream;
35545
- if (isJSONRPCRequest(message) && this._eventStore && clientProtocolVersion >= "2025-11-25") {
35546
- closeSSEStream = () => {
35547
- this.closeSSEStream(message.id);
35548
- };
35549
- closeStandaloneSSEStream = () => {
35550
- this.closeStandaloneSSEStream();
35551
- };
35806
+ try {
35807
+ await this.writePrimingEvent(streamController, encoder, streamId, clientProtocolVersion);
35808
+ for (const message of messages) {
35809
+ let closeSSEStream;
35810
+ let closeStandaloneSSEStream;
35811
+ if (isJSONRPCRequest(message) && this._eventStore && clientProtocolVersion >= "2025-11-25") {
35812
+ closeSSEStream = () => {
35813
+ this.closeSSEStream(message.id);
35814
+ };
35815
+ closeStandaloneSSEStream = () => {
35816
+ this.closeStandaloneSSEStream();
35817
+ };
35818
+ }
35819
+ this.onmessage?.(message, { authInfo: options?.authInfo, requestInfo, closeSSEStream, closeStandaloneSSEStream });
35552
35820
  }
35553
- this.onmessage?.(message, { authInfo: options?.authInfo, requestInfo, closeSSEStream, closeStandaloneSSEStream });
35821
+ } catch (error2) {
35822
+ this._streamMapping.get(streamId)?.cleanup();
35823
+ this._resumableStreams.delete(streamId);
35824
+ for (const message of messages) {
35825
+ if (isJSONRPCRequest(message)) {
35826
+ this._requestToStreamMapping.delete(message.id);
35827
+ }
35828
+ }
35829
+ throw error2;
35830
+ }
35831
+ if (this._streamMapping.get(streamId)?.controller === streamController) {
35832
+ keepAliveTimer = this.startKeepAlive(streamController, encoder);
35554
35833
  }
35555
35834
  return new Response(readable, { status: 200, headers });
35556
35835
  } catch (error2) {
@@ -35567,9 +35846,12 @@ data:
35567
35846
  if (protocolError) {
35568
35847
  return protocolError;
35569
35848
  }
35570
- await Promise.resolve(this._onsessionclosed?.(this.sessionId));
35571
- await this.close();
35572
- return new Response(null, { status: 200 });
35849
+ try {
35850
+ await Promise.resolve(this._onsessionclosed?.(this.sessionId));
35851
+ return new Response(null, { status: 200 });
35852
+ } finally {
35853
+ await this.close();
35854
+ }
35573
35855
  }
35574
35856
  validateSession(req) {
35575
35857
  if (this.sessionIdGenerator === undefined) {
@@ -35599,11 +35881,16 @@ data:
35599
35881
  return;
35600
35882
  }
35601
35883
  async close() {
35884
+ if (this._closed) {
35885
+ return;
35886
+ }
35887
+ this._closed = true;
35602
35888
  this._streamMapping.forEach(({ cleanup }) => {
35603
35889
  cleanup();
35604
35890
  });
35605
35891
  this._streamMapping.clear();
35606
35892
  this._requestResponseMap.clear();
35893
+ this._resumableStreams.clear();
35607
35894
  this.onclose?.();
35608
35895
  }
35609
35896
  closeSSEStream(requestId) {
@@ -35638,7 +35925,7 @@ data:
35638
35925
  if (standaloneSse === undefined) {
35639
35926
  return;
35640
35927
  }
35641
- if (standaloneSse.controller && standaloneSse.encoder) {
35928
+ if (standaloneSse.controller && standaloneSse.encoder && (eventId === undefined || !standaloneSse.replayedEventIds?.has(eventId))) {
35642
35929
  this.writeSSEEvent(standaloneSse.controller, standaloneSse.encoder, message, eventId);
35643
35930
  }
35644
35931
  return;
@@ -35647,13 +35934,19 @@ data:
35647
35934
  if (!streamId) {
35648
35935
  throw new Error(`No connection established for request ID: ${String(requestId)}`);
35649
35936
  }
35650
- const stream = this._streamMapping.get(streamId);
35651
- if (!this._enableJsonResponse && stream?.controller && stream?.encoder) {
35937
+ let stream = this._streamMapping.get(streamId);
35938
+ if (!this._enableJsonResponse) {
35652
35939
  let eventId;
35653
35940
  if (this._eventStore) {
35654
35941
  eventId = await this._eventStore.storeEvent(streamId, message);
35942
+ stream = this._streamMapping.get(streamId);
35943
+ }
35944
+ if (stream?.controller && stream?.encoder && (eventId === undefined || !stream.replayedEventIds?.has(eventId))) {
35945
+ const written = this.writeSSEEvent(stream.controller, stream.encoder, message, eventId);
35946
+ if (written && eventId !== undefined) {
35947
+ this._resumableStreams.add(streamId);
35948
+ }
35655
35949
  }
35656
- this.writeSSEEvent(stream.controller, stream.encoder, message, eventId);
35657
35950
  }
35658
35951
  if (isJSONRPCResultResponse(message) || isJSONRPCErrorResponse(message)) {
35659
35952
  this._requestResponseMap.set(requestId, message);
@@ -35661,6 +35954,25 @@ data:
35661
35954
  const allResponsesReady = relatedIds.every((id) => this._requestResponseMap.has(id));
35662
35955
  if (allResponsesReady) {
35663
35956
  if (!stream) {
35957
+ if (this._closed) {
35958
+ for (const id of relatedIds) {
35959
+ this._requestResponseMap.delete(id);
35960
+ this._requestToStreamMapping.delete(id);
35961
+ }
35962
+ return;
35963
+ }
35964
+ if (!this._enableJsonResponse && this._eventStore && this._resumableStreams.has(streamId)) {
35965
+ for (const id of relatedIds) {
35966
+ this._requestResponseMap.delete(id);
35967
+ this._requestToStreamMapping.delete(id);
35968
+ }
35969
+ this._resumableStreams.delete(streamId);
35970
+ return;
35971
+ }
35972
+ for (const id of relatedIds) {
35973
+ this._requestResponseMap.delete(id);
35974
+ this._requestToStreamMapping.delete(id);
35975
+ }
35664
35976
  throw new Error(`No connection established for request ID: ${String(requestId)}`);
35665
35977
  }
35666
35978
  if (this._enableJsonResponse && stream.resolveJson) {
@@ -35683,6 +35995,7 @@ data:
35683
35995
  this._requestResponseMap.delete(id);
35684
35996
  this._requestToStreamMapping.delete(id);
35685
35997
  }
35998
+ this._resumableStreams.delete(streamId);
35686
35999
  }
35687
36000
  }
35688
36001
  }