@farm.js/core 0.1.36 → 0.1.38

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 (272) hide show
  1. package/dist/{agent-mcp-BVExL8rZ.d.mts → agent-mcp-BwKlpnc7.d.mts} +1 -1
  2. package/dist/{agent-mcp-luzfXK-P.d.ts → agent-mcp-De1imoMS.d.ts} +1 -1
  3. package/dist/{agent-mcp-handler-SJAHFSPI.cjs → agent-mcp-handler-MRGP3WJ3.cjs} +5 -5
  4. package/dist/{agent-mcp-handler-LPJ2CADR.mjs → agent-mcp-handler-OLRMZONF.mjs} +4 -4
  5. package/dist/agent-runtime.cjs +3 -3
  6. package/dist/agent-runtime.d.mts +1 -1
  7. package/dist/agent-runtime.d.ts +1 -1
  8. package/dist/agent-runtime.mjs +2 -2
  9. package/dist/api/client.cjs +3 -3
  10. package/dist/api/client.mjs +2 -2
  11. package/dist/api/route-manager.cjs +6 -6
  12. package/dist/api/route-manager.d.mts +3 -3
  13. package/dist/api/route-manager.d.ts +3 -3
  14. package/dist/api/route-manager.mjs +5 -5
  15. package/dist/api/runtime.cjs +4 -4
  16. package/dist/api/runtime.d.mts +2 -2
  17. package/dist/api/runtime.d.ts +2 -2
  18. package/dist/api/runtime.mjs +3 -3
  19. package/dist/api.cjs +9 -8
  20. package/dist/api.d.mts +3 -3
  21. package/dist/api.d.ts +3 -3
  22. package/dist/api.mjs +8 -7
  23. package/dist/{app-BukwkFIu.d.mts → app-CFZt-srr.d.mts} +21 -3
  24. package/dist/{app-Yfa2dsFy.d.ts → app-kT_QXTdx.d.ts} +21 -3
  25. package/dist/app-markdown.cjs +6 -4
  26. package/dist/app-markdown.d.mts +3 -3
  27. package/dist/app-markdown.d.ts +3 -3
  28. package/dist/app-markdown.mjs +5 -3
  29. package/dist/{chunk-ADEA7PN3.cjs → chunk-2DD4JMQC.cjs} +113 -22
  30. package/dist/chunk-2ZYGC6SS.cjs +576 -0
  31. package/dist/{chunk-JZVADIOD.cjs → chunk-34UCJRQO.cjs} +2 -2
  32. package/dist/{chunk-D2BB47NB.cjs → chunk-3LOLJTFV.cjs} +6 -6
  33. package/dist/{chunk-KXWRO25S.cjs → chunk-472NCAZ7.cjs} +3 -3
  34. package/dist/chunk-4E5QXOCL.cjs +109 -0
  35. package/dist/{chunk-Z2HLU4IX.cjs → chunk-4GWRFP22.cjs} +23 -2
  36. package/dist/{chunk-VQLJWDVW.cjs → chunk-4IE345DM.cjs} +37 -19
  37. package/dist/{chunk-O6WAEAX3.mjs → chunk-5BWWFHR2.mjs} +70 -15
  38. package/dist/{chunk-JNUWCDTF.cjs → chunk-5D2JIPLH.cjs} +2 -2
  39. package/dist/{chunk-BO36SELV.cjs → chunk-5OKBARDN.cjs} +2 -2
  40. package/dist/{chunk-AO6RYU5N.cjs → chunk-5PWXMJOH.cjs} +30 -22
  41. package/dist/{chunk-AHGECQEW.mjs → chunk-666CKENS.mjs} +1 -1
  42. package/dist/chunk-6BK3K2GB.mjs +318 -0
  43. package/dist/{chunk-O6I6VWKK.mjs → chunk-6HB6V3R7.mjs} +1 -1
  44. package/dist/{chunk-UXFQ3UDA.cjs → chunk-6XWDE2P2.cjs} +61 -4
  45. package/dist/{chunk-VILIPRS6.mjs → chunk-7FPTZLKH.mjs} +1 -1
  46. package/dist/{chunk-SC2WYWPF.mjs → chunk-7PEP3BUT.mjs} +3 -3
  47. package/dist/{chunk-4E5AEDKY.mjs → chunk-A3EAIURZ.mjs} +25 -7
  48. package/dist/{chunk-YDQZGSDS.mjs → chunk-ARC7I3O2.mjs} +1 -1
  49. package/dist/{chunk-LSZAVSGY.mjs → chunk-B6G5CKMC.mjs} +101 -10
  50. package/dist/{chunk-3KZS4SUS.mjs → chunk-BZHXGVMA.mjs} +1 -1
  51. package/dist/{chunk-KN7K4VQN.mjs → chunk-CNNOLE4O.mjs} +1 -1
  52. package/dist/{chunk-4GLOOWKE.mjs → chunk-CQMVIOYP.mjs} +1 -1
  53. package/dist/{chunk-2ELDTQRN.mjs → chunk-CUM5NYL5.mjs} +1 -1
  54. package/dist/{chunk-HITLGIAO.cjs → chunk-CY2ZQ5C6.cjs} +7 -6
  55. package/dist/{chunk-PZNL3WEG.mjs → chunk-DMEPTZTI.mjs} +22 -11
  56. package/dist/{chunk-QORUJDIV.mjs → chunk-DRLKAXDM.mjs} +2 -2
  57. package/dist/{chunk-DQQOKWYA.cjs → chunk-EIPC3FDA.cjs} +12 -4
  58. package/dist/{chunk-HOXTWRGB.mjs → chunk-EKF7KDFD.mjs} +5 -2
  59. package/dist/{chunk-42NHY7HW.cjs → chunk-EKN7NSZO.cjs} +62 -14
  60. package/dist/{chunk-YKX5BK66.cjs → chunk-EMO6K4YY.cjs} +7 -7
  61. package/dist/{chunk-6SJ2KJTA.mjs → chunk-EPYU2EBL.mjs} +1 -1
  62. package/dist/{chunk-D227TIEN.cjs → chunk-FWE7LEQC.cjs} +13 -13
  63. package/dist/{chunk-PTZ2TVNE.cjs → chunk-H5CLOUZS.cjs} +5 -5
  64. package/dist/{chunk-DTSROJ5J.mjs → chunk-HD5CF3OE.mjs} +1 -1
  65. package/dist/{chunk-35GKZR22.mjs → chunk-HXRYZWTA.mjs} +1 -1
  66. package/dist/{chunk-JG6DJF5A.mjs → chunk-HZFM2LWQ.mjs} +22 -1
  67. package/dist/{chunk-MKYBIIAQ.mjs → chunk-IBUQWVYA.mjs} +17 -1
  68. package/dist/{chunk-F2SE2VDO.mjs → chunk-IHQIOZLC.mjs} +1 -1
  69. package/dist/{chunk-W7LF2J2S.mjs → chunk-INL3THCU.mjs} +1 -1
  70. package/dist/{chunk-WZ77PUAM.mjs → chunk-IVLZZZEI.mjs} +1 -1
  71. package/dist/{chunk-ENLZ4R3Y.mjs → chunk-J7K2NZD6.mjs} +7 -6
  72. package/dist/{chunk-BPOF5U4N.mjs → chunk-JCKYH4LG.mjs} +10 -7
  73. package/dist/{chunk-77GNHH2Z.cjs → chunk-JCYYXBAJ.cjs} +3 -3
  74. package/dist/{chunk-C4SPBWFM.cjs → chunk-JEZO6VUR.cjs} +10 -1
  75. package/dist/{chunk-ZWM5KGAA.cjs → chunk-KCQBAKIY.cjs} +23 -20
  76. package/dist/{chunk-OTC5BDGO.mjs → chunk-KHKLMNI5.mjs} +12 -7
  77. package/dist/{chunk-DZ5ZVB2K.cjs → chunk-KKSTAEMY.cjs} +1 -1
  78. package/dist/{chunk-N2NAS2AM.cjs → chunk-L4DD7ODZ.cjs} +2 -2
  79. package/dist/{chunk-YSCV4SJF.cjs → chunk-L5H2GSUC.cjs} +4 -4
  80. package/dist/{chunk-OO7GXVSR.mjs → chunk-LI2F57NI.mjs} +1 -1
  81. package/dist/{chunk-NRSN7G7E.mjs → chunk-MLY2RP5R.mjs} +10 -2
  82. package/dist/{chunk-BPMATOP2.cjs → chunk-N32CC42M.cjs} +25 -20
  83. package/dist/{chunk-FNO7A7CM.cjs → chunk-NBBEQLOK.cjs} +34 -16
  84. package/dist/{chunk-XCMCS4DA.mjs → chunk-ND2CWPOD.mjs} +2 -2
  85. package/dist/{chunk-GQRWBCWK.mjs → chunk-OAHTRMIC.mjs} +13 -5
  86. package/dist/{chunk-35WV46VL.mjs → chunk-OCIEZME4.mjs} +876 -685
  87. package/dist/{chunk-UH6QN5NL.mjs → chunk-P664ZVTV.mjs} +2 -2
  88. package/dist/{chunk-TE2G5ION.cjs → chunk-PGZDEPTM.cjs} +88 -33
  89. package/dist/{chunk-FDR64H6B.mjs → chunk-POSPE3IO.mjs} +59 -2
  90. package/dist/{chunk-UVW64BCB.cjs → chunk-Q3NXS4MU.cjs} +16 -14
  91. package/dist/{chunk-4WCZJQUO.mjs → chunk-QFW2IH5E.mjs} +57 -9
  92. package/dist/{chunk-5SJWVY6R.mjs → chunk-QHSH7IH4.mjs} +9 -0
  93. package/dist/chunk-QRKIMN7T.mjs +48 -0
  94. package/dist/chunk-QTXBII4Z.cjs +632 -0
  95. package/dist/{chunk-CI6E3UOH.cjs → chunk-RG4A6LB2.cjs} +7 -7
  96. package/dist/{chunk-BJPBQNIE.cjs → chunk-RW63BOV7.cjs} +2 -2
  97. package/dist/{chunk-FO427P6I.cjs → chunk-RWFLWR5J.cjs} +10 -10
  98. package/dist/{chunk-FFFW3OQ7.cjs → chunk-S6FJO323.cjs} +2 -2
  99. package/dist/{chunk-EUV4YR3V.cjs → chunk-SGBJ247Q.cjs} +18 -2
  100. package/dist/chunk-SGBZPZUW.mjs +75 -0
  101. package/dist/{chunk-2NNMOPDN.mjs → chunk-SKVTP5PR.mjs} +4 -1
  102. package/dist/{chunk-2YTDKNH3.cjs → chunk-TGFQVLLF.cjs} +956 -765
  103. package/dist/{chunk-IHNIDL6H.cjs → chunk-TO4GJ56K.cjs} +22 -11
  104. package/dist/{chunk-276VJSM6.mjs → chunk-TUBTR2OP.mjs} +250 -118
  105. package/dist/{chunk-GQ3Z3IZI.cjs → chunk-TYJALEHQ.cjs} +18 -18
  106. package/dist/chunk-TYMMBFN2.mjs +109 -0
  107. package/dist/chunk-U6QLDL3G.mjs +576 -0
  108. package/dist/{chunk-U4KT7QP3.cjs → chunk-ULASELLA.cjs} +26 -1
  109. package/dist/chunk-UXHS27O6.cjs +75 -0
  110. package/dist/{chunk-WWIKMBRN.mjs → chunk-VNGH5MLF.mjs} +17 -1
  111. package/dist/{chunk-EZDQRNQ7.mjs → chunk-VT4WFRHA.mjs} +23 -5
  112. package/dist/{chunk-CBJJH36A.cjs → chunk-VU6AAZVY.cjs} +20 -4
  113. package/dist/{chunk-27ZWSI3W.cjs → chunk-VXEEATVD.cjs} +2 -2
  114. package/dist/{chunk-EWET4D2Y.mjs → chunk-W36M2BQ4.mjs} +3 -3
  115. package/dist/{chunk-4WQ6PGSJ.cjs → chunk-WEW2JVA4.cjs} +4 -4
  116. package/dist/{chunk-4E5WBPEG.mjs → chunk-WFRT7JPX.mjs} +8 -533
  117. package/dist/{chunk-T4OGRVNS.mjs → chunk-WLL43JMO.mjs} +2 -2
  118. package/dist/chunk-WW46B6HA.cjs +318 -0
  119. package/dist/{chunk-TKSCR644.cjs → chunk-WXJLNP33.cjs} +2 -2
  120. package/dist/{chunk-S6VYG6XU.cjs → chunk-XKG2BLFN.cjs} +2 -2
  121. package/dist/{chunk-4NU4GGTC.cjs → chunk-XKVVMZP5.cjs} +6 -3
  122. package/dist/{chunk-NMHWYWDR.cjs → chunk-YR2VBEMO.cjs} +658 -526
  123. package/dist/{chunk-OHLSEQ57.mjs → chunk-ZJD2PN6Z.mjs} +10 -8
  124. package/dist/{chunk-3BU22U3M.cjs → chunk-ZXH4TS3F.cjs} +5 -2
  125. package/dist/{client-plugins-r1mOtSC1.d.ts → client-plugins-BvlNhGEB.d.ts} +54 -7
  126. package/dist/{client-plugins-C3mK9Pol.d.mts → client-plugins-DUrIYX9B.d.mts} +54 -7
  127. package/dist/client-plugins.d.mts +1 -1
  128. package/dist/client-plugins.d.ts +1 -1
  129. package/dist/client.cjs +8 -8
  130. package/dist/client.d.mts +5 -5
  131. package/dist/client.d.ts +5 -5
  132. package/dist/client.mjs +7 -7
  133. package/dist/config.d.mts +1 -1
  134. package/dist/config.d.ts +1 -1
  135. package/dist/{devtools-ERIKFEXX.mjs → devtools-JYJNOLPQ.mjs} +8 -6
  136. package/dist/{devtools-JZJJY5CK.cjs → devtools-VQWJANJV.cjs} +9 -7
  137. package/dist/docs.cjs +12 -10
  138. package/dist/docs.d.mts +20 -2
  139. package/dist/docs.d.ts +20 -2
  140. package/dist/docs.mjs +11 -9
  141. package/dist/headers.cjs +6 -4
  142. package/dist/headers.d.mts +11 -1
  143. package/dist/headers.d.ts +11 -1
  144. package/dist/headers.mjs +5 -3
  145. package/dist/i18n/client.cjs +11 -11
  146. package/dist/i18n/client.mjs +3 -3
  147. package/dist/index.cjs +62 -46
  148. package/dist/index.d.mts +16 -16
  149. package/dist/index.d.ts +16 -16
  150. package/dist/index.mjs +62 -46
  151. package/dist/integrations.cjs +5 -3
  152. package/dist/integrations.d.mts +1 -1
  153. package/dist/integrations.d.ts +1 -1
  154. package/dist/integrations.mjs +4 -2
  155. package/dist/internal/app-markdown-runtime.cjs +5 -3
  156. package/dist/internal/app-markdown-runtime.d.mts +19 -5
  157. package/dist/internal/app-markdown-runtime.d.ts +19 -5
  158. package/dist/internal/app-markdown-runtime.mjs +4 -2
  159. package/dist/internal/build-runtime.cjs +33 -30
  160. package/dist/internal/build-runtime.d.mts +3 -3
  161. package/dist/internal/build-runtime.d.ts +3 -3
  162. package/dist/internal/build-runtime.mjs +32 -29
  163. package/dist/internal/cli-runtime.cjs +14 -12
  164. package/dist/internal/cli-runtime.mjs +13 -11
  165. package/dist/internal/client-error-overlay.cjs +4 -4
  166. package/dist/internal/client-error-overlay.mjs +1 -1
  167. package/dist/internal/client-runtime.cjs +2 -2
  168. package/dist/internal/client-runtime.mjs +1 -1
  169. package/dist/internal/compression-runtime.d.mts +1 -1
  170. package/dist/internal/compression-runtime.d.ts +1 -1
  171. package/dist/internal/config-runtime.cjs +9 -7
  172. package/dist/internal/config-runtime.d.mts +2 -2
  173. package/dist/internal/config-runtime.d.ts +2 -2
  174. package/dist/internal/config-runtime.mjs +8 -6
  175. package/dist/internal/docs-precompiled-runtime.cjs +19 -13
  176. package/dist/internal/docs-precompiled-runtime.d.mts +5 -0
  177. package/dist/internal/docs-precompiled-runtime.d.ts +5 -0
  178. package/dist/internal/docs-precompiled-runtime.mjs +14 -8
  179. package/dist/internal/infra-analytics-runtime.cjs +5 -5
  180. package/dist/internal/infra-analytics-runtime.mjs +3 -3
  181. package/dist/internal/product-telemetry-runtime.cjs +2 -2
  182. package/dist/internal/product-telemetry-runtime.mjs +1 -1
  183. package/dist/internal/production-node-env.cjs +6 -2
  184. package/dist/internal/production-node-env.d.mts +10 -1
  185. package/dist/internal/production-node-env.d.ts +10 -1
  186. package/dist/internal/production-node-env.mjs +5 -1
  187. package/dist/internal/production-runtime.cjs +39 -54
  188. package/dist/internal/production-runtime.d.mts +51 -11
  189. package/dist/internal/production-runtime.d.ts +51 -11
  190. package/dist/internal/production-runtime.mjs +39 -54
  191. package/dist/markdown.cjs +8 -2
  192. package/dist/markdown.d.mts +1 -1
  193. package/dist/markdown.d.ts +1 -1
  194. package/dist/markdown.mjs +7 -1
  195. package/dist/middleware.cjs +10 -8
  196. package/dist/middleware.d.mts +27 -5
  197. package/dist/middleware.d.ts +27 -5
  198. package/dist/middleware.mjs +10 -8
  199. package/dist/navigation.cjs +7 -7
  200. package/dist/navigation.d.mts +4 -4
  201. package/dist/navigation.d.ts +4 -4
  202. package/dist/navigation.mjs +6 -6
  203. package/dist/plugin.cjs +25 -23
  204. package/dist/plugin.d.mts +1 -1
  205. package/dist/plugin.d.ts +1 -1
  206. package/dist/plugin.mjs +24 -22
  207. package/dist/{production-runtime-CCeVZXst.d.mts → production-runtime-BQ4_WLwQ.d.mts} +1 -1
  208. package/dist/{production-runtime-DPnsggY3.d.ts → production-runtime-D2aMyzjr.d.ts} +1 -1
  209. package/dist/query/client.cjs +9 -9
  210. package/dist/query/client.mjs +4 -4
  211. package/dist/{render-plan-Cw4f5E_R.d.ts → render-plan-25p4hrj4.d.ts} +1 -1
  212. package/dist/{render-plan-BuGaPFe6.d.mts → render-plan-DtkXMN8D.d.mts} +1 -1
  213. package/dist/renderer-client.cjs +12 -12
  214. package/dist/renderer-client.d.mts +3 -3
  215. package/dist/renderer-client.d.ts +3 -3
  216. package/dist/renderer-client.mjs +4 -4
  217. package/dist/renderer.d.mts +13 -4
  218. package/dist/renderer.d.ts +13 -4
  219. package/dist/{request-CsGARcAw.d.mts → request-DgCkIdcn.d.mts} +4 -2
  220. package/dist/{request-Bkg-hERy.d.ts → request-jF4jwx8f.d.ts} +4 -2
  221. package/dist/request.cjs +3 -3
  222. package/dist/request.d.mts +2 -2
  223. package/dist/request.d.ts +2 -2
  224. package/dist/request.mjs +2 -2
  225. package/dist/{route-rendering-BUZMH_64.d.ts → route-rendering-Bji6S6a_.d.ts} +1 -1
  226. package/dist/{route-rendering-f11yh5dp.d.mts → route-rendering-CSBF78Ya.d.mts} +1 -1
  227. package/dist/{router-Cp6yRE8A.d.mts → router-B09Ui3Qm.d.mts} +1 -1
  228. package/dist/{router-B8CR9GbD.d.ts → router-CPB9cXtG.d.ts} +1 -1
  229. package/dist/routes.cjs +2 -2
  230. package/dist/routes.d.mts +1 -1
  231. package/dist/routes.d.ts +1 -1
  232. package/dist/routes.mjs +1 -1
  233. package/dist/{runtime-CAEv36S_.d.mts → runtime-CM6E6yuI.d.mts} +1 -1
  234. package/dist/{runtime-CQVsT330.d.ts → runtime-EDMwLdjv.d.ts} +1 -1
  235. package/dist/server-fn.cjs +3 -3
  236. package/dist/server-fn.mjs +2 -2
  237. package/dist/server-plugins.cjs +5 -5
  238. package/dist/server-plugins.d.mts +2 -2
  239. package/dist/server-plugins.d.ts +2 -2
  240. package/dist/server-plugins.mjs +4 -4
  241. package/dist/server-query.cjs +4 -4
  242. package/dist/server-query.mjs +3 -3
  243. package/dist/server.cjs +51 -49
  244. package/dist/server.d.mts +7 -7
  245. package/dist/server.d.ts +7 -7
  246. package/dist/server.mjs +29 -27
  247. package/dist/{spa-router-BuciWGCZ.d.ts → spa-router-B_N8XgVu.d.ts} +2 -2
  248. package/dist/{spa-router-DwbqGkGj.d.mts → spa-router-Cgimzfbi.d.mts} +2 -2
  249. package/dist/testing.cjs +8 -8
  250. package/dist/testing.d.mts +1 -1
  251. package/dist/testing.d.ts +1 -1
  252. package/dist/testing.mjs +6 -6
  253. package/dist/theme/server.cjs +4 -4
  254. package/dist/theme/server.mjs +3 -3
  255. package/dist/{utils-CaoWKtYM.d.ts → utils-BNxAKAuT.d.ts} +1 -1
  256. package/dist/{utils-B9V0S_yL.d.mts → utils-DZciYXYl.d.mts} +1 -1
  257. package/dist/version.cjs +2 -2
  258. package/dist/version.mjs +1 -1
  259. package/dist/vite.cjs +25 -23
  260. package/dist/vite.d.mts +1 -1
  261. package/dist/vite.d.ts +1 -1
  262. package/dist/vite.mjs +24 -22
  263. package/package.json +1 -1
  264. package/types/middleware.d.ts +5 -1
  265. package/dist/chunk-655RLQQL.mjs +0 -43
  266. package/dist/chunk-FXEF4PPL.mjs +0 -47
  267. package/dist/chunk-IZY3V5XW.mjs +0 -23
  268. package/dist/chunk-MRMI32SN.cjs +0 -1157
  269. package/dist/chunk-MT763TDW.cjs +0 -43
  270. package/dist/chunk-XD32KALF.cjs +0 -47
  271. /package/dist/{chunk-SJNMVDDF.cjs → chunk-FUCSUGDM.cjs} +0 -0
  272. /package/dist/{chunk-UDNPLXW7.mjs → chunk-MYIZXDZA.mjs} +0 -0
@@ -0,0 +1,109 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); 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
+
3
+
4
+
5
+
6
+ var _chunkPCOTGFSMcjs = require('./chunk-PCOTGFSM.cjs');
7
+
8
+
9
+
10
+ var _chunk2DD4JMQCcjs = require('./chunk-2DD4JMQC.cjs');
11
+
12
+
13
+ var _chunkS3JO3N4Hcjs = require('./chunk-S3JO3N4H.cjs');
14
+
15
+ // src/nitro/native-mcp-source.ts
16
+ function generateNativeMCPPluginSource(mcp) {
17
+ if (_optionalChain([mcp, 'optionalAccess', _ => _.enabled]) !== true) {
18
+ return { importSource: "", registerSource: "", pluginSource: "" };
19
+ }
20
+ return {
21
+ importSource: `import { createFarmMCPPlugin as __farmCreateMCPPlugin } from "@farm.js/mcp/internal";`,
22
+ registerSource: `function __farmMCPIsPlainObject(value) {
23
+ if (!value || typeof value !== "object" || Array.isArray(value)) return false;
24
+ const prototype = Object.getPrototypeOf(value);
25
+ return prototype === Object.prototype || prototype === null;
26
+ }
27
+
28
+ function __farmMergeMCPConfig(base, override) {
29
+ const output = { ...base };
30
+ for (const [key, value] of Object.entries(override)) {
31
+ if (value === undefined) continue;
32
+ output[key] =
33
+ __farmMCPIsPlainObject(output[key]) && __farmMCPIsPlainObject(value)
34
+ ? __farmMergeMCPConfig(output[key], value)
35
+ : value;
36
+ }
37
+ return output;
38
+ }
39
+
40
+ const farmNativeMCPConfig = farmRuntimeConfigs.reduce((merged, runtimeConfig) => {
41
+ const value = runtimeConfig?.mcp;
42
+ if (value === undefined) return merged;
43
+ if (value === false) return false;
44
+ return __farmMergeMCPConfig(merged && merged !== false ? merged : {}, value);
45
+ }, undefined);
46
+ const farmNativeMCPPlugin =
47
+ farmNativeMCPConfig && farmNativeMCPConfig.enabled !== false
48
+ ? __farmCreateMCPPlugin(farmNativeMCPConfig)
49
+ : null;`,
50
+ pluginSource: `...(farmNativeMCPPlugin ? [farmNativeMCPPlugin] : []),`
51
+ };
52
+ }
53
+ _chunkS3JO3N4Hcjs.__name.call(void 0, generateNativeMCPPluginSource, "generateNativeMCPPluginSource");
54
+
55
+ // src/routing/layout-selector.ts
56
+ function createFarmLayoutSelector(layouts, resolveRouteDirectory) {
57
+ const prepared = layouts.map((layout) => {
58
+ const segments = layout.pattern === "/" ? [] : _chunkPCOTGFSMcjs.parseRoutePattern.call(void 0, layout.pattern);
59
+ return {
60
+ layout,
61
+ segments: segments.length === 0 ? null : segments,
62
+ groupScope: _chunk2DD4JMQCcjs.getRouteGroupScope.call(void 0, layout.pattern)
63
+ };
64
+ });
65
+ return (pathname, routeDirectory) => {
66
+ const applicable = [];
67
+ let parts;
68
+ let directory = routeDirectory;
69
+ for (const { layout, segments, groupScope } of prepared) {
70
+ if (segments !== null) {
71
+ _nullishCoalesce(parts, () => ( (parts = _chunkPCOTGFSMcjs.splitNormalizedPathname.call(void 0, _chunkPCOTGFSMcjs.normalizePathname.call(void 0, pathname.replace(/\/$/, "") || "/")))));
72
+ if (_chunkPCOTGFSMcjs.matchSegmentParts.call(void 0, segments, parts, true) === null) continue;
73
+ }
74
+ if (groupScope !== null) {
75
+ if (directory === void 0) directory = _nullishCoalesce(_optionalChain([resolveRouteDirectory, 'optionalCall', _2 => _2(pathname)]), () => ( null));
76
+ if (!_chunk2DD4JMQCcjs.isInRouteGroupScope.call(void 0, directory, groupScope)) continue;
77
+ }
78
+ applicable.push(layout);
79
+ }
80
+ return applicable;
81
+ };
82
+ }
83
+ _chunkS3JO3N4Hcjs.__name.call(void 0, createFarmLayoutSelector, "createFarmLayoutSelector");
84
+ function layoutsCanCoverSamePage(a, b) {
85
+ const scopeA = _chunk2DD4JMQCcjs.getRouteGroupScope.call(void 0, a);
86
+ const scopeB = _chunk2DD4JMQCcjs.getRouteGroupScope.call(void 0, b);
87
+ if (scopeA !== null && scopeB !== null && !_chunk2DD4JMQCcjs.isInRouteGroupScope.call(void 0, scopeA, scopeB) && !_chunk2DD4JMQCcjs.isInRouteGroupScope.call(void 0, scopeB, scopeA)) {
88
+ return false;
89
+ }
90
+ const segmentsA = a === "/" ? [] : _chunkPCOTGFSMcjs.parseRoutePattern.call(void 0, a);
91
+ const segmentsB = b === "/" ? [] : _chunkPCOTGFSMcjs.parseRoutePattern.call(void 0, b);
92
+ const length = Math.min(segmentsA.length, segmentsB.length);
93
+ for (let index = 0; index < length; index++) {
94
+ const segmentA = segmentsA[index];
95
+ const segmentB = segmentsB[index];
96
+ if (segmentA.type === "dynamic" && segmentA.catchAll) return true;
97
+ if (segmentB.type === "dynamic" && segmentB.catchAll) return true;
98
+ if (segmentA.type === "dynamic" || segmentB.type === "dynamic") continue;
99
+ if (segmentA.value !== segmentB.value) return false;
100
+ }
101
+ return true;
102
+ }
103
+ _chunkS3JO3N4Hcjs.__name.call(void 0, layoutsCanCoverSamePage, "layoutsCanCoverSamePage");
104
+
105
+
106
+
107
+
108
+
109
+ exports.generateNativeMCPPluginSource = generateNativeMCPPluginSource; exports.createFarmLayoutSelector = createFarmLayoutSelector; exports.layoutsCanCoverSamePage = layoutsCanCoverSamePage;
@@ -183,6 +183,25 @@ function matchPattern(pattern, pathname) {
183
183
  };
184
184
  }
185
185
  _chunkS3JO3N4Hcjs.__name.call(void 0, matchPattern, "matchPattern");
186
+ function withRoutePathname(ctx, routePathname) {
187
+ return new Proxy(ctx, {
188
+ get(target, key) {
189
+ return key === "pathname" || key === "routePathname" ? routePathname : Reflect.get(target, key, target);
190
+ }
191
+ });
192
+ }
193
+ _chunkS3JO3N4Hcjs.__name.call(void 0, withRoutePathname, "withRoutePathname");
194
+ function matchesMiddlewarePredicate(predicate, ctx, getRoutePathname = () => ctx.routePathname) {
195
+ if (predicate(ctx)) return true;
196
+ const routePathname = getRoutePathname();
197
+ if (routePathname === void 0 || routePathname === ctx.pathname) return false;
198
+ return Boolean(predicate(withRoutePathname(ctx, routePathname)));
199
+ }
200
+ _chunkS3JO3N4Hcjs.__name.call(void 0, matchesMiddlewarePredicate, "matchesMiddlewarePredicate");
201
+ function toMiddlewareRoutePathname(pathname, toRoutePathname = (value) => value) {
202
+ return _chunkUS2QVW3Ecjs.canonicalizeRequestPathname.call(void 0, toRoutePathname(pathname));
203
+ }
204
+ _chunkS3JO3N4Hcjs.__name.call(void 0, toMiddlewareRoutePathname, "toMiddlewareRoutePathname");
186
205
  function matchesCompiledMiddlewareConfig(pathname, config, ctx) {
187
206
  let canonicalPathname;
188
207
  const getCanonicalPathname = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, () => _nullishCoalesce(canonicalPathname, () => ( (canonicalPathname = _chunkUS2QVW3Ecjs.canonicalizeRequestPathname.call(void 0, pathname)))), "getCanonicalPathname");
@@ -196,7 +215,7 @@ function matchesCompiledMiddlewareConfig(pathname, config, ctx) {
196
215
  if (config.matcher) {
197
216
  for (const matcher of config.matcher) {
198
217
  if (typeof matcher === "function") {
199
- if (matcher(ctx)) {
218
+ if (matchesMiddlewarePredicate(matcher, ctx, getCanonicalPathname)) {
200
219
  return { matched: true };
201
220
  }
202
221
  continue;
@@ -235,4 +254,6 @@ _chunkS3JO3N4Hcjs.__name.call(void 0, matchesMiddlewareConfigAt, "matchesMiddlew
235
254
 
236
255
 
237
256
 
238
- exports.compileMiddlewareRoute = compileMiddlewareRoute; exports.matchesMiddlewareRoute = matchesMiddlewareRoute; exports.matchesMiddlewareRouteAt = matchesMiddlewareRouteAt; exports.compileMiddlewareConfig = compileMiddlewareConfig; exports.matchesCompiledMiddlewareConfig = matchesCompiledMiddlewareConfig; exports.matchesMiddlewareConfig = matchesMiddlewareConfig; exports.matchesMiddlewareConfigAt = matchesMiddlewareConfigAt;
257
+
258
+
259
+ exports.compileMiddlewareRoute = compileMiddlewareRoute; exports.matchesMiddlewareRoute = matchesMiddlewareRoute; exports.matchesMiddlewareRouteAt = matchesMiddlewareRouteAt; exports.compileMiddlewareConfig = compileMiddlewareConfig; exports.matchesMiddlewarePredicate = matchesMiddlewarePredicate; exports.toMiddlewareRoutePathname = toMiddlewareRoutePathname; exports.matchesCompiledMiddlewareConfig = matchesCompiledMiddlewareConfig; exports.matchesMiddlewareConfig = matchesMiddlewareConfig; exports.matchesMiddlewareConfigAt = matchesMiddlewareConfigAt;
@@ -3,18 +3,19 @@
3
3
 
4
4
 
5
5
 
6
- var _chunkTE2G5IONcjs = require('./chunk-TE2G5ION.cjs');
6
+
7
+ var _chunkPGZDEPTMcjs = require('./chunk-PGZDEPTM.cjs');
7
8
 
8
9
 
9
10
 
10
11
  var _chunkIK6LVLKCcjs = require('./chunk-IK6LVLKC.cjs');
11
12
 
12
13
 
13
- var _chunkUVW64BCBcjs = require('./chunk-UVW64BCB.cjs');
14
+ var _chunkQ3NXS4MUcjs = require('./chunk-Q3NXS4MU.cjs');
14
15
 
15
16
 
16
17
 
17
- var _chunkHITLGIAOcjs = require('./chunk-HITLGIAO.cjs');
18
+ var _chunkCY2ZQ5C6cjs = require('./chunk-CY2ZQ5C6.cjs');
18
19
 
19
20
 
20
21
  var _chunkS3JO3N4Hcjs = require('./chunk-S3JO3N4H.cjs');
@@ -27,8 +28,17 @@ function hasFarmDocsRuntimeAdapter(docs) {
27
28
  return Boolean(_optionalChain([docs, 'optionalAccess', _ => _.enabled]) && _optionalChain([docs, 'access', _2 => _2.adapter, 'optionalAccess', _3 => _3.server]) && docs.adapter.react);
28
29
  }
29
30
  _chunkS3JO3N4Hcjs.__name.call(void 0, hasFarmDocsRuntimeAdapter, "hasFarmDocsRuntimeAdapter");
31
+ function assertFarmDocsAdapterServesNoGuardedPages(docs, options, isPathGuarded) {
32
+ if (!isPathGuarded || !hasFarmDocsRuntimeAdapter(docs)) return;
33
+ const guarded = _chunkPGZDEPTMcjs.discoverFarmDocsPages.call(void 0, _chunkPGZDEPTMcjs.resolveFarmDocsContentDir.call(void 0, docs, options), docs).filter((page) => isPathGuarded(page.href) || isPathGuarded(_chunkPGZDEPTMcjs.getFarmDocsMarkdownPath.call(void 0, page.href))).map((page) => page.href);
34
+ if (guarded.length === 0) return;
35
+ throw new Error(
36
+ `Docs pages behind a path guard (${guarded.join(", ")}) would be public: the docs adapter ${JSON.stringify(docs.adapter.id)} serves their content in llms-full.txt, search, Markdown, and MCP without running the app's guards. Move those pages out of the docs content directory, or set docs.adapter = false to use Farm's built-in docs runtime, which keeps guarded pages off anonymous surfaces.`
37
+ );
38
+ }
39
+ _chunkS3JO3N4Hcjs.__name.call(void 0, assertFarmDocsAdapterServesNoGuardedPages, "assertFarmDocsAdapterServesNoGuardedPages");
30
40
  async function loadFarmDocsConfigModule(docs, loadModule) {
31
- const configModule = _chunkHITLGIAOcjs.getFarmDocsAdapterConfigModule.call(void 0, docs);
41
+ const configModule = _chunkCY2ZQ5C6cjs.getFarmDocsAdapterConfigModule.call(void 0, docs);
32
42
  if (!configModule) return void 0;
33
43
  const loaded = await loadModule(configModule);
34
44
  const config = _nullishCoalesce(_optionalChain([loaded, 'optionalAccess', _4 => _4.default]), () => ( loaded));
@@ -40,7 +50,7 @@ function createFarmDocsAdapterRuntimeConfig(docs, options, moduleConfig) {
40
50
  ...moduleConfig ? { ...moduleConfig, ...docs.configOverrides } : _nullishCoalesce(docs.runtimeConfig, () => ( docs.config)),
41
51
  entry: docs.config.entry || docs.entry.replace(/^\/+|\/+$/g, "") || "docs",
42
52
  docsPath: docs.entry,
43
- contentDir: _chunkTE2G5IONcjs.resolveFarmDocsContentDir.call(void 0, docs, options)
53
+ contentDir: _chunkPGZDEPTMcjs.resolveFarmDocsContentDir.call(void 0, docs, options)
44
54
  };
45
55
  }
46
56
  _chunkS3JO3N4Hcjs.__name.call(void 0, createFarmDocsAdapterRuntimeConfig, "createFarmDocsAdapterRuntimeConfig");
@@ -99,6 +109,7 @@ async function createFarmDocsAdapterHandler(docs, options) {
99
109
  if (!hasFarmDocsRuntimeAdapter(docs)) {
100
110
  throw new Error("Farm docs adapter requires server and react runtime entrypoints.");
101
111
  }
112
+ assertFarmDocsAdapterServesNoGuardedPages(docs, options, options.isPathGuarded);
102
113
  const serverModule = await options.loadModule(
103
114
  docs.adapter.server
104
115
  );
@@ -277,25 +288,25 @@ function getDocsDescription(docs) {
277
288
  }
278
289
  _chunkS3JO3N4Hcjs.__name.call(void 0, getDocsDescription, "getDocsDescription");
279
290
  function getLoadedDocsPages(context) {
280
- return _chunkTE2G5IONcjs.discoverFarmDocsPages.call(void 0, context.contentDir, context.docs).map((page) => _chunkTE2G5IONcjs.loadFarmDocsPage.call(void 0, context.contentDir, context.docs, page.slug)).filter((page) => Boolean(page));
291
+ return _chunkPGZDEPTMcjs.discoverFarmDocsPages.call(void 0, context.contentDir, context.docs).filter((page) => !context.isPathGuarded(page.href)).map((page) => _chunkPGZDEPTMcjs.loadFarmDocsPage.call(void 0, context.contentDir, context.docs, page.slug)).filter((page) => Boolean(page));
281
292
  }
282
293
  _chunkS3JO3N4Hcjs.__name.call(void 0, getLoadedDocsPages, "getLoadedDocsPages");
283
294
  function toDocsSourcePage(page) {
284
295
  return {
285
- ..._chunkTE2G5IONcjs.toFarmDocsMarkdownPage.call(void 0, page),
296
+ ..._chunkPGZDEPTMcjs.toFarmDocsMarkdownPage.call(void 0, page),
286
297
  sourcePath: page.sourcePath
287
298
  };
288
299
  }
289
300
  _chunkS3JO3N4Hcjs.__name.call(void 0, toDocsSourcePage, "toDocsSourcePage");
290
301
  function toDocsSitemapPage(page) {
291
302
  return {
292
- ..._chunkTE2G5IONcjs.toFarmDocsMarkdownPage.call(void 0, page),
303
+ ..._chunkPGZDEPTMcjs.toFarmDocsMarkdownPage.call(void 0, page),
293
304
  sourcePath: page.sourcePath
294
305
  };
295
306
  }
296
307
  _chunkS3JO3N4Hcjs.__name.call(void 0, toDocsSitemapPage, "toDocsSitemapPage");
297
308
  function toDocsLlmsPage(page) {
298
- return _chunkTE2G5IONcjs.toFarmDocsMarkdownPage.call(void 0, page);
309
+ return _chunkPGZDEPTMcjs.toFarmDocsMarkdownPage.call(void 0, page);
299
310
  }
300
311
  _chunkS3JO3N4Hcjs.__name.call(void 0, toDocsLlmsPage, "toDocsLlmsPage");
301
312
  function getDocsLlmsOptions(context, request) {
@@ -389,7 +400,9 @@ _chunkS3JO3N4Hcjs.__name.call(void 0, renderAgentsDocument, "renderAgentsDocumen
389
400
  function buildAgentSpec(context, request) {
390
401
  const url = new URL(request.url);
391
402
  const origin = url.origin;
392
- const pages = _chunkTE2G5IONcjs.discoverFarmDocsPages.call(void 0, context.contentDir, context.docs);
403
+ const pages = _chunkPGZDEPTMcjs.discoverFarmDocsPages.call(void 0, context.contentDir, context.docs).filter(
404
+ (page) => !context.isPathGuarded(page.href)
405
+ );
393
406
  const spec = _chunkIK6LVLKCcjs.docsEngine.call(void 0, ).buildDocsAgentDiscoverySpec(getDocsDiscoveryOptions(context, request));
394
407
  const title = getDocsTitle(context.docs);
395
408
  return {
@@ -449,7 +462,7 @@ function redactDocsConfigValue(value, key, inHeaders) {
449
462
  );
450
463
  }
451
464
  if (value === null || value === void 0 || typeof value === "function") return value;
452
- return inHeaders || _chunkHITLGIAOcjs.isSecretDocsConfigKey.call(void 0, key) ? REDACTED_DOCS_CONFIG_VALUE : value;
465
+ return inHeaders || _chunkCY2ZQ5C6cjs.isSecretDocsConfigKey.call(void 0, key) ? REDACTED_DOCS_CONFIG_VALUE : value;
453
466
  }
454
467
  _chunkS3JO3N4Hcjs.__name.call(void 0, redactDocsConfigValue, "redactDocsConfigValue");
455
468
  function toPublicDocsPath(value, root) {
@@ -479,7 +492,7 @@ function buildPublicConfig(context) {
479
492
  }
480
493
  _chunkS3JO3N4Hcjs.__name.call(void 0, buildPublicConfig, "buildPublicConfig");
481
494
  function buildDiagnostics(context) {
482
- const pages = _chunkTE2G5IONcjs.discoverFarmDocsPages.call(void 0, context.contentDir, context.docs);
495
+ const pages = _chunkPGZDEPTMcjs.discoverFarmDocsPages.call(void 0, context.contentDir, context.docs);
483
496
  const diagnostics = _chunkIK6LVLKCcjs.docsEngine.call(void 0, ).buildDocsDiagnostics(context.docs.config, {
484
497
  entry: context.docs.entry,
485
498
  mcp: {
@@ -551,13 +564,15 @@ async function resolveAPIContext(options) {
551
564
  config: options.config,
552
565
  configPath: options.configPath
553
566
  }));
554
- const docs = isResolvedDocsConfig(docsInput) ? docsInput : await _chunkUVW64BCBcjs.resolveDocsConfig.call(void 0, docsInput, { root, srcDir });
567
+ const docs = isResolvedDocsConfig(docsInput) ? docsInput : await _chunkQ3NXS4MUcjs.resolveDocsConfig.call(void 0, docsInput, { root, srcDir });
568
+ const guardedPaths = new Set(_nullishCoalesce(_optionalChain([runtimeConfig, 'optionalAccess', _20 => _20.guardedPaths]), () => ( [])));
555
569
  return {
556
570
  root,
557
571
  srcDir,
558
572
  docs,
559
- contentDir: _chunkTE2G5IONcjs.resolveFarmDocsContentDir.call(void 0, docs, { root, srcDir }),
560
- diagnostics: options.diagnostics === true
573
+ contentDir: _chunkPGZDEPTMcjs.resolveFarmDocsContentDir.call(void 0, docs, { root, srcDir }),
574
+ diagnostics: options.diagnostics === true,
575
+ isPathGuarded: _nullishCoalesce(options.isPathGuarded, () => ( ((pathname) => guardedPaths.has(pathname))))
561
576
  };
562
577
  }
563
578
  _chunkS3JO3N4Hcjs.__name.call(void 0, resolveAPIContext, "resolveAPIContext");
@@ -615,10 +630,12 @@ async function handleDocsAPIGet(request, context) {
615
630
  if (format === "markdown" || url.pathname.endsWith(".md")) {
616
631
  const pathParam = url.searchParams.get("path") || url.searchParams.get("slug");
617
632
  const slug = normalizeDocsApiSlug(_nullishCoalesce(_nullishCoalesce(pathParam, () => ( pathTarget.slug)), () => ( "")), context.docs);
618
- const page = _chunkTE2G5IONcjs.loadFarmDocsPage.call(void 0, context.contentDir, context.docs, slug);
619
- if (!page) return text("Docs page not found\n", "text/plain; charset=utf-8", { status: 404 });
633
+ const page = _chunkPGZDEPTMcjs.loadFarmDocsPage.call(void 0, context.contentDir, context.docs, slug);
634
+ if (!page || context.isPathGuarded(page.href)) {
635
+ return text("Docs page not found\n", "text/plain; charset=utf-8", { status: 404 });
636
+ }
620
637
  return text(
621
- _chunkIK6LVLKCcjs.docsEngine.call(void 0, ).renderDocsMarkdownDocument(_chunkTE2G5IONcjs.toFarmDocsMarkdownPage.call(void 0, page), {
638
+ _chunkIK6LVLKCcjs.docsEngine.call(void 0, ).renderDocsMarkdownDocument(_chunkPGZDEPTMcjs.toFarmDocsMarkdownPage.call(void 0, page), {
622
639
  origin: new URL(request.url).origin,
623
640
  llms: getDocsLlmsOptions(context, request),
624
641
  sitemap: context.docs.config.sitemap
@@ -693,4 +710,5 @@ _chunkS3JO3N4Hcjs.__name.call(void 0, createFarmDocsAPIHandler, "createFarmDocsA
693
710
 
694
711
 
695
712
 
696
- exports.hasFarmDocsRuntimeAdapter = hasFarmDocsRuntimeAdapter; exports.compileFarmDocsAdapterEdgeManifest = compileFarmDocsAdapterEdgeManifest; exports.createFarmDocsAdapterHandler = createFarmDocsAdapterHandler; exports.isFarmDocsAPIRequest = isFarmDocsAPIRequest; exports.createDocsAPI = createDocsAPI; exports.createFarmDocsAPIHandler = createFarmDocsAPIHandler;
713
+
714
+ exports.hasFarmDocsRuntimeAdapter = hasFarmDocsRuntimeAdapter; exports.assertFarmDocsAdapterServesNoGuardedPages = assertFarmDocsAdapterServesNoGuardedPages; exports.compileFarmDocsAdapterEdgeManifest = compileFarmDocsAdapterEdgeManifest; exports.createFarmDocsAdapterHandler = createFarmDocsAdapterHandler; exports.isFarmDocsAPIRequest = isFarmDocsAPIRequest; exports.createDocsAPI = createDocsAPI; exports.createFarmDocsAPIHandler = createFarmDocsAPIHandler;
@@ -13,9 +13,12 @@ import {
13
13
  resolveFarmDocsFontAssets,
14
14
  toFarmDocsPublicFontAssets
15
15
  } from "./chunk-TVGP4BBZ.mjs";
16
+ import {
17
+ stampFarmCspNonce
18
+ } from "./chunk-U6QLDL3G.mjs";
16
19
  import {
17
20
  farmAcceptQuality
18
- } from "./chunk-WWIKMBRN.mjs";
21
+ } from "./chunk-VNGH5MLF.mjs";
19
22
  import {
20
23
  matchesFarmIfNoneMatch
21
24
  } from "./chunk-ZMMBIVQM.mjs";
@@ -24,7 +27,13 @@ import {
24
27
  } from "./chunk-LPEX4YW6.mjs";
25
28
 
26
29
  // src/docs/handler.ts
27
- import { existsSync as existsSync2, readdirSync as readdirSync2, readFileSync as readFileSync2, realpathSync as realpathSync2, statSync as statSync2 } from "fs";
30
+ import {
31
+ existsSync as existsSync2,
32
+ readdirSync as readdirSync2,
33
+ readFileSync as readFileSync2,
34
+ realpathSync as realpathSync2,
35
+ statSync as statSync2
36
+ } from "fs";
28
37
  import path2 from "path";
29
38
  import { marked, Renderer } from "marked";
30
39
  import { highlight } from "sugar-high";
@@ -718,15 +727,46 @@ function getRequestSlug(docs, request) {
718
727
  return normalizeSlug(pathname.slice(entry.length));
719
728
  }
720
729
  __name(getRequestSlug, "getRequestSlug");
730
+ function isDiscoverableDocsEntryName(name) {
731
+ return Boolean(name) && !name.startsWith(".") && name !== "node_modules";
732
+ }
733
+ __name(isDiscoverableDocsEntryName, "isDiscoverableDocsEntryName");
734
+ function isDiscoverableDocsFile(contentDir, filePath) {
735
+ const segments = path2.relative(contentDir, filePath).split(path2.sep);
736
+ let dir = contentDir;
737
+ for (const [index, name] of segments.entries()) {
738
+ if (!isDiscoverableDocsEntryName(name)) return false;
739
+ let entry;
740
+ try {
741
+ entry = readdirSync2(dir, { withFileTypes: true }).find(
742
+ (candidate) => candidate.name === name
743
+ );
744
+ } catch {
745
+ return false;
746
+ }
747
+ const isLast = index === segments.length - 1;
748
+ if (!entry || !(isLast ? entry.isFile() : entry.isDirectory())) return false;
749
+ dir = path2.join(dir, name);
750
+ }
751
+ return true;
752
+ }
753
+ __name(isDiscoverableDocsFile, "isDiscoverableDocsFile");
721
754
  function findDocsPageFile(contentDir, slug) {
722
- const segments = slug ? slug.split("/").filter(Boolean) : [];
723
- if (!segments.every(isSafeSegment)) return null;
755
+ const canonicalSlug = trimSlashes(slug);
756
+ const segments = canonicalSlug ? canonicalSlug.split("/") : [];
757
+ if (!segments.every((segment) => isSafeSegment(segment) && isDiscoverableDocsEntryName(segment))) {
758
+ return null;
759
+ }
724
760
  const slugDir = path2.join(contentDir, ...segments);
725
761
  const candidates = segments.length === 0 ? DOCS_FILE_NAMES.map((filename) => path2.join(contentDir, filename)) : [
726
762
  ...DOCS_FILE_NAMES.map((filename) => path2.join(slugDir, filename)),
727
- ...DOCS_FILE_EXTENSIONS2.map((extension) => path2.join(contentDir, `${slug}${extension}`))
763
+ ...DOCS_FILE_EXTENSIONS2.map(
764
+ (extension) => path2.join(contentDir, `${canonicalSlug}${extension}`)
765
+ )
728
766
  ];
729
767
  for (const candidate of candidates) {
768
+ if (pathToSlug(contentDir, candidate) !== canonicalSlug) continue;
769
+ if (!isDiscoverableDocsFile(contentDir, candidate)) continue;
730
770
  const safePath = resolveExistingFileInside(contentDir, candidate);
731
771
  if (safePath) {
732
772
  return safePath;
@@ -784,6 +824,10 @@ function loadFarmDocsPage(contentDir, docs, slug) {
784
824
  };
785
825
  }
786
826
  __name(loadFarmDocsPage, "loadFarmDocsPage");
827
+ function getFarmDocsMarkdownPath(href) {
828
+ return href === "/" ? "/.md" : `${href}.md`;
829
+ }
830
+ __name(getFarmDocsMarkdownPath, "getFarmDocsMarkdownPath");
787
831
  function createDocsHref(entry, slug) {
788
832
  const normalizedEntry = normalizeEntry2(entry);
789
833
  const normalizedSlug = trimSlashes(slug);
@@ -861,8 +905,8 @@ function getDocsDescription(docs) {
861
905
  return docs.config.metadata?.description;
862
906
  }
863
907
  __name(getDocsDescription, "getDocsDescription");
864
- function getLoadedDocsPages(contentDir, docs) {
865
- return discoverFarmDocsPages(contentDir, docs).map((page) => loadFarmDocsPage(contentDir, docs, page.slug)).filter((page) => Boolean(page));
908
+ function getLoadedDocsPages(contentDir, docs, isPathGuarded) {
909
+ return discoverFarmDocsPages(contentDir, docs).filter((page) => !isPathGuarded?.(page.href)).map((page) => loadFarmDocsPage(contentDir, docs, page.slug)).filter((page) => Boolean(page));
866
910
  }
867
911
  __name(getLoadedDocsPages, "getLoadedDocsPages");
868
912
  function toDocsLlmsPage(page) {
@@ -1057,10 +1101,10 @@ function getDocsDiscoveryOptions(docs, request) {
1057
1101
  };
1058
1102
  }
1059
1103
  __name(getDocsDiscoveryOptions, "getDocsDiscoveryOptions");
1060
- function createFarmDocsPublicResponse(contentDir, docs, request) {
1104
+ function createFarmDocsPublicResponse(contentDir, docs, request, isPathGuarded) {
1061
1105
  const url = new URL(request.url);
1062
1106
  let loadedPages;
1063
- const getPages = /* @__PURE__ */ __name(() => loadedPages ?? (loadedPages = getLoadedDocsPages(contentDir, docs)), "getPages");
1107
+ const getPages = /* @__PURE__ */ __name(() => loadedPages ?? (loadedPages = getLoadedDocsPages(contentDir, docs, isPathGuarded)), "getPages");
1064
1108
  const sitemapManifest = /* @__PURE__ */ __name(() => docsEngine().buildDocsSitemapManifest({
1065
1109
  pages: getPages().map(toDocsSitemapPage),
1066
1110
  entry: docs.entry,
@@ -1786,11 +1830,11 @@ function renderDocsSearchTrigger(showIcon = true, className = "") {
1786
1830
  __name(renderDocsSearchTrigger, "renderDocsSearchTrigger");
1787
1831
  function renderDocsSearchMount(clientEntry) {
1788
1832
  return `<div id="farm-docs-search-root" data-farm-docs-search-root data-api="/api/docs"></div>
1789
- <script type="module" src="${escapeAttribute(clientEntry)}"></script>`;
1833
+ ${stampFarmCspNonce(`<script type="module" src="${escapeAttribute(clientEntry)}"></script>`)}`;
1790
1834
  }
1791
1835
  __name(renderDocsSearchMount, "renderDocsSearchMount");
1792
1836
  function renderDocsSearchBootstrapScript() {
1793
- return `<script>${generateFarmDocsSearchBootstrapRuntime()}</script>`;
1837
+ return stampFarmCspNonce(`<script>${generateFarmDocsSearchBootstrapRuntime()}</script>`);
1794
1838
  }
1795
1839
  __name(renderDocsSearchBootstrapScript, "renderDocsSearchBootstrapScript");
1796
1840
  function renderPixelToc(items) {
@@ -1820,9 +1864,9 @@ function renderDocsHashRuntimeScript() {
1820
1864
  }
1821
1865
  __name(renderDocsHashRuntimeScript, "renderDocsHashRuntimeScript");
1822
1866
  function renderDocsRuntimeScripts(docs) {
1823
- return `${renderDocsRuntimeScript(docs)}
1867
+ return stampFarmCspNonce(`${renderDocsRuntimeScript(docs)}
1824
1868
  ${renderDocsHashRuntimeScript()}
1825
- ${renderDocsPageActionsRuntimeScript()}`;
1869
+ ${renderDocsPageActionsRuntimeScript()}`);
1826
1870
  }
1827
1871
  __name(renderDocsRuntimeScripts, "renderDocsRuntimeScripts");
1828
1872
  function renderFarmDocsFontPreloads(fontAssets) {
@@ -1934,7 +1978,9 @@ function createFarmDocsHandler(docs, options) {
1934
1978
  const socialImageSlug = getFarmDocsSocialImageSlug(docs, requestUrl);
1935
1979
  if (socialImageSlug !== null) {
1936
1980
  const socialImagePage = loadFarmDocsPage(contentDir, docs, socialImageSlug);
1937
- if (!socialImagePage || !isFarmDocsSocialImageEnabled(socialImagePage, docs) || getFarmDocsCustomSocialImage(socialImagePage)) {
1981
+ if (!socialImagePage || // The image sits outside the page's URL, where its guard does not reach, and
1982
+ // draws the page's title.
1983
+ options.isPathGuarded?.(socialImagePage.href) || !isFarmDocsSocialImageEnabled(socialImagePage, docs) || getFarmDocsCustomSocialImage(socialImagePage)) {
1938
1984
  return null;
1939
1985
  }
1940
1986
  const descriptor = createFarmDocsSocialImageDescriptor(socialImagePage, docs, requestUrl);
@@ -1953,12 +1999,20 @@ function createFarmDocsHandler(docs, options) {
1953
1999
  if (request.method === "HEAD") return new Response(null, { status: 200, headers });
1954
2000
  return new Response(renderFarmDocsSocialImageSvg(descriptor), { status: 200, headers });
1955
2001
  }
1956
- const publicResponse = createFarmDocsPublicResponse(contentDir, docs, request);
2002
+ const publicResponse = createFarmDocsPublicResponse(
2003
+ contentDir,
2004
+ docs,
2005
+ request,
2006
+ options.isPathGuarded
2007
+ );
1957
2008
  if (publicResponse) return omitFarmDocsHeadBody(request, publicResponse);
1958
2009
  if (!isFarmDocsRequest(docs, request)) return null;
1959
2010
  const page = loadPage(contentDir, docs, request);
1960
2011
  if (!page) return null;
1961
2012
  const negotiatesAccept = !requestUrl.pathname.endsWith(".md");
2013
+ if (!negotiatesAccept && options.isPathGuarded?.(page.href) && !options.isPathGuarded(getFarmDocsMarkdownPath(page.href))) {
2014
+ return null;
2015
+ }
1962
2016
  if (shouldReturnMarkdown(request)) {
1963
2017
  const origin = new URL(request.url).origin;
1964
2018
  return omitFarmDocsHeadBody(
@@ -2022,6 +2076,7 @@ export {
2022
2076
  getFarmDocsRouteTypeEntries,
2023
2077
  getFarmDocsDocumentNavigationMatchers,
2024
2078
  loadFarmDocsPage,
2079
+ getFarmDocsMarkdownPath,
2025
2080
  discoverFarmDocsPages,
2026
2081
  toFarmDocsMarkdownPage,
2027
2082
  createFarmDocsHandler
@@ -29,7 +29,7 @@ var _chunkPSV6XKPOcjs = require('./chunk-PSV6XKPO.cjs');
29
29
  var _chunkM7MKQXAFcjs = require('./chunk-M7MKQXAF.cjs');
30
30
 
31
31
 
32
- var _chunkSJNMVDDFcjs = require('./chunk-SJNMVDDF.cjs');
32
+ var _chunkFUCSUGDMcjs = require('./chunk-FUCSUGDM.cjs');
33
33
 
34
34
 
35
35
  var _chunkUFDAAQFXcjs = require('./chunk-UFDAAQFX.cjs');
@@ -736,7 +736,7 @@ async function createRouteTypeDeclarations(options, outPath) {
736
736
  }
737
737
  }
738
738
  }
739
- for (const route of await _chunkSJNMVDDFcjs.discoverProgrammaticRoutePaths.call(void 0, source.root, source.srcDir)) {
739
+ for (const route of await _chunkFUCSUGDMcjs.discoverProgrammaticRoutePaths.call(void 0, source.root, source.srcDir)) {
740
740
  patterns.add(route);
741
741
  routeModulePatterns.add(route);
742
742
  }
@@ -13,7 +13,7 @@ var _chunkYWN746UScjs = require('./chunk-YWN746US.cjs');
13
13
  var _chunkOX6O6WVAcjs = require('./chunk-OX6O6WVA.cjs');
14
14
 
15
15
 
16
- var _chunkU4KT7QP3cjs = require('./chunk-U4KT7QP3.cjs');
16
+ var _chunkULASELLAcjs = require('./chunk-ULASELLA.cjs');
17
17
 
18
18
 
19
19
  var _chunkS3JO3N4Hcjs = require('./chunk-S3JO3N4H.cjs');
@@ -118,7 +118,7 @@ function createServerFn(options) {
118
118
  throw labelInputErrors && isSchemaValidationFailure(cause) ? new ServerFnInputError(cause) : cause;
119
119
  }
120
120
  const executionContext = _chunkT5OJPTVNcjs.getServerActionExecutionContext.call(void 0, );
121
- const request = _nullishCoalesce(_optionalChain([executionContext, 'optionalAccess', _ => _.request]), () => ( _chunkU4KT7QP3cjs._resolveCurrentRequest.call(void 0, )));
121
+ const request = _nullishCoalesce(_optionalChain([executionContext, 'optionalAccess', _ => _.request]), () => ( _chunkULASELLAcjs._resolveCurrentRequestForApp.call(void 0, )));
122
122
  const signal = _nullishCoalesce(_nullishCoalesce(_optionalChain([executionContext, 'optionalAccess', _2 => _2.signal]), () => ( _optionalChain([request, 'optionalAccess', _3 => _3.signal]))), () => ( _chunkT5OJPTVNcjs.getServerActionSignal.call(void 0, )));
123
123
  const handlerContext = {
124
124
  input,