agent-default-tools.ts
1 import { ALL_TOOLS } from '@/lib/tool-definitions' 2 import { normalizeCapabilitySelection } from '@/lib/capability-selection' 3 4 const DEFAULT_AGENT_TOOL_IDS = Array.from(new Set(ALL_TOOLS.map((tool) => tool.id))) 5 6 const KNOWN_TOOL_IDS = new Set(ALL_TOOLS.map((tool) => tool.id)) 7 8 export function getDefaultAgentToolIds(): string[] { 9 return DEFAULT_AGENT_TOOL_IDS.filter((toolId) => KNOWN_TOOL_IDS.has(toolId)) 10 } 11 12 export function resolveAgentToolSelection(options: { 13 hasExplicitTools: boolean 14 hasExplicitExtensions: boolean 15 tools?: string[] | null 16 extensions?: string[] | null 17 }): { 18 tools: string[] 19 extensions: string[] 20 } { 21 const { hasExplicitTools, hasExplicitExtensions, tools, extensions } = options 22 23 if (!hasExplicitTools && !hasExplicitExtensions && !Array.isArray(tools) && !Array.isArray(extensions)) { 24 const defaultTools = getDefaultAgentToolIds() 25 return { 26 tools: defaultTools, 27 extensions: [], 28 } 29 } 30 31 const normalized = normalizeCapabilitySelection({ tools, extensions }) 32 return { 33 tools: hasExplicitTools ? normalized.tools : (Array.isArray(tools) ? normalized.tools : getDefaultAgentToolIds()), 34 extensions: hasExplicitExtensions ? normalized.extensions : normalized.extensions, 35 } 36 }