@farm.js/core 0.1.49 → 0.1.50

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 (310) hide show
  1. package/dist/{agent-mcp-Bb8hnnqd.d.ts → agent-mcp-9BMbRgg_.d.ts} +1 -1
  2. package/dist/{agent-mcp-ir3v4fHf.d.mts → agent-mcp-CIMH324y.d.mts} +1 -1
  3. package/dist/agent-runtime.cjs +3 -3
  4. package/dist/agent-runtime.d.mts +6 -6
  5. package/dist/agent-runtime.d.ts +6 -6
  6. package/dist/agent-runtime.mjs +2 -2
  7. package/dist/analyzer-CN7C74WX.cjs +1066 -0
  8. package/dist/analyzer-DDW34OMC.mjs +1066 -0
  9. package/dist/api/client.d.mts +0 -1
  10. package/dist/api/client.d.ts +0 -1
  11. package/dist/api/route-manager.cjs +5 -5
  12. package/dist/api/route-manager.d.mts +10 -10
  13. package/dist/api/route-manager.d.ts +10 -10
  14. package/dist/api/route-manager.mjs +4 -4
  15. package/dist/api/runtime.cjs +3 -3
  16. package/dist/api/runtime.d.mts +7 -7
  17. package/dist/api/runtime.d.ts +7 -7
  18. package/dist/api/runtime.mjs +2 -2
  19. package/dist/api.cjs +6 -6
  20. package/dist/api.d.mts +10 -10
  21. package/dist/api.d.ts +10 -10
  22. package/dist/api.mjs +5 -5
  23. package/dist/{app-y649szYm.d.ts → app-BWibTHVT.d.ts} +7 -7
  24. package/dist/{app-DLzz02du.d.mts → app-DVJ13FPA.d.mts} +7 -7
  25. package/dist/{app-manifest-Crn8Qd3U.d.mts → app-manifest-CQDJOKL2.d.mts} +1 -1
  26. package/dist/{app-manifest-DNeTKMRL.d.ts → app-manifest-D0kaXdwu.d.ts} +1 -1
  27. package/dist/app-markdown.d.mts +7 -7
  28. package/dist/app-markdown.d.ts +7 -7
  29. package/dist/cache.d.mts +4 -3
  30. package/dist/cache.d.ts +4 -3
  31. package/dist/{chunk-VJXLUTBM.mjs → chunk-2DEPNLXK.mjs} +7 -7
  32. package/dist/chunk-2G63BIRL.mjs +227 -0
  33. package/dist/chunk-2GLQSIZD.mjs +55 -0
  34. package/dist/{chunk-ACI52TCN.mjs → chunk-2VCC3GVC.mjs} +1 -1
  35. package/dist/chunk-3ATXWZPH.cjs +227 -0
  36. package/dist/{chunk-C5S457CK.cjs → chunk-474FO3UE.cjs} +68 -54
  37. package/dist/{chunk-QNQEK3OF.cjs → chunk-4T25YCZ5.cjs} +14 -14
  38. package/dist/{chunk-ATHPRVP2.mjs → chunk-5V4KZOZO.mjs} +1 -1
  39. package/dist/{chunk-FGJQS4EC.cjs → chunk-6QA2SXVH.cjs} +2 -2
  40. package/dist/{chunk-XLYXG73A.mjs → chunk-75WWOZ5C.mjs} +22 -0
  41. package/dist/{chunk-QFQDRJKJ.mjs → chunk-76R5GJER.mjs} +2 -2
  42. package/dist/{chunk-NG44F7AH.mjs → chunk-7ONZDKVY.mjs} +2 -2
  43. package/dist/{chunk-4IICUBQX.cjs → chunk-A5BJKSZE.cjs} +2 -2
  44. package/dist/{chunk-TTYXOAB7.mjs → chunk-ANHZ6SUL.mjs} +1 -1
  45. package/dist/{chunk-ZBS3GOQZ.cjs → chunk-AQLHD6HZ.cjs} +35 -61
  46. package/dist/{chunk-4HM5B5RR.cjs → chunk-B5S2JS6M.cjs} +117 -115
  47. package/dist/{chunk-AXRNEVCS.cjs → chunk-B6PREBN6.cjs} +8 -8
  48. package/dist/{chunk-JOHXK4BB.mjs → chunk-BW6SCVYX.mjs} +1 -1
  49. package/dist/{chunk-LZBM35DH.mjs → chunk-C73RIAEF.mjs} +4 -4
  50. package/dist/chunk-CGCJ2TJU.cjs +55 -0
  51. package/dist/{chunk-UYQOIPXE.mjs → chunk-CPXDDWGL.mjs} +1 -1
  52. package/dist/{chunk-JPAVNDZH.cjs → chunk-CY7H5KS4.cjs} +25 -25
  53. package/dist/{chunk-4S7M63WX.cjs → chunk-DGOLAZLV.cjs} +22 -1
  54. package/dist/{chunk-73XBJRZW.cjs → chunk-E2BMCNMJ.cjs} +2 -2
  55. package/dist/{chunk-FR4HJDI6.cjs → chunk-F5LERVY3.cjs} +21 -24
  56. package/dist/{chunk-A7DK663W.cjs → chunk-FACTMUPI.cjs} +27 -27
  57. package/dist/chunk-G2KTRMWA.mjs +40 -0
  58. package/dist/{chunk-C6U66WWF.mjs → chunk-GFT5AHAT.mjs} +13 -0
  59. package/dist/{chunk-NPPT4RWF.cjs → chunk-GOOK2J2W.cjs} +7 -7
  60. package/dist/{chunk-NW2BKDVT.mjs → chunk-HHFMECFO.mjs} +1 -1
  61. package/dist/{chunk-J27BZO67.mjs → chunk-HWCHIBJZ.mjs} +21 -24
  62. package/dist/{chunk-HTLCLOXQ.cjs → chunk-HYN3LLG7.cjs} +3 -3
  63. package/dist/{chunk-HELQXYVI.cjs → chunk-I2DQGS56.cjs} +11 -9
  64. package/dist/{chunk-SSNN55Q6.cjs → chunk-IQXGHGZF.cjs} +5 -5
  65. package/dist/{chunk-ZSIGEHSE.cjs → chunk-IUBDMDZZ.cjs} +21 -180
  66. package/dist/{chunk-Z3BXMMFF.mjs → chunk-IWJKJDNW.mjs} +38 -24
  67. package/dist/{chunk-DGVVVYKD.mjs → chunk-JJOWY3XD.mjs} +2 -2
  68. package/dist/{chunk-6XFGJBYX.cjs → chunk-JYNNIGQO.cjs} +16 -7
  69. package/dist/{chunk-XO6WL6NL.mjs → chunk-KGP76FSV.mjs} +1 -1
  70. package/dist/{chunk-GXSMF7UR.mjs → chunk-KO2NWUKN.mjs} +1 -1
  71. package/dist/{chunk-AIHD6VME.cjs → chunk-KZH6YLND.cjs} +154 -126
  72. package/dist/{chunk-5566GNEG.cjs → chunk-LIFUPCXW.cjs} +13 -0
  73. package/dist/{chunk-I2SWKWO7.mjs → chunk-LJDIFIJ2.mjs} +1 -1
  74. package/dist/{chunk-KZT2VHRQ.cjs → chunk-LYWAGXXW.cjs} +11 -11
  75. package/dist/{chunk-RYDDUCNJ.mjs → chunk-M7LKA632.mjs} +1 -1
  76. package/dist/{chunk-6LH33DLL.cjs → chunk-NJVFPJ2Y.cjs} +2 -2
  77. package/dist/{chunk-JWP56HCP.mjs → chunk-OD6WM3I7.mjs} +2 -2
  78. package/dist/{chunk-MJ6IC4K2.mjs → chunk-OTOOJIUB.mjs} +1 -1
  79. package/dist/{chunk-R2SEZEBC.cjs → chunk-OYNNA4DD.cjs} +4 -4
  80. package/dist/{chunk-GBPDSUFE.mjs → chunk-OZK2DS44.mjs} +1 -1
  81. package/dist/chunk-QXJADAQB.cjs +40 -0
  82. package/dist/{chunk-J5VCA45K.cjs → chunk-RHOR2J6V.cjs} +1 -1
  83. package/dist/{chunk-YQGZLCT4.cjs → chunk-RWT2BTJT.cjs} +6 -6
  84. package/dist/{chunk-3HBFI373.cjs → chunk-S5AQ7CAC.cjs} +14 -14
  85. package/dist/{chunk-HNAUK3SC.mjs → chunk-SHJJM6OG.mjs} +40 -199
  86. package/dist/{chunk-LL7TDMOM.mjs → chunk-SMUW7UST.mjs} +33 -59
  87. package/dist/{chunk-VCFBQFOV.mjs → chunk-SN5VSO3Q.mjs} +9 -7
  88. package/dist/{chunk-DM3TFCC2.cjs → chunk-SUV6YO4Q.cjs} +5 -5
  89. package/dist/{chunk-JUMPFVMK.mjs → chunk-TUOO6IK3.mjs} +9 -0
  90. package/dist/chunk-UB7RVEMX.mjs +73 -0
  91. package/dist/{chunk-CDTIXBKN.mjs → chunk-UN6N623E.mjs} +2 -2
  92. package/dist/{chunk-BEXYFR2R.cjs → chunk-UY6HS5PF.cjs} +2 -2
  93. package/dist/{chunk-HAH4FBTA.mjs → chunk-VAHBCI6X.mjs} +1 -1
  94. package/dist/{chunk-N25RPPO5.cjs → chunk-WAPQWAE6.cjs} +10 -10
  95. package/dist/{chunk-Z4LTSH7D.mjs → chunk-WVBUXNBX.mjs} +71 -43
  96. package/dist/{chunk-ALD2WMLA.mjs → chunk-WXHDVXJE.mjs} +2 -2
  97. package/dist/{chunk-EVCQX243.cjs → chunk-X2EL3BLH.cjs} +2 -2
  98. package/dist/{chunk-EA5PMJDU.mjs → chunk-X3HOVNHI.mjs} +1 -1
  99. package/dist/{chunk-XXB37YET.cjs → chunk-XLRLSTJ6.cjs} +7 -7
  100. package/dist/{chunk-DRFADSKY.mjs → chunk-XXXRRVY6.mjs} +4 -4
  101. package/dist/{chunk-EXHEPWFJ.cjs → chunk-YAXOEAND.cjs} +10 -10
  102. package/dist/{chunk-PEHL3IZL.cjs → chunk-YB44NKC2.cjs} +2 -2
  103. package/dist/chunk-YKHRCY4T.cjs +73 -0
  104. package/dist/{chunk-IVHPRF4W.mjs → chunk-ZLOQQ2UF.mjs} +32 -30
  105. package/dist/client/lifecycle.d.mts +1 -1
  106. package/dist/client/lifecycle.d.ts +1 -1
  107. package/dist/{client-plugins-DFDQUI9Q.d.ts → client-plugins-BPfltM5m.d.ts} +15 -8
  108. package/dist/{client-plugins-BNBeyLMi.d.mts → client-plugins-D4RO59f0.d.mts} +15 -8
  109. package/dist/client-plugins.d.mts +6 -6
  110. package/dist/client-plugins.d.ts +6 -6
  111. package/dist/client.cjs +11 -8
  112. package/dist/client.d.mts +11 -10
  113. package/dist/client.d.ts +11 -10
  114. package/dist/client.mjs +12 -9
  115. package/dist/client.react-server.mjs +1 -1
  116. package/dist/config-CnhyvvmT.d.mts +188 -0
  117. package/dist/config-CnhyvvmT.d.ts +188 -0
  118. package/dist/config.d.mts +6 -6
  119. package/dist/config.d.ts +6 -6
  120. package/dist/desktop.d.mts +7 -7
  121. package/dist/desktop.d.ts +7 -7
  122. package/dist/{dev-guard-YO6KPIOQ.mjs → dev-guard-4PFQNXQX.mjs} +2 -1
  123. package/dist/{dev-guard-PLHL6OTJ.cjs → dev-guard-YLO5DE3H.cjs} +4 -3
  124. package/dist/{devtools-A37WWJZL.cjs → devtools-N5XTOECL.cjs} +8 -8
  125. package/dist/{devtools-BLKHPY3C.mjs → devtools-STG7HPRV.mjs} +7 -7
  126. package/dist/docs.cjs +10 -10
  127. package/dist/docs.d.mts +7 -7
  128. package/dist/docs.d.ts +7 -7
  129. package/dist/docs.mjs +9 -9
  130. package/dist/environment/vite.d.mts +1 -1
  131. package/dist/environment/vite.d.ts +1 -1
  132. package/dist/generate-route-types-DQP0cUzk.d.ts +33 -0
  133. package/dist/generate-route-types-TF5Wwtvz.d.mts +33 -0
  134. package/dist/i18n/client.d.mts +2 -2
  135. package/dist/i18n/client.d.ts +2 -2
  136. package/dist/i18n/index.d.mts +3 -3
  137. package/dist/i18n/index.d.ts +3 -3
  138. package/dist/i18n/server.d.mts +5 -5
  139. package/dist/i18n/server.d.ts +5 -5
  140. package/dist/image/server.cjs +3 -3
  141. package/dist/image/server.mjs +2 -2
  142. package/dist/image/sharp.cjs +10 -10
  143. package/dist/image/sharp.mjs +2 -2
  144. package/dist/{index-CeJ9_s9p.d.mts → index-C-N3Pwg-.d.ts} +2 -2
  145. package/dist/{index-MocnSP3a.d.ts → index-D3l4tREW.d.ts} +2 -2
  146. package/dist/{index-Cl3akY5U.d.mts → index-DPUAPho_.d.mts} +2 -2
  147. package/dist/{index-DBdiTkNc.d.ts → index-k8o8eUOd.d.mts} +2 -2
  148. package/dist/index.cjs +72 -65
  149. package/dist/index.d.mts +29 -45
  150. package/dist/index.d.ts +29 -45
  151. package/dist/index.mjs +77 -70
  152. package/dist/integrations.cjs +3 -3
  153. package/dist/integrations.d.mts +6 -6
  154. package/dist/integrations.d.ts +6 -6
  155. package/dist/integrations.mjs +2 -2
  156. package/dist/internal/app-markdown-runtime.d.mts +7 -7
  157. package/dist/internal/app-markdown-runtime.d.ts +7 -7
  158. package/dist/internal/build-runtime.cjs +35 -32
  159. package/dist/internal/build-runtime.d.mts +9 -9
  160. package/dist/internal/build-runtime.d.ts +9 -9
  161. package/dist/internal/build-runtime.mjs +34 -31
  162. package/dist/internal/cli-runtime.cjs +16 -15
  163. package/dist/internal/cli-runtime.mjs +16 -15
  164. package/dist/internal/client-error-overlay.cjs +4 -4
  165. package/dist/internal/client-error-overlay.mjs +1 -1
  166. package/dist/internal/client-runtime.cjs +19 -2
  167. package/dist/internal/client-runtime.d.mts +45 -3
  168. package/dist/internal/client-runtime.d.ts +45 -3
  169. package/dist/internal/client-runtime.mjs +19 -2
  170. package/dist/internal/compression-runtime.d.mts +6 -6
  171. package/dist/internal/compression-runtime.d.ts +6 -6
  172. package/dist/internal/config-runtime.cjs +17 -10
  173. package/dist/internal/config-runtime.d.mts +259 -18
  174. package/dist/internal/config-runtime.d.ts +259 -18
  175. package/dist/internal/config-runtime.mjs +15 -8
  176. package/dist/internal/form-actions.cjs +4 -4
  177. package/dist/internal/form-actions.mjs +3 -3
  178. package/dist/internal/infra-analytics-runtime.cjs +6 -6
  179. package/dist/internal/infra-analytics-runtime.mjs +4 -4
  180. package/dist/internal/metadata-image-runtime.cjs +3 -3
  181. package/dist/internal/metadata-image-runtime.mjs +2 -2
  182. package/dist/internal/product-telemetry-runtime.cjs +2 -2
  183. package/dist/internal/product-telemetry-runtime.mjs +1 -1
  184. package/dist/internal/production-runtime.cjs +12 -12
  185. package/dist/internal/production-runtime.d.mts +19 -19
  186. package/dist/internal/production-runtime.d.ts +19 -19
  187. package/dist/internal/production-runtime.mjs +14 -14
  188. package/dist/{layers-D9fbe-rz.d.ts → layers-CcS42OGR.d.mts} +1 -1
  189. package/dist/{layers-D9fbe-rz.d.mts → layers-CcS42OGR.d.ts} +1 -1
  190. package/dist/{lifecycle-DK06VuKP.d.ts → lifecycle-C2aLBOwu.d.mts} +1 -1
  191. package/dist/{lifecycle-DK06VuKP.d.mts → lifecycle-C2aLBOwu.d.ts} +1 -1
  192. package/dist/markdown.d.mts +6 -6
  193. package/dist/markdown.d.ts +6 -6
  194. package/dist/middleware.cjs +7 -7
  195. package/dist/middleware.d.mts +8 -8
  196. package/dist/middleware.d.ts +8 -8
  197. package/dist/middleware.mjs +6 -6
  198. package/dist/mobile.cjs +9 -0
  199. package/dist/mobile.d.mts +67 -0
  200. package/dist/mobile.d.ts +67 -0
  201. package/dist/mobile.mjs +9 -0
  202. package/dist/navigation-delegate-8xg3Zvp4.d.ts +29 -0
  203. package/dist/navigation-delegate-ji6elCKy.d.mts +29 -0
  204. package/dist/navigation.cjs +5 -5
  205. package/dist/navigation.d.mts +9 -9
  206. package/dist/navigation.d.ts +9 -9
  207. package/dist/navigation.mjs +4 -4
  208. package/dist/{nitro-UT2J5A5D.mjs → nitro-2Q5NVY7L.mjs} +2 -2
  209. package/dist/{nitro-BIXIKJZS.cjs → nitro-YPSZBYDK.cjs} +3 -3
  210. package/dist/platform.cjs +2 -1
  211. package/dist/platform.d.mts +4 -3
  212. package/dist/platform.d.ts +4 -3
  213. package/dist/platform.mjs +2 -1
  214. package/dist/{plugin-4KYXV7BB.mjs → plugin-53SY5YBS.mjs} +1 -1
  215. package/dist/{plugin-WBANOZQM.cjs → plugin-HZIBL3DW.cjs} +2 -2
  216. package/dist/plugin.cjs +30 -28
  217. package/dist/plugin.d.mts +13 -8
  218. package/dist/plugin.d.ts +13 -8
  219. package/dist/plugin.mjs +29 -27
  220. package/dist/{production-runtime-DcD-GRAv.d.mts → production-runtime-DXnQQkQf.d.mts} +3 -3
  221. package/dist/{production-runtime-B3qFFtKF.d.ts → production-runtime-TdKaYRj0.d.ts} +3 -3
  222. package/dist/production-vite-BQFAlG7n.d.mts +13 -0
  223. package/dist/production-vite-BQFAlG7n.d.ts +13 -0
  224. package/dist/{programmatic-routes-client-fD9f4XqU.d.ts → programmatic-routes-client-BwiTndEC.d.ts} +2 -2
  225. package/dist/{programmatic-routes-client-DzbYGiZQ.d.mts → programmatic-routes-client-Dh1SDLSM.d.mts} +2 -2
  226. package/dist/query/client.cjs +6 -6
  227. package/dist/query/client.mjs +2 -2
  228. package/dist/{render-plan-B6cfssrr.d.ts → render-plan-BPbwRbuN.d.ts} +1 -1
  229. package/dist/{render-plan-DqJ51ufr.d.mts → render-plan-BvCGXF6K.d.mts} +1 -1
  230. package/dist/renderer-client.cjs +9 -6
  231. package/dist/renderer-client.d.mts +9 -8
  232. package/dist/renderer-client.d.ts +9 -8
  233. package/dist/renderer-client.mjs +6 -3
  234. package/dist/{request-jhvUMXRx.d.ts → request-B8PGTZNR.d.ts} +1 -1
  235. package/dist/{request-UuAxHn8h.d.mts → request-C_xTkJib.d.mts} +1 -1
  236. package/dist/request.d.mts +7 -7
  237. package/dist/request.d.ts +7 -7
  238. package/dist/{resolver-DC57A4vz.d.ts → resolver-CJ-D9nP-.d.ts} +1 -1
  239. package/dist/{resolver-C2G-3Tm6.d.mts → resolver-TDyZKgKI.d.mts} +1 -1
  240. package/dist/{route-rendering-Cou00t1X.d.mts → route-rendering-DlddURL1.d.mts} +1 -1
  241. package/dist/{route-rendering-Sn50cYZf.d.ts → route-rendering-RNtcj607.d.ts} +1 -1
  242. package/dist/{router-0X9DCTcm.d.mts → router-B97eB0Mq.d.mts} +1 -1
  243. package/dist/{router-xwLvi48p.d.ts → router-qUVaoEN8.d.ts} +1 -1
  244. package/dist/routes-8PT9cl60.d.ts +121 -0
  245. package/dist/routes-kEUsXHx3.d.mts +121 -0
  246. package/dist/routes.d.mts +6 -6
  247. package/dist/routes.d.ts +6 -6
  248. package/dist/{rsc-pipeline-VKHMABDJ.cjs → rsc-pipeline-L4XOZ2TE.cjs} +13 -11
  249. package/dist/{rsc-pipeline-F6ZPH5MU.mjs → rsc-pipeline-T3775JUA.mjs} +12 -10
  250. package/dist/runtime-BIBGJO7V.cjs +1005 -0
  251. package/dist/{runtime-B9HmxiZc.d.ts → runtime-C4CmlOOh.d.ts} +2 -2
  252. package/dist/{runtime-tkSXZiqO.d.ts → runtime-C8GUnNeP.d.ts} +1 -1
  253. package/dist/{runtime-CMrsyChI.d.mts → runtime-CaDswfWi.d.mts} +1 -1
  254. package/dist/{runtime-CCxTmGuf.d.mts → runtime-CihDZ2Rn.d.mts} +2 -2
  255. package/dist/runtime-HRSFC4ZC.mjs +1005 -0
  256. package/dist/{schema-dev-notice-O3I5HLXK.mjs → schema-dev-notice-LZ5NXGLN.mjs} +2 -2
  257. package/dist/{schema-dev-notice-Z73J3NJ6.cjs → schema-dev-notice-XV7GZ3QJ.cjs} +4 -4
  258. package/dist/server-action-security.cjs +3 -3
  259. package/dist/server-action-security.mjs +2 -2
  260. package/dist/server-fn-client.d.mts +0 -1
  261. package/dist/server-fn-client.d.ts +0 -1
  262. package/dist/server-fn.cjs +4 -4
  263. package/dist/server-fn.d.mts +0 -1
  264. package/dist/server-fn.d.ts +0 -1
  265. package/dist/server-fn.mjs +3 -3
  266. package/dist/server-plugins.cjs +1 -1
  267. package/dist/server-plugins.d.mts +7 -7
  268. package/dist/server-plugins.d.ts +7 -7
  269. package/dist/server-plugins.mjs +1 -1
  270. package/dist/server-query-client.d.mts +0 -1
  271. package/dist/server-query-client.d.ts +0 -1
  272. package/dist/server-query.cjs +5 -5
  273. package/dist/server-query.d.mts +0 -1
  274. package/dist/server-query.d.ts +0 -1
  275. package/dist/server-query.mjs +4 -4
  276. package/dist/server.cjs +88 -65
  277. package/dist/server.d.mts +22 -17
  278. package/dist/server.d.ts +22 -17
  279. package/dist/server.mjs +63 -40
  280. package/dist/{spa-router-B48EjsS1.d.mts → spa-router-Dlv5ofg0.d.mts} +4 -4
  281. package/dist/{spa-router-B06APnGK.d.ts → spa-router-qapSboKz.d.ts} +4 -4
  282. package/dist/testing.cjs +7 -7
  283. package/dist/testing.d.mts +6 -6
  284. package/dist/testing.d.ts +6 -6
  285. package/dist/testing.mjs +5 -5
  286. package/dist/{types--Wh02r5_.d.mts → types-C41ePjvP.d.mts} +1 -1
  287. package/dist/{types--Wh02r5_.d.ts → types-C41ePjvP.d.ts} +1 -1
  288. package/dist/{utils-C5fyK2tE.d.ts → utils-A-cYF81u.d.ts} +1 -1
  289. package/dist/{utils-hyAwmcN6.d.mts → utils-DyvlSxFk.d.mts} +1 -1
  290. package/dist/version.cjs +2 -2
  291. package/dist/version.mjs +1 -1
  292. package/dist/vite.cjs +30 -28
  293. package/dist/vite.d.mts +9 -9
  294. package/dist/vite.d.ts +9 -9
  295. package/dist/vite.mjs +29 -27
  296. package/dist/{workflows-Df1C_7OG.d.mts → workflows-CRMzQZ3k.d.mts} +2 -1
  297. package/dist/{workflows-Df1C_7OG.d.ts → workflows-CRMzQZ3k.d.ts} +2 -1
  298. package/dist/workflows.cjs +3 -3
  299. package/dist/workflows.d.mts +1 -1
  300. package/dist/workflows.d.ts +1 -1
  301. package/dist/workflows.mjs +2 -2
  302. package/package.json +10 -2
  303. package/dist/cache-invalidation-BD0z_lfu.d.mts +0 -4
  304. package/dist/cache-invalidation-BD0z_lfu.d.ts +0 -4
  305. package/dist/chunk-45EUIICW.mjs +0 -15
  306. package/dist/chunk-V7KTQR4C.cjs +0 -15
  307. package/dist/{chunk-BR5FSKZ5.cjs → chunk-EQWWOQTK.cjs} +0 -0
  308. package/dist/{chunk-5OJVKXFV.cjs → chunk-N7JQXQAV.cjs} +2 -2
  309. package/dist/{chunk-VR4SEDEM.mjs → chunk-VOZ5DI7D.mjs} +0 -0
  310. package/dist/{chunk-72KABRWN.mjs → chunk-WSDKXV4E.mjs} +4 -4
@@ -9,7 +9,7 @@ var _chunkKBGZ5FD6cjs = require('./chunk-KBGZ5FD6.cjs');
9
9
  var _chunkP2355C6Ecjs = require('./chunk-P2355C6E.cjs');
10
10
 
11
11
 
12
- var _chunkEXHEPWFJcjs = require('./chunk-EXHEPWFJ.cjs');
12
+ var _chunkYAXOEANDcjs = require('./chunk-YAXOEAND.cjs');
13
13
 
14
14
 
15
15
  var _chunkJZMZKABScjs = require('./chunk-JZMZKABS.cjs');
@@ -23,7 +23,7 @@ var _chunkSBDWCDS6cjs = require('./chunk-SBDWCDS6.cjs');
23
23
 
24
24
 
25
25
 
26
- var _chunkR2SEZEBCcjs = require('./chunk-R2SEZEBC.cjs');
26
+ var _chunkOYNNA4DDcjs = require('./chunk-OYNNA4DD.cjs');
27
27
 
28
28
 
29
29
  var _chunkE7QOEV5Zcjs = require('./chunk-E7QOEV5Z.cjs');
@@ -32,7 +32,7 @@ var _chunkE7QOEV5Zcjs = require('./chunk-E7QOEV5Z.cjs');
32
32
  var _chunkY3WG64CPcjs = require('./chunk-Y3WG64CP.cjs');
33
33
 
34
34
 
35
- var _chunk6XFGJBYXcjs = require('./chunk-6XFGJBYX.cjs');
35
+ var _chunkJYNNIGQOcjs = require('./chunk-JYNNIGQO.cjs');
36
36
 
37
37
 
38
38
 
@@ -44,7 +44,7 @@ var _chunkZ5MZDFX4cjs = require('./chunk-Z5MZDFX4.cjs');
44
44
 
45
45
 
46
46
 
47
- var _chunk5566GNEGcjs = require('./chunk-5566GNEG.cjs');
47
+ var _chunkLIFUPCXWcjs = require('./chunk-LIFUPCXW.cjs');
48
48
 
49
49
 
50
50
  var _chunkHNAISJFDcjs = require('./chunk-HNAISJFD.cjs');
@@ -60,7 +60,7 @@ function farmApiPlugin(options = {}) {
60
60
  const srcDir = _nullishCoalesce(options.srcDir, () => ( "src"));
61
61
  const apiDirFromRoot = _nullishCoalesce(options.apiDir, () => ( _path2.default.join(srcDir, "api")));
62
62
  const debug = _nullishCoalesce(options.debug, () => ( false));
63
- const bodySizeLimit = _chunk5566GNEGcjs.resolveFarmServerConfig.call(void 0, {
63
+ const bodySizeLimit = _chunkLIFUPCXWcjs.resolveFarmServerConfig.call(void 0, {
64
64
  bodySizeLimit: options.bodySizeLimit
65
65
  }).bodySizeLimit;
66
66
  const basePath = options.basePath;
@@ -113,7 +113,7 @@ function farmApiPlugin(options = {}) {
113
113
  const existing = apiRoutesCache.get(routePath);
114
114
  const existingFile = _optionalChain([endpointSources, 'access', _ => _.get, 'call', _2 => _2(routePath), 'optionalAccess', _3 => _3.get, 'call', _4 => _4(normalizedMethod)]);
115
115
  if (existingFile) {
116
- throw new (0, _chunkEXHEPWFJcjs.APIRouteConflictError)(routePath, normalizedMethod, existingFile, filePath);
116
+ throw new (0, _chunkYAXOEANDcjs.APIRouteConflictError)(routePath, normalizedMethod, existingFile, filePath);
117
117
  }
118
118
  if (existing) {
119
119
  if (!existing.methods.includes(normalizedMethod)) {
@@ -189,7 +189,7 @@ function farmApiPlugin(options = {}) {
189
189
  const createRouter = async () => {
190
190
  const plugins = options.plugins ? await (_nullishCoalesce(routePlugins, () => ( (routePlugins = Promise.resolve(options.plugins({ root: projectRoot })))))) : [];
191
191
  pluginMergedRoutes = plugins.length ? new Map(
192
- _chunkR2SEZEBCcjs.mergePluginAPIRoutes.call(void 0, [...apiRoutesCache.values()], plugins, void 0, {
192
+ _chunkOYNNA4DDcjs.mergePluginAPIRoutes.call(void 0, [...apiRoutesCache.values()], plugins, void 0, {
193
193
  bodySizeLimit,
194
194
  // A plugin calling an app endpoint (an MCP tool, say) goes back through this server,
195
195
  // so the middleware that guards the endpoint's path runs for it.
@@ -209,7 +209,7 @@ function farmApiPlugin(options = {}) {
209
209
  const url = new URL(request.url);
210
210
  const method = request.method.toUpperCase();
211
211
  const pathname = url.pathname;
212
- const match = _chunkR2SEZEBCcjs.matchAPIRouteAtBasePath.call(void 0, servedRoutes(), pathname, basePath);
212
+ const match = _chunkOYNNA4DDcjs.matchAPIRouteAtBasePath.call(void 0, servedRoutes(), pathname, basePath);
213
213
  if (!match) {
214
214
  return new Response(JSON.stringify({ error: "Not Found" }), {
215
215
  status: 404,
@@ -217,18 +217,18 @@ function farmApiPlugin(options = {}) {
217
217
  });
218
218
  }
219
219
  const { route, params } = match;
220
- const endpoint = _chunkR2SEZEBCcjs.resolveAPIRouteEndpoint.call(void 0, route, method);
220
+ const endpoint = _chunkOYNNA4DDcjs.resolveAPIRouteEndpoint.call(void 0, route, method);
221
221
  if (!endpoint) {
222
222
  return new Response(JSON.stringify({ error: "Method Not Allowed" }), {
223
223
  status: 405,
224
224
  headers: {
225
- Allow: _chunkR2SEZEBCcjs.getAllowedAPIRouteMethods.call(void 0, route).join(", "),
225
+ Allow: _chunkOYNNA4DDcjs.getAllowedAPIRouteMethods.call(void 0, route).join(", "),
226
226
  "Content-Type": "application/json"
227
227
  }
228
228
  });
229
229
  }
230
230
  try {
231
- return await _chunkR2SEZEBCcjs.invokeAPIRouteEndpoint.call(void 0, endpoint, request, params, bodySizeLimit);
231
+ return await _chunkOYNNA4DDcjs.invokeAPIRouteEndpoint.call(void 0, endpoint, request, params, bodySizeLimit);
232
232
  } catch (error) {
233
233
  return new Response(JSON.stringify({ error: error.message || "Internal Server Error" }), {
234
234
  status: 500,
@@ -274,10 +274,10 @@ function farmApiPlugin(options = {}) {
274
274
  try {
275
275
  const relativePath = path.relative(apiDir, path.dirname(filePath));
276
276
  const routePath = "/api/" + (relativePath === "." ? "" : relativePath.replace(/\\/g, "/"));
277
- const routeModule = await _chunk6XFGJBYXcjs.loadFarmDevModule.call(void 0, server, filePath);
277
+ const routeModule = await _chunkJYNNIGQOcjs.loadFarmDevModule.call(void 0, server, filePath);
278
278
  const endpoints = {};
279
279
  const availableMethods = [];
280
- for (const method of _chunkR2SEZEBCcjs.API_ROUTE_METHODS) {
280
+ for (const method of _chunkOYNNA4DDcjs.API_ROUTE_METHODS) {
281
281
  if (routeModule[method]) {
282
282
  availableMethods.push(method);
283
283
  endpoints[method] = routeModule[method];
@@ -290,7 +290,7 @@ function farmApiPlugin(options = {}) {
290
290
  log(`API route discovered: ${availableMethods.join(", ")} ${routePath}`);
291
291
  }
292
292
  } catch (e) {
293
- if (e instanceof _chunkEXHEPWFJcjs.APIRouteConflictError || e instanceof _chunkYTVSWXEZcjs.AmbiguousRouteError) throw e;
293
+ if (e instanceof _chunkYAXOEANDcjs.APIRouteConflictError || e instanceof _chunkYTVSWXEZcjs.AmbiguousRouteError) throw e;
294
294
  log(`API route load failed at ${filePath}: ${e.message}`);
295
295
  }
296
296
  }
@@ -306,7 +306,7 @@ function farmApiPlugin(options = {}) {
306
306
  for (const routesFile of routesFiles) {
307
307
  if (fs.existsSync(routesFile)) {
308
308
  try {
309
- const routesModule = await _chunk6XFGJBYXcjs.loadFarmDevModule.call(void 0, server, routesFile);
309
+ const routesModule = await _chunkJYNNIGQOcjs.loadFarmDevModule.call(void 0, server, routesFile);
310
310
  for (const [exportName, exportValue] of Object.entries(routesModule)) {
311
311
  const endpoint = exportValue;
312
312
  if (endpoint && endpoint.__path) {
@@ -317,7 +317,7 @@ function farmApiPlugin(options = {}) {
317
317
  }
318
318
  }
319
319
  } catch (e) {
320
- if (e instanceof _chunkEXHEPWFJcjs.APIRouteConflictError || e instanceof _chunkYTVSWXEZcjs.AmbiguousRouteError) throw e;
320
+ if (e instanceof _chunkYAXOEANDcjs.APIRouteConflictError || e instanceof _chunkYTVSWXEZcjs.AmbiguousRouteError) throw e;
321
321
  log(`Root routes.ts load failed: ${e.message}`);
322
322
  }
323
323
  break;
@@ -332,7 +332,7 @@ function farmApiPlugin(options = {}) {
332
332
  const { getProgrammaticRouteManifest } = await import("./routes.cjs");
333
333
  for (const routeFile of routeFiles) {
334
334
  try {
335
- const routesModule = await _chunk6XFGJBYXcjs.loadFarmDevModule.call(void 0,
335
+ const routesModule = await _chunkJYNNIGQOcjs.loadFarmDevModule.call(void 0,
336
336
  server,
337
337
  _chunkXN2MB4QZcjs.toViteModuleId.call(void 0, routeFile, server.config.root)
338
338
  );
@@ -348,7 +348,7 @@ function farmApiPlugin(options = {}) {
348
348
  }
349
349
  }
350
350
  } catch (e) {
351
- if (e instanceof _chunkEXHEPWFJcjs.APIRouteConflictError || e instanceof _chunkYTVSWXEZcjs.AmbiguousRouteError) throw e;
351
+ if (e instanceof _chunkYAXOEANDcjs.APIRouteConflictError || e instanceof _chunkYTVSWXEZcjs.AmbiguousRouteError) throw e;
352
352
  log(`Programmatic routes file load failed at ${routeFile}: ${e.message}`);
353
353
  }
354
354
  }
@@ -400,7 +400,7 @@ function farmApiPlugin(options = {}) {
400
400
  const pathname = url.split("?")[0];
401
401
  const method = req.method || "GET";
402
402
  if (discoveryPromise) await waitForDiscovery();
403
- if (!_chunkR2SEZEBCcjs.matchAPIRouteAtBasePath.call(void 0, servedRoutes(), pathname, basePath)) {
403
+ if (!_chunkOYNNA4DDcjs.matchAPIRouteAtBasePath.call(void 0, servedRoutes(), pathname, basePath)) {
404
404
  return next();
405
405
  }
406
406
  if (!apiRouterHandler) {
@@ -421,7 +421,7 @@ function farmApiPlugin(options = {}) {
421
421
  }
422
422
  const currentUrl = req.url || url;
423
423
  const currentPathname = currentUrl.split("?")[0];
424
- if (currentPathname !== pathname && !_chunkR2SEZEBCcjs.matchAPIRouteAtBasePath.call(void 0, servedRoutes(), currentPathname, basePath)) {
424
+ if (currentPathname !== pathname && !_chunkOYNNA4DDcjs.matchAPIRouteAtBasePath.call(void 0, servedRoutes(), currentPathname, basePath)) {
425
425
  return next();
426
426
  }
427
427
  const fullUrl = _chunkHNAISJFDcjs.resolveFarmRequestURL.call(void 0, req);
@@ -433,7 +433,7 @@ function farmApiPlugin(options = {}) {
433
433
  }
434
434
  let body;
435
435
  if (method !== "GET" && method !== "HEAD") {
436
- body = await _chunk5566GNEGcjs.readNodeRequestBody.call(void 0, req, bodySizeLimit);
436
+ body = await _chunkLIFUPCXWcjs.readNodeRequestBody.call(void 0, req, bodySizeLimit);
437
437
  }
438
438
  const request = new Request(fullUrl, {
439
439
  method,
@@ -448,7 +448,7 @@ function farmApiPlugin(options = {}) {
448
448
  logResponse(method, currentPathname, response.status, duration);
449
449
  await _chunkZ5MZDFX4cjs.sendWebResponse.call(void 0, res, response);
450
450
  } catch (error) {
451
- const bodyErrorResponse = _chunk5566GNEGcjs.createFarmRequestBodyErrorResponse.call(void 0, error);
451
+ const bodyErrorResponse = _chunkLIFUPCXWcjs.createFarmRequestBodyErrorResponse.call(void 0, error);
452
452
  if (bodyErrorResponse) {
453
453
  await _chunkZ5MZDFX4cjs.sendWebResponse.call(void 0, res, bodyErrorResponse);
454
454
  return;
@@ -497,7 +497,7 @@ function farmApiPlugin(options = {}) {
497
497
  if (await _optionalChain([recoverFailedDiscovery, 'optionalCall', _9 => _9()])) return [];
498
498
  const previousState = snapshotRouteState();
499
499
  try {
500
- const routesModule = await _chunk6XFGJBYXcjs.loadFarmDevModule.call(void 0, server, file);
500
+ const routesModule = await _chunkJYNNIGQOcjs.loadFarmDevModule.call(void 0, server, file);
501
501
  removeEndpointsFromFile(file);
502
502
  for (const [exportName, exportValue] of Object.entries(routesModule)) {
503
503
  const endpoint = exportValue;
@@ -525,7 +525,7 @@ function farmApiPlugin(options = {}) {
525
525
  log(`API router recreated`);
526
526
  } catch (e) {
527
527
  restoreRouteState(previousState);
528
- if (e instanceof _chunkEXHEPWFJcjs.APIRouteConflictError || e instanceof _chunkYTVSWXEZcjs.AmbiguousRouteError) throw e;
528
+ if (e instanceof _chunkYAXOEANDcjs.APIRouteConflictError || e instanceof _chunkYTVSWXEZcjs.AmbiguousRouteError) throw e;
529
529
  log(`Root routes.ts HMR failed: ${e.message}`);
530
530
  }
531
531
  return [];
@@ -550,10 +550,10 @@ function farmApiPlugin(options = {}) {
550
550
  log(`API route file removed: ${routePath}`);
551
551
  return [];
552
552
  }
553
- const routeModule = await _chunk6XFGJBYXcjs.loadFarmDevModule.call(void 0, server, file);
553
+ const routeModule = await _chunkJYNNIGQOcjs.loadFarmDevModule.call(void 0, server, file);
554
554
  removeEndpointsFromFile(file);
555
555
  const availableMethods = [];
556
- for (const method of _chunkR2SEZEBCcjs.API_ROUTE_METHODS) {
556
+ for (const method of _chunkOYNNA4DDcjs.API_ROUTE_METHODS) {
557
557
  if (!routeModule[method]) continue;
558
558
  availableMethods.push(method);
559
559
  addEndpoint(routePath, file, method, routeModule[method]);
@@ -563,7 +563,7 @@ function farmApiPlugin(options = {}) {
563
563
  log(`API router recreated`);
564
564
  } catch (e) {
565
565
  restoreRouteState(previousState);
566
- if (e instanceof _chunkEXHEPWFJcjs.APIRouteConflictError || e instanceof _chunkYTVSWXEZcjs.AmbiguousRouteError) throw e;
566
+ if (e instanceof _chunkYAXOEANDcjs.APIRouteConflictError || e instanceof _chunkYTVSWXEZcjs.AmbiguousRouteError) throw e;
567
567
  log(`API route HMR failed: ${e.message}`);
568
568
  }
569
569
  return [];
@@ -0,0 +1,40 @@
1
+ // src/client/hash-target.ts
2
+ function getHashTargetElement(hash) {
3
+ const fragment = hash.startsWith("#") ? hash.slice(1) : hash;
4
+ if (!fragment) return null;
5
+ let decoded = fragment;
6
+ try {
7
+ decoded = decodeURIComponent(fragment);
8
+ } catch {
9
+ }
10
+ return document.getElementById(decoded) || document.getElementById(fragment) || document.getElementsByName(decoded)[0] || null;
11
+ }
12
+
13
+ // src/client/navigation-delegate.ts
14
+ var DELEGATES = /* @__PURE__ */ Symbol.for("farm.navigation.delegates");
15
+ function delegateNavigation(delegate) {
16
+ const host = globalThis;
17
+ const delegates = host[DELEGATES] ?? (host[DELEGATES] = /* @__PURE__ */ new Set());
18
+ delegates.add(delegate);
19
+ return () => {
20
+ delegates.delete(delegate);
21
+ };
22
+ }
23
+ async function runFarmNavigationDelegates(context) {
24
+ const delegates = globalThis[DELEGATES];
25
+ if (!delegates?.size) return false;
26
+ for (const delegate of delegates) {
27
+ try {
28
+ if (await delegate(context) === true) return true;
29
+ } catch (error) {
30
+ console.error("[Farm.js] A navigation delegate failed; navigating in place.", error);
31
+ }
32
+ }
33
+ return false;
34
+ }
35
+
36
+ export {
37
+ getHashTargetElement,
38
+ delegateNavigation,
39
+ runFarmNavigationDelegates
40
+ };
@@ -297,7 +297,20 @@ async function readFarmRequestBody(request, limit) {
297
297
  }
298
298
  return body;
299
299
  }
300
+ var nodeRequestBodies = /* @__PURE__ */ new WeakMap();
300
301
  async function readNodeRequestBody(request, limit) {
302
+ let body = nodeRequestBodies.get(request);
303
+ if (!body) {
304
+ body = readNodeRequestBodyOnce(request, limit);
305
+ nodeRequestBodies.set(request, body);
306
+ }
307
+ const bytes = await body;
308
+ if (bytes.byteLength > limit) {
309
+ throw new FarmRequestBodyError("BODY_TOO_LARGE", 413, "Request body is too large");
310
+ }
311
+ return bytes;
312
+ }
313
+ async function readNodeRequestBodyOnce(request, limit) {
301
314
  const rawContentLength = request.headers["content-length"];
302
315
  const contentLength = Array.isArray(rawContentLength) ? rawContentLength[0] : rawContentLength;
303
316
  try {
@@ -16,14 +16,14 @@ var _chunk6ONBZGVHcjs = require('./chunk-6ONBZGVH.cjs');
16
16
 
17
17
 
18
18
 
19
- var _chunk5566GNEGcjs = require('./chunk-5566GNEG.cjs');
19
+ var _chunkLIFUPCXWcjs = require('./chunk-LIFUPCXW.cjs');
20
20
 
21
21
 
22
22
 
23
23
  var _chunkB5BBTPJQcjs = require('./chunk-B5BBTPJQ.cjs');
24
24
 
25
25
 
26
- var _chunkJ5VCA45Kcjs = require('./chunk-J5VCA45K.cjs');
26
+ var _chunkRHOR2J6Vcjs = require('./chunk-RHOR2J6V.cjs');
27
27
 
28
28
 
29
29
  var _chunkD22BUQKWcjs = require('./chunk-D22BUQKW.cjs');
@@ -147,7 +147,7 @@ function createFarmAiCatalogResponse(request, input = {}, requestUrl) {
147
147
  const body = JSON.stringify(
148
148
  card ? card.card : { specVersion: "1.0", entries: servers.map(({ entry }) => entry) }
149
149
  );
150
- const etag = _chunk5566GNEGcjs.createFarmWeakETag.call(void 0, body);
150
+ const etag = _chunkLIFUPCXWcjs.createFarmWeakETag.call(void 0, body);
151
151
  const headers = {
152
152
  ...corsHeaders(),
153
153
  "Content-Type": card ? `${SERVER_CARD_TYPE}; charset=utf-8` : ard ? "application/json; charset=utf-8" : `${AI_CATALOG_TYPE}; charset=utf-8`,
@@ -156,7 +156,7 @@ function createFarmAiCatalogResponse(request, input = {}, requestUrl) {
156
156
  ETag: etag,
157
157
  "X-Content-Type-Options": "nosniff"
158
158
  };
159
- if (_chunk5566GNEGcjs.matchesFarmIfNoneMatch.call(void 0, request.headers.get("if-none-match"), etag)) {
159
+ if (_chunkLIFUPCXWcjs.matchesFarmIfNoneMatch.call(void 0, request.headers.get("if-none-match"), etag)) {
160
160
  return new Response(null, { status: 304, headers });
161
161
  }
162
162
  _chunkWJFFPXCVcjs.emitFarmAgentRead.call(void 0, request, card ? "mcp-server-card" : "ai-catalog", 200);
@@ -282,7 +282,7 @@ function createFarmAppManifest(input) {
282
282
  return {
283
283
  schemaVersion: 1,
284
284
  app: app ? {
285
- ...app.version ? { farm: _chunkJ5VCA45Kcjs.FARM_VERSION } : {},
285
+ ...app.version ? { farm: _chunkRHOR2J6Vcjs.FARM_VERSION } : {},
286
286
  ...app.renderer ? { renderer: input.renderer } : {},
287
287
  basePath: input.basePath,
288
288
  ...app.build ? { build: input.build } : {}
@@ -377,7 +377,7 @@ async function createFarmAppManifestResponse(request, input) {
377
377
  });
378
378
  }
379
379
  const body = JSON.stringify(createFarmAppManifest(input));
380
- const etag = _chunk5566GNEGcjs.createFarmWeakETag.call(void 0, body);
380
+ const etag = _chunkLIFUPCXWcjs.createFarmWeakETag.call(void 0, body);
381
381
  const headers = {
382
382
  ...CORS_HEADERS,
383
383
  "content-type": "application/json; charset=utf-8",
@@ -385,7 +385,7 @@ async function createFarmAppManifestResponse(request, input) {
385
385
  etag,
386
386
  "x-content-type-options": "nosniff"
387
387
  };
388
- if (_chunk5566GNEGcjs.matchesFarmIfNoneMatch.call(void 0, request.headers.get("if-none-match"), etag)) {
388
+ if (_chunkLIFUPCXWcjs.matchesFarmIfNoneMatch.call(void 0, request.headers.get("if-none-match"), etag)) {
389
389
  return new Response(null, { status: 304, headers });
390
390
  }
391
391
  return new Response(method === "HEAD" ? null : body, { status: 200, headers });
@@ -26,7 +26,7 @@ import {
26
26
  readNodeRequestBody,
27
27
  resolveFarmServerConfig,
28
28
  withFarmRequestClientAddress
29
- } from "./chunk-C6U66WWF.mjs";
29
+ } from "./chunk-GFT5AHAT.mjs";
30
30
  import {
31
31
  clearRequestContext,
32
32
  deleteRequestContext,
@@ -2,18 +2,22 @@ import {
2
2
  FARM_RSC_INSTALL_HINT,
3
3
  findFarmAppPackageDir
4
4
  } from "./chunk-PXEXOQ5R.mjs";
5
+ import {
6
+ createFarmDevLoopbackPlugin
7
+ } from "./chunk-2GLQSIZD.mjs";
5
8
  import {
6
9
  resolveDeployOutputPath
7
- } from "./chunk-VJXLUTBM.mjs";
10
+ } from "./chunk-2DEPNLXK.mjs";
8
11
  import {
12
+ farmDesktopDevGuardPlugin,
9
13
  loadFarmReactPlugin
10
- } from "./chunk-XLYXG73A.mjs";
11
- import {
12
- resolveFarmPlatform
13
- } from "./chunk-LL7TDMOM.mjs";
14
+ } from "./chunk-75WWOZ5C.mjs";
14
15
  import {
15
16
  loadTailwindVitePlugin
16
17
  } from "./chunk-XLLVWLWO.mjs";
18
+ import {
19
+ resolveFarmPlatform
20
+ } from "./chunk-SMUW7UST.mjs";
17
21
 
18
22
  // src/rsc-pipeline.ts
19
23
  import { readFileSync } from "fs";
@@ -94,7 +98,11 @@ async function createFarmRscViteConfig(userConfig, options) {
94
98
  experimental: { ...userConfig.experimental, serverComponents: true },
95
99
  port: options.port ?? userConfig.server?.port,
96
100
  plugins: [
97
- ...options.command === "serve" && resolveFarmPlatform() === "desktop" ? [farmRscDesktopDevGuardPlugin(userConfig.basePath)] : [],
101
+ ...options.command === "serve" && resolveFarmPlatform() === "desktop" ? [
102
+ farmDesktopDevGuardPlugin(
103
+ typeof userConfig.basePath === "string" ? userConfig.basePath : void 0
104
+ )
105
+ ] : [],
98
106
  ...tailwind ? [tailwind] : [],
99
107
  ...vitePlugins,
100
108
  viteRsc.default({ serverHandler: false, entries: FARM_RSC_ENTRIES }),
@@ -120,26 +128,15 @@ async function createFarmRscViteConfig(userConfig, options) {
120
128
  mode: options.command === "build" ? "production" : "development"
121
129
  };
122
130
  }
123
- function farmRscDesktopDevGuardPlugin(basePath) {
124
- return {
125
- name: "farm:desktop-dev-guard",
126
- enforce: "pre",
127
- configureServer: {
128
- order: "pre",
129
- async handler(server) {
130
- const { createFarmDesktopDevGuard } = await import("./dev-guard-YO6KPIOQ.mjs");
131
- server.middlewares.use(
132
- createFarmDesktopDevGuard(server, {
133
- basePath: typeof basePath === "string" ? basePath : ""
134
- })
135
- );
136
- }
137
- }
138
- };
139
- }
140
131
  async function createFarmRscDevServer(userConfig, options) {
141
132
  const { createServer } = await import("vite");
142
- return createServer(await createFarmRscViteConfig(userConfig, { ...options, command: "serve" }));
133
+ const { host, ...configOptions } = options;
134
+ const config = await createFarmRscViteConfig(userConfig, { ...configOptions, command: "serve" });
135
+ return createServer({
136
+ ...config,
137
+ plugins: [...config.plugins ?? [], createFarmDevLoopbackPlugin()],
138
+ ...host === void 0 ? {} : { server: { ...config.server, host } }
139
+ });
143
140
  }
144
141
  async function buildFarmRsc(userConfig, options) {
145
142
  const { createBuilder } = await import("vite");
@@ -1,6 +1,6 @@
1
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
2
 
3
- var _chunkNPPT4RWFcjs = require('./chunk-NPPT4RWF.cjs');
3
+ var _chunkGOOK2J2Wcjs = require('./chunk-GOOK2J2W.cjs');
4
4
 
5
5
 
6
6
  var _chunkWJFFPXCVcjs = require('./chunk-WJFFPXCV.cjs');
@@ -273,7 +273,7 @@ function requestEvent(metadata, method, status, durationMs) {
273
273
  id: uuid(),
274
274
  requestId: metadata.id,
275
275
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
276
- route: routeTemplate(_chunkNPPT4RWFcjs.getFarmRouteLabel.call(void 0, metadata.route)),
276
+ route: routeTemplate(_chunkGOOK2J2Wcjs.getFarmRouteLabel.call(void 0, metadata.route)),
277
277
  agent: metadata.agent,
278
278
  kind: "request",
279
279
  method,
@@ -286,7 +286,7 @@ function toolEvent(metadata, event) {
286
286
  id: uuid(),
287
287
  requestId: metadata.id,
288
288
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
289
- route: routeTemplate(_chunkNPPT4RWFcjs.getFarmRouteLabel.call(void 0, metadata.route)),
289
+ route: routeTemplate(_chunkGOOK2J2Wcjs.getFarmRouteLabel.call(void 0, metadata.route)),
290
290
  agent: metadata.agent,
291
291
  kind: "mcp.tool",
292
292
  tool: event.tool,
@@ -4,7 +4,8 @@
4
4
  var _chunkRI3EVPKDcjs = require('./chunk-RI3EVPKD.cjs');
5
5
 
6
6
 
7
- var _chunkV7KTQR4Ccjs = require('./chunk-V7KTQR4C.cjs');
7
+
8
+ var _chunkQXJADAQBcjs = require('./chunk-QXJADAQB.cjs');
8
9
 
9
10
 
10
11
 
@@ -244,7 +245,7 @@ var SPARouter = class {
244
245
  );
245
246
  if (scroll) {
246
247
  if (url.hash) {
247
- _optionalChain([_chunkV7KTQR4Ccjs.getHashTargetElement.call(void 0, url.hash), 'optionalAccess', _10 => _10.scrollIntoView, 'call', _11 => _11()]);
248
+ _optionalChain([_chunkQXJADAQBcjs.getHashTargetElement.call(void 0, url.hash), 'optionalAccess', _10 => _10.scrollIntoView, 'call', _11 => _11()]);
248
249
  } else {
249
250
  window.scrollTo(0, 0);
250
251
  }
@@ -252,11 +253,12 @@ var SPARouter = class {
252
253
  return;
253
254
  }
254
255
  const from = window.location.pathname + window.location.search;
255
- if (await this.shouldBlockNavigation({
256
- from,
257
- to: fullPath,
258
- action: replace ? "replace" : "push"
259
- })) {
256
+ const action = replace ? "replace" : "push";
257
+ if (await this.shouldBlockNavigation({ from, to: fullPath, action })) {
258
+ return;
259
+ }
260
+ if (!(refresh && fullPath === from) && await _chunkQXJADAQBcjs.runFarmNavigationDelegates.call(void 0, { url: url.href, from, to: fullPath, action })) {
261
+ this.cancelActiveNavigation();
260
262
  return;
261
263
  }
262
264
  if (this.options.scrollRestoration) {
@@ -528,7 +530,7 @@ var SPARouter = class {
528
530
  }
529
531
  if (options.scroll) {
530
532
  if (options.url.hash) {
531
- const element = _chunkV7KTQR4Ccjs.getHashTargetElement.call(void 0, options.url.hash);
533
+ const element = _chunkQXJADAQBcjs.getHashTargetElement.call(void 0, options.url.hash);
532
534
  if (element) {
533
535
  element.scrollIntoView();
534
536
  }
@@ -762,7 +764,7 @@ var SPARouter = class {
762
764
  }
763
765
  const destinationPath = window.location.pathname + window.location.search;
764
766
  if (window.location.hash) {
765
- const target = _chunkV7KTQR4Ccjs.getHashTargetElement.call(void 0, window.location.hash);
767
+ const target = _chunkQXJADAQBcjs.getHashTargetElement.call(void 0, window.location.hash);
766
768
  if (target) {
767
769
  target.scrollIntoView();
768
770
  } else if (this.options.scrollRestoration) {
@@ -15,7 +15,7 @@ var _chunkJHXJBNLYcjs = require('./chunk-JHXJBNLY.cjs');
15
15
 
16
16
 
17
17
 
18
- var _chunk5566GNEGcjs = require('./chunk-5566GNEG.cjs');
18
+ var _chunkLIFUPCXWcjs = require('./chunk-LIFUPCXW.cjs');
19
19
 
20
20
 
21
21
  var _chunk6XQSPIN6cjs = require('./chunk-6XQSPIN6.cjs');
@@ -128,10 +128,10 @@ function createFarmWorkflowRequestHandler(options) {
128
128
  try {
129
129
  payload = await readWorkflowPayload(
130
130
  request,
131
- _chunk5566GNEGcjs.resolveFarmServerConfig.call(void 0, options.server).bodySizeLimit
131
+ _chunkLIFUPCXWcjs.resolveFarmServerConfig.call(void 0, options.server).bodySizeLimit
132
132
  );
133
133
  } catch (error) {
134
- const response = _chunk5566GNEGcjs.createFarmRequestBodyErrorResponse.call(void 0, error);
134
+ const response = _chunkLIFUPCXWcjs.createFarmRequestBodyErrorResponse.call(void 0, error);
135
135
  if (response) return response;
136
136
  if (error instanceof SyntaxError) {
137
137
  return Response.json({ error: "Invalid workflow request body." }, { status: 400 });
@@ -210,7 +210,7 @@ async function prepareFarmWorkflowsForNitro(config) {
210
210
  createNitroWorkflowHTTPHandler(
211
211
  workflowConfig,
212
212
  workflows,
213
- _chunk5566GNEGcjs.resolveFarmServerConfig.call(void 0, config.server)
213
+ _chunkLIFUPCXWcjs.resolveFarmServerConfig.call(void 0, config.server)
214
214
  ),
215
215
  "utf8"
216
216
  );
@@ -561,7 +561,7 @@ async function readWorkflowPayload(request, bodySizeLimit) {
561
561
  if (request.method === "GET" || request.method === "HEAD") {
562
562
  return _chunkJHXJBNLYcjs.searchParamsToObject.call(void 0, url.searchParams);
563
563
  }
564
- const bytes = await _chunk5566GNEGcjs.readFarmRequestBody.call(void 0, request, bodySizeLimit);
564
+ const bytes = await _chunkLIFUPCXWcjs.readFarmRequestBody.call(void 0, request, bodySizeLimit);
565
565
  const text = new TextDecoder().decode(bytes);
566
566
  if (!text) return {};
567
567
  const contentType = (request.headers.get("content-type") || "").split(";", 1)[0].trim().toLowerCase();