/ src / lib / agent-default-tools.ts
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  }