@farm.js/core 0.1.34 → 0.1.36
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.
- package/dist/agent-mcp-BVExL8rZ.d.mts +109 -0
- package/dist/agent-mcp-handler-LPJ2CADR.mjs +19 -0
- package/dist/agent-mcp-handler-SJAHFSPI.cjs +19 -0
- package/dist/agent-mcp-luzfXK-P.d.ts +109 -0
- package/dist/agent-runtime.cjs +5 -3
- package/dist/agent-runtime.d.mts +4 -5
- package/dist/agent-runtime.d.ts +4 -5
- package/dist/agent-runtime.mjs +4 -2
- package/dist/api/route-manager.cjs +7 -7
- package/dist/api/route-manager.d.mts +15 -10
- package/dist/api/route-manager.d.ts +15 -10
- package/dist/api/route-manager.mjs +6 -6
- package/dist/api/runtime.cjs +7 -5
- package/dist/api/runtime.d.mts +7 -66
- package/dist/api/runtime.d.ts +7 -66
- package/dist/api/runtime.mjs +7 -5
- package/dist/api.cjs +9 -9
- package/dist/api.d.mts +8 -9
- package/dist/api.d.ts +8 -9
- package/dist/api.mjs +8 -8
- package/dist/{app-q4rmZlXK.d.mts → app-BukwkFIu.d.mts} +52 -12
- package/dist/{app-DgotYGbq.d.ts → app-Yfa2dsFy.d.ts} +52 -12
- package/dist/app-markdown.cjs +6 -6
- package/dist/app-markdown.d.mts +5 -6
- package/dist/app-markdown.d.ts +5 -6
- package/dist/app-markdown.mjs +5 -5
- package/dist/{chunk-XV5DJTBX.mjs → chunk-276VJSM6.mjs} +627 -260
- package/dist/{chunk-36MK5YCW.cjs → chunk-2YTDKNH3.cjs} +547 -240
- package/dist/{chunk-VHANUNEG.mjs → chunk-35GKZR22.mjs} +2 -2
- package/dist/{chunk-LR5QSC2P.mjs → chunk-35WV46VL.mjs} +399 -92
- package/dist/{chunk-UX5S4JEO.cjs → chunk-42NHY7HW.cjs} +57 -7
- package/dist/{chunk-U4PTAHW3.mjs → chunk-4E5AEDKY.mjs} +7 -11
- package/dist/{chunk-NGVORZVZ.mjs → chunk-4E5WBPEG.mjs} +73 -351
- package/dist/{chunk-AQZFOP7S.mjs → chunk-4GLOOWKE.mjs} +5 -5
- package/dist/{chunk-7BT4H4P7.cjs → chunk-4NU4GGTC.cjs} +2 -2
- package/dist/{chunk-AGC75XAE.mjs → chunk-4WCZJQUO.mjs} +55 -5
- package/dist/chunk-4WQ6PGSJ.cjs +367 -0
- package/dist/{chunk-QCFFHV5H.mjs → chunk-4WVJLURN.mjs} +1 -1
- package/dist/chunk-6SJ2KJTA.mjs +314 -0
- package/dist/chunk-75RZHGLS.cjs +135 -0
- package/dist/{chunk-P64MIF5B.cjs → chunk-ADEA7PN3.cjs} +483 -60
- package/dist/{chunk-YQVSHTMR.mjs → chunk-AJQTP4OO.mjs} +1 -1
- package/dist/{chunk-TA5G2HWD.cjs → chunk-AO6RYU5N.cjs} +31 -28
- package/dist/{chunk-MOKLYNHV.cjs → chunk-BO36SELV.cjs} +6 -6
- package/dist/{chunk-7Y6ZNFPX.mjs → chunk-BPOF5U4N.mjs} +17 -7
- package/dist/{chunk-JHWOVJ3M.mjs → chunk-BUGNQIHC.mjs} +5 -0
- package/dist/{chunk-TDFPACVX.cjs → chunk-CBJJH36A.cjs} +50 -25
- package/dist/{chunk-VKNHTSAP.cjs → chunk-CGBDNNSM.cjs} +2 -2
- package/dist/chunk-CI6E3UOH.cjs +314 -0
- package/dist/{chunk-QZCT2CQ4.mjs → chunk-CXEN47J3.mjs} +64 -2
- package/dist/{chunk-ATK2R4CH.cjs → chunk-D227TIEN.cjs} +14 -4
- package/dist/{chunk-QGYRXFU2.cjs → chunk-D2BB47NB.cjs} +8 -8
- package/dist/chunk-DTSROJ5J.mjs +367 -0
- package/dist/{chunk-ODBZYBAB.cjs → chunk-DZ5ZVB2K.cjs} +1 -1
- package/dist/{chunk-ROUTX2E5.cjs → chunk-ECKF2BAM.cjs} +18 -5
- package/dist/{chunk-3LUF2PE2.cjs → chunk-EK4QAEFZ.cjs} +67 -5
- package/dist/{chunk-VVBO3QH7.mjs → chunk-ENLZ4R3Y.mjs} +10 -1
- package/dist/{chunk-XXJU7FCC.cjs → chunk-EUV4YR3V.cjs} +2 -2
- package/dist/{chunk-HR5KPHC2.mjs → chunk-EWET4D2Y.mjs} +1 -1
- package/dist/{chunk-PXKIEXZD.mjs → chunk-F5QO4FNE.mjs} +1 -1
- package/dist/{chunk-MIDIZJZC.cjs → chunk-FO427P6I.cjs} +22 -12
- package/dist/{chunk-AWC4VUZL.cjs → chunk-GQ3Z3IZI.cjs} +14 -14
- package/dist/{chunk-JDPAKVS4.mjs → chunk-GQRWBCWK.mjs} +8 -5
- package/dist/{chunk-75WGQVQA.cjs → chunk-HITLGIAO.cjs} +10 -1
- package/dist/{chunk-WNNYOOIB.mjs → chunk-HOXTWRGB.mjs} +1 -1
- package/dist/{chunk-KROWKCUH.cjs → chunk-JGLC4TO3.cjs} +8 -1
- package/dist/{chunk-QJ3J6MZT.cjs → chunk-JNUWCDTF.cjs} +8 -8
- package/dist/{chunk-BTAG7LI7.cjs → chunk-JZVADIOD.cjs} +2 -2
- package/dist/{chunk-EM6SBQKM.cjs → chunk-KIIMAWOJ.cjs} +37 -2
- package/dist/{chunk-43FMW62B.mjs → chunk-KMTGADN3.mjs} +28 -0
- package/dist/{chunk-GOABMOX3.mjs → chunk-LSZAVSGY.mjs} +468 -45
- package/dist/{chunk-2NQQ5H5G.cjs → chunk-M7MKQXAF.cjs} +2 -1
- package/dist/{chunk-GNSDTTWZ.mjs → chunk-MKYBIIAQ.mjs} +30 -5
- package/dist/{chunk-ZHPHJPQP.cjs → chunk-MRMI32SN.cjs} +88 -366
- package/dist/{chunk-7M52YUMY.cjs → chunk-N2NAS2AM.cjs} +2 -2
- package/dist/{chunk-SJVKK4JE.cjs → chunk-NMHWYWDR.cjs} +1144 -777
- package/dist/chunk-NRDBW4MP.mjs +45 -0
- package/dist/{chunk-657WJNRY.mjs → chunk-O6I6VWKK.mjs} +20 -5
- package/dist/{chunk-O27L4YAA.mjs → chunk-O6WAEAX3.mjs} +2 -2
- package/dist/chunk-OFZUJMCU.mjs +601 -0
- package/dist/{chunk-ZKP7C2B6.mjs → chunk-OHLSEQ57.mjs} +22 -13
- package/dist/{chunk-X242HVD5.mjs → chunk-OO7GXVSR.mjs} +1 -1
- package/dist/chunk-PTZ2TVNE.cjs +178 -0
- package/dist/{chunk-3ATMYLLJ.mjs → chunk-Q2KB32T4.mjs} +1 -1
- package/dist/{chunk-LHODW25H.mjs → chunk-QORUJDIV.mjs} +2 -2
- package/dist/{chunk-UBO4SGH4.mjs → chunk-RHAZ22ZN.mjs} +2 -1
- package/dist/{chunk-G26MUMKL.cjs → chunk-S6VYG6XU.cjs} +23 -8
- package/dist/{chunk-6VVL3MHY.mjs → chunk-SC2WYWPF.mjs} +1 -1
- package/dist/{chunk-MPEYMSCF.cjs → chunk-SDOTRX3V.cjs} +5 -5
- package/dist/{chunk-BMWDEBXO.cjs → chunk-SHLXACIO.cjs} +31 -3
- package/dist/{chunk-LMJ7VRHZ.mjs → chunk-T4OGRVNS.mjs} +13 -3
- package/dist/{chunk-T5CERMEH.cjs → chunk-T5OJPTVN.cjs} +2 -2
- package/dist/{chunk-Z2YLTERK.cjs → chunk-TE2G5ION.cjs} +6 -6
- package/dist/chunk-UH6QN5NL.mjs +178 -0
- package/dist/{chunk-PQDFUSXD.cjs → chunk-UVW64BCB.cjs} +44 -35
- package/dist/{chunk-VCCUOMQN.mjs → chunk-VILIPRS6.mjs} +1 -1
- package/dist/{chunk-A5FGU2WU.cjs → chunk-VQLJWDVW.cjs} +19 -23
- package/dist/{chunk-VPTDD5XF.cjs → chunk-WBKEZXWE.cjs} +5 -0
- package/dist/{chunk-K3F2E6GS.cjs → chunk-WC5UV2HQ.cjs} +2 -2
- package/dist/chunk-WWFTAUFG.cjs +45 -0
- package/dist/{chunk-ZUSJDQ2Q.mjs → chunk-WWIKMBRN.mjs} +1 -1
- package/dist/{chunk-3VSKDFAT.mjs → chunk-WZ77PUAM.mjs} +1 -1
- package/dist/{chunk-CLJYVZAD.mjs → chunk-XCMCS4DA.mjs} +11 -1
- package/dist/{chunk-F6OHXPWR.mjs → chunk-YFILVET3.mjs} +8 -1
- package/dist/{chunk-DZ4DTRJ5.cjs → chunk-YKX5BK66.cjs} +7 -7
- package/dist/chunk-YSLWRWWP.cjs +601 -0
- package/dist/{chunk-LI2LMOLR.mjs → chunk-YWMZUGIS.mjs} +18 -5
- package/dist/chunk-ZLAT2CWY.mjs +135 -0
- package/dist/{chunk-XF7Q24PF.mjs → chunk-ZMMBIVQM.mjs} +35 -0
- package/dist/{chunk-U74I55WB.cjs → chunk-ZWM5KGAA.cjs} +19 -9
- package/dist/{client-plugins-CLObcuCq.d.mts → client-plugins-C3mK9Pol.d.mts} +300 -7
- package/dist/{client-plugins-DZjHC4Mi.d.ts → client-plugins-r1mOtSC1.d.ts} +300 -7
- package/dist/client-plugins.d.mts +4 -5
- package/dist/client-plugins.d.ts +4 -5
- package/dist/client.cjs +5 -5
- package/dist/client.d.mts +8 -9
- package/dist/client.d.ts +8 -9
- package/dist/client.mjs +4 -4
- package/dist/config.d.mts +4 -5
- package/dist/config.d.ts +4 -5
- package/dist/{devtools-RNXCTS4R.mjs → devtools-ERIKFEXX.mjs} +11 -10
- package/dist/{devtools-HU6Y2MNV.cjs → devtools-JZJJY5CK.cjs} +12 -11
- package/dist/docs.cjs +15 -14
- package/dist/docs.d.mts +41 -4
- package/dist/docs.d.ts +41 -4
- package/dist/docs.mjs +14 -13
- package/dist/i18n/client.d.mts +2 -2
- package/dist/i18n/client.d.ts +2 -2
- package/dist/i18n/index.d.mts +3 -3
- package/dist/i18n/index.d.ts +3 -3
- package/dist/i18n/server.d.mts +5 -5
- package/dist/i18n/server.d.ts +5 -5
- package/dist/image/server.cjs +3 -3
- package/dist/image/server.mjs +2 -2
- package/dist/image/sharp.cjs +10 -10
- package/dist/image/sharp.mjs +2 -2
- package/dist/{index-a-8Z5kZU.d.mts → index-BJJfLxJo.d.mts} +2 -2
- package/dist/{index-BWVfxIsO.d.ts → index-CwoOP-MW.d.ts} +2 -2
- package/dist/index.cjs +51 -44
- package/dist/index.d.mts +20 -21
- package/dist/index.d.ts +20 -21
- package/dist/index.mjs +50 -43
- package/dist/integrations.cjs +7 -3
- package/dist/integrations.d.mts +4 -5
- package/dist/integrations.d.ts +4 -5
- package/dist/integrations.mjs +6 -2
- package/dist/internal/app-markdown-runtime.cjs +5 -5
- package/dist/internal/app-markdown-runtime.d.mts +5 -6
- package/dist/internal/app-markdown-runtime.d.ts +5 -6
- package/dist/internal/app-markdown-runtime.mjs +4 -4
- package/dist/internal/build-runtime.cjs +32 -30
- package/dist/internal/build-runtime.d.mts +6 -7
- package/dist/internal/build-runtime.d.ts +6 -7
- package/dist/internal/build-runtime.mjs +31 -29
- package/dist/internal/cli-runtime.cjs +17 -16
- package/dist/internal/cli-runtime.mjs +16 -15
- package/dist/internal/client-error-overlay.cjs +6 -6
- package/dist/internal/client-error-overlay.mjs +2 -2
- package/dist/internal/client-runtime.cjs +2 -2
- package/dist/internal/client-runtime.mjs +1 -1
- package/dist/internal/compression-runtime.d.mts +4 -5
- package/dist/internal/compression-runtime.d.ts +4 -5
- package/dist/internal/config-runtime.cjs +12 -11
- package/dist/internal/config-runtime.d.mts +5 -6
- package/dist/internal/config-runtime.d.ts +5 -6
- package/dist/internal/config-runtime.mjs +11 -10
- package/dist/internal/isolated-boundary.cjs +3 -2
- package/dist/internal/isolated-boundary.d.mts +1 -1
- package/dist/internal/isolated-boundary.d.ts +1 -1
- package/dist/internal/isolated-boundary.mjs +2 -1
- package/dist/internal/metadata-image-runtime.cjs +3 -3
- package/dist/internal/metadata-image-runtime.mjs +2 -2
- package/dist/internal/product-telemetry-runtime.cjs +2 -2
- package/dist/internal/product-telemetry-runtime.mjs +1 -1
- package/dist/internal/production-runtime.cjs +63 -25
- package/dist/internal/production-runtime.d.mts +117 -37
- package/dist/internal/production-runtime.d.ts +117 -37
- package/dist/internal/production-runtime.mjs +65 -27
- package/dist/internal/server-tree.cjs +12 -0
- package/dist/internal/server-tree.d.mts +27 -0
- package/dist/internal/server-tree.d.ts +27 -0
- package/dist/internal/server-tree.mjs +12 -0
- package/dist/{layers-BRQF5ETU.mjs → layers-UTB43B7A.mjs} +1 -1
- package/dist/layers-VUWIOFEO.cjs +18 -0
- package/dist/markdown.cjs +4 -4
- package/dist/markdown.d.mts +4 -5
- package/dist/markdown.d.ts +4 -5
- package/dist/markdown.mjs +3 -3
- package/dist/middleware.cjs +7 -7
- package/dist/middleware.d.mts +6 -7
- package/dist/middleware.d.ts +6 -7
- package/dist/middleware.mjs +6 -6
- package/dist/navigation.cjs +5 -5
- package/dist/navigation.d.mts +7 -8
- package/dist/navigation.d.ts +7 -8
- package/dist/navigation.mjs +4 -4
- package/dist/{nitro-HSAQFXSS.cjs → nitro-7F65EZZS.cjs} +3 -3
- package/dist/{nitro-4XGPNIK4.mjs → nitro-MPZJGPXK.mjs} +2 -2
- package/dist/{observability-BupkiN0m.d.mts → observability-CoXunYhS.d.mts} +4 -3
- package/dist/{observability-BupkiN0m.d.ts → observability-CoXunYhS.d.ts} +4 -3
- package/dist/observability.d.mts +1 -1
- package/dist/observability.d.ts +1 -1
- package/dist/plugin.cjs +28 -26
- package/dist/plugin.d.mts +4 -5
- package/dist/plugin.d.ts +4 -5
- package/dist/plugin.mjs +27 -25
- package/dist/{production-runtime-CysZl3EV.d.mts → production-runtime-CCeVZXst.d.mts} +4 -4
- package/dist/{production-runtime-BU5ETAK9.d.ts → production-runtime-DPnsggY3.d.ts} +4 -4
- package/dist/query/client.cjs +6 -6
- package/dist/query/client.mjs +2 -2
- package/dist/{render-plan-CKr4ltOd.d.mts → render-plan-BuGaPFe6.d.mts} +1 -1
- package/dist/{render-plan-D72O1qm4.d.ts → render-plan-Cw4f5E_R.d.ts} +1 -1
- package/dist/renderer/react/server.cjs +10 -4
- package/dist/renderer/react/server.d.mts +2 -1
- package/dist/renderer/react/server.d.ts +2 -1
- package/dist/renderer/react/server.mjs +7 -1
- package/dist/renderer-client.cjs +5 -5
- package/dist/renderer-client.d.mts +6 -7
- package/dist/renderer-client.d.ts +6 -7
- package/dist/renderer-client.mjs +2 -2
- package/dist/renderer.d.mts +2 -0
- package/dist/renderer.d.ts +2 -0
- package/dist/{request-DbyOYI2j.d.ts → request-Bkg-hERy.d.ts} +1 -1
- package/dist/{request-Be83WafN.d.mts → request-CsGARcAw.d.mts} +1 -1
- package/dist/request.d.mts +5 -6
- package/dist/request.d.ts +5 -6
- package/dist/{resolver-PPEeiJ6M.d.ts → resolver-DadfRL6F.d.ts} +1 -1
- package/dist/{resolver-DhW0CqZN.d.mts → resolver-khasx3fU.d.mts} +1 -1
- package/dist/{route-rendering-CtVMpV-k.d.ts → route-rendering-BUZMH_64.d.ts} +1 -1
- package/dist/{route-rendering-BG56SzvJ.d.mts → route-rendering-f11yh5dp.d.mts} +1 -1
- package/dist/{router-D94-SDlW.d.ts → router-B8CR9GbD.d.ts} +1 -1
- package/dist/{router-ALUvm8gC.d.mts → router-Cp6yRE8A.d.mts} +1 -1
- package/dist/routes.d.mts +4 -5
- package/dist/routes.d.ts +4 -5
- package/dist/{runtime-BirxPwbZ.d.ts → runtime-BgDQzBiu.d.ts} +2 -2
- package/dist/runtime-CAEv36S_.d.mts +69 -0
- package/dist/runtime-CQVsT330.d.ts +69 -0
- package/dist/{runtime-AOJge4vQ.d.mts → runtime-CV2UCV-5.d.mts} +2 -2
- package/dist/server-action-security.cjs +3 -3
- package/dist/server-action-security.mjs +2 -2
- package/dist/server-fn.cjs +4 -4
- package/dist/server-fn.mjs +3 -3
- package/dist/server-plugins.d.mts +5 -6
- package/dist/server-plugins.d.ts +5 -6
- package/dist/server-query.cjs +5 -5
- package/dist/server-query.mjs +4 -4
- package/dist/server.cjs +47 -45
- package/dist/server.d.mts +13 -14
- package/dist/server.d.ts +13 -14
- package/dist/server.mjs +30 -28
- package/dist/{spa-router-CxK3USIz.d.ts → spa-router-BuciWGCZ.d.ts} +3 -3
- package/dist/{spa-router-DbxNRKOB.d.mts → spa-router-DwbqGkGj.d.mts} +3 -3
- package/dist/testing.cjs +9 -9
- package/dist/testing.d.mts +4 -5
- package/dist/testing.d.ts +4 -5
- package/dist/testing.mjs +7 -7
- package/dist/{types-Z0aotQ8w.d.mts → types-CnH8DOqo.d.mts} +1 -1
- package/dist/{types-Z0aotQ8w.d.ts → types-CnH8DOqo.d.ts} +1 -1
- package/dist/{utils-4wVRcpOw.d.mts → utils-B9V0S_yL.d.mts} +1 -1
- package/dist/{utils-311Y8eoK.d.ts → utils-CaoWKtYM.d.ts} +1 -1
- package/dist/version.cjs +2 -2
- package/dist/version.mjs +1 -1
- package/dist/vite.cjs +28 -26
- package/dist/vite.d.mts +4 -5
- package/dist/vite.d.ts +4 -5
- package/dist/vite.mjs +27 -25
- package/dist/{workflows-CR9ex-gz.d.ts → workflows-jZ4BcdoZ.d.mts} +1 -1
- package/dist/{workflows-CR9ex-gz.d.mts → workflows-jZ4BcdoZ.d.ts} +1 -1
- package/dist/workflows.cjs +3 -3
- package/dist/workflows.d.mts +1 -1
- package/dist/workflows.d.ts +1 -1
- package/dist/workflows.mjs +2 -2
- package/package.json +9 -1
- package/dist/chunk-M64YUMA4.cjs +0 -58
- package/dist/chunk-QLQ32WC4.mjs +0 -58
- package/dist/layers-4PNE2HOY.cjs +0 -18
- package/dist/metadata-2HSU2i_w.d.mts +0 -52
- package/dist/metadata-Cjs8JMRM.d.ts +0 -52
- package/dist/types-DFbjpjXX.d.mts +0 -105
- package/dist/types-DFbjpjXX.d.ts +0 -105
- package/dist/{chunk-2F2ER724.cjs → chunk-BPMATOP2.cjs} +2 -2
- package/dist/{chunk-IHNMMXHV.mjs → chunk-OTC5BDGO.mjs} +3 -3
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import {
|
|
2
|
+
resolveFarmAPICanonicalPathname,
|
|
3
|
+
resolveFarmAPIServerRoutePath
|
|
4
|
+
} from "./chunk-BTHHUD7Q.mjs";
|
|
5
|
+
import {
|
|
6
|
+
matchAPIRoute
|
|
7
|
+
} from "./chunk-O7BH5O46.mjs";
|
|
8
|
+
import {
|
|
9
|
+
__name
|
|
10
|
+
} from "./chunk-LPEX4YW6.mjs";
|
|
11
|
+
|
|
12
|
+
// src/mcp-catalog.ts
|
|
13
|
+
var CATALOGS = /* @__PURE__ */ Symbol.for("farm.mcp.catalogs");
|
|
14
|
+
function catalogs() {
|
|
15
|
+
const state = globalThis;
|
|
16
|
+
return state[CATALOGS] ?? (state[CATALOGS] = /* @__PURE__ */ new Map());
|
|
17
|
+
}
|
|
18
|
+
__name(catalogs, "catalogs");
|
|
19
|
+
function _listFarmMCPCatalogs() {
|
|
20
|
+
return [...catalogs().values()];
|
|
21
|
+
}
|
|
22
|
+
__name(_listFarmMCPCatalogs, "_listFarmMCPCatalogs");
|
|
23
|
+
function _publishFarmMCPCatalog(server, tools, details) {
|
|
24
|
+
const entry = { server, tools, ...details ? { details } : {} };
|
|
25
|
+
catalogs().set(server.path, entry);
|
|
26
|
+
return () => {
|
|
27
|
+
if (catalogs().get(server.path) === entry) catalogs().delete(server.path);
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
__name(_publishFarmMCPCatalog, "_publishFarmMCPCatalog");
|
|
31
|
+
var SERVERS = /* @__PURE__ */ Symbol.for("farm.mcp.servers");
|
|
32
|
+
function registeredServers() {
|
|
33
|
+
const state = globalThis;
|
|
34
|
+
return state[SERVERS] ?? (state[SERVERS] = /* @__PURE__ */ new Map());
|
|
35
|
+
}
|
|
36
|
+
__name(registeredServers, "registeredServers");
|
|
37
|
+
function _listFarmRegisteredMCPServers() {
|
|
38
|
+
return [...registeredServers().values()];
|
|
39
|
+
}
|
|
40
|
+
__name(_listFarmRegisteredMCPServers, "_listFarmRegisteredMCPServers");
|
|
41
|
+
function registerFarmMCPServer(server) {
|
|
42
|
+
const entry = validateFarmMCPServerRegistration(server);
|
|
43
|
+
const key = entry.path ?? entry.url;
|
|
44
|
+
registeredServers().set(key, entry);
|
|
45
|
+
return () => {
|
|
46
|
+
if (registeredServers().get(key) === entry) registeredServers().delete(key);
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
__name(registerFarmMCPServer, "registerFarmMCPServer");
|
|
50
|
+
function validateFarmMCPServerRegistration(server) {
|
|
51
|
+
if (!server || typeof server !== "object") {
|
|
52
|
+
throw new TypeError("registerFarmMCPServer expects a server object.");
|
|
53
|
+
}
|
|
54
|
+
const text = /* @__PURE__ */ __name((key, required) => {
|
|
55
|
+
const value = server[key];
|
|
56
|
+
if (value === void 0 && !required) return void 0;
|
|
57
|
+
if (typeof value !== "string" || !value.trim()) {
|
|
58
|
+
throw new TypeError(`registerFarmMCPServer ${key} must be a non-empty string.`);
|
|
59
|
+
}
|
|
60
|
+
return value.trim();
|
|
61
|
+
}, "text");
|
|
62
|
+
const name = text("name", true);
|
|
63
|
+
const version = text("version", true);
|
|
64
|
+
const title = text("title", false);
|
|
65
|
+
const description = text("description", false);
|
|
66
|
+
const { path, url } = server;
|
|
67
|
+
if (path === void 0 === (url === void 0)) {
|
|
68
|
+
throw new TypeError("registerFarmMCPServer takes exactly one of path and url.");
|
|
69
|
+
}
|
|
70
|
+
let endpoint;
|
|
71
|
+
if (path !== void 0) {
|
|
72
|
+
if (typeof path !== "string" || !/^\/(?!\/)[^?#\\\s]*$/.test(path) || path.split("/").some((segment) => segment === "." || segment === "..")) {
|
|
73
|
+
throw new TypeError(
|
|
74
|
+
"registerFarmMCPServer path must be an absolute app path without a query, hash, or dot segments."
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
endpoint = { path: path.length > 1 ? path.replace(/\/+$/, "") : path };
|
|
78
|
+
} else {
|
|
79
|
+
let parsed;
|
|
80
|
+
try {
|
|
81
|
+
parsed = typeof url === "string" ? new URL(url) : void 0;
|
|
82
|
+
} catch {
|
|
83
|
+
parsed = void 0;
|
|
84
|
+
}
|
|
85
|
+
if (!parsed || parsed.protocol !== "https:" && parsed.protocol !== "http:" || parsed.username || parsed.password || parsed.search || parsed.hash) {
|
|
86
|
+
throw new TypeError(
|
|
87
|
+
"registerFarmMCPServer url must be an absolute http(s) URL without credentials, a query, or a hash."
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
endpoint = { url: `${parsed.origin}${parsed.pathname.replace(/\/+$/, "")}` };
|
|
91
|
+
}
|
|
92
|
+
const { protocolVersions } = server;
|
|
93
|
+
if (protocolVersions !== void 0 && (!Array.isArray(protocolVersions) || protocolVersions.some((version2) => typeof version2 !== "string" || !version2.trim()))) {
|
|
94
|
+
throw new TypeError("registerFarmMCPServer protocolVersions must be non-empty strings.");
|
|
95
|
+
}
|
|
96
|
+
return Object.freeze({
|
|
97
|
+
name,
|
|
98
|
+
version,
|
|
99
|
+
...title ? { title } : {},
|
|
100
|
+
...description ? { description } : {},
|
|
101
|
+
...protocolVersions?.length ? { protocolVersions: Object.freeze([...protocolVersions]) } : {},
|
|
102
|
+
...endpoint
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
__name(validateFarmMCPServerRegistration, "validateFarmMCPServerRegistration");
|
|
106
|
+
function _findFarmMCPEndpointTool(method, pathname, serverBasePath) {
|
|
107
|
+
const upperMethod = method.toUpperCase();
|
|
108
|
+
for (const { server, tools } of catalogs().values()) {
|
|
109
|
+
const routes = /* @__PURE__ */ new Map();
|
|
110
|
+
for (const tool of tools) {
|
|
111
|
+
if (tool.kind === "endpoint" && tool.method === upperMethod) {
|
|
112
|
+
routes.set(tool.path, { path: tool.path, name: tool.name });
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
if (routes.size === 0) continue;
|
|
116
|
+
const canonical = serverBasePath ? resolveFarmAPICanonicalPathname(pathname, serverBasePath) : pathname;
|
|
117
|
+
const match = matchAPIRoute(routes, canonical);
|
|
118
|
+
if (match) {
|
|
119
|
+
return {
|
|
120
|
+
name: match.route.name,
|
|
121
|
+
endpoint: resolveFarmAPIServerRoutePath(server.path, serverBasePath)
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return void 0;
|
|
126
|
+
}
|
|
127
|
+
__name(_findFarmMCPEndpointTool, "_findFarmMCPEndpointTool");
|
|
128
|
+
|
|
129
|
+
export {
|
|
130
|
+
_listFarmMCPCatalogs,
|
|
131
|
+
_publishFarmMCPCatalog,
|
|
132
|
+
_listFarmRegisteredMCPServers,
|
|
133
|
+
registerFarmMCPServer,
|
|
134
|
+
_findFarmMCPEndpointTool
|
|
135
|
+
};
|
|
@@ -118,6 +118,15 @@ var DEFAULT_FARM_SERVER_REQUEST_TIMEOUT = 3e5;
|
|
|
118
118
|
var DEFAULT_FARM_SERVER_KEEP_ALIVE_TIMEOUT = 5e3;
|
|
119
119
|
var DEFAULT_FARM_SERVER_GRACEFUL_SHUTDOWN_TIMEOUT = 3e4;
|
|
120
120
|
var MAX_FARM_SERVER_TIMEOUT = 2147483647;
|
|
121
|
+
function createFarmWeakETag(body) {
|
|
122
|
+
let hash = 2166136261;
|
|
123
|
+
for (let index = 0; index < body.length; index++) {
|
|
124
|
+
hash ^= body.charCodeAt(index);
|
|
125
|
+
hash = Math.imul(hash, 16777619);
|
|
126
|
+
}
|
|
127
|
+
return `W/"${(hash >>> 0).toString(16).padStart(8, "0")}"`;
|
|
128
|
+
}
|
|
129
|
+
__name(createFarmWeakETag, "createFarmWeakETag");
|
|
121
130
|
function matchesFarmIfNoneMatch(value, etag) {
|
|
122
131
|
const expected = parseEntityTag(trimOptionalWhitespace(etag));
|
|
123
132
|
if (!expected) return false;
|
|
@@ -419,6 +428,30 @@ async function readNodeRequestBody(request, limit) {
|
|
|
419
428
|
});
|
|
420
429
|
}
|
|
421
430
|
__name(readNodeRequestBody, "readNodeRequestBody");
|
|
431
|
+
function createFarmNodeRequestBodyStream(request) {
|
|
432
|
+
let iterator;
|
|
433
|
+
return new ReadableStream(
|
|
434
|
+
{
|
|
435
|
+
async pull(controller) {
|
|
436
|
+
iterator ?? (iterator = request[Symbol.asyncIterator]());
|
|
437
|
+
const { value, done } = await iterator.next();
|
|
438
|
+
if (done) {
|
|
439
|
+
controller.close();
|
|
440
|
+
return;
|
|
441
|
+
}
|
|
442
|
+
controller.enqueue(
|
|
443
|
+
value instanceof Uint8Array ? value : new TextEncoder().encode(String(value))
|
|
444
|
+
);
|
|
445
|
+
},
|
|
446
|
+
async cancel(reason) {
|
|
447
|
+
await iterator?.return?.(reason);
|
|
448
|
+
}
|
|
449
|
+
},
|
|
450
|
+
// No eager pull: the request stays untouched until the handler reads it.
|
|
451
|
+
{ highWaterMark: 0 }
|
|
452
|
+
);
|
|
453
|
+
}
|
|
454
|
+
__name(createFarmNodeRequestBodyStream, "createFarmNodeRequestBodyStream");
|
|
422
455
|
function createFarmRequestBodyErrorResponse(error) {
|
|
423
456
|
if (!(error instanceof FarmRequestBodyError)) return null;
|
|
424
457
|
return new Response(error.status === 413 ? "Payload Too Large" : "Bad Request", {
|
|
@@ -459,6 +492,7 @@ export {
|
|
|
459
492
|
copyRequestContext,
|
|
460
493
|
createFarmNodeRequestAbortSignal,
|
|
461
494
|
DEFAULT_FARM_SERVER_BODY_SIZE_LIMIT,
|
|
495
|
+
createFarmWeakETag,
|
|
462
496
|
matchesFarmIfNoneMatch,
|
|
463
497
|
resolveFarmServerConfig,
|
|
464
498
|
parseBodySizeLimit,
|
|
@@ -466,5 +500,6 @@ export {
|
|
|
466
500
|
bufferFarmRequestBody,
|
|
467
501
|
readFarmRequestBody,
|
|
468
502
|
readNodeRequestBody,
|
|
503
|
+
createFarmNodeRequestBodyStream,
|
|
469
504
|
createFarmRequestBodyErrorResponse
|
|
470
505
|
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
|
|
4
|
+
var _chunkM7MKQXAFcjs = require('./chunk-M7MKQXAF.cjs');
|
|
4
5
|
|
|
5
6
|
|
|
6
7
|
|
|
@@ -19,21 +20,21 @@ var _chunkM2L4MYDQcjs = require('./chunk-M2L4MYDQ.cjs');
|
|
|
19
20
|
|
|
20
21
|
|
|
21
22
|
|
|
22
|
-
var
|
|
23
|
+
var _chunkSHLXACIOcjs = require('./chunk-SHLXACIO.cjs');
|
|
23
24
|
|
|
24
25
|
|
|
25
26
|
var _chunk5QIKR7RRcjs = require('./chunk-5QIKR7RR.cjs');
|
|
26
27
|
|
|
27
28
|
|
|
28
|
-
var _chunkKNBBQHO2cjs = require('./chunk-KNBBQHO2.cjs');
|
|
29
|
-
|
|
30
|
-
|
|
31
29
|
var _chunkE3UK5IIBcjs = require('./chunk-E3UK5IIB.cjs');
|
|
32
30
|
|
|
33
31
|
|
|
34
32
|
var _chunkUQZ4AYTHcjs = require('./chunk-UQZ4AYTH.cjs');
|
|
35
33
|
|
|
36
34
|
|
|
35
|
+
var _chunkKNBBQHO2cjs = require('./chunk-KNBBQHO2.cjs');
|
|
36
|
+
|
|
37
|
+
|
|
37
38
|
|
|
38
39
|
|
|
39
40
|
var _chunkOX6O6WVAcjs = require('./chunk-OX6O6WVA.cjs');
|
|
@@ -193,7 +194,16 @@ var _path = require('path'); var path = _interopRequireWildcard(_path);
|
|
|
193
194
|
|
|
194
195
|
// src/middleware/path.ts
|
|
195
196
|
function appendMiddlewareRoutePath(routePath, directoryName) {
|
|
196
|
-
|
|
197
|
+
const marker = _chunkM7MKQXAFcjs.parseInterceptionMarker.call(void 0, directoryName);
|
|
198
|
+
if (marker) {
|
|
199
|
+
const owner = routePath.split("/").filter(Boolean);
|
|
200
|
+
const parts = [
|
|
201
|
+
...marker.root ? [] : owner.slice(0, Math.max(0, owner.length - marker.up)),
|
|
202
|
+
...marker.remainder ? [marker.remainder] : []
|
|
203
|
+
];
|
|
204
|
+
return `/${parts.join("/")}`;
|
|
205
|
+
}
|
|
206
|
+
if (directoryName.startsWith("(") && directoryName.endsWith(")") || _chunkM7MKQXAFcjs.isRouteSlotSegment.call(void 0, directoryName)) {
|
|
197
207
|
return routePath;
|
|
198
208
|
}
|
|
199
209
|
return routePath === "/" ? `/${directoryName}` : `${routePath}/${directoryName}`;
|
|
@@ -287,7 +297,7 @@ var _MiddlewareManager = class _MiddlewareManager {
|
|
|
287
297
|
}
|
|
288
298
|
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
289
299
|
for (const entry of entries) {
|
|
290
|
-
if (entry.isDirectory() && !entry.name.startsWith(".")
|
|
300
|
+
if (entry.isDirectory() && !entry.name.startsWith(".")) {
|
|
291
301
|
await this.discoverInDirectory(
|
|
292
302
|
path.join(dir, entry.name),
|
|
293
303
|
appendMiddlewareRoutePath(routePath, entry.name),
|
|
@@ -317,11 +327,11 @@ var _MiddlewareManager = class _MiddlewareManager {
|
|
|
317
327
|
try {
|
|
318
328
|
let module;
|
|
319
329
|
if (this.viteServer) {
|
|
320
|
-
module = await
|
|
330
|
+
module = await _chunkSHLXACIOcjs.loadFarmDevModule.call(void 0, this.viteServer, filePath);
|
|
321
331
|
} else {
|
|
322
332
|
module = await import(
|
|
323
333
|
/* @vite-ignore */
|
|
324
|
-
|
|
334
|
+
_chunkSHLXACIOcjs.toFileModuleUrl.call(void 0, filePath)
|
|
325
335
|
);
|
|
326
336
|
}
|
|
327
337
|
const normalized = _chunk3BU22U3Mcjs.normalizeMiddlewareModule.call(void 0, module, routePath);
|