@farm.js/core 0.1.41 → 0.1.42

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 (125) hide show
  1. package/dist/{agent-mcp-D0eZKfci.d.ts → agent-mcp-SSD6L3VZ.d.ts} +1 -1
  2. package/dist/{agent-mcp-BOqIxJLI.d.mts → agent-mcp-ssVy_tea.d.mts} +1 -1
  3. package/dist/agent-runtime.d.mts +1 -1
  4. package/dist/agent-runtime.d.ts +1 -1
  5. package/dist/api/route-manager.d.mts +3 -3
  6. package/dist/api/route-manager.d.ts +3 -3
  7. package/dist/api/runtime.d.mts +2 -2
  8. package/dist/api/runtime.d.ts +2 -2
  9. package/dist/api.d.mts +3 -3
  10. package/dist/api.d.ts +3 -3
  11. package/dist/{app-CzTSMJaf.d.mts → app-1h3lVT4a.d.mts} +4 -4
  12. package/dist/{app-DM8e1z3G.d.ts → app-KjFzdCqy.d.ts} +4 -4
  13. package/dist/app-manifest-D3RkVNuS.d.mts +120 -0
  14. package/dist/app-manifest-DaW8-tvX.d.ts +120 -0
  15. package/dist/app-markdown.d.mts +2 -2
  16. package/dist/app-markdown.d.ts +2 -2
  17. package/dist/{chunk-PYHPXPSW.mjs → chunk-2JZHQDUY.mjs} +1 -1
  18. package/dist/{chunk-R65GCA6A.mjs → chunk-375K2ZVU.mjs} +7 -7
  19. package/dist/{chunk-L6HYACBE.cjs → chunk-7YHSD3Z6.cjs} +77 -113
  20. package/dist/{chunk-EH3464KF.cjs → chunk-AHFRQMRX.cjs} +1 -1
  21. package/dist/{chunk-EX4MKHXN.cjs → chunk-BXJ5HJTJ.cjs} +7 -6
  22. package/dist/{chunk-BYQVROIP.mjs → chunk-DMRPN25V.mjs} +69 -0
  23. package/dist/{chunk-4C7KTKX7.mjs → chunk-IVQY6UTY.mjs} +1 -1
  24. package/dist/{chunk-3TB5QGUW.cjs → chunk-JAXDRRRC.cjs} +70 -1
  25. package/dist/{chunk-32TZ3QTP.cjs → chunk-JG3MEQUH.cjs} +85 -85
  26. package/dist/{chunk-ENOBPDKZ.mjs → chunk-NU25TRIO.mjs} +3 -2
  27. package/dist/{chunk-SVPGWJZF.mjs → chunk-PIZXONIS.mjs} +71 -107
  28. package/dist/{chunk-JOTUZIM4.cjs → chunk-QKZMB7LY.cjs} +2 -2
  29. package/dist/{chunk-FJGIVDA5.mjs → chunk-QTEJGB5A.mjs} +3 -3
  30. package/dist/{chunk-OQ4YXWH4.cjs → chunk-TCJ4A4A2.cjs} +57 -62
  31. package/dist/{chunk-BGGWKZ2V.mjs → chunk-TUL355PH.mjs} +6 -11
  32. package/dist/{chunk-VLPII2JJ.mjs → chunk-U2UC7UGP.mjs} +1 -1
  33. package/dist/{chunk-ROQ4C4LJ.cjs → chunk-ZATTDMBW.cjs} +48 -48
  34. package/dist/{chunk-PN676AZF.cjs → chunk-ZS6HDNOM.cjs} +6 -6
  35. package/dist/{client-plugins-CkYwvDJ0.d.mts → client-plugins-C9Py_50W.d.mts} +78 -6
  36. package/dist/{client-plugins-DfeKd0sD.d.ts → client-plugins-DIem0I0W.d.ts} +78 -6
  37. package/dist/client-plugins.d.mts +1 -1
  38. package/dist/client-plugins.d.ts +1 -1
  39. package/dist/client.d.mts +5 -5
  40. package/dist/client.d.ts +5 -5
  41. package/dist/config.d.mts +1 -1
  42. package/dist/config.d.ts +1 -1
  43. package/dist/{devtools-2YHAJYH6.cjs → devtools-2RY3EKHL.cjs} +3 -3
  44. package/dist/{devtools-N3QLRIQU.mjs → devtools-Q3LBNUJ7.mjs} +2 -2
  45. package/dist/docs.cjs +4 -4
  46. package/dist/docs.d.mts +2 -2
  47. package/dist/docs.d.ts +2 -2
  48. package/dist/docs.mjs +3 -3
  49. package/dist/index.cjs +9 -9
  50. package/dist/index.d.mts +14 -13
  51. package/dist/index.d.ts +14 -13
  52. package/dist/index.mjs +8 -8
  53. package/dist/integrations.d.mts +1 -1
  54. package/dist/integrations.d.ts +1 -1
  55. package/dist/internal/app-markdown-runtime.d.mts +2 -2
  56. package/dist/internal/app-markdown-runtime.d.ts +2 -2
  57. package/dist/internal/build-runtime.cjs +9 -9
  58. package/dist/internal/build-runtime.d.mts +3 -3
  59. package/dist/internal/build-runtime.d.ts +3 -3
  60. package/dist/internal/build-runtime.mjs +8 -8
  61. package/dist/internal/cli-runtime.cjs +3 -3
  62. package/dist/internal/cli-runtime.mjs +2 -2
  63. package/dist/internal/client-error-overlay.cjs +4 -4
  64. package/dist/internal/client-error-overlay.mjs +1 -1
  65. package/dist/internal/compression-runtime.d.mts +1 -1
  66. package/dist/internal/compression-runtime.d.ts +1 -1
  67. package/dist/internal/config-runtime.cjs +3 -3
  68. package/dist/internal/config-runtime.d.mts +2 -2
  69. package/dist/internal/config-runtime.d.ts +2 -2
  70. package/dist/internal/config-runtime.mjs +2 -2
  71. package/dist/internal/product-telemetry-runtime.cjs +2 -2
  72. package/dist/internal/product-telemetry-runtime.mjs +1 -1
  73. package/dist/internal/production-runtime.cjs +5 -5
  74. package/dist/internal/production-runtime.d.mts +10 -127
  75. package/dist/internal/production-runtime.d.ts +10 -127
  76. package/dist/internal/production-runtime.mjs +4 -4
  77. package/dist/markdown.d.mts +1 -1
  78. package/dist/markdown.d.ts +1 -1
  79. package/dist/middleware.d.mts +3 -3
  80. package/dist/middleware.d.ts +3 -3
  81. package/dist/navigation.d.mts +4 -4
  82. package/dist/navigation.d.ts +4 -4
  83. package/dist/plugin.cjs +6 -6
  84. package/dist/plugin.d.mts +3 -3
  85. package/dist/plugin.d.ts +3 -3
  86. package/dist/plugin.mjs +5 -5
  87. package/dist/{production-runtime-BTkXQdYy.d.mts → production-runtime-CHFKIgpW.d.mts} +1 -1
  88. package/dist/{production-runtime-DFC7pgbp.d.ts → production-runtime-bjjWq-DA.d.ts} +1 -1
  89. package/dist/{render-plan-BoAK9xFC.d.ts → render-plan-B2UndB4x.d.ts} +1 -1
  90. package/dist/{render-plan-5rFeWmk7.d.mts → render-plan-DOHg6wdO.d.mts} +1 -1
  91. package/dist/renderer-client.d.mts +3 -3
  92. package/dist/renderer-client.d.ts +3 -3
  93. package/dist/{request-BxBWigtl.d.mts → request-DQcGfdgQ.d.mts} +1 -1
  94. package/dist/{request-fciwmd3n.d.ts → request-DVNXRQrI.d.ts} +1 -1
  95. package/dist/request.d.mts +2 -2
  96. package/dist/request.d.ts +2 -2
  97. package/dist/{route-rendering-BLZT0IP0.d.ts → route-rendering-B_6fj-GG.d.ts} +1 -1
  98. package/dist/{route-rendering-BCM1QzEf.d.mts → route-rendering-CEX4mFn-.d.mts} +1 -1
  99. package/dist/{router-CkheNX3-.d.ts → router-CHEMHm1P.d.ts} +1 -1
  100. package/dist/{router-DyZJWc1_.d.mts → router-CKHPBKXX.d.mts} +1 -1
  101. package/dist/routes.d.mts +1 -1
  102. package/dist/routes.d.ts +1 -1
  103. package/dist/{runtime-DfU4sKa5.d.ts → runtime-Br2ZDTAv.d.ts} +1 -1
  104. package/dist/{runtime-wexvUN5J.d.mts → runtime-jj8TKNsy.d.mts} +1 -1
  105. package/dist/server-plugins.d.mts +2 -2
  106. package/dist/server-plugins.d.ts +2 -2
  107. package/dist/server.cjs +22 -22
  108. package/dist/server.d.mts +9 -9
  109. package/dist/server.d.ts +9 -9
  110. package/dist/server.mjs +6 -6
  111. package/dist/{spa-router-DgsMXqfX.d.mts → spa-router-BEvS9Erj.d.mts} +2 -2
  112. package/dist/{spa-router-CcejECnG.d.ts → spa-router-DmCuH5B7.d.ts} +2 -2
  113. package/dist/{ssg-Bg4bMMhM.d.mts → ssg-57v6cZcW.d.mts} +2 -2
  114. package/dist/{ssg-1FGaFISl.d.ts → ssg-gT093ETk.d.ts} +2 -2
  115. package/dist/testing.d.mts +1 -1
  116. package/dist/testing.d.ts +1 -1
  117. package/dist/{utils-Dxbh6Hgj.d.ts → utils-CCTKvR-P.d.ts} +1 -1
  118. package/dist/{utils-8wtTYiH4.d.mts → utils-raHHQVyL.d.mts} +1 -1
  119. package/dist/version.cjs +2 -2
  120. package/dist/version.mjs +1 -1
  121. package/dist/vite.cjs +6 -6
  122. package/dist/vite.d.mts +4 -4
  123. package/dist/vite.d.ts +4 -4
  124. package/dist/vite.mjs +5 -5
  125. package/package.json +1 -1
@@ -22,9 +22,10 @@ import {
22
22
  import {
23
23
  resolveFarmAgentCrawlers,
24
24
  resolveFarmAgentSitemap,
25
+ resolveFarmAppManifestConfig,
25
26
  resolveFarmNoindexPreviews,
26
27
  resolveFarmPerformanceConfig
27
- } from "./chunk-BYQVROIP.mjs";
28
+ } from "./chunk-DMRPN25V.mjs";
28
29
  import {
29
30
  resolveFarmLlmsTxtConfig
30
31
  } from "./chunk-ETPEZLS3.mjs";
@@ -154,7 +155,7 @@ function resolveFarmAgentConfig(input, context = {}) {
154
155
  crawlers: resolveFarmAgentCrawlers(input?.crawlers),
155
156
  apiCatalog: resolveFarmAgentBoolean(input?.apiCatalog, "apiCatalog", false),
156
157
  aiCatalog: resolveFarmAgentBoolean(input?.aiCatalog, "aiCatalog", true),
157
- manifest: resolveFarmAgentBoolean(input?.manifest, "manifest", true),
158
+ manifest: resolveFarmAppManifestConfig(input?.manifest),
158
159
  // Same rule as llms.txt: the docs engine serves its own MCP server at /mcp.
159
160
  mcp: resolveFarmAgentBoolean(input?.mcp, "mcp", !context.docs)
160
161
  };
@@ -4,6 +4,9 @@ import {
4
4
  import {
5
5
  DEFAULT_ERROR_STYLES
6
6
  } from "./chunk-XAXTTBUT.mjs";
7
+ import {
8
+ resolveFarmAppManifestConfig
9
+ } from "./chunk-DMRPN25V.mjs";
7
10
  import {
8
11
  serializeFarmLlmsTxt
9
12
  } from "./chunk-ETPEZLS3.mjs";
@@ -42,7 +45,7 @@ import {
42
45
  } from "./chunk-ZZGQD7A4.mjs";
43
46
  import {
44
47
  FARM_VERSION
45
- } from "./chunk-VLPII2JJ.mjs";
48
+ } from "./chunk-U2UC7UGP.mjs";
46
49
  import {
47
50
  localizeFarmPathname
48
51
  } from "./chunk-L3KT7IXV.mjs";
@@ -961,13 +964,11 @@ function isFarmAppManifestPath(pathname) {
961
964
  return pathname === FARM_APP_MANIFEST_PATH || pathname === FARM_APP_MANIFEST_LEGACY_PATH;
962
965
  }
963
966
  __name(isFarmAppManifestPath, "isFarmAppManifestPath");
964
- var FARM_INFRA_SIGNATURE_HEADER = "farmjs-infra-signature";
965
- var SIGNED_PURPOSE = "farmjs-manifest-v1";
966
- var SIGNATURE_WINDOW_SECONDS = 300;
967
967
  function resolveFarmAppManifestInput(config, extra) {
968
968
  const llms = config.agent?.llmsTxt;
969
969
  const plugins = (config.plugins ?? []).map(({ name }) => name);
970
970
  const webmcp = plugins.includes("farm:webmcp");
971
+ const sections = resolveFarmAppManifestConfig(config.agent?.manifest);
971
972
  return {
972
973
  renderer: config.renderer?.name ?? "react",
973
974
  basePath: config.basePath || "/",
@@ -984,7 +985,7 @@ function resolveFarmAppManifestInput(config, extra) {
984
985
  openapi: config.openapi?.enabled && config.openapi.specRoute ? config.openapi.specRoute : null
985
986
  },
986
987
  plugins,
987
- analytics: config.analytics !== false
988
+ ...sections ? { sections } : {}
988
989
  };
989
990
  }
990
991
  __name(resolveFarmAppManifestInput, "resolveFarmAppManifestInput");
@@ -993,56 +994,71 @@ var SOURCES = {
993
994
  standalone: "defineTool",
994
995
  serverFunction: "serverFunction"
995
996
  };
996
- function createFarmAppManifest(input, { full = false } = {}) {
997
- const manifest = {
997
+ var DEFAULT_SECTIONS = resolveFarmAppManifestConfig(void 0);
998
+ function createFarmAppManifest(input) {
999
+ const sections = input.sections ?? DEFAULT_SECTIONS;
1000
+ const { app, mcp, webmcp } = sections;
1001
+ return {
998
1002
  schemaVersion: 1,
999
- app: {
1000
- farm: FARM_VERSION,
1001
- renderer: input.renderer,
1003
+ app: app ? {
1004
+ ...app.version ? { farm: FARM_VERSION } : {},
1005
+ ...app.renderer ? { renderer: input.renderer } : {},
1002
1006
  basePath: input.basePath,
1003
- build: input.build
1004
- },
1005
- packages: input.packages,
1006
- mcp: {
1007
- servers: _listFarmMCPCatalogs().map(({ server, tools, details }) => {
1008
- const open = details?.public === true && !input.guardCoversPath?.(server.path);
1009
- const listed = full || open;
1010
- return {
1011
- name: server.name,
1012
- version: server.version,
1013
- path: server.path,
1014
- authorization: open ? "none" : "required",
1015
- resources: listed ? [...details?.resources ?? []] : [],
1016
- prompts: listed ? [...details?.prompts ?? []] : [],
1017
- tools: (listed ? tools : []).map((tool) => {
1018
- const schemas = details?.schemas?.[tool.name];
1019
- const hints = Object.fromEntries(
1020
- ["readOnlyHint", "destructiveHint", "idempotentHint", "openWorldHint"].filter((hint) => typeof tool[hint] === "boolean").map((hint) => [hint, tool[hint]])
1021
- );
1022
- return {
1023
- name: tool.name,
1024
- ...tool.title ? { title: tool.title } : {},
1025
- ...tool.description ? { description: tool.description } : {},
1026
- source: SOURCES[tool.kind],
1027
- // MCP clients never see the route behind a tool; only Infra's view names it.
1028
- ...full && tool.kind === "endpoint" ? { method: tool.method, path: tool.path } : {},
1029
- ...hints,
1030
- ...schemas ? { inputSchema: schemas.input } : {},
1031
- ...schemas?.output ? { outputSchema: schemas.output } : {}
1032
- };
1033
- })
1034
- };
1035
- })
1036
- },
1037
- webmcp: input.webmcp,
1038
- integrations: input.integrations,
1039
- agent: input.agent,
1040
- plugins: input.plugins
1007
+ ...app.build ? { build: input.build } : {}
1008
+ } : null,
1009
+ packages: sections.packages === "names" ? Object.fromEntries(Object.keys(input.packages).map((name) => [name, null])) : sections.packages ? input.packages : null,
1010
+ mcp: mcp ? { servers: listServers(input, mcp) } : null,
1011
+ webmcp: webmcp ? {
1012
+ enabled: input.webmcp.enabled,
1013
+ tools: input.webmcp.tools.filter((tool) => !webmcp.hide.includes(tool.name))
1014
+ } : null,
1015
+ integrations: sections.integrations ? input.integrations : null,
1016
+ agent: sections.agent ? input.agent : null,
1017
+ plugins: sections.plugins ? input.plugins : null
1041
1018
  };
1042
- manifest.mcp.servers.push(...listDefaultServer(input));
1043
- return manifest;
1044
1019
  }
1045
1020
  __name(createFarmAppManifest, "createFarmAppManifest");
1021
+ function listServers(input, mcp) {
1022
+ const servers = _listFarmMCPCatalogs().map(({ server, tools, details }) => {
1023
+ const open = details?.public === true && !input.guardCoversPath?.(server.path);
1024
+ return {
1025
+ name: server.name,
1026
+ version: server.version,
1027
+ path: server.path,
1028
+ authorization: open ? "none" : "required",
1029
+ resources: open ? [...details?.resources ?? []] : [],
1030
+ prompts: open ? [...details?.prompts ?? []] : [],
1031
+ tools: (open ? tools : []).map((tool) => {
1032
+ const schemas = details?.schemas?.[tool.name];
1033
+ const hints = Object.fromEntries(
1034
+ ["readOnlyHint", "destructiveHint", "idempotentHint", "openWorldHint"].filter((hint) => typeof tool[hint] === "boolean").map((hint) => [hint, tool[hint]])
1035
+ );
1036
+ return {
1037
+ name: tool.name,
1038
+ ...tool.title ? { title: tool.title } : {},
1039
+ ...tool.description ? { description: tool.description } : {},
1040
+ source: SOURCES[tool.kind],
1041
+ ...hints,
1042
+ ...schemas ? { inputSchema: schemas.input } : {},
1043
+ ...schemas?.output ? { outputSchema: schemas.output } : {}
1044
+ };
1045
+ })
1046
+ };
1047
+ });
1048
+ return [...servers, ...listDefaultServer(input)].filter((server) => !mcp.hide.includes(server.name)).map((server) => ({
1049
+ ...server,
1050
+ tools: server.tools.filter((tool) => !mcp.hide.includes(`${server.name}/${tool.name}`)).map((tool) => mcp.schemas ? tool : withoutSchemas(tool))
1051
+ }));
1052
+ }
1053
+ __name(listServers, "listServers");
1054
+ function withoutSchemas({
1055
+ inputSchema: _input,
1056
+ outputSchema: _output,
1057
+ ...tool
1058
+ }) {
1059
+ return tool;
1060
+ }
1061
+ __name(withoutSchemas, "withoutSchemas");
1046
1062
  function listDefaultServer(input) {
1047
1063
  const server = input.defaultMCP?.();
1048
1064
  if (!server) return [];
@@ -1068,57 +1084,13 @@ function listDefaultServer(input) {
1068
1084
  ];
1069
1085
  }
1070
1086
  __name(listDefaultServer, "listDefaultServer");
1071
- var encoder = new TextEncoder();
1072
- var hex = /* @__PURE__ */ __name((bytes) => [...new Uint8Array(bytes)].map((byte) => byte.toString(16).padStart(2, "0")).join(""), "hex");
1073
- async function sha256Hex(value) {
1074
- return hex(await crypto.subtle.digest("SHA-256", encoder.encode(value)));
1075
- }
1076
- __name(sha256Hex, "sha256Hex");
1077
- async function hmacHex(secret, message) {
1078
- const key = await crypto.subtle.importKey(
1079
- "raw",
1080
- encoder.encode(secret),
1081
- { name: "HMAC", hash: "SHA-256" },
1082
- false,
1083
- ["sign"]
1084
- );
1085
- return hex(await crypto.subtle.sign("HMAC", key, encoder.encode(message)));
1086
- }
1087
- __name(hmacHex, "hmacHex");
1088
- function sameHex(a, b) {
1089
- if (a.length !== b.length) return false;
1090
- let difference = 0;
1091
- for (let index = 0; index < a.length; index++)
1092
- difference |= a.charCodeAt(index) ^ b.charCodeAt(index);
1093
- return difference === 0;
1094
- }
1095
- __name(sameHex, "sameHex");
1096
- async function verifyFarmInfraManifestSignature(header, key, now = Date.now()) {
1097
- if (!header || header.length > 2048) return false;
1098
- const parts = header.split(",").map((part) => part.trim());
1099
- const timestamp = Number(
1100
- /^t=(\d{1,12})$/.exec(parts.find((part) => part.startsWith("t=")) ?? "")?.[1]
1101
- );
1102
- if (!Number.isSafeInteger(timestamp)) return false;
1103
- if (Math.abs(now / 1e3 - timestamp) > SIGNATURE_WINDOW_SECONDS) return false;
1104
- const signatures = parts.filter((part) => part.startsWith("v1=")).map((part) => part.slice(3)).filter((value) => /^[0-9a-f]{64}$/.test(value));
1105
- if (!signatures.length || signatures.length > 8) return false;
1106
- const expected = await hmacHex(await sha256Hex(key), `${SIGNED_PURPOSE}
1107
- ${timestamp}`);
1108
- return signatures.some((signature) => sameHex(signature, expected));
1109
- }
1110
- __name(verifyFarmInfraManifestSignature, "verifyFarmInfraManifestSignature");
1111
- function processEnv() {
1112
- return globalThis.process?.env ?? {};
1113
- }
1114
- __name(processEnv, "processEnv");
1115
1087
  var CORS_HEADERS = {
1116
1088
  "access-control-allow-origin": "*",
1117
1089
  "access-control-allow-methods": "GET, HEAD, OPTIONS",
1118
- "access-control-allow-headers": `If-None-Match, ${FARM_INFRA_SIGNATURE_HEADER}`,
1090
+ "access-control-allow-headers": "If-None-Match",
1119
1091
  "access-control-expose-headers": "ETag"
1120
1092
  };
1121
- async function createFarmAppManifestResponse(request, input, options = {}) {
1093
+ async function createFarmAppManifestResponse(request, input) {
1122
1094
  const method = request.method.toUpperCase();
1123
1095
  if (method === "OPTIONS") return new Response(null, { status: 204, headers: CORS_HEADERS });
1124
1096
  if (method !== "GET" && method !== "HEAD") {
@@ -1127,23 +1099,16 @@ async function createFarmAppManifestResponse(request, input, options = {}) {
1127
1099
  headers: { ...CORS_HEADERS, allow: "GET, HEAD, OPTIONS", "content-type": "text/plain" }
1128
1100
  });
1129
1101
  }
1130
- const signature = request.headers.get(FARM_INFRA_SIGNATURE_HEADER);
1131
- const key = input.analytics ? (options.env ?? processEnv()).FARMJS_API_KEY?.trim() : void 0;
1132
- const full = Boolean(
1133
- signature && key && await verifyFarmInfraManifestSignature(signature, key)
1134
- );
1135
- const body = JSON.stringify(createFarmAppManifest(input, { full }));
1102
+ const body = JSON.stringify(createFarmAppManifest(input));
1136
1103
  const etag = createFarmWeakETag(body);
1137
1104
  const headers = {
1138
1105
  ...CORS_HEADERS,
1139
1106
  "content-type": "application/json; charset=utf-8",
1140
- // The full view is for Infra alone; shared caches keep the two views apart.
1141
- "cache-control": full ? "private, no-store" : "public, max-age=0, must-revalidate",
1142
- vary: FARM_INFRA_SIGNATURE_HEADER,
1107
+ "cache-control": "public, max-age=0, must-revalidate",
1143
1108
  etag,
1144
1109
  "x-content-type-options": "nosniff"
1145
1110
  };
1146
- if (!full && matchesFarmIfNoneMatch(request.headers.get("if-none-match"), etag)) {
1111
+ if (matchesFarmIfNoneMatch(request.headers.get("if-none-match"), etag)) {
1147
1112
  return new Response(null, { status: 304, headers });
1148
1113
  }
1149
1114
  return new Response(method === "HEAD" ? null : body, { status: 200, headers });
@@ -1186,7 +1151,6 @@ export {
1186
1151
  FARM_APP_MANIFEST_PATH,
1187
1152
  FARM_APP_MANIFEST_LEGACY_PATH,
1188
1153
  isFarmAppManifestPath,
1189
- FARM_INFRA_SIGNATURE_HEADER,
1190
1154
  resolveFarmAppManifestInput,
1191
1155
  createFarmAppManifestResponse
1192
1156
  };
@@ -11,7 +11,7 @@ var _chunkMY5PZYADcjs = require('./chunk-MY5PZYAD.cjs');
11
11
  var _chunkIK6LVLKCcjs = require('./chunk-IK6LVLKC.cjs');
12
12
 
13
13
 
14
- var _chunkEX4MKHXNcjs = require('./chunk-EX4MKHXN.cjs');
14
+ var _chunkBXJ5HJTJcjs = require('./chunk-BXJ5HJTJ.cjs');
15
15
 
16
16
 
17
17
 
@@ -564,7 +564,7 @@ async function resolveAPIContext(options) {
564
564
  config: options.config,
565
565
  configPath: options.configPath
566
566
  }));
567
- const docs = isResolvedDocsConfig(docsInput) ? docsInput : await _chunkEX4MKHXNcjs.resolveDocsConfig.call(void 0, docsInput, { root, srcDir });
567
+ const docs = isResolvedDocsConfig(docsInput) ? docsInput : await _chunkBXJ5HJTJcjs.resolveDocsConfig.call(void 0, docsInput, { root, srcDir });
568
568
  const guardedPaths = new Set(_nullishCoalesce(_optionalChain([runtimeConfig, 'optionalAccess', _20 => _20.guardedPaths]), () => ( [])));
569
569
  return {
570
570
  root,
@@ -24,7 +24,7 @@ import {
24
24
  renderFarmLocaleAlternateLinks,
25
25
  resolveDefaultErrorStatus,
26
26
  routeBoundaryCoversDirectory
27
- } from "./chunk-SVPGWJZF.mjs";
27
+ } from "./chunk-PIZXONIS.mjs";
28
28
  import {
29
29
  FARM_DEFAULT_MCP_PATH,
30
30
  collectFarmDefaultMCPPages,
@@ -81,7 +81,7 @@ import {
81
81
  resolveFarmAgentCrawlers,
82
82
  resolveFarmAgentSitemap,
83
83
  resolveFarmPerformanceConfig
84
- } from "./chunk-BYQVROIP.mjs";
84
+ } from "./chunk-DMRPN25V.mjs";
85
85
  import {
86
86
  collectFarmLlmsTxtPages,
87
87
  createFarmDefaultLlmsTxt,
@@ -237,7 +237,7 @@ import {
237
237
  } from "./chunk-P7XDC7UJ.mjs";
238
238
  import {
239
239
  FARM_VERSION
240
- } from "./chunk-VLPII2JJ.mjs";
240
+ } from "./chunk-U2UC7UGP.mjs";
241
241
  import {
242
242
  resolveFarmTrailingSlashRedirect,
243
243
  setFarmTrailingSlashPreference