@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.
- package/dist/{agent-mcp-D0eZKfci.d.ts → agent-mcp-SSD6L3VZ.d.ts} +1 -1
- package/dist/{agent-mcp-BOqIxJLI.d.mts → agent-mcp-ssVy_tea.d.mts} +1 -1
- package/dist/agent-runtime.d.mts +1 -1
- package/dist/agent-runtime.d.ts +1 -1
- package/dist/api/route-manager.d.mts +3 -3
- package/dist/api/route-manager.d.ts +3 -3
- package/dist/api/runtime.d.mts +2 -2
- package/dist/api/runtime.d.ts +2 -2
- package/dist/api.d.mts +3 -3
- package/dist/api.d.ts +3 -3
- package/dist/{app-CzTSMJaf.d.mts → app-1h3lVT4a.d.mts} +4 -4
- package/dist/{app-DM8e1z3G.d.ts → app-KjFzdCqy.d.ts} +4 -4
- package/dist/app-manifest-D3RkVNuS.d.mts +120 -0
- package/dist/app-manifest-DaW8-tvX.d.ts +120 -0
- package/dist/app-markdown.d.mts +2 -2
- package/dist/app-markdown.d.ts +2 -2
- package/dist/{chunk-PYHPXPSW.mjs → chunk-2JZHQDUY.mjs} +1 -1
- package/dist/{chunk-R65GCA6A.mjs → chunk-375K2ZVU.mjs} +7 -7
- package/dist/{chunk-L6HYACBE.cjs → chunk-7YHSD3Z6.cjs} +77 -113
- package/dist/{chunk-EH3464KF.cjs → chunk-AHFRQMRX.cjs} +1 -1
- package/dist/{chunk-EX4MKHXN.cjs → chunk-BXJ5HJTJ.cjs} +7 -6
- package/dist/{chunk-BYQVROIP.mjs → chunk-DMRPN25V.mjs} +69 -0
- package/dist/{chunk-4C7KTKX7.mjs → chunk-IVQY6UTY.mjs} +1 -1
- package/dist/{chunk-3TB5QGUW.cjs → chunk-JAXDRRRC.cjs} +70 -1
- package/dist/{chunk-32TZ3QTP.cjs → chunk-JG3MEQUH.cjs} +85 -85
- package/dist/{chunk-ENOBPDKZ.mjs → chunk-NU25TRIO.mjs} +3 -2
- package/dist/{chunk-SVPGWJZF.mjs → chunk-PIZXONIS.mjs} +71 -107
- package/dist/{chunk-JOTUZIM4.cjs → chunk-QKZMB7LY.cjs} +2 -2
- package/dist/{chunk-FJGIVDA5.mjs → chunk-QTEJGB5A.mjs} +3 -3
- package/dist/{chunk-OQ4YXWH4.cjs → chunk-TCJ4A4A2.cjs} +57 -62
- package/dist/{chunk-BGGWKZ2V.mjs → chunk-TUL355PH.mjs} +6 -11
- package/dist/{chunk-VLPII2JJ.mjs → chunk-U2UC7UGP.mjs} +1 -1
- package/dist/{chunk-ROQ4C4LJ.cjs → chunk-ZATTDMBW.cjs} +48 -48
- package/dist/{chunk-PN676AZF.cjs → chunk-ZS6HDNOM.cjs} +6 -6
- package/dist/{client-plugins-CkYwvDJ0.d.mts → client-plugins-C9Py_50W.d.mts} +78 -6
- package/dist/{client-plugins-DfeKd0sD.d.ts → client-plugins-DIem0I0W.d.ts} +78 -6
- package/dist/client-plugins.d.mts +1 -1
- package/dist/client-plugins.d.ts +1 -1
- package/dist/client.d.mts +5 -5
- package/dist/client.d.ts +5 -5
- package/dist/config.d.mts +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/{devtools-2YHAJYH6.cjs → devtools-2RY3EKHL.cjs} +3 -3
- package/dist/{devtools-N3QLRIQU.mjs → devtools-Q3LBNUJ7.mjs} +2 -2
- package/dist/docs.cjs +4 -4
- package/dist/docs.d.mts +2 -2
- package/dist/docs.d.ts +2 -2
- package/dist/docs.mjs +3 -3
- package/dist/index.cjs +9 -9
- package/dist/index.d.mts +14 -13
- package/dist/index.d.ts +14 -13
- package/dist/index.mjs +8 -8
- package/dist/integrations.d.mts +1 -1
- package/dist/integrations.d.ts +1 -1
- package/dist/internal/app-markdown-runtime.d.mts +2 -2
- package/dist/internal/app-markdown-runtime.d.ts +2 -2
- package/dist/internal/build-runtime.cjs +9 -9
- package/dist/internal/build-runtime.d.mts +3 -3
- package/dist/internal/build-runtime.d.ts +3 -3
- package/dist/internal/build-runtime.mjs +8 -8
- package/dist/internal/cli-runtime.cjs +3 -3
- package/dist/internal/cli-runtime.mjs +2 -2
- package/dist/internal/client-error-overlay.cjs +4 -4
- package/dist/internal/client-error-overlay.mjs +1 -1
- package/dist/internal/compression-runtime.d.mts +1 -1
- package/dist/internal/compression-runtime.d.ts +1 -1
- package/dist/internal/config-runtime.cjs +3 -3
- package/dist/internal/config-runtime.d.mts +2 -2
- package/dist/internal/config-runtime.d.ts +2 -2
- package/dist/internal/config-runtime.mjs +2 -2
- package/dist/internal/product-telemetry-runtime.cjs +2 -2
- package/dist/internal/product-telemetry-runtime.mjs +1 -1
- package/dist/internal/production-runtime.cjs +5 -5
- package/dist/internal/production-runtime.d.mts +10 -127
- package/dist/internal/production-runtime.d.ts +10 -127
- package/dist/internal/production-runtime.mjs +4 -4
- package/dist/markdown.d.mts +1 -1
- package/dist/markdown.d.ts +1 -1
- package/dist/middleware.d.mts +3 -3
- package/dist/middleware.d.ts +3 -3
- package/dist/navigation.d.mts +4 -4
- package/dist/navigation.d.ts +4 -4
- package/dist/plugin.cjs +6 -6
- package/dist/plugin.d.mts +3 -3
- package/dist/plugin.d.ts +3 -3
- package/dist/plugin.mjs +5 -5
- package/dist/{production-runtime-BTkXQdYy.d.mts → production-runtime-CHFKIgpW.d.mts} +1 -1
- package/dist/{production-runtime-DFC7pgbp.d.ts → production-runtime-bjjWq-DA.d.ts} +1 -1
- package/dist/{render-plan-BoAK9xFC.d.ts → render-plan-B2UndB4x.d.ts} +1 -1
- package/dist/{render-plan-5rFeWmk7.d.mts → render-plan-DOHg6wdO.d.mts} +1 -1
- package/dist/renderer-client.d.mts +3 -3
- package/dist/renderer-client.d.ts +3 -3
- package/dist/{request-BxBWigtl.d.mts → request-DQcGfdgQ.d.mts} +1 -1
- package/dist/{request-fciwmd3n.d.ts → request-DVNXRQrI.d.ts} +1 -1
- package/dist/request.d.mts +2 -2
- package/dist/request.d.ts +2 -2
- package/dist/{route-rendering-BLZT0IP0.d.ts → route-rendering-B_6fj-GG.d.ts} +1 -1
- package/dist/{route-rendering-BCM1QzEf.d.mts → route-rendering-CEX4mFn-.d.mts} +1 -1
- package/dist/{router-CkheNX3-.d.ts → router-CHEMHm1P.d.ts} +1 -1
- package/dist/{router-DyZJWc1_.d.mts → router-CKHPBKXX.d.mts} +1 -1
- package/dist/routes.d.mts +1 -1
- package/dist/routes.d.ts +1 -1
- package/dist/{runtime-DfU4sKa5.d.ts → runtime-Br2ZDTAv.d.ts} +1 -1
- package/dist/{runtime-wexvUN5J.d.mts → runtime-jj8TKNsy.d.mts} +1 -1
- package/dist/server-plugins.d.mts +2 -2
- package/dist/server-plugins.d.ts +2 -2
- package/dist/server.cjs +22 -22
- package/dist/server.d.mts +9 -9
- package/dist/server.d.ts +9 -9
- package/dist/server.mjs +6 -6
- package/dist/{spa-router-DgsMXqfX.d.mts → spa-router-BEvS9Erj.d.mts} +2 -2
- package/dist/{spa-router-CcejECnG.d.ts → spa-router-DmCuH5B7.d.ts} +2 -2
- package/dist/{ssg-Bg4bMMhM.d.mts → ssg-57v6cZcW.d.mts} +2 -2
- package/dist/{ssg-1FGaFISl.d.ts → ssg-gT093ETk.d.ts} +2 -2
- package/dist/testing.d.mts +1 -1
- package/dist/testing.d.ts +1 -1
- package/dist/{utils-Dxbh6Hgj.d.ts → utils-CCTKvR-P.d.ts} +1 -1
- package/dist/{utils-8wtTYiH4.d.mts → utils-raHHQVyL.d.mts} +1 -1
- package/dist/version.cjs +2 -2
- package/dist/version.mjs +1 -1
- package/dist/vite.cjs +6 -6
- package/dist/vite.d.mts +4 -4
- package/dist/vite.d.ts +4 -4
- package/dist/vite.mjs +5 -5
- package/package.json +1 -1
|
@@ -6,6 +6,9 @@ var _chunkBMOBTMDRcjs = require('./chunk-BMOBTMDR.cjs');
|
|
|
6
6
|
var _chunkOWOUTKIJcjs = require('./chunk-OWOUTKIJ.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
|
+
var _chunkJAXDRRRCcjs = require('./chunk-JAXDRRRC.cjs');
|
|
10
|
+
|
|
11
|
+
|
|
9
12
|
var _chunkD5IHNDHIcjs = require('./chunk-D5IHNDHI.cjs');
|
|
10
13
|
|
|
11
14
|
|
|
@@ -42,7 +45,7 @@ var _chunkKNBBQHO2cjs = require('./chunk-KNBBQHO2.cjs');
|
|
|
42
45
|
var _chunk5NAVKJCZcjs = require('./chunk-5NAVKJCZ.cjs');
|
|
43
46
|
|
|
44
47
|
|
|
45
|
-
var
|
|
48
|
+
var _chunkAHFRQMRXcjs = require('./chunk-AHFRQMRX.cjs');
|
|
46
49
|
|
|
47
50
|
|
|
48
51
|
var _chunkBIDYX3SLcjs = require('./chunk-BIDYX3SL.cjs');
|
|
@@ -961,30 +964,28 @@ function isFarmAppManifestPath(pathname) {
|
|
|
961
964
|
return pathname === FARM_APP_MANIFEST_PATH || pathname === FARM_APP_MANIFEST_LEGACY_PATH;
|
|
962
965
|
}
|
|
963
966
|
_chunkS3JO3N4Hcjs.__name.call(void 0, 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 = _optionalChain([config, 'access', _27 => _27.agent, 'optionalAccess', _28 => _28.llmsTxt]);
|
|
969
969
|
const plugins = (_nullishCoalesce(config.plugins, () => ( []))).map(({ name }) => name);
|
|
970
970
|
const webmcp = plugins.includes("farm:webmcp");
|
|
971
|
+
const sections = _chunkJAXDRRRCcjs.resolveFarmAppManifestConfig.call(void 0, _optionalChain([config, 'access', _29 => _29.agent, 'optionalAccess', _30 => _30.manifest]));
|
|
971
972
|
return {
|
|
972
|
-
renderer: _nullishCoalesce(_optionalChain([config, 'access',
|
|
973
|
+
renderer: _nullishCoalesce(_optionalChain([config, 'access', _31 => _31.renderer, 'optionalAccess', _32 => _32.name]), () => ( "react")),
|
|
973
974
|
basePath: config.basePath || "/",
|
|
974
975
|
build: extra.build,
|
|
975
976
|
packages: extra.packages,
|
|
976
977
|
webmcp: { enabled: webmcp, tools: webmcp ? _nullishCoalesce(extra.webmcpTools, () => ( [])) : [] },
|
|
977
978
|
integrations: Object.entries(_nullishCoalesce(config.integrations, () => ( {}))).flatMap(([key, integration]) => {
|
|
978
|
-
const category = _nullishCoalesce(_optionalChain([integration, 'optionalAccess',
|
|
979
|
+
const category = _nullishCoalesce(_optionalChain([integration, 'optionalAccess', _33 => _33.category]), () => ( _optionalChain([integration, 'optionalAccess', _34 => _34.slot])));
|
|
979
980
|
return integration && category && integration.type ? [{ key, category, type: integration.type }] : [];
|
|
980
981
|
}),
|
|
981
982
|
agent: {
|
|
982
|
-
apiCatalog: _optionalChain([config, 'access',
|
|
983
|
+
apiCatalog: _optionalChain([config, 'access', _35 => _35.agent, 'optionalAccess', _36 => _36.apiCatalog]) ? "/.well-known/api-catalog" : null,
|
|
983
984
|
llmsTxt: llms === true || typeof llms === "object" && llms !== null && llms.enabled !== false,
|
|
984
|
-
openapi: _optionalChain([config, 'access',
|
|
985
|
+
openapi: _optionalChain([config, 'access', _37 => _37.openapi, 'optionalAccess', _38 => _38.enabled]) && config.openapi.specRoute ? config.openapi.specRoute : null
|
|
985
986
|
},
|
|
986
987
|
plugins,
|
|
987
|
-
|
|
988
|
+
...sections ? { sections } : {}
|
|
988
989
|
};
|
|
989
990
|
}
|
|
990
991
|
_chunkS3JO3N4Hcjs.__name.call(void 0, resolveFarmAppManifestInput, "resolveFarmAppManifestInput");
|
|
@@ -993,58 +994,73 @@ var SOURCES = {
|
|
|
993
994
|
standalone: "defineTool",
|
|
994
995
|
serverFunction: "serverFunction"
|
|
995
996
|
};
|
|
996
|
-
|
|
997
|
-
|
|
997
|
+
var DEFAULT_SECTIONS = _chunkJAXDRRRCcjs.resolveFarmAppManifestConfig.call(void 0, void 0);
|
|
998
|
+
function createFarmAppManifest(input) {
|
|
999
|
+
const sections = _nullishCoalesce(input.sections, () => ( DEFAULT_SECTIONS));
|
|
1000
|
+
const { app, mcp, webmcp } = sections;
|
|
1001
|
+
return {
|
|
998
1002
|
schemaVersion: 1,
|
|
999
|
-
app: {
|
|
1000
|
-
farm:
|
|
1001
|
-
renderer: input.renderer,
|
|
1003
|
+
app: app ? {
|
|
1004
|
+
...app.version ? { farm: _chunkAHFRQMRXcjs.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
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
authorization: open ? "none" : "required",
|
|
1015
|
-
resources: listed ? [..._nullishCoalesce(_optionalChain([details, 'optionalAccess', _40 => _40.resources]), () => ( []))] : [],
|
|
1016
|
-
prompts: listed ? [..._nullishCoalesce(_optionalChain([details, 'optionalAccess', _41 => _41.prompts]), () => ( []))] : [],
|
|
1017
|
-
tools: (listed ? tools : []).map((tool) => {
|
|
1018
|
-
const schemas = _optionalChain([details, 'optionalAccess', _42 => _42.schemas, 'optionalAccess', _43 => _43[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
|
-
..._optionalChain([schemas, 'optionalAccess', _44 => _44.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
|
_chunkS3JO3N4Hcjs.__name.call(void 0, createFarmAppManifest, "createFarmAppManifest");
|
|
1021
|
+
function listServers(input, mcp) {
|
|
1022
|
+
const servers = _chunk75RZHGLScjs._listFarmMCPCatalogs.call(void 0, ).map(({ server, tools, details }) => {
|
|
1023
|
+
const open = _optionalChain([details, 'optionalAccess', _39 => _39.public]) === true && !_optionalChain([input, 'access', _40 => _40.guardCoversPath, 'optionalCall', _41 => _41(server.path)]);
|
|
1024
|
+
return {
|
|
1025
|
+
name: server.name,
|
|
1026
|
+
version: server.version,
|
|
1027
|
+
path: server.path,
|
|
1028
|
+
authorization: open ? "none" : "required",
|
|
1029
|
+
resources: open ? [..._nullishCoalesce(_optionalChain([details, 'optionalAccess', _42 => _42.resources]), () => ( []))] : [],
|
|
1030
|
+
prompts: open ? [..._nullishCoalesce(_optionalChain([details, 'optionalAccess', _43 => _43.prompts]), () => ( []))] : [],
|
|
1031
|
+
tools: (open ? tools : []).map((tool) => {
|
|
1032
|
+
const schemas = _optionalChain([details, 'optionalAccess', _44 => _44.schemas, 'optionalAccess', _45 => _45[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
|
+
..._optionalChain([schemas, 'optionalAccess', _46 => _46.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
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, listServers, "listServers");
|
|
1054
|
+
function withoutSchemas({
|
|
1055
|
+
inputSchema: _input,
|
|
1056
|
+
outputSchema: _output,
|
|
1057
|
+
...tool
|
|
1058
|
+
}) {
|
|
1059
|
+
return tool;
|
|
1060
|
+
}
|
|
1061
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, withoutSchemas, "withoutSchemas");
|
|
1046
1062
|
function listDefaultServer(input) {
|
|
1047
|
-
const server = _optionalChain([input, 'access',
|
|
1063
|
+
const server = _optionalChain([input, 'access', _47 => _47.defaultMCP, 'optionalCall', _48 => _48()]);
|
|
1048
1064
|
if (!server) return [];
|
|
1049
1065
|
return [
|
|
1050
1066
|
{
|
|
@@ -1068,57 +1084,13 @@ function listDefaultServer(input) {
|
|
|
1068
1084
|
];
|
|
1069
1085
|
}
|
|
1070
1086
|
_chunkS3JO3N4Hcjs.__name.call(void 0, listDefaultServer, "listDefaultServer");
|
|
1071
|
-
var encoder = new TextEncoder();
|
|
1072
|
-
var hex = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, (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
|
-
_chunkS3JO3N4Hcjs.__name.call(void 0, 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
|
-
_chunkS3JO3N4Hcjs.__name.call(void 0, 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
|
-
_chunkS3JO3N4Hcjs.__name.call(void 0, 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
|
-
_optionalChain([/^t=(\d{1,12})$/, 'access', _47 => _47.exec, 'call', _48 => _48(_nullishCoalesce(parts.find((part) => part.startsWith("t=")), () => ( ""))), 'optionalAccess', _49 => _49[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
|
-
_chunkS3JO3N4Hcjs.__name.call(void 0, verifyFarmInfraManifestSignature, "verifyFarmInfraManifestSignature");
|
|
1111
|
-
function processEnv() {
|
|
1112
|
-
return _nullishCoalesce(_optionalChain([globalThis, 'access', _50 => _50.process, 'optionalAccess', _51 => _51.env]), () => ( {}));
|
|
1113
|
-
}
|
|
1114
|
-
_chunkS3JO3N4Hcjs.__name.call(void 0, 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":
|
|
1090
|
+
"access-control-allow-headers": "If-None-Match",
|
|
1119
1091
|
"access-control-expose-headers": "ETag"
|
|
1120
1092
|
};
|
|
1121
|
-
async function createFarmAppManifestResponse(request, input
|
|
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
|
|
1131
|
-
const key = input.analytics ? _optionalChain([(_nullishCoalesce(options.env, () => ( processEnv()))), 'access', _52 => _52.FARMJS_API_KEY, 'optionalAccess', _53 => _53.trim, 'call', _54 => _54()]) : 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 = _chunk5NAVKJCZcjs.createFarmWeakETag.call(void 0, body);
|
|
1137
1104
|
const headers = {
|
|
1138
1105
|
...CORS_HEADERS,
|
|
1139
1106
|
"content-type": "application/json; charset=utf-8",
|
|
1140
|
-
|
|
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 (
|
|
1111
|
+
if (_chunk5NAVKJCZcjs.matchesFarmIfNoneMatch.call(void 0, 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 });
|
|
@@ -1188,5 +1153,4 @@ _chunkS3JO3N4Hcjs.__name.call(void 0, createFarmAppManifestResponse, "createFarm
|
|
|
1188
1153
|
|
|
1189
1154
|
|
|
1190
1155
|
|
|
1191
|
-
|
|
1192
|
-
exports.formatRouteSegment = formatRouteSegment; exports.createRouteDirectoryPattern = createRouteDirectoryPattern; exports.stripRouteGroups = stripRouteGroups; exports.getRouteGroupScope = getRouteGroupScope; exports.isInRouteGroupScope = isInRouteGroupScope; exports.getRouteDirectoryDepth = getRouteDirectoryDepth; exports.routeBoundaryCoversDirectory = routeBoundaryCoversDirectory; exports.HOISTED_HEAD_ELEMENT = HOISTED_HEAD_ELEMENT; exports.extractFarmFullDocument = extractFarmFullDocument; exports.classifyFarmDocumentPrefix = classifyFarmDocumentPrefix; exports.removeFarmDocumentTitles = removeFarmDocumentTitles; exports.ensureFarmDocumentMeta = ensureFarmDocumentMeta; exports.composeFarmFullDocument = composeFarmFullDocument; exports.hasFarmMiddlewareConfig = hasFarmMiddlewareConfig; exports.configMiddlewareMayHandlePath = configMiddlewareMayHandlePath; exports.appMiddlewareMayHandlePath = appMiddlewareMayHandlePath; exports.farmPathGuardCoversPage = farmPathGuardCoversPage; exports.farmPathGuardCoversEndpoint = farmPathGuardCoversEndpoint; exports.renderFarmLocaleAlternateLinks = renderFarmLocaleAlternateLinks; exports.createLateRedirectRecovery = createLateRedirectRecovery; exports.createLateNotFoundRecovery = createLateNotFoundRecovery; exports.createFarmMetadataRouteResponse = createFarmMetadataRouteResponse; exports.listFarmMCPLlmsTxtLinks = listFarmMCPLlmsTxtLinks; exports.createFarmAiCatalogResponse = createFarmAiCatalogResponse; exports.resolveDefaultErrorStatus = resolveDefaultErrorStatus; exports.getDefaultErrorStatusText = getDefaultErrorStatusText; exports.createDefaultErrorMarkup = createDefaultErrorMarkup; exports.createFarmThemeDocumentParts = createFarmThemeDocumentParts; exports.applyFarmThemeDocument = applyFarmThemeDocument; exports.FARM_API_CATALOG_PATH = FARM_API_CATALOG_PATH; exports.resolveFarmApiCatalogInput = resolveFarmApiCatalogInput; exports.createFarmApiCatalogResponse = createFarmApiCatalogResponse; exports.FARM_APP_MANIFEST_PATH = FARM_APP_MANIFEST_PATH; exports.FARM_APP_MANIFEST_LEGACY_PATH = FARM_APP_MANIFEST_LEGACY_PATH; exports.isFarmAppManifestPath = isFarmAppManifestPath; exports.FARM_INFRA_SIGNATURE_HEADER = FARM_INFRA_SIGNATURE_HEADER; exports.resolveFarmAppManifestInput = resolveFarmAppManifestInput; exports.createFarmAppManifestResponse = createFarmAppManifestResponse;
|
|
1156
|
+
exports.formatRouteSegment = formatRouteSegment; exports.createRouteDirectoryPattern = createRouteDirectoryPattern; exports.stripRouteGroups = stripRouteGroups; exports.getRouteGroupScope = getRouteGroupScope; exports.isInRouteGroupScope = isInRouteGroupScope; exports.getRouteDirectoryDepth = getRouteDirectoryDepth; exports.routeBoundaryCoversDirectory = routeBoundaryCoversDirectory; exports.HOISTED_HEAD_ELEMENT = HOISTED_HEAD_ELEMENT; exports.extractFarmFullDocument = extractFarmFullDocument; exports.classifyFarmDocumentPrefix = classifyFarmDocumentPrefix; exports.removeFarmDocumentTitles = removeFarmDocumentTitles; exports.ensureFarmDocumentMeta = ensureFarmDocumentMeta; exports.composeFarmFullDocument = composeFarmFullDocument; exports.hasFarmMiddlewareConfig = hasFarmMiddlewareConfig; exports.configMiddlewareMayHandlePath = configMiddlewareMayHandlePath; exports.appMiddlewareMayHandlePath = appMiddlewareMayHandlePath; exports.farmPathGuardCoversPage = farmPathGuardCoversPage; exports.farmPathGuardCoversEndpoint = farmPathGuardCoversEndpoint; exports.renderFarmLocaleAlternateLinks = renderFarmLocaleAlternateLinks; exports.createLateRedirectRecovery = createLateRedirectRecovery; exports.createLateNotFoundRecovery = createLateNotFoundRecovery; exports.createFarmMetadataRouteResponse = createFarmMetadataRouteResponse; exports.listFarmMCPLlmsTxtLinks = listFarmMCPLlmsTxtLinks; exports.createFarmAiCatalogResponse = createFarmAiCatalogResponse; exports.resolveDefaultErrorStatus = resolveDefaultErrorStatus; exports.getDefaultErrorStatusText = getDefaultErrorStatusText; exports.createDefaultErrorMarkup = createDefaultErrorMarkup; exports.createFarmThemeDocumentParts = createFarmThemeDocumentParts; exports.applyFarmThemeDocument = applyFarmThemeDocument; exports.FARM_API_CATALOG_PATH = FARM_API_CATALOG_PATH; exports.resolveFarmApiCatalogInput = resolveFarmApiCatalogInput; exports.createFarmApiCatalogResponse = createFarmApiCatalogResponse; exports.FARM_APP_MANIFEST_PATH = FARM_APP_MANIFEST_PATH; exports.FARM_APP_MANIFEST_LEGACY_PATH = FARM_APP_MANIFEST_LEGACY_PATH; exports.isFarmAppManifestPath = isFarmAppManifestPath; exports.resolveFarmAppManifestInput = resolveFarmAppManifestInput; exports.createFarmAppManifestResponse = createFarmAppManifestResponse;
|
|
@@ -24,7 +24,8 @@ var _chunkPSV6XKPOcjs = require('./chunk-PSV6XKPO.cjs');
|
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
|
|
28
|
+
var _chunkJAXDRRRCcjs = require('./chunk-JAXDRRRC.cjs');
|
|
28
29
|
|
|
29
30
|
|
|
30
31
|
var _chunkD5IHNDHIcjs = require('./chunk-D5IHNDHI.cjs');
|
|
@@ -145,16 +146,16 @@ function resolveFarmAgentConfig(input, context = {}) {
|
|
|
145
146
|
const jsonLd = _optionalChain([input, 'optionalAccess', _ => _.jsonLd]);
|
|
146
147
|
return {
|
|
147
148
|
jsonLd: jsonLd === void 0 ? { ...DEFAULT_JSON_LD } : !jsonLd ? false : jsonLd === true ? {} : jsonLd,
|
|
148
|
-
noindexPreviews:
|
|
149
|
+
noindexPreviews: _chunkJAXDRRRCcjs.resolveFarmNoindexPreviews.call(void 0, _optionalChain([input, 'optionalAccess', _2 => _2.noindexPreviews])),
|
|
149
150
|
// The docs engine answers /llms.txt with its own pages; a default here would replace it.
|
|
150
151
|
// llms-full.txt renders every listed page, so it stays opt-in.
|
|
151
152
|
llmsTxt: _chunkD5IHNDHIcjs.resolveFarmLlmsTxtConfig.call(void 0, _nullishCoalesce(_optionalChain([input, 'optionalAccess', _3 => _3.llmsTxt]), () => ( (context.docs ? false : { full: false })))),
|
|
152
153
|
// Same rule as llms.txt: the docs engine answers /sitemap.xml with its own pages.
|
|
153
|
-
sitemap:
|
|
154
|
-
crawlers:
|
|
154
|
+
sitemap: _chunkJAXDRRRCcjs.resolveFarmAgentSitemap.call(void 0, _nullishCoalesce(_optionalChain([input, 'optionalAccess', _4 => _4.sitemap]), () => ( !context.docs))),
|
|
155
|
+
crawlers: _chunkJAXDRRRCcjs.resolveFarmAgentCrawlers.call(void 0, _optionalChain([input, 'optionalAccess', _5 => _5.crawlers])),
|
|
155
156
|
apiCatalog: resolveFarmAgentBoolean(_optionalChain([input, 'optionalAccess', _6 => _6.apiCatalog]), "apiCatalog", false),
|
|
156
157
|
aiCatalog: resolveFarmAgentBoolean(_optionalChain([input, 'optionalAccess', _7 => _7.aiCatalog]), "aiCatalog", true),
|
|
157
|
-
manifest:
|
|
158
|
+
manifest: _chunkJAXDRRRCcjs.resolveFarmAppManifestConfig.call(void 0, _optionalChain([input, 'optionalAccess', _8 => _8.manifest])),
|
|
158
159
|
// Same rule as llms.txt: the docs engine serves its own MCP server at /mcp.
|
|
159
160
|
mcp: resolveFarmAgentBoolean(_optionalChain([input, 'optionalAccess', _9 => _9.mcp]), "mcp", !context.docs)
|
|
160
161
|
};
|
|
@@ -814,7 +815,7 @@ async function resolveConfig(userConfig, mode) {
|
|
|
814
815
|
], "headers"),
|
|
815
816
|
routeRules,
|
|
816
817
|
images: _chunkYFPGHF5Fcjs.resolveFarmImageConfig.call(void 0, userConfig.images),
|
|
817
|
-
performance:
|
|
818
|
+
performance: _chunkJAXDRRRCcjs.resolveFarmPerformanceConfig.call(void 0, userConfig.performance),
|
|
818
819
|
theme: _chunkOI6CMLWXcjs.resolveFarmThemeConfig.call(void 0, userConfig.theme, basePath),
|
|
819
820
|
publicDir: userConfig.publicDir || "public",
|
|
820
821
|
i18n: _chunkHLJ6MBUZcjs.resolveFarmI18nConfig.call(void 0, userConfig.i18n, { root, mode, basePath }),
|
|
@@ -616,6 +616,74 @@ function applyFarmPreviewRobotsTag(response) {
|
|
|
616
616
|
}
|
|
617
617
|
__name(applyFarmPreviewRobotsTag, "applyFarmPreviewRobotsTag");
|
|
618
618
|
|
|
619
|
+
// src/app-manifest-config.ts
|
|
620
|
+
var NAME = "agent.manifest";
|
|
621
|
+
function isObject(value) {
|
|
622
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
623
|
+
}
|
|
624
|
+
__name(isObject, "isObject");
|
|
625
|
+
function checkKeys(value, keys, name) {
|
|
626
|
+
for (const key of Object.keys(value)) {
|
|
627
|
+
if (!keys.includes(key)) {
|
|
628
|
+
throw new TypeError(`${name} has an unknown option "${key}"; expected ${keys.join(", ")}.`);
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
}
|
|
632
|
+
__name(checkKeys, "checkKeys");
|
|
633
|
+
function readBoolean(value, name, fallback = true) {
|
|
634
|
+
if (value === void 0) return fallback;
|
|
635
|
+
if (typeof value !== "boolean") throw new TypeError(`${name} must be a boolean.`);
|
|
636
|
+
return value;
|
|
637
|
+
}
|
|
638
|
+
__name(readBoolean, "readBoolean");
|
|
639
|
+
function readHide(value, name) {
|
|
640
|
+
if (value === void 0) return [];
|
|
641
|
+
if (!Array.isArray(value) || value.some((entry) => typeof entry !== "string" || !entry.trim())) {
|
|
642
|
+
throw new TypeError(`${name} must be an array of non-empty strings.`);
|
|
643
|
+
}
|
|
644
|
+
return [...new Set(value.map((entry) => entry.trim()))];
|
|
645
|
+
}
|
|
646
|
+
__name(readHide, "readHide");
|
|
647
|
+
function readSection(value, name, keys, read) {
|
|
648
|
+
if (value === false) return false;
|
|
649
|
+
if (value === void 0 || value === true) return read({});
|
|
650
|
+
if (!isObject(value)) throw new TypeError(`${name} must be true, false, or an options object.`);
|
|
651
|
+
checkKeys(value, keys, name);
|
|
652
|
+
return read(value);
|
|
653
|
+
}
|
|
654
|
+
__name(readSection, "readSection");
|
|
655
|
+
function resolveFarmAppManifestConfig(input) {
|
|
656
|
+
if (input === false) return false;
|
|
657
|
+
if (input !== void 0 && input !== true && !isObject(input)) {
|
|
658
|
+
throw new TypeError(`${NAME} must be true, false, or an options object.`);
|
|
659
|
+
}
|
|
660
|
+
const config = isObject(input) ? input : {};
|
|
661
|
+
checkKeys(config, ["app", "packages", "mcp", "webmcp", "integrations", "agent", "plugins"], NAME);
|
|
662
|
+
const packages = config.packages;
|
|
663
|
+
if (packages !== void 0 && typeof packages !== "boolean" && packages !== "names") {
|
|
664
|
+
throw new TypeError(`${NAME}.packages must be true, false, or "names".`);
|
|
665
|
+
}
|
|
666
|
+
return {
|
|
667
|
+
app: readSection(config.app, `${NAME}.app`, ["version", "renderer", "build"], (app) => ({
|
|
668
|
+
version: readBoolean(app.version, `${NAME}.app.version`),
|
|
669
|
+
renderer: readBoolean(app.renderer, `${NAME}.app.renderer`),
|
|
670
|
+
build: readBoolean(app.build, `${NAME}.app.build`)
|
|
671
|
+
})),
|
|
672
|
+
packages: packages ?? true,
|
|
673
|
+
mcp: readSection(config.mcp, `${NAME}.mcp`, ["schemas", "hide"], (mcp) => ({
|
|
674
|
+
schemas: readBoolean(mcp.schemas, `${NAME}.mcp.schemas`),
|
|
675
|
+
hide: readHide(mcp.hide, `${NAME}.mcp.hide`)
|
|
676
|
+
})),
|
|
677
|
+
webmcp: readSection(config.webmcp, `${NAME}.webmcp`, ["hide"], (webmcp) => ({
|
|
678
|
+
hide: readHide(webmcp.hide, `${NAME}.webmcp.hide`)
|
|
679
|
+
})),
|
|
680
|
+
integrations: readBoolean(config.integrations, `${NAME}.integrations`),
|
|
681
|
+
agent: readBoolean(config.agent, `${NAME}.agent`),
|
|
682
|
+
plugins: readBoolean(config.plugins, `${NAME}.plugins`)
|
|
683
|
+
};
|
|
684
|
+
}
|
|
685
|
+
__name(resolveFarmAppManifestConfig, "resolveFarmAppManifestConfig");
|
|
686
|
+
|
|
619
687
|
export {
|
|
620
688
|
resolveFarmAgentCrawlers,
|
|
621
689
|
createFarmAgentRobots,
|
|
@@ -626,6 +694,7 @@ export {
|
|
|
626
694
|
manageFarmLinkHeaderPreloads,
|
|
627
695
|
manageFarmDocumentPreloads,
|
|
628
696
|
reportFarmPreloadWarnings,
|
|
697
|
+
resolveFarmAppManifestConfig,
|
|
629
698
|
FARM_PREVIEW_ROBOTS_TAG,
|
|
630
699
|
resolveFarmNoindexPreviews,
|
|
631
700
|
applyFarmPreviewRobotsTag
|
|
@@ -616,6 +616,75 @@ function applyFarmPreviewRobotsTag(response) {
|
|
|
616
616
|
}
|
|
617
617
|
_chunkS3JO3N4Hcjs.__name.call(void 0, applyFarmPreviewRobotsTag, "applyFarmPreviewRobotsTag");
|
|
618
618
|
|
|
619
|
+
// src/app-manifest-config.ts
|
|
620
|
+
var NAME = "agent.manifest";
|
|
621
|
+
function isObject(value) {
|
|
622
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
623
|
+
}
|
|
624
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, isObject, "isObject");
|
|
625
|
+
function checkKeys(value, keys, name) {
|
|
626
|
+
for (const key of Object.keys(value)) {
|
|
627
|
+
if (!keys.includes(key)) {
|
|
628
|
+
throw new TypeError(`${name} has an unknown option "${key}"; expected ${keys.join(", ")}.`);
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
}
|
|
632
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, checkKeys, "checkKeys");
|
|
633
|
+
function readBoolean(value, name, fallback = true) {
|
|
634
|
+
if (value === void 0) return fallback;
|
|
635
|
+
if (typeof value !== "boolean") throw new TypeError(`${name} must be a boolean.`);
|
|
636
|
+
return value;
|
|
637
|
+
}
|
|
638
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, readBoolean, "readBoolean");
|
|
639
|
+
function readHide(value, name) {
|
|
640
|
+
if (value === void 0) return [];
|
|
641
|
+
if (!Array.isArray(value) || value.some((entry) => typeof entry !== "string" || !entry.trim())) {
|
|
642
|
+
throw new TypeError(`${name} must be an array of non-empty strings.`);
|
|
643
|
+
}
|
|
644
|
+
return [...new Set(value.map((entry) => entry.trim()))];
|
|
645
|
+
}
|
|
646
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, readHide, "readHide");
|
|
647
|
+
function readSection(value, name, keys, read) {
|
|
648
|
+
if (value === false) return false;
|
|
649
|
+
if (value === void 0 || value === true) return read({});
|
|
650
|
+
if (!isObject(value)) throw new TypeError(`${name} must be true, false, or an options object.`);
|
|
651
|
+
checkKeys(value, keys, name);
|
|
652
|
+
return read(value);
|
|
653
|
+
}
|
|
654
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, readSection, "readSection");
|
|
655
|
+
function resolveFarmAppManifestConfig(input) {
|
|
656
|
+
if (input === false) return false;
|
|
657
|
+
if (input !== void 0 && input !== true && !isObject(input)) {
|
|
658
|
+
throw new TypeError(`${NAME} must be true, false, or an options object.`);
|
|
659
|
+
}
|
|
660
|
+
const config = isObject(input) ? input : {};
|
|
661
|
+
checkKeys(config, ["app", "packages", "mcp", "webmcp", "integrations", "agent", "plugins"], NAME);
|
|
662
|
+
const packages = config.packages;
|
|
663
|
+
if (packages !== void 0 && typeof packages !== "boolean" && packages !== "names") {
|
|
664
|
+
throw new TypeError(`${NAME}.packages must be true, false, or "names".`);
|
|
665
|
+
}
|
|
666
|
+
return {
|
|
667
|
+
app: readSection(config.app, `${NAME}.app`, ["version", "renderer", "build"], (app) => ({
|
|
668
|
+
version: readBoolean(app.version, `${NAME}.app.version`),
|
|
669
|
+
renderer: readBoolean(app.renderer, `${NAME}.app.renderer`),
|
|
670
|
+
build: readBoolean(app.build, `${NAME}.app.build`)
|
|
671
|
+
})),
|
|
672
|
+
packages: _nullishCoalesce(packages, () => ( true)),
|
|
673
|
+
mcp: readSection(config.mcp, `${NAME}.mcp`, ["schemas", "hide"], (mcp) => ({
|
|
674
|
+
schemas: readBoolean(mcp.schemas, `${NAME}.mcp.schemas`),
|
|
675
|
+
hide: readHide(mcp.hide, `${NAME}.mcp.hide`)
|
|
676
|
+
})),
|
|
677
|
+
webmcp: readSection(config.webmcp, `${NAME}.webmcp`, ["hide"], (webmcp) => ({
|
|
678
|
+
hide: readHide(webmcp.hide, `${NAME}.webmcp.hide`)
|
|
679
|
+
})),
|
|
680
|
+
integrations: readBoolean(config.integrations, `${NAME}.integrations`),
|
|
681
|
+
agent: readBoolean(config.agent, `${NAME}.agent`),
|
|
682
|
+
plugins: readBoolean(config.plugins, `${NAME}.plugins`)
|
|
683
|
+
};
|
|
684
|
+
}
|
|
685
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, resolveFarmAppManifestConfig, "resolveFarmAppManifestConfig");
|
|
686
|
+
|
|
687
|
+
|
|
619
688
|
|
|
620
689
|
|
|
621
690
|
|
|
@@ -629,4 +698,4 @@ _chunkS3JO3N4Hcjs.__name.call(void 0, applyFarmPreviewRobotsTag, "applyFarmPrevi
|
|
|
629
698
|
|
|
630
699
|
|
|
631
700
|
|
|
632
|
-
exports.resolveFarmAgentCrawlers = resolveFarmAgentCrawlers; exports.createFarmAgentRobots = createFarmAgentRobots; exports.resolveFarmAgentSitemap = resolveFarmAgentSitemap; exports.createFarmDefaultSitemap = createFarmDefaultSitemap; exports.resolveFarmPerformanceConfig = resolveFarmPerformanceConfig; exports.manageFarmHtmlPreloads = manageFarmHtmlPreloads; exports.manageFarmLinkHeaderPreloads = manageFarmLinkHeaderPreloads; exports.manageFarmDocumentPreloads = manageFarmDocumentPreloads; exports.reportFarmPreloadWarnings = reportFarmPreloadWarnings; exports.FARM_PREVIEW_ROBOTS_TAG = FARM_PREVIEW_ROBOTS_TAG; exports.resolveFarmNoindexPreviews = resolveFarmNoindexPreviews; exports.applyFarmPreviewRobotsTag = applyFarmPreviewRobotsTag;
|
|
701
|
+
exports.resolveFarmAgentCrawlers = resolveFarmAgentCrawlers; exports.createFarmAgentRobots = createFarmAgentRobots; exports.resolveFarmAgentSitemap = resolveFarmAgentSitemap; exports.createFarmDefaultSitemap = createFarmDefaultSitemap; exports.resolveFarmPerformanceConfig = resolveFarmPerformanceConfig; exports.manageFarmHtmlPreloads = manageFarmHtmlPreloads; exports.manageFarmLinkHeaderPreloads = manageFarmLinkHeaderPreloads; exports.manageFarmDocumentPreloads = manageFarmDocumentPreloads; exports.reportFarmPreloadWarnings = reportFarmPreloadWarnings; exports.resolveFarmAppManifestConfig = resolveFarmAppManifestConfig; exports.FARM_PREVIEW_ROBOTS_TAG = FARM_PREVIEW_ROBOTS_TAG; exports.resolveFarmNoindexPreviews = resolveFarmNoindexPreviews; exports.applyFarmPreviewRobotsTag = applyFarmPreviewRobotsTag;
|