























@@ -20,19 +20,44 @@ const deprecatedPublicEntrypointSet = new Set(deprecatedPublicPluginSdkEntrypoin
2020const deprecatedBarrelEntrypointSet = new Set(deprecatedBarrelPluginSdkEntrypoints);
2121const forbiddenPublicSubpaths = new Set(["test-utils"]);
222223-const budgets = {
24-publicEntrypoints: Number(process.env.OPENCLAW_PLUGIN_SDK_MAX_PUBLIC_ENTRYPOINTS ?? 303),
25-publicExports: Number(process.env.OPENCLAW_PLUGIN_SDK_MAX_PUBLIC_EXPORTS ?? 8449),
26-publicFunctionExports: Number(
27-process.env.OPENCLAW_PLUGIN_SDK_MAX_PUBLIC_FUNCTION_EXPORTS ?? 4656,
28-),
29-publicDeprecatedExports: Number(
30-process.env.OPENCLAW_PLUGIN_SDK_MAX_PUBLIC_DEPRECATED_EXPORTS ?? 2800,
31-),
32-publicWildcardReexports: Number(
33-process.env.OPENCLAW_PLUGIN_SDK_MAX_PUBLIC_WILDCARD_REEXPORTS ?? 207,
34-),
35-};
23+function readBudgetEnv(name, fallback) {
24+const raw = process.env[name];
25+if (raw === undefined) {
26+return fallback;
27+}
28+const value = raw.trim();
29+if (!/^\d+$/u.test(value)) {
30+throw new Error(`${name} must be a non-negative integer`);
31+}
32+const parsed = Number(value);
33+if (!Number.isSafeInteger(parsed)) {
34+throw new Error(`${name} must be a safe non-negative integer`);
35+}
36+return parsed;
37+}
38+39+let budgets;
40+try {
41+budgets = {
42+publicEntrypoints: readBudgetEnv("OPENCLAW_PLUGIN_SDK_MAX_PUBLIC_ENTRYPOINTS", 308),
43+publicExports: readBudgetEnv("OPENCLAW_PLUGIN_SDK_MAX_PUBLIC_EXPORTS", 9920),
44+publicFunctionExports: readBudgetEnv(
45+"OPENCLAW_PLUGIN_SDK_MAX_PUBLIC_FUNCTION_EXPORTS",
46+5031,
47+),
48+publicDeprecatedExports: readBudgetEnv(
49+"OPENCLAW_PLUGIN_SDK_MAX_PUBLIC_DEPRECATED_EXPORTS",
50+3143,
51+),
52+publicWildcardReexports: readBudgetEnv(
53+"OPENCLAW_PLUGIN_SDK_MAX_PUBLIC_WILDCARD_REEXPORTS",
54+215,
55+),
56+};
57+} catch (error) {
58+console.error(error instanceof Error ? error.message : String(error));
59+process.exit(1);
60+}
36613762function entrypointPath(entrypoint) {
3863return path.join(repoRoot, "src", "plugin-sdk", `${entrypoint}.ts`);
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。