fix: allow large workflow exclusion lists
This commit is contained in:
parent
3101f5966d
commit
85c0f2c096
@ -31,6 +31,7 @@ import {
|
||||
normalizeAgentSecondaryTypeConfig,
|
||||
} from "@/lib/agents/secondary-type-config";
|
||||
import {
|
||||
AGENT_WORKFLOW_BLOCKED_OPTION_KEYS_MAX,
|
||||
AGENT_WORKFLOW_UI_CONFIG_KEY,
|
||||
AGENT_WORKFLOW_PROMPT_FRAGMENT_MAX_LENGTH,
|
||||
defaultAgentWorkflowUiConfig,
|
||||
@ -922,7 +923,10 @@ const agentWorkflowOptionSchema: z.ZodTypeAny = z.lazy(() =>
|
||||
.max(AGENT_WORKFLOW_PROMPT_FRAGMENT_MAX_LENGTH)
|
||||
.nullable()
|
||||
.optional(),
|
||||
blockedOptionKeys: z.array(z.string().trim().min(1).max(64)).max(100).optional(),
|
||||
blockedOptionKeys: z
|
||||
.array(z.string().trim().min(1).max(64))
|
||||
.max(AGENT_WORKFLOW_BLOCKED_OPTION_KEYS_MAX)
|
||||
.optional(),
|
||||
specialModuleEnabled: z.boolean().optional(),
|
||||
specialModuleExclusionEnabled: z.boolean().optional(),
|
||||
specialModuleAllowedOptionKeys: z
|
||||
|
||||
@ -16,6 +16,7 @@ export const AGENT_WORKFLOW_UI_CONFIG_KEY = "agent_workflow_ui_config";
|
||||
export const AGENT_WORKFLOW_MAX_TREE_DEPTH = 8;
|
||||
export const AGENT_WORKFLOW_MAX_OPTION_DEPTH = 100;
|
||||
export const AGENT_WORKFLOW_PROMPT_FRAGMENT_MAX_LENGTH = 20_000;
|
||||
export const AGENT_WORKFLOW_BLOCKED_OPTION_KEYS_MAX = 5000;
|
||||
const AGENT_WORKFLOW_SPECIAL_MODULE_ALLOWED_KEYS_MAX = 5000;
|
||||
export const defaultAgentWorkflowCategoryLabels: AgentWorkflowCategoryLabels = {
|
||||
firstCategory: "品牌",
|
||||
@ -56,7 +57,7 @@ function cloneOption(
|
||||
promptFragment: option.promptFragment || "",
|
||||
blockedOptionKeys: Array.from(new Set((option.blockedOptionKeys || []).filter(Boolean))).slice(
|
||||
0,
|
||||
100
|
||||
AGENT_WORKFLOW_BLOCKED_OPTION_KEYS_MAX
|
||||
),
|
||||
specialModuleEnabled: Boolean(option.specialModuleEnabled),
|
||||
specialModuleExclusionEnabled: Boolean(option.specialModuleExclusionEnabled),
|
||||
@ -547,7 +548,7 @@ function sanitizeBlockedOptionTree(
|
||||
(blockedKey) => blockedKey !== option.key && validKeys.has(blockedKey)
|
||||
)
|
||||
)
|
||||
).slice(0, 100),
|
||||
).slice(0, AGENT_WORKFLOW_BLOCKED_OPTION_KEYS_MAX),
|
||||
children: sanitizeBlockedOptionTree(option.children || [], validKeys),
|
||||
}));
|
||||
}
|
||||
@ -967,8 +968,8 @@ export function normalizeAgentWorkflowUiConfig(value: unknown): AgentWorkflowUiC
|
||||
),
|
||||
promptFragment,
|
||||
blockedOptionKeys: hasRawBlockedOptionKeys
|
||||
? normalizeKeyList(optionRecord.blockedOptionKeys, 100)
|
||||
: normalizeKeyList(defaultOption?.blockedOptionKeys, 100),
|
||||
? normalizeKeyList(optionRecord.blockedOptionKeys, AGENT_WORKFLOW_BLOCKED_OPTION_KEYS_MAX)
|
||||
: normalizeKeyList(defaultOption?.blockedOptionKeys, AGENT_WORKFLOW_BLOCKED_OPTION_KEYS_MAX),
|
||||
specialModuleEnabled: normalizeBoolean(
|
||||
optionRecord.specialModuleEnabled,
|
||||
defaultOption?.specialModuleEnabled ?? false
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user